You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2015/04/17 18:45:48 UTC

[01/50] [abbrv] zest-qi4j git commit: updates on configuration

Repository: zest-qi4j
Updated Branches:
  refs/heads/ramtej-fb/spatial.queries [created] a1053748f


updates on configuration


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/d4076d1d
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/d4076d1d
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/d4076d1d

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: d4076d1d5812be245a9f7b8a5ff612ea70ce81a6
Parents: 5a413a4
Author: jj <ju...@gmail.com>
Authored: Tue Jan 6 17:10:39 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Tue Jan 6 17:10:39 2015 +0100

----------------------------------------------------------------------
 .../qi4j/index/elasticsearch/ElasticSearchConfiguration.java    | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d4076d1d/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
index 384f9ed..223d579 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
@@ -17,10 +17,12 @@
  */
 package org.qi4j.index.elasticsearch;
 
+import org.qi4j.api.association.Association;
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.common.UseDefaults;
 import org.qi4j.api.configuration.ConfigurationComposite;
 import org.qi4j.api.property.Property;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialExceptionConfiguration;
 
 // START SNIPPET: config
 public interface ElasticSearchConfiguration
@@ -52,5 +54,8 @@ public interface ElasticSearchConfiguration
 
     @Optional Property<INDEX_MAPPING_POINT_METHOD> indexPointMappingMethod();
 
+    @Optional
+    Association<SpatialExceptionConfiguration> spatial();
+
 }
 // END SNIPPET: config


[06/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
index c45fb2a..8a4a0fd 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
@@ -11,8 +11,10 @@ import org.qi4j.api.query.Query;
 import org.qi4j.api.unitofwork.UnitOfWork;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.entitystore.riak.RiakHttpMapEntityStoreAssembler;
 import org.qi4j.entitystore.sql.assembly.DerbySQLEntityStoreAssembler;
 import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
 import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
 import org.qi4j.index.elasticsearch.extension.spatial.utils.RandomPoint;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
@@ -47,50 +49,6 @@ public class ElasticSearchSpatialBench
         assumeNoIbmJdk();
     }
 
-    protected boolean isExpressionSupported(Query<?> expression)
-    {
-        return true;
-    }
-
-/**
-    protected boolean isExpressionSupported(Query<?> expression)
-    {
-        QueryImpl queryImpl = (QueryImpl)expression;
-        System.out.println("### " + expression.getClass());
-
-        System.out.println(queryImpl.resultType());
-
-        System.out.println("getWhereClause " + queryImpl.getWhereClause().getClass().getSimpleName());
-
-        System.out.println(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value());
-
-        boolean hasOrderBySegments = false;
-        if (queryImpl.getOrderBySegments() != null && queryImpl.getOrderBySegments().iterator().hasNext())
-        {
-            hasOrderBySegments = true;
-        }
-        // public static boolean isSupported(Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, INDEXING_METHOD Type )
-
-        Class geometryOfProperty = InternalUtils.classOfPropertyType(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).property());
-        TGeometry geometryOfFilter   = ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value();
-
-        // System.out.println("Operator " + ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).operator().getClass());
-
-        System.out.println("geometryOfProperty " + geometryOfProperty);
-        System.out.println("geometryOfFilter   " + InternalUtils.classOfGeometry(geometryOfFilter));
-
-        System.out.println("Exression " + expression.getClass());
-
-        return SpatialFunctionsSupportMatrix.isSupported
-                (
-                        queryImpl.getWhereClause().getClass(),
-                        geometryOfProperty,
-                        InternalUtils.classOfGeometry(geometryOfFilter),
-                        hasOrderBySegments,
-                        SpatialFunctionsSupportMatrix.INDEX_MAPPING_TPOINT_METHOD.TPOINT_AS_GEOPOINT
-                );
-    }
- */
 
     @Override
     public void assemble( ModuleAssembly module )
@@ -104,69 +62,44 @@ public class ElasticSearchSpatialBench
 
 
         // Config module
-        ModuleAssembly configIndex = module.layer().module( "configIndex" );
-        new EntityTestAssembler().assemble( configIndex );
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
 
-        configIndex.values(SpatialConfiguration.Configuration.class,
+        config.values(SpatialConfiguration.Configuration.class,
                 SpatialConfiguration.FinderConfiguration.class,
                 SpatialConfiguration.IndexerConfiguration.class,
                 SpatialConfiguration.IndexingMethod.class,
                 SpatialConfiguration.ProjectionSupport.class).
                 visibleIn(Visibility.application);
 
+
         // Index/Query
-        new ESFilesystemIndexQueryAssembler().
-                withConfig(configIndex,Visibility.layer ).
-                identifiedBy("ElasticSearchConfigurationVariant2").
+        new ESClusterIndexQueryAssembler().
+                withConfig(config, Visibility.layer).
+                identifiedBy("ElasticSearchGeoShapeIndexing").
                 assemble(module);
-
-        ElasticSearchConfiguration esConfig = configIndex.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
-        esConfig.indexPointMappingMethod().set(ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT);
-
+        ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
+        esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
 
         // FileConfig
         FileConfigurationOverride override = new FileConfigurationOverride().
-                withData( new File( DATA_DIR, "qi4j-data" ) ).
-                withLog( new File( DATA_DIR, "qi4j-logs" ) ).
-                withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
-        module.services( FileConfigurationService.class ).
-                setMetaInfo( override );
+                withData(new File(DATA_DIR, "qi4j-data")).
+                withLog(new File(DATA_DIR, "qi4j-logs")).
+                withTemporary(new File(DATA_DIR, "qi4j-temp"));
+        module.services(FileConfigurationService.class).
+                setMetaInfo(override);
 
+        // In-Memory Entity Store
+        // new EntityTestAssembler().assemble( module );
 
-        configIndex.services(FileConfigurationService.class)
-                // .identifiedBy("ElasticSearchConfigurationVariant1")
-                .setMetaInfo(override)
-                .visibleIn(Visibility.application);
 
-        // clear index mapping caches during junit testcases
-        // SpatialIndexMapper.IndexMappingCache.clear();
-
-        ModuleAssembly configStore = module.layer().module( "configStore" );
-        new EntityTestAssembler().assemble( configStore );
+        /** RIAK */
+        ModuleAssembly configRiak = module.layer().module( "configRiak" );
+        new EntityTestAssembler().assemble( configRiak );
         new OrgJsonValueSerializationAssembler().assemble( module );
-
         // START SNIPPET: assembly
-        // DataSourceService
-        new DBCPDataSourceServiceAssembler().
-                identifiedBy( "derby-datasource-service" ).
-                visibleIn( Visibility.module ).
-                withConfig( configStore, Visibility.layer ).
-                assemble( module );
-
-        // DataSource
-        new DataSourceAssembler().
-                withDataSourceServiceIdentity( "derby-datasource-service" ).
-                identifiedBy( "derby-datasource" ).
-                visibleIn( Visibility.module ).
-                withCircuitBreaker().
-                assemble( module );
-
-        // SQL EntityStore
-        new DerbySQLEntityStoreAssembler().
-                visibleIn( Visibility.application ).
-                withConfig( configStore, Visibility.layer ).
-                assemble( module );
+        new RiakHttpMapEntityStoreAssembler().withConfig( configRiak, Visibility.layer ).assemble( module );
+        /** +++ */
     }
 
     @Test
@@ -217,12 +150,12 @@ public class ElasticSearchSpatialBench
             UnitOfWork unitOfWork = module.newUnitOfWork();
 
 
-            for (int i = 0; i < 5000; i++) {
+            for (int i = 0; i < 10000; i++) {
                 double[] xy = nextSpherePt2D();
                 //System.out.println("Degrees " + DistanceUtils.toDegrees(xy[0]) + "," + DistanceUtils.toDegrees(xy[1]));
 
                 TPoint point = TPoint(module).lat(DistanceUtils.toDegrees(xy[0])).lon(DistanceUtils.toDegrees(xy[1])).geometry();
-                EntityBuilder<SpatialRegressionEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class);
+                EntityBuilder<SpatialAEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class);
                 pointBuilder.instance().point().set(point);
                 pointBuilder.newInstance();
             }
@@ -241,7 +174,6 @@ public class ElasticSearchSpatialBench
 
     public double[] nextSpherePt2D()
     {
-        // return new RandomPoint(seed++).nextSpherePt(2);
         return randomPoint.nextSpherePt(2);
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialExtensionClusterQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialExtensionClusterQueryTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialExtensionClusterQueryTest.java
deleted file mode 100644
index 33474a5..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialExtensionClusterQueryTest.java
+++ /dev/null
@@ -1,640 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.entity.EntityBuilder;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TGeometryRoot;
-import org.qi4j.api.query.Query;
-import org.qi4j.api.query.QueryBuilder;
-import org.qi4j.api.query.QueryExpressions;
-import org.qi4j.api.query.grammar.OrderBy;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extension.spatial.model.VerifyStatialTypes;
-import org.qi4j.index.elasticsearch.extension.spatial.model.entity.SpatialEntity;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.spi.query.EntityFinderException;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialQueryTest;
-import org.qi4j.test.indexing.model.Domain;
-import org.qi4j.test.indexing.model.Nameable;
-import org.qi4j.test.util.DelTreeAfter;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
-
-import java.io.File;
-
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-import static org.qi4j.api.query.QueryExpressions.ge;
-import static org.qi4j.api.query.QueryExpressions.gt;
-import static org.qi4j.api.query.QueryExpressions.lt;
-import static org.qi4j.api.query.QueryExpressions.templateFor;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.*;
-import static org.qi4j.test.indexing.NameableAssert.verifyUnorderedResults;
-import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
-
-/**
- * Created by jakes on 2/8/14.
- */
-public class ElasticSearchSpatialExtensionClusterQueryTest
-        extends AbstractSpatialQueryTest {
-    private static final File DATA_DIR = new File("build/tmp/es-money-query-test");
-    @Rule
-    public final DelTreeAfter delTreeAfter = new DelTreeAfter(DATA_DIR);
-
-    @BeforeClass
-    public static void beforeClass_IBMJDK() {
-        assumeNoIbmJdk();
-    }
-
-    // Types definition of later comparison
-    private TPoint _tPoint;
-    private TMultiPoint _tMultiPoint;
-    private TLineString _tLineString;
-    private TPolygon _tPolygon;
-
-
-    @Override
-    public void assemble(ModuleAssembly module)
-            throws AssemblyException {
-        super.assemble(module);
-
-        module.entities(SpatialEntity.class);
-
-        // Config module
-        ModuleAssembly config = module.layer().module("config");
-        new EntityTestAssembler().assemble(config);
-
-        // Index/Query
-        new ESClusterIndexQueryAssembler().
-                withConfig(config, Visibility.layer).
-                assemble(module);
-        ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData(new File(DATA_DIR, "qi4j-data")).
-                withLog(new File(DATA_DIR, "qi4j-logs")).
-                withTemporary(new File(DATA_DIR, "qi4j-temp"));
-        module.services(FileConfigurationService.class).
-                setMetaInfo(override);
-    }
-
-    // @Override
-    public void setUp()
-            throws Exception {
-        super.setUp();
-
-        _tPoint = TPoint(module).x(11.57958984375).y(48.13905780942574).geometry();
-
-        _tMultiPoint = TMultiPoint(module).points(new double[][]
-                {
-                        {11.57958984375, 48.13905780942574},
-                        {11.599502563476562, 48.14913756559802},
-                }).geometry();
-        _tLineString = TlineString(module).points(new double[][]
-                {
-                        {11.550750732421875, 48.109035906197036},
-                        {11.552810668945312, 48.16608541901253},
-                }).geometry();
-
-        _tPolygon = TPolygon(module)
-
-                .shell
-                        (
-                                TLinearRing(module).ring(new double[][]
-                                        {
-                                                {11.475906372070312, 48.14478518644042},
-                                                {11.572723388671875, 48.18760570101003},
-                                                {11.692886352539062, 48.140432438188135},
-                                                {11.679153442382812, 48.08243697630599},
-                                                {11.581306457519531, 48.07211472138644},
-                                                {11.522941589355469, 48.10124109364004},
-                                                {11.470069885253906, 48.10949438777014},
-                                                {11.475906372070312, 48.14478518644042},
-
-                                        }).geometry()
-                        )
-
-                .withHoles
-                        (
-                                TLinearRing(module).ring(new double[][]
-                                        {
-                                                {11.53839111328125, 48.13837048124154},
-                                                {11.614952087402344, 48.15028286718964},
-                                                {11.640357971191406, 48.10513864768105},
-                                                {11.558303833007812, 48.103304541415994},
-                                                {11.53839111328125, 48.13837048124154}
-
-                                        }).geometry()
-                        )
-                .geometry();
-
-
-        try (UnitOfWork unitOfWork = module.newUnitOfWork()) {
-
-
-            // TPoint
-            {
-                EntityBuilder<SpatialEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialEntity.class, "Point");
-                pointBuilder.instance().point().set(_tPoint);
-                pointBuilder.newInstance();
-            }
-
-            // TMultiPoint
-            {
-                EntityBuilder<SpatialEntity> mPointBuilder = unitOfWork.newEntityBuilder(SpatialEntity.class, "MultiPoint");
-                mPointBuilder.instance().mPoint().set(_tMultiPoint);
-                mPointBuilder.newInstance();
-            }
-
-            // TLineString
-            {
-                EntityBuilder<SpatialEntity> tlineStringBuilder = unitOfWork.newEntityBuilder(SpatialEntity.class, "LineString");
-                tlineStringBuilder.instance().line().set(_tLineString);
-                tlineStringBuilder.newInstance();
-            }
-
-            // TPolygon
-            {
-                EntityBuilder<SpatialEntity> tPolygonBuilder = unitOfWork.newEntityBuilder(SpatialEntity.class, "Polygon");
-                tPolygonBuilder.instance().polygon().set(_tPolygon);
-                tPolygonBuilder.newInstance();
-            }
-
-            unitOfWork.complete();
-
-        } catch (Exception _ex) {
-            _ex.printStackTrace();
-        }
-
-    }
-
-    @Test
-    public void nothing()
-    {
-
-    }
-
-
-    @Test
-    public void WhenQueryForAPointThenCompareResults()
-    {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
-                                                999,
-                                                TUnit.METER
-                                        )
-                        ));
-
-
-        query.find();
-        assertEquals(1, query.count());
-        TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_tPoint) == 0);
-    }
-
-
-    @Test
-    public void WhenQueryWithUnsupportedProjectionForAPointThenCompareResults() throws Exception {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                TPoint(module).x(1286436.5975464052).y(2389280.7514562616).geometry("EPSG:27572"),
-                                                999,
-                                                TUnit.METER
-                                        )
-                        ));
-
-
-        query.find();
-        assertEquals(query.count(), 1);
-        TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_tPoint) == 0);
-
-        // Transform(module).from(tPoint).to("EPSG:27572");
-
-        System.out.println(tPoint);
-    }
-
-    @Test
-    public void WhenQueryForAPointThenOrderAndCompareResults() {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                TPoint(module).x(11.57958981111).y(48.13905780941111).geometry(),
-                                                999,
-                                                TUnit.METER
-                                        )
-                        ))
-
-
-                .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
-        query.find();
-        assertEquals(query.count(), 1);
-        TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_tPoint) == 0);
-    }
-
-
-    @Test
-    public void script02()
-            throws EntityFinderException
-    {
-        final QueryBuilder<Domain> qb = this.module.newQueryBuilder( Domain.class );
-        final Nameable nameable = templateFor( Nameable.class );
-        final Query<Domain> query = unitOfWork.newQuery( qb.where( eq( nameable.name(), "Gaming" ) ) );
-        System.out.println( "*** script02: " + query );
-        verifyUnorderedResults( query, "Gaming" );
-    }
-
-
-    @Test
-    public void WhenST_DisjointForAPointThenOrderAndCompareResults() {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(// and(
-                                ST_Disjoint
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                TPoint(module).x(10.57958981111).y(47.13905780941111).geometry(),
-                                                1,
-                                                TUnit.METER
-                                        )
-                                       //  eq( templateFor(VerifyStatialTypes.class).point().get(), "Gaming" )
-                                        // ,QueryExpressions.eq(templateFor(VerifyStatialTypes.class).foo(), "foo")
-                                // )
-                        ))
-
-
-                        .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
-        query.find();
-        assertEquals(3, query.count());
-        // TGeometry tGeometry = query.iterator().next().point().get();
-
-        VerifyStatialTypes result = query.iterator().next();
-
-/**
-        if (tGeometry.getType() == TGeometry.TGEOMETRY_TYPE.POLYGON)
-        {
-            System.out.println("is polygon");
-        }
- */
-        // assertTrue(tPoint.compareTo(_tPoint) == 0);
-
-    }
-
-
-    @Test
-    public void WhenST_IntersectsForAPointThenOrderAndCompareResults() {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Intersects
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                TPoint(module).x(11.57958981111).y(48.13905780941111).geometry(),
-                                                999,
-                                                TUnit.METER
-                                        )
-                        ))
-
-
-                .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
-        query.find();
-        assertEquals(3, query.count());
-        // TGeometry tGeometry = query.iterator().next().point().get();
-
-        VerifyStatialTypes result = query.iterator().next();
-
-/**
- if (tGeometry.getType() == TGeometry.TGEOMETRY_TYPE.POLYGON)
- {
- System.out.println("is polygon");
- }
- */
-        // assertTrue(tPoint.compareTo(_tPoint) == 0);
-
-    }
-
-    @Test
-    public void WhenST_DisjointForAPointUsingPolygonAreaThenOrderAndCompareResults() {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Disjoint
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                TPolygon(module)
-                                                        .shell
-                                                                (
-                                                                        new double[][]
-                                                                                {
-                                                                                        {11.32965087890625, 48.122101028190805},
-                                                                                        {11.394195556640625, 48.28593438872724},
-                                                                                        {11.9366455078125, 48.232906106325146},
-                                                                                        {11.852874755859375, 47.95038564051011},
-                                                                                        {11.36810302734375, 47.94486657921015},
-                                                                                        {11.32965087890625, 48.122101028190805}
-                                                                                }
-                                                                ).geometry()
-                                        )
-                        ))
-
-                .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
-        query.find();
-        // assertEquals(query.count(), 1);
-        // TPoint tPoint = query.iterator().next().point().get();
-        VerifyStatialTypes types = query.iterator().next();
-        System.out.println("Result " + types.polygon().get());
-        // assertTrue(tPoint.compareTo(_tPoint) == 0);
-    }
-
-
-    @Test
-    public void WhenQueryForAPointUsingPolygonAreaThenOrderAndCompareResults() {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                TPolygon(module)
-                                                        .shell
-                                                                (
-                                                                        new double[][]
-                                                                                {
-                                                                                        {11.32965087890625, 48.122101028190805},
-                                                                                        {11.394195556640625, 48.28593438872724},
-                                                                                        {11.9366455078125, 48.232906106325146},
-                                                                                        {11.852874755859375, 47.95038564051011},
-                                                                                        {11.36810302734375, 47.94486657921015},
-                                                                                        {11.32965087890625, 48.122101028190805}
-                                                                                }
-                                                                ).geometry()
-                                        )
-                        ))
-
-                .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
-        query.find();
-        assertEquals(query.count(), 1);
-        TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_tPoint) == 0);
-    }
-
-    @Test
-    public void WhenQueryForALineUsingPolygonAreaThenOrderAndCompareResults() {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(VerifyStatialTypes.class).line(),
-                                                TPolygon(module)
-                                                        .shell
-                                                                (
-                                                                        new double[][]
-                                                                                {
-                                                                                        {11.32965087890625, 48.122101028190805},
-                                                                                        {11.394195556640625, 48.28593438872724},
-                                                                                        {11.9366455078125, 48.232906106325146},
-                                                                                        {11.852874755859375, 47.95038564051011},
-                                                                                        {11.36810302734375, 47.94486657921015},
-                                                                                        {11.32965087890625, 48.122101028190805}
-                                                                                }
-                                                                ).geometry()
-                                        )
-                        ));
-
-                // .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
-        query.find();
-        assertEquals(1, query.count());
-        TLineString tLineString = query.iterator().next().line().get();
-        System.out.println(tLineString);
-        // TPoint tPoint = query.iterator().next().point().get();
-        // assertTrue(tPoint.compareTo(_tPoint) == 0);
-    }
-
-
-    @Test
-    public void WhenQueryForALineUsingPolygonAreaThenOrderAndCompareResultsV2() {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                TPolygon(module)
-                                                        .shell
-                                                                (
-                                                                        new double[][]
-                                                                                {
-                                                                                        {11.32965087890625, 48.122101028190805},
-                                                                                        {11.394195556640625, 48.28593438872724},
-                                                                                        {11.9366455078125, 48.232906106325146},
-                                                                                        {11.852874755859375, 47.95038564051011},
-                                                                                        {11.36810302734375, 47.94486657921015},
-                                                                                        {11.32965087890625, 48.122101028190805}
-                                                                                }
-                                                                ).geometry()
-                                        )
-                        )).orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
-        query.find();
-        assertEquals(1, query.count());
-        TLineString tLineString = query.iterator().next().line().get();
-        System.out.println(tLineString);
-        // TPoint tPoint = query.iterator().next().point().get();
-        // assertTrue(tPoint.compareTo(_tPoint) == 0);
-    }
-
-
-    @Test
-    public void WhenST_Intersects_ForALineUsingPolygonAreaThenOrderAndCompareResults() {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Intersects
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                TPolygon(module)
-                                                        .shell
-                                                                (
-                                                                        new double[][]
-                                                                                {
-                                                                                        {11.32965087890625, 48.122101028190805},
-                                                                                        {11.394195556640625, 48.28593438872724},
-                                                                                        {11.9366455078125, 48.232906106325146},
-                                                                                        {11.852874755859375, 47.95038564051011},
-                                                                                        {11.36810302734375, 47.94486657921015},
-                                                                                        {11.32965087890625, 48.122101028190805}
-                                                                                }
-                                                                ).geometry()
-                                        )
-                        ));
-
-        // .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-
-        query.find();
-        assertEquals(1, query.count());
-        TLineString tLineString = query.iterator().next().line().get();
-        System.out.println(tLineString);
-        // TPoint tPoint = query.iterator().next().point().get();
-        // assertTrue(tPoint.compareTo(_tPoint) == 0);
-    }
-
-
-    @Test
-    public void When_QueryForAWKTPointThenCompareResults()
-    {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(VerifyStatialTypes.class).point(),
-                                                ST_GeometryFromText("POINT(11.57958981111 48.13905780941111 )"),
-                                                999,
-                                                TUnit.METER
-                                        )
-                        ))
-                .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-        query.find();
-        assertEquals(query.count(), 1);
-        TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_tPoint) == 0);
-
-    }
-
-    /**
-    @Test
-    public void WhenQueryForAMultiPointThenCompareResults() {
-
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(VerifyStatialTypes.class).mPoint(),
-                                                TPOINT(module).x(11.57958981111).y(48.13905780941111).geometry()
-                                        )
-                        ));
-        query.find();
-        assertEquals(query.count(), 1);
-        TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_tPoint) == 0);
-    }
-*/
-
-        @Test
-    public void WhenQueryForAPolygonThenCompareResults() {
-        QueryBuilder<VerifyStatialTypes> qb = this.module.newQueryBuilder(VerifyStatialTypes.class);
-
-        Query<VerifyStatialTypes> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(VerifyStatialTypes.class).polygon(),
-
-                                                TPolygon(module)
-                                                        .shell
-                                                                (
-                                                                        new double[][]
-                                                                                {
-                                                                                        {11.32965087890625, 48.122101028190805},
-                                                                                        {11.394195556640625, 48.28593438872724},
-                                                                                        {11.9366455078125, 48.232906106325146},
-                                                                                        {11.852874755859375, 47.95038564051011},
-                                                                                        {11.36810302734375, 47.94486657921015},
-                                                                                        {11.32965087890625, 48.122101028190805}
-                                                                                }
-                                                                ).geometry()
-                                        )
-                        ));
-
-
-        query.find();
-
-        assertEquals(query.count(), 1);
-        TPolygon tPolygon = query.iterator().next().polygon().get();
-        assertTrue(tPolygon.holes().get().size() == 1);
-        assertTrue(tPolygon.shell().get().compareTo(_tPolygon.shell().get()) == 0);
-        assertFalse(tPolygon.holes().get().get(0).compareTo(_tPolygon.shell().get()) == 0);
-        assertTrue(tPolygon.holes().get().get(0).compareTo(_tPolygon.holes().get().get(0)) == 0);
-    }
-
-
-    // @Test
-    public void fooPerf() {
-        long start = System.currentTimeMillis();
-        for (int i = 0; i < 1000; i++) {
-            WhenQueryForAPolygonThenCompareResults();
-        }
-        long end = System.currentTimeMillis();
-
-        System.out.println("Duration " + (end - start) + " ms");
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
new file mode 100644
index 0000000..6200b68
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.qi4j.index.elasticsearch.extension.spatial;
+
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.Test;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.query.Query;
+import org.qi4j.api.query.QueryExecutionException;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
+import org.qi4j.library.fileconfig.FileConfigurationOverride;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.spi.query.EntityFinderException;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
+import org.qi4j.test.util.DelTreeAfter;
+
+import java.io.File;
+
+import static org.qi4j.test.util.Assume.*;
+
+
+public class ElasticSearchSpatialQueryTestUsingGeoPointIndexing
+        extends AbstractSpatialRegressionTest
+{
+    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
+    @Rule
+    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
+
+    @BeforeClass
+    public static void beforeClass_IBMJDK()
+    {
+        assumeNoIbmJdk();
+    }
+
+
+    @Override
+    public void assemble( ModuleAssembly module )
+            throws AssemblyException
+    {
+        super.assemble( module );
+
+        // Geometry support
+        new TGeometryAssembler().assemble(module);
+
+        // Config module
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
+
+        // Index/Query
+        new ESFilesystemIndexQueryAssembler().
+                withConfig(config,Visibility.layer ).
+                identifiedBy("ElasticSearchGeoPointIndexing").
+                assemble(module);
+
+        ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
+        esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
+
+
+        // FileConfig
+        FileConfigurationOverride override = new FileConfigurationOverride().
+                withData( new File( DATA_DIR, "qi4j-data" ) ).
+                withLog( new File( DATA_DIR, "qi4j-logs" ) ).
+                withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
+        module.services( FileConfigurationService.class ).
+                setMetaInfo( override );
+
+
+        config.services(FileConfigurationService.class)
+                .setMetaInfo(override)
+                .visibleIn(Visibility.application);
+    }
+
+
+
+    @Test (expected=QueryExecutionException.class)
+    @Override
+    public void script02a()
+            throws EntityFinderException
+    {
+        super.script02a();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    @Override
+    public void script02b()
+            throws EntityFinderException
+    {
+        super.script02b();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    @Override
+    public void script02c()
+            throws EntityFinderException
+    {
+        super.script02c();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    @Override
+    public void script02d()
+            throws EntityFinderException
+    {
+        super.script02d();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    @Override
+    public void script02e()
+            throws EntityFinderException
+    {
+        super.script02e();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    @Override
+    public void script02f()
+            throws EntityFinderException
+    {
+        super.script02f();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    @Override
+    public void script03a()
+            throws EntityFinderException
+    {
+        super.script03a();
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
new file mode 100644
index 0000000..6f227f1
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.qi4j.index.elasticsearch.extension.spatial;
+
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.query.Query;
+import org.qi4j.api.query.QueryExecutionException;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
+import org.qi4j.library.fileconfig.FileConfigurationOverride;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.spi.query.EntityFinderException;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
+import org.qi4j.test.util.DelTreeAfter;
+
+import java.io.File;
+
+import static org.qi4j.test.util.Assume.*;
+
+
+public class ElasticSearchSpatialQueryTestUsingGeoShapeIndexing
+        extends AbstractSpatialRegressionTest
+{
+    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
+    @Rule
+    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
+
+    @BeforeClass
+    public static void beforeClass_IBMJDK()
+    {
+        assumeNoIbmJdk();
+    }
+
+
+    @Override
+    public void assemble( ModuleAssembly module )
+            throws AssemblyException
+    {
+        super.assemble( module );
+
+        // Geometry support
+        new TGeometryAssembler().assemble(module);
+
+        // Config module
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
+
+        // Index/Query
+        new ESFilesystemIndexQueryAssembler().
+                withConfig(config,Visibility.layer ).
+                identifiedBy("ElasticSearchGeoShapeIndexing").
+                assemble(module);
+
+        ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
+        esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
+
+
+        // FileConfig
+        FileConfigurationOverride override = new FileConfigurationOverride().
+                withData( new File( DATA_DIR, "qi4j-data" ) ).
+                withLog( new File( DATA_DIR, "qi4j-logs" ) ).
+                withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
+        module.services( FileConfigurationService.class ).
+                setMetaInfo( override );
+
+
+        config.services(FileConfigurationService.class)
+                .setMetaInfo(override)
+                .visibleIn(Visibility.application);
+    }
+
+
+    @Test(expected=QueryExecutionException.class)
+    @Override
+    public void script01c()
+            throws EntityFinderException
+    {
+       super.script01c(); // <- no orderBy() support for GeoShapes
+    }
+
+    @Test(expected=QueryExecutionException.class)
+    @Override
+    public void script01d()
+            throws EntityFinderException
+    {
+        super.script01d(); // <- no orderBy() support for GeoShapes
+    }
+
+    @Test(expected=QueryExecutionException.class)
+    @Override
+    public void script01e()
+            throws EntityFinderException
+    {
+        super.script01e(); // <- no orderBy() support for GeoShapes
+    }
+
+    @Test(expected=QueryExecutionException.class)
+    @Override
+    public void script01f()
+            throws EntityFinderException
+    {
+        super.script01f(); // <- no orderBy() support for GeoShapes
+    }
+
+    @Test(expected=QueryExecutionException.class)
+    @Override
+    public void script03c()
+            throws EntityFinderException
+    {
+        super.script03c(); // <- no orderBy() support for GeoShapes
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
new file mode 100644
index 0000000..f5a8337
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.qi4j.index.elasticsearch.extension.spatial;
+
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.query.QueryExecutionException;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
+import org.qi4j.library.fileconfig.FileConfigurationOverride;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.spi.query.EntityFinderException;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
+import org.qi4j.test.util.DelTreeAfter;
+
+import java.io.File;
+
+import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
+
+/**
+ * Created by jj on 21.12.14.
+ */
+public class ElasticSearchSpatialQueryTestUsingUsingDefaults
+        extends AbstractSpatialRegressionTest
+{
+    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
+    @Rule
+    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
+
+    @BeforeClass
+    public static void beforeClass_IBMJDK()
+    {
+        assumeNoIbmJdk();
+    }
+
+
+    @Override
+    public void assemble( ModuleAssembly module )
+            throws AssemblyException
+    {
+        super.assemble( module );
+
+        // Geometry support
+        new TGeometryAssembler().assemble(module);
+
+
+
+        // Config module
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
+
+        // Index/Query
+        new ESFilesystemIndexQueryAssembler().
+                withConfig(config,Visibility.layer ).
+                assemble(module);
+
+        ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
+        esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
+
+
+        // FileConfig
+        FileConfigurationOverride override = new FileConfigurationOverride().
+                withData( new File( DATA_DIR, "qi4j-data" ) ).
+                withLog( new File( DATA_DIR, "qi4j-logs" ) ).
+                withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
+        module.services( FileConfigurationService.class ).
+                setMetaInfo( override );
+
+
+        config.services(FileConfigurationService.class)
+                .setMetaInfo(override)
+                .visibleIn(Visibility.application);
+    }
+
+
+
+    @Test (expected=QueryExecutionException.class)
+    public void script02a()
+            throws EntityFinderException
+    {
+        super.script02a();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    public void script02b()
+            throws EntityFinderException
+    {
+        super.script02b();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    public void script02c()
+            throws EntityFinderException
+    {
+        super.script02c();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    public void script02d()
+            throws EntityFinderException
+    {
+        super.script02d();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    public void script02e()
+            throws EntityFinderException
+    {
+        super.script02e();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    public void script02f()
+            throws EntityFinderException
+    {
+        super.script02f();
+    }
+
+    @Test (expected=QueryExecutionException.class)
+    public void script03a()
+            throws EntityFinderException
+    {
+        super.script03a();
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
index 0ad7c1c..d4ec9fe 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
@@ -72,7 +72,6 @@ public class ElasticSearchSpatialRegressionQueryClusterTest
                 assemble(module);
         ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
         esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
-        esConfig.indexPointMappingMethod().set(ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT);
 
 
         // FileConfig

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
deleted file mode 100644
index 66cdc73..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.query.Query;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
-import org.qi4j.test.util.DelTreeAfter;
-
-import java.io.File;
-
-import static org.qi4j.test.util.Assume.*;
-
-/**
- * Created by jj on 21.12.14.
- */
-public class ElasticSearchSpatialRegressionQueryVariant1Test
-        extends AbstractSpatialRegressionTest
-{
-    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
-    @Rule
-    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
-
-    @BeforeClass
-    public static void beforeClass_IBMJDK()
-    {
-        assumeNoIbmJdk();
-    }
-
-    protected boolean isExpressionSupported(Query<?> expression)
-    {
-        return true;
-    }
-
-/**
-    protected boolean isExpressionSupported(Query<?> expression)
-    {
-        QueryImpl queryImpl = (QueryImpl)expression;
-        System.out.println("### " + expression.getClass());
-
-        System.out.println(queryImpl.resultType());
-
-        System.out.println("getWhereClause " + queryImpl.getWhereClause().getClass().getSimpleName());
-
-        System.out.println(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value());
-
-        boolean hasOrderBySegments = false;
-        if (queryImpl.getOrderBySegments() != null && queryImpl.getOrderBySegments().iterator().hasNext())
-        {
-            hasOrderBySegments = true;
-        }
-        // public static boolean isSupported(Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, INDEXING_METHOD Type )
-
-        Class geometryOfProperty = InternalUtils.classOfPropertyType(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).property());
-        TGeometry geometryOfFilter   = ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value();
-
-        // System.out.println("Operator " + ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).operator().getClass());
-
-        System.out.println("geometryOfProperty " + geometryOfProperty);
-        System.out.println("geometryOfFilter   " + InternalUtils.classOfGeometry(geometryOfFilter));
-
-        System.out.println("Exression " + expression.getClass());
-
-        return SpatialFunctionsSupportMatrix.isSupported
-                (
-                        queryImpl.getWhereClause().getClass(),
-                        geometryOfProperty,
-                        InternalUtils.classOfGeometry(geometryOfFilter),
-                        hasOrderBySegments,
-                        SpatialFunctionsSupportMatrix.INDEX_MAPPING_TPOINT_METHOD.TPOINT_AS_GEOPOINT
-                );
-    }
- */
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        super.assemble( module );
-
-        // Geometry support
-        new TGeometryAssembler().assemble(module);
-
-
-
-        // Config module
-        ModuleAssembly config = module.layer().module( "config" );
-        new EntityTestAssembler().assemble( config );
-
-        config.values(SpatialConfiguration.Configuration.class,
-                SpatialConfiguration.FinderConfiguration.class,
-                SpatialConfiguration.IndexerConfiguration.class,
-                SpatialConfiguration.IndexingMethod.class,
-                SpatialConfiguration.ProjectionSupport.class).
-                visibleIn(Visibility.application);
-
-        // Index/Query
-        new ESFilesystemIndexQueryAssembler().
-                withConfig(config,Visibility.layer ).
-                identifiedBy("ElasticSearchConfigurationVariant1").
-                assemble(module);
-
-        ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
-        esConfig.indexPointMappingMethod().set(ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT);
-
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData( new File( DATA_DIR, "qi4j-data" ) ).
-                withLog( new File( DATA_DIR, "qi4j-logs" ) ).
-                withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
-        module.services( FileConfigurationService.class ).
-                setMetaInfo( override );
-
-
-        config.services(FileConfigurationService.class)
-                // .identifiedBy("ElasticSearchConfigurationVariant1")
-                .setMetaInfo(override)
-                .visibleIn(Visibility.application);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
deleted file mode 100644
index 322defa..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.query.Query;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
-import org.qi4j.test.util.DelTreeAfter;
-
-import java.io.File;
-
-import static org.qi4j.test.util.Assume.*;
-
-/**
- * Created by jj on 21.12.14.
- */
-public class ElasticSearchSpatialRegressionQueryVariant2Test
-        extends AbstractSpatialRegressionTest
-{
-    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
-    @Rule
-    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
-
-    @BeforeClass
-    public static void beforeClass_IBMJDK()
-    {
-        assumeNoIbmJdk();
-    }
-
-    protected boolean isExpressionSupported(Query<?> expression)
-    {
-        return true;
-    }
-
-/**
-    protected boolean isExpressionSupported(Query<?> expression)
-    {
-        QueryImpl queryImpl = (QueryImpl)expression;
-        System.out.println("### " + expression.getClass());
-
-        System.out.println(queryImpl.resultType());
-
-        System.out.println("getWhereClause " + queryImpl.getWhereClause().getClass().getSimpleName());
-
-        System.out.println(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value());
-
-        boolean hasOrderBySegments = false;
-        if (queryImpl.getOrderBySegments() != null && queryImpl.getOrderBySegments().iterator().hasNext())
-        {
-            hasOrderBySegments = true;
-        }
-        // public static boolean isSupported(Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, INDEXING_METHOD Type )
-
-        Class geometryOfProperty = InternalUtils.classOfPropertyType(((SpatialPredicatesSpecification)queryImpl.getWhereClause()).property());
-        TGeometry geometryOfFilter   = ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).value();
-
-        // System.out.println("Operator " + ((SpatialPredicatesSpecification)queryImpl.getWhereClause()).operator().getClass());
-
-        System.out.println("geometryOfProperty " + geometryOfProperty);
-        System.out.println("geometryOfFilter   " + InternalUtils.classOfGeometry(geometryOfFilter));
-
-        System.out.println("Exression " + expression.getClass());
-
-        return SpatialFunctionsSupportMatrix.isSupported
-                (
-                        queryImpl.getWhereClause().getClass(),
-                        geometryOfProperty,
-                        InternalUtils.classOfGeometry(geometryOfFilter),
-                        hasOrderBySegments,
-                        SpatialFunctionsSupportMatrix.INDEX_MAPPING_TPOINT_METHOD.TPOINT_AS_GEOPOINT
-                );
-    }
- */
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        super.assemble( module );
-
-        // Geometry support
-        new TGeometryAssembler().assemble(module);
-
-
-
-        // Config module
-        ModuleAssembly config = module.layer().module( "config" );
-        new EntityTestAssembler().assemble( config );
-
-        config.values(SpatialConfiguration.Configuration.class,
-                SpatialConfiguration.FinderConfiguration.class,
-                SpatialConfiguration.IndexerConfiguration.class,
-                SpatialConfiguration.IndexingMethod.class,
-                SpatialConfiguration.ProjectionSupport.class).
-                visibleIn(Visibility.application);
-
-        // Index/Query
-        new ESFilesystemIndexQueryAssembler().
-                withConfig(config,Visibility.layer ).
-                identifiedBy("ElasticSearchConfigurationVariant2").
-                assemble(module);
-
-        ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
-        esConfig.indexPointMappingMethod().set(ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT);
-
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData( new File( DATA_DIR, "qi4j-data" ) ).
-                withLog( new File( DATA_DIR, "qi4j-logs" ) ).
-                withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
-        module.services( FileConfigurationService.class ).
-                setMetaInfo( override );
-
-
-        config.services(FileConfigurationService.class)
-                // .identifiedBy("ElasticSearchConfigurationVariant1")
-                .setMetaInfo(override)
-                .visibleIn(Visibility.application);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant1.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant1.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant1.properties
deleted file mode 100644
index 583a96f..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant1.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-spatial = { \
-  \
-  Enabled : true, \
-  \
-  Indexer=\
-   { \
-    Method=\
-      { \
-        Type      = "GEO_POINT", \
-        Precision = 1m, \
-      }, \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
-      }, \
-   }, \
-  \
-  \
-  Finder=\
-    { \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
-      } \
-    } \
-  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2.properties
deleted file mode 100644
index 3837000..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-spatial = { \
-  \
-  Enabled : true, \
-  \
-  Indexer=\
-   { \
-    Method=\
-      { \
-        Type      = "GEO_SHAPE", \
-        Precision = 1m, \
-      }, \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
-      }, \
-   }, \
-  \
-  \
-  Finder=\
-    { \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
-      } \
-    } \
-  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties
deleted file mode 100644
index 3837000..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-spatial = { \
-  \
-  Enabled : true, \
-  \
-  Indexer=\
-   { \
-    Method=\
-      { \
-        Type      = "GEO_SHAPE", \
-        Precision = 1m, \
-      }, \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
-      }, \
-   }, \
-  \
-  \
-  Finder=\
-    { \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
-      } \
-    } \
-  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties
deleted file mode 100644
index 3837000..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-spatial = { \
-  \
-  Enabled : true, \
-  \
-  Indexer=\
-   { \
-    Method=\
-      { \
-        Type      = "GEO_SHAPE", \
-        Precision = 1m, \
-      }, \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
-      }, \
-   }, \
-  \
-  \
-  Finder=\
-    { \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
-      } \
-    } \
-  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoPointIndexing.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoPointIndexing.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoPointIndexing.properties
new file mode 100644
index 0000000..67b6774
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoPointIndexing.properties
@@ -0,0 +1,28 @@
+spatial = { \
+  \
+  Enabled : true, \
+  \
+  Indexer=\
+   { \
+    Method=\
+      { \
+        Type      = "GEO_POINT", \
+        Precision = 1m, \
+      }, \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 2m, \
+      }, \
+   }, \
+  \
+  \
+  Finder=\
+    { \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 2m, \
+      } \
+    } \
+  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
new file mode 100644
index 0000000..3837000
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
@@ -0,0 +1,28 @@
+spatial = { \
+  \
+  Enabled : true, \
+  \
+  Indexer=\
+   { \
+    Method=\
+      { \
+        Type      = "GEO_SHAPE", \
+        Precision = 1m, \
+      }, \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 1m, \
+      }, \
+   }, \
+  \
+  \
+  Finder=\
+    { \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 1m, \
+      } \
+    } \
+  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
index 1be42f9..ab7f559 100644
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
@@ -61,9 +61,9 @@ public class TransformationBuilder {
 
             LineString lineString = (LineString)geojson;
 
-            TLineString tLineString = TlineString(module).of().geometry();
+            TLineString tLineString = TLineString(module).of().geometry();
             for (LngLatAlt xyz : lineString.getCoordinates() ) {
-                tLineString = TlineString(module).of(
+                tLineString = TLineString(module).of(
                         TPoint(module)
                                 .x(xyz.getLatitude())
                                 .y(xyz.getLongitude())

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
index b6373ab..f427128 100644
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
@@ -39,6 +39,7 @@ public class TGeometryAssembler
                 TPoint.class,
                 TMultiPoint.class,
                 TLineString.class,
+                TMultiLineString.class,
                 TPolygon.class,
                 TMultiPolygon.class,
                 TFeature.class,

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
index d80b3da..217d80e 100644
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
@@ -58,7 +58,7 @@ public class GeoJsonFromConverter {
 
             LineString lineString = (LineString)geojson;
 
-            TLineString tLineString = TlineString(module).of().geometry();
+            TLineString tLineString = TLineString(module).of().geometry();
 
             for (LngLatAlt xyz : lineString.getCoordinates() ) {
                 tLineString.of(


[03/50] [abbrv] zest-qi4j git commit: ..

Posted by ni...@apache.org.
..


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/9a62448a
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/9a62448a
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/9a62448a

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: 9a62448a6ee337073032009cefcbf40099a0b30b
Parents: c93be18
Author: jj <ju...@gmail.com>
Authored: Tue Jan 6 17:11:38 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Tue Jan 6 17:11:38 2015 +0100

----------------------------------------------------------------------
 .../configuration/SpatialExceptionConfiguration.java      | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9a62448a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
index 40012c7..421375a 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
@@ -1,7 +1,15 @@
 package org.qi4j.index.elasticsearch.extensions.spatial.configuration;
 
+import org.qi4j.api.common.Optional;
+import org.qi4j.api.configuration.ConfigurationComposite;
+import org.qi4j.api.property.Property;
+
 /**
  * Created by jj on 25.12.14.
  */
-public interface SpatialExceptionConfiguration {
+public interface SpatialExceptionConfiguration extends ConfigurationComposite
+{
+
+    @Optional
+    Property<Integer> index();
 }


[16/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/sh-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/sh-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/sh-municipalities.json
deleted file mode 100644
index 070aa37..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/sh-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":2901,"properties":{"name":"Gächlingen"},"arcs":[[[-51,-35,56,-13]]]},{"type":"MultiPolygon","id":2903,"properties":{"name":"Löhningen"},"arcs":[[[-30,-37,-50]]]},{"type":"MultiPolygon","id":2904,"properties":{"name":"Neunkirch"},"arcs":[[[31,-21,32,33,34,35,36,-29]]]},{"type":"MultiPolygon","id":2914,"properties":{"name":"Büttenhardt"},"arcs":[[[-25,-69,-70,-8,-38,71]]]},{"type":"MultiPolygon","id":2915,"properties":{"name":"Dörflingen"},"arcs":[[[-11,-22,59]]]},{"type":"MultiPolygon","id":2917,"properties":{"name":"Lohn (SH)"},"arcs":[[[-24,67,68]]]},{"type":"MultiPolygon","id":2919,"properties":{"name":"Stetten (SH)"},"arcs":[[[-9,69,-68,-23]]]},{"type":"MultiPolygon","id":2920,"properties":{"name":"Thayngen"},"arcs":[[[21,-10,22,23,24,25]]]},{"type":"MultiPolygon","id":2931,"properties":{"name":"Bargen (SH)"},"arcs":[[[-41,51]]]},{"type":"MultiPolygon","id":29
 32,"properties":{"name":"Beringen"},"arcs":[[[26,27,28,29,30,-3]]]},{"type":"MultiPolygon","id":2933,"properties":{"name":"Buchberg"},"arcs":[[[-61,66]],[[73,-63]],[[-65,74]]]},{"type":"MultiPolygon","id":2936,"properties":{"name":"Merishausen"},"arcs":[[[37,-7,38,39,40,41]]]},{"type":"MultiPolygon","id":2937,"properties":{"name":"Neuhausen am Rheinfall"},"arcs":[[[-27,-2,52]]]},{"type":"MultiPolygon","id":2938,"properties":{"name":"Rüdlingen"},"arcs":[[[60,61,62,63,64,65]]]},{"type":"MultiPolygon","id":2939,"properties":{"name":"Schaffhausen"},"arcs":[[[0,1,2,3,4,5,6,7,8,9,10]]]},{"type":"MultiPolygon","id":2951,"properties":{"name":"Beggingen"},"arcs":[[[-6,-16,48,-39]]]},{"type":"MultiPolygon","id":2952,"properties":{"name":"Schleitheim"},"arcs":[[[-5,11,12,13,14,15]]]},{"type":"MultiPolygon","id":2953,"properties":{"name":"Siblingen"},"arcs":[[[-31,49,-36,50,-12,-4]]]},{"type":"MultiPolygon","id":2961,"properties":{"name":"Buch (SH)"},"arcs":[[[-47,72]]]},{"type":"MultiPolygon"
 ,"id":2962,"properties":{"name":"Hemishofen"},"arcs":[[[53,54,-45,55]]]},{"type":"MultiPolygon","id":2963,"properties":{"name":"Ramsen"},"arcs":[[[44,45,46,47]]]},{"type":"MultiPolygon","id":2964,"properties":{"name":"Stein am Rhein"},"arcs":[[[-54,57]]]},{"type":"MultiPolygon","id":2971,"properties":{"name":"Hallau"},"arcs":[[[42,-33,-20,43]]]},{"type":"MultiPolygon","id":2972,"properties":{"name":"Oberhallau"},"arcs":[[[-14,-57,-34,-43,58]]]},{"type":"MultiPolygon","id":2973,"properties":{"name":"Trasadingen"},"arcs":[[[70,-18]]]},{"type":"MultiPolygon","id":2974,"properties":{"name":"Wilchingen"},"arcs":[[[16,17,18,19,20]]]}]}},"arcs":[[[6203,6390],[-16,-35],[-105,-50],[-58,-33],[15,-55],[0,-34],[-64,-20],[-21,-15],[-53,5],[-6,12],[-51,30],[-26,27],[8,37],[23,12],[-1,25],[-76,18],[0,10],[-75,-21],[-20,-15],[-40,-52],[-47,20],[-39,35],[-56,35],[31,-214],[161,-113],[63,-264],[-2,-21],[-46,11],[-2,-87],[-23,-35],[-9,8],[-59,-53],[-33,-17],[8,-44],[-64,-3],[-116,-30],[-27,0],[1,-29],
 [28,-1],[-5,-42],[60,-47],[33,-4],[1,-46],[-19,-65],[-63,29],[-139,119],[-46,55],[-119,115],[-64,29],[-28,2],[-95,-56],[-135,-43],[-57,-5],[-49,-28],[-13,15]],[[4668,5462],[-13,18],[-3,32],[-63,65],[-48,18],[-30,0],[-34,22],[-18,-18],[-57,0],[-101,-23],[-31,-17]],[[4270,5559],[-41,2],[10,55],[-11,2],[-17,100],[0,44],[-16,50],[26,54],[-31,22],[-12,67],[-44,-6],[-34,-18],[-26,-29],[-36,70],[-35,41],[-11,30],[14,4],[-27,113],[-14,39],[46,57],[-83,85],[-13,64],[-20,37],[-35,43],[2,41],[36,30],[-3,24],[21,79],[-22,12],[-50,45],[-23,75],[-33,34],[-39,4],[-79,-15],[-92,-31],[-40,12],[-25,20],[-26,39],[-28,-31],[30,-21],[-92,-11],[-56,9],[-30,18],[-40,48],[-55,36],[-14,61],[-59,68]],[[3143,7031],[-15,40],[-63,-30],[-88,64],[-30,40],[-79,55],[3,56],[40,61]],[[2911,7317],[70,38],[49,65],[-3,63],[-22,56],[20,76]],[[3025,7615],[30,11],[72,-14],[75,34],[30,-29],[72,-27],[34,45],[10,51],[-3,22],[32,61],[75,70]],[[3452,7839],[24,-36],[41,-47],[40,30],[27,10],[77,14],[58,26],[-8,-18],[1,-77],[37,-2
 8],[35,-3],[32,11],[42,-14],[27,3],[23,-27],[43,-27],[79,-95],[32,-31],[28,-69],[87,-64],[17,-61],[53,-53],[38,30],[18,43],[36,27],[-47,105],[72,11],[17,-4],[58,27],[22,4],[16,-54],[12,0],[7,-80],[66,4],[56,27],[6,96],[50,-20],[68,-51]],[[4742,7448],[47,-3],[64,-102],[32,-33],[33,-23]],[[4918,7287],[65,-55],[-28,-65],[4,-17],[34,-34],[-34,-45],[-12,-43],[3,-47],[19,-68],[21,-37],[53,-31],[-18,-41],[54,-10],[33,29],[53,61],[-1,5],[60,41],[-1,52],[51,54],[46,-41],[-8,-29],[9,-12],[47,21],[22,-2],[8,18],[25,11],[-8,20],[21,66],[14,-12],[24,27],[30,10],[28,21],[21,38],[46,46],[31,10],[24,32],[32,-8],[16,-26],[34,74],[29,-31],[39,17]],[[5804,7286],[9,-43],[45,-38],[14,2],[-6,-73],[23,-9],[45,-33],[0,-10],[74,-2],[37,-58],[14,-35],[32,-1],[26,-23],[-12,-9],[-4,-36],[13,-11],[-41,-88],[-3,-28],[26,-6],[107,-6],[67,22],[18,-60],[-14,-30],[45,-28],[43,-10]],[[6362,6673],[-44,0],[-80,17],[-47,3],[-39,-11],[-31,-73],[-17,-27],[-22,-60],[44,-16],[-7,-57],[28,16],[-5,-63],[61,-12]],[[2911,7317],
 [1,12],[-74,-23],[-60,-3],[-207,-115],[-44,-39],[-19,-51]],[[2508,7098],[-111,30],[-2,95],[-82,33],[-42,43],[-58,31],[-48,-16],[-11,12],[-24,-10],[-21,9],[-6,-26],[-52,-91],[-11,-32],[-53,-64],[-26,-53],[-17,-6],[-51,-62],[23,-37],[2,-22],[-70,-56],[-28,-11],[-42,-49],[-35,-34],[-38,26],[-64,-41],[-53,-25]],[[1588,6742],[-26,65],[-47,39],[-94,61],[-16,1],[-48,-25],[-33,-31],[-33,-16],[-45,-3],[-71,23],[-18,13],[-62,-4]],[[1095,6865],[1,38],[-15,13],[-58,-1],[-22,14],[0,23],[-26,67],[-24,110],[-12,83],[19,80],[43,56],[37,21],[27,27],[-12,54],[25,57],[-12,65],[4,58],[26,57],[106,51],[59,50],[22,27],[20,51],[13,90],[10,48],[46,129],[49,99],[24,26],[32,18],[36,33],[42,57],[32,24],[18,26],[11,33],[23,43],[30,30],[36,23],[49,50],[41,-59],[71,-20],[22,-15],[38,19],[26,48],[81,48],[25,-18],[39,33],[72,11],[19,15],[14,62],[56,-51],[74,-61],[37,-73],[28,-30],[17,-3]],[[2414,8501],[-5,-36],[-30,-51],[-23,-19],[-19,-35],[-30,24],[-40,-16],[-40,-7],[-8,-69],[-33,-17],[10,-36],[-19,-4],[16,-45],[
 7,5],[26,-96],[18,-29],[51,-44],[23,-37],[26,-3],[105,-45],[85,-9],[58,-112],[58,-72],[33,15],[103,13],[45,-14],[110,-51],[6,-16],[51,-7],[27,5],[0,-78]],[[2604,4207],[24,-94],[22,-12],[21,-26],[-21,-60],[2,-19],[37,-47],[23,-69],[35,-40],[7,-34],[18,-16],[-20,-20],[-5,-52],[-33,-83],[-43,7],[-68,-25],[-76,-20],[-23,5],[-63,30],[-67,43],[-53,22],[-66,-13],[-25,-21],[-125,22],[-51,2],[-24,-5],[14,-40],[-22,7],[-75,3],[-49,16],[10,-74],[-1,-79],[15,-38],[-42,2],[-15,32],[-24,-22],[-17,19],[-22,58],[-29,27],[-46,-46],[-51,5],[-30,59],[16,73],[-21,13],[-18,56],[-84,33],[-58,-19],[-15,-21],[9,-69],[11,-16],[51,-14],[23,-22],[7,-52],[-60,-55],[-69,-25],[-8,-30],[34,-40],[51,7],[15,-18],[46,-29],[-23,-12],[-58,-8],[-14,-35],[-28,6],[-46,28],[-63,85],[-18,57],[-5,40],[-16,36],[-9,64],[-26,72],[14,67],[33,108],[23,123],[-26,46],[-9,-27],[-24,-32],[-15,23],[-26,-29],[-51,-74],[-11,4],[-46,-43],[-8,13],[-69,65],[-68,8],[-32,-14]],[[955,3954],[-45,76],[52,21],[-13,39],[-172,137],[45,32],[-71,68
 ],[58,86],[-43,38],[25,33],[-47,49],[24,47],[-127,131],[-6,-13],[-70,26],[3,30],[-71,97],[-24,5],[-29,30],[-7,34],[-43,-39],[-4,23],[1,69],[-15,47],[4,28],[-34,35]],[[346,5083],[1,2]],[[347,5085],[33,-7],[80,35],[76,15],[26,25],[17,31],[51,44],[34,-46],[16,-37],[40,93],[24,-20],[10,20],[19,-23],[36,37],[40,15],[7,-30],[26,28],[-20,-44],[11,-15],[41,14],[26,-24],[18,26],[33,-34],[-36,-53],[71,-91],[84,-114],[80,50],[52,25],[-18,55],[17,-6]],[[1241,5054],[46,-11],[41,-68],[33,25],[18,-34],[25,22],[19,-32],[72,-24],[28,-15],[6,-64],[54,0],[17,-30],[-19,-54],[9,-32],[39,6],[99,36],[25,-6],[18,-55],[23,-38],[15,-10],[51,1],[20,-9],[-20,-46],[-38,-38],[28,-22],[43,-75],[31,-29],[99,-9],[139,20],[58,20],[40,60],[58,-45],[60,43],[24,11],[18,-63],[135,-53],[-42,-38],[-2,-47],[46,-156],[47,12]],[[6616,6671],[-84,10],[-48,-5],[-19,7],[-4,-23],[-32,-2],[-67,15]],[[5804,7286],[25,25],[35,5],[-35,59],[-23,15],[35,28],[32,37],[-14,17]],[[5859,7472],[15,35],[-6,99],[27,37],[8,58],[47,51],[33,76],[5
 ,65],[11,31],[-28,22],[-34,89],[-29,13],[-39,90],[-28,59],[-25,23],[-9,-8],[-50,40],[-32,48],[-33,39],[-15,59],[-26,35],[-65,50],[-58,26],[-48,15],[-34,-28],[-1,-67],[-25,-13],[-32,11],[-44,-3],[2,-43],[-38,-33]],[[5308,8348],[-33,30],[-19,-58],[-33,-1],[-31,13],[-15,-37],[-51,61],[-24,-24],[-43,0]],[[5059,8332],[48,79],[-48,60],[84,74],[75,119],[-16,24],[-23,12],[-32,1],[-32,-13],[3,83],[17,52],[18,150],[-7,76],[-14,39],[-38,43],[-41,70],[4,136],[18,71],[-2,44],[7,42],[42,11],[-2,89],[15,47],[78,58],[74,22],[33,-85],[42,-74],[-5,-91],[-34,-35],[-20,-54],[63,12],[41,-9],[21,-28],[42,-26],[1,-24],[33,-43],[16,-36],[52,-11],[23,9],[70,-37],[30,-29],[27,-5],[26,42],[56,-6],[-20,-53],[31,-26],[19,-34],[-12,-30],[33,-94],[-9,-63],[9,-62],[44,-71],[72,-74],[-14,-9],[-20,-43],[-71,-64],[49,-132],[22,-75],[20,-124],[16,-5],[1,-30],[-13,-27],[5,-47],[14,-36],[88,-82],[50,-19],[15,44],[31,-7],[25,62],[11,54],[49,51],[3,-27],[65,72],[-3,7],[50,61],[55,-20],[47,66],[47,24],[56,-29],[42,-12],[58
 ,-46],[18,36],[29,-23],[-8,-19],[87,-24],[32,-56],[43,-46],[-38,-65],[61,-44],[68,-63],[30,-43],[76,-41],[25,-37],[-8,-94],[16,-55],[-19,-21],[-20,-44],[-112,-2],[-69,-28],[-62,10],[-31,-44],[-62,22],[-41,-67],[-18,-56],[-10,-59],[-119,-98],[-6,-87],[-24,-74],[-10,-88],[-16,-64],[-12,-17],[14,-44],[44,-49],[61,-171],[28,-65]],[[4270,5559],[10,-17],[-10,-27],[21,-27],[17,-45],[-59,-9],[-30,-32],[-34,-1],[-111,-100],[-151,-40],[-95,7],[-59,-9],[5,-122],[18,-52],[17,-78],[-4,-33],[-19,-39],[-12,-63],[-4,-66],[16,-42],[-65,-55],[-46,-65],[-45,-37],[-42,-18],[-38,27],[-52,4],[-53,36],[-26,1],[-27,-16],[-14,-47]],[[3378,4594],[-59,11],[-36,-9],[-49,-34],[-53,5],[-44,-23],[-56,-56],[-40,-15],[-20,16]],[[3021,4489],[60,25],[17,99],[-47,54],[-20,13],[-49,56],[4,48],[58,124],[2,43],[-25,35],[-8,44],[-38,-5],[-42,17],[16,44],[-33,12],[12,69],[14,-10],[4,31],[14,0],[3,47],[-51,11],[-3,58],[70,15],[-12,72]],[[2967,5391],[179,80],[7,-34],[56,12],[2,-17],[51,11],[-1,11],[52,11],[-9,61],[51,7],[-1,
 155],[10,60],[-32,13],[22,86],[33,-9],[5,19],[27,14],[-15,48],[-5,53],[-23,92],[-14,82],[-12,22],[-61,68],[-20,47],[13,68],[-34,-9],[3,31],[-77,41],[-30,29],[-63,5],[-81,28],[-11,16],[53,-11],[42,15],[-22,43],[-9,47],[-70,-17],[-45,6]],[[2938,6575],[0,87],[7,33],[37,99],[22,42],[31,40],[81,141],[27,14]],[[3021,4489],[-95,-86],[-49,-10],[-3,-39],[-20,-23],[7,-53],[19,-32],[20,-101],[12,-28],[5,-47],[-30,25],[-77,37],[-46,35],[-17,25],[7,69],[-14,53],[-20,-13],[-50,-55],[-66,-39]],[[1241,5054],[-2,15],[68,46],[-3,11],[44,35],[-6,15],[37,23],[62,82],[52,50],[91,72],[-20,18],[-22,64],[49,30]],[[1591,5515],[106,56],[72,24],[23,40]],[[1792,5635],[29,-42],[82,80],[22,-22],[25,33],[38,-22],[31,-31],[51,44],[44,23],[-11,58],[248,79],[-19,106]],[[2332,5941],[69,-10],[42,2],[138,-8]],[[2581,5925],[20,-100],[-46,-16],[41,-208],[9,-32],[-28,-17],[22,-113],[33,-66],[45,29],[40,1],[68,14],[31,22],[31,34],[37,-45],[-46,-57],[2,-32],[81,37],[46,15]],[[4819,8139],[26,-43],[77,-100],[-40,-66],[-11,-37
 ],[-34,-46],[-48,-90],[-15,-50],[0,-40],[-18,-102],[4,-65],[-18,-52]],[[3452,7839],[0,109],[4,69],[16,138],[-29,135],[-26,111],[5,75],[-30,80],[2,38],[12,47],[7,106],[-26,59]],[[3387,8806],[49,44],[109,55],[71,52]],[[3616,8957],[75,6],[0,52],[60,-29],[63,39],[2,-13],[55,7],[115,30],[11,-9],[137,22],[24,-2],[54,-22],[52,28],[9,-44],[25,-47],[48,-68],[59,47],[21,-51],[43,9]],[[4469,8912],[16,4],[8,-36],[0,-44],[98,-32],[-21,-85],[-26,-129],[-33,-79],[1,-84],[120,-145],[21,-81],[38,-94],[37,-12],[47,-33],[44,77]],[[1053,6602],[57,-16],[27,-79],[21,-91],[40,-85],[43,-57],[7,-29],[-22,-36],[14,-13],[-36,-35],[-13,-26],[27,-28],[19,-7],[24,-28],[50,-18],[-18,-23],[10,-27],[-12,-6],[20,-63],[71,-99],[-7,-6],[46,-56],[-38,-50],[48,-60],[-30,-42],[66,-85],[65,67],[36,-49],[23,-40]],[[347,5085],[-40,81],[-16,86],[-134,241],[-57,35],[-62,8],[-26,84],[-12,12],[19,39],[52,121],[28,47],[102,137],[58,134],[16,-16],[28,17],[21,-26],[109,89],[16,-18],[47,63],[70,69],[17,35],[28,31],[26,50],[27,25],[
 35,15],[76,-25],[5,28],[-37,44],[30,54],[78,77],[48,7],[154,-27]],[[9386,6017],[-33,-13],[-24,3],[-29,-20],[-27,-47],[-41,-11],[-26,12],[-10,-13],[33,-26],[-25,-50],[24,-17],[-22,-31],[-16,2],[12,-59],[45,-19],[12,-48],[-131,-53],[9,-69],[20,-73],[-5,-20],[-40,-30],[-77,24],[-23,27],[-46,-69],[-7,41],[-131,-42],[-3,18],[-74,-13],[-7,-40],[-19,0],[8,71],[9,29],[-8,18],[-35,-15],[0,-35],[-38,-136],[7,-26],[-9,-24],[-20,-6],[-39,-32],[-18,6],[-23,-16],[-19,-57],[-14,-88],[-43,-54]],[[8483,5016],[-40,3],[-37,-23],[-52,-60],[-59,-40],[-20,67],[-11,15],[-23,76],[1,51],[23,86],[6,39],[16,24],[3,59],[14,46],[0,39],[36,83],[26,37],[5,27],[61,14],[51,-23],[48,19],[52,53],[-24,46],[-59,75],[-50,-7],[-114,23],[-20,10],[10,21],[9,59],[-4,48],[-20,90],[-16,-5],[-65,58]],[[8230,6026],[13,80],[-57,15],[-1,75],[-8,3],[4,63],[-3,65],[28,19],[24,33],[-50,42],[24,31],[-13,11],[45,91],[35,-27],[73,90],[-11,29],[-63,49],[-9,18],[32,49],[48,100],[-8,59]],[[8333,6921],[-3,72],[-17,45],[-39,172],[67,31],[-8
 ,33],[110,26],[-3,25],[16,7],[-2,24],[32,6],[19,-46],[-8,-96],[8,-52],[18,-44],[6,-43],[37,-5],[39,-22],[-26,-23],[14,-36],[-35,-50],[-89,-69],[-14,-54],[76,6],[47,-9],[40,-21],[21,-39],[63,-99],[42,-100],[114,39],[33,6],[18,-32],[-13,-34],[-57,-59],[-14,-29],[-21,-13],[-47,-48],[4,-19],[91,-20],[-10,-22],[19,-27],[40,3],[48,23],[46,12],[-4,16],[36,60],[41,30],[10,-29],[28,3],[49,-24],[64,-14],[7,-29],[45,5],[54,-35],[11,-158],[10,1],[13,-56],[18,-48],[9,-45]],[[2414,8501],[6,46],[12,19],[16,65],[33,73],[43,52],[19,39],[42,-4],[85,7],[66,70],[120,71],[51,5],[39,36],[101,42],[52,42],[73,-29],[20,-15],[38,-46],[35,-31],[18,-29],[37,-5],[2,-35],[-9,-70],[67,19],[7,-17]],[[2938,6575],[-5,0],[-40,-119],[-13,-56],[-17,-38],[-21,-29],[-7,-51],[-30,-20],[-42,-53],[-11,-48],[-2,-51],[16,-12],[22,-37],[-13,-50],[7,-3],[-37,-97],[-58,31],[-5,-40],[-54,29],[-47,-6]],[[2332,5941],[0,12],[-35,67],[-13,6],[-24,41],[9,15],[-36,36],[8,14],[-43,44],[-7,-11],[-9,38],[-33,54],[-25,28],[41,48],[-51,59],
 [-41,65],[-42,58],[27,31],[-101,120],[51,74],[-50,67],[14,-8],[12,26],[14,-21],[5,22],[43,31],[45,13],[33,50],[43,-2],[24,21],[18,54],[48,15],[33,-13],[32,-49],[66,-23],[33,37],[59,34],[26,39],[2,65]],[[3616,8957],[-21,55],[-9,78],[-34,77],[9,100],[-58,35],[-72,18],[-109,52],[-20,-21],[-15,27],[8,101],[-3,106],[2,172],[26,121],[44,47],[42,74],[20,-48],[31,-37],[37,3],[21,-9],[12,-48],[27,-43],[7,-59],[16,-19],[-11,-83],[95,22],[165,102],[53,-87],[34,-32],[23,-33],[112,147],[55,24],[82,-18],[58,-2],[84,-19],[53,-26],[43,-61],[57,-50],[6,-29],[-19,-41],[0,-19],[48,-13],[42,-32],[-30,-160],[-2,-71],[-33,-47],[-56,-27],[-11,2],[-12,-86],[0,-38],[13,-49],[43,-101]],[[4668,5462],[-19,-35],[-3,-38],[53,-270],[22,-83],[-4,-57],[-11,-42],[-26,-48],[-19,-18],[-84,-53],[-29,-6],[-30,22],[-20,54],[-22,35],[-29,23],[-19,-2],[-48,-90],[-15,-47],[-15,-117],[-33,23],[-46,-126],[15,107],[-78,17],[-105,2],[-42,-136],[-7,4],[-34,-86],[-13,-15],[-42,28],[-86,-51],[-147,-137],[-30,-37],[-25,-15],[-32,35
 ],[-49,13],[-21,33],[-42,47],[-37,-27],[-43,29],[-22,29],[-28,-19],[-30,110],[5,76]],[[9463,5148],[-2,-54],[-26,-60],[-33,-51],[-30,-10],[-41,-45],[-24,-37],[-14,20],[-20,-48],[-34,25],[-32,-30],[5,-27],[20,-19],[-15,-21],[-29,19],[-26,-52]],[[9162,4758],[-37,42],[-56,42],[-43,39],[-26,12],[-62,6],[-126,75],[-82,32],[-57,-4],[-89,-36],[-25,-2],[-76,52]],[[9386,6017],[35,24],[48,11],[22,22],[28,5],[37,-13],[29,5],[17,-14],[52,-4],[65,44],[52,11],[43,-8],[13,-22],[42,6],[37,-39],[-13,-26],[-55,-50],[28,-14],[11,-56],[13,5],[36,-77],[52,-51],[-29,-93],[-28,-21],[-49,-22],[-27,24],[-14,-15],[-32,10],[-33,-6],[-36,-45],[-22,-11],[-11,30],[28,37],[-6,23],[29,2],[22,64],[-67,78],[-17,-49],[-47,-27],[0,65],[-14,-6],[-31,27],[-11,-22],[-34,-37],[-23,-9],[-70,21],[7,-35],[-18,-24],[-2,-57],[40,-18],[10,13],[33,1],[64,-71],[-27,-110],[0,-29],[-61,-51],[-15,-52],[13,-10],[-21,-22],[-25,-4],[-10,-116],[23,-5],[-25,-29],[3,-23],[18,-4]],[[1792,5635],[21,49],[-41,37],[-31,42],[-65,-14],[-21,12],[0
 ,20],[28,116],[-21,4],[9,30],[24,11],[39,38],[12,65],[-42,71],[11,40],[25,51],[-29,20],[20,74],[15,31],[-47,37],[45,48],[2,81],[-65,-22],[-27,3],[-15,43],[-22,113],[-29,107]],[[9463,5148],[46,-6],[58,-22],[70,11],[21,-8],[83,-79],[74,-90],[11,-44],[50,-118],[60,-57],[63,-381],[-14,-2],[1,-223],[-62,-29],[-115,77],[-37,4],[-88,-74],[-34,-76],[6,-6],[-37,-83],[-133,39],[-34,28],[-15,-35],[-66,48],[5,15],[-19,16],[43,31],[-19,30],[15,29],[24,-16],[103,180],[19,47],[-29,26],[-51,19],[-49,36],[-30,16],[-99,32],[-25,16],[-29,64],[-18,118],[-25,48],[-25,29]],[[1053,6602],[10,24],[-25,17],[11,94],[-4,46],[50,82]],[[6616,6671],[44,-3],[34,8],[32,-21],[37,5],[-2,-44],[21,-4],[55,-33],[56,-6],[45,-17],[53,-53],[17,-31],[-28,-39],[-19,-58],[-37,-83],[-7,-66],[-21,-71],[6,-27],[-52,-201],[-15,-79],[-25,-150],[10,-68],[25,-81],[-42,-4],[-69,-19],[-54,-27],[-48,-35],[-21,69],[14,13],[-1,83],[-18,0],[-114,52],[6,46],[0,165],[-64,93],[-24,142],[-18,69],[-18,2],[9,23],[-4,33],[-19,29],[-20,62],[-35,4
 6],[-37,22],[-15,-10],[-42,1],[-8,-14]],[[3419,207],[-34,21],[33,70],[-10,6],[19,44],[-40,24],[42,87],[21,22],[6,27],[-7,39],[26,34],[4,46],[10,26],[-16,13],[-1,28],[10,23],[-3,36],[20,56],[-21,1],[44,59],[6,33],[-34,-8],[-5,-12],[-20,57],[-20,-4],[-13,39],[-38,13],[-34,41],[-46,-14],[43,41],[-71,18],[-74,7],[-72,12],[23,114],[-11,16],[-82,50],[-27,30],[-54,32],[-60,7],[-80,23]],[[2853,1364],[21,32],[24,17],[34,53],[70,45],[24,25]],[[3026,1536],[153,-223],[55,9],[37,54],[38,23],[36,-5],[5,111],[-14,3],[14,94],[-38,37],[-3,74],[-45,49]],[[3264,1762],[35,36],[40,31],[32,-1],[26,12],[20,-38],[56,-51],[21,20],[44,19],[30,4],[21,-14],[58,-89],[43,52],[122,-25],[14,39],[21,104],[32,43],[39,34],[53,-19],[23,43],[-4,23],[18,53],[15,74],[64,-19],[-11,-40],[-17,-118],[2,-60],[15,-72],[-2,-29],[-15,-39]],[[4059,1735],[-106,138],[-42,-84],[-37,-54],[40,-85]],[[3914,1650],[-49,-21],[-44,-32],[-51,-60],[-28,-46],[-19,-46],[-19,-72],[-4,-63],[3,-55],[29,-124],[33,-96],[4,-53],[-27,-46],[-83,-18],[
 -26,-11],[-35,-41],[-34,-97],[-13,-70],[-11,-157],[-32,-141],[-19,-46],[-70,-148]],[[3419,207],[-48,-107],[-42,-75],[-32,-23],[-26,-2],[-30,12],[-67,98],[-23,73],[-5,89],[-16,98],[-28,87],[-38,84],[-23,39],[-87,100],[55,46],[42,9],[13,40],[-24,24],[15,44],[-42,34],[-37,-18],[-46,8],[-21,-14],[-95,30],[-2,24],[41,40],[-4,23],[16,21],[49,-10],[5,21],[-12,16],[-62,32],[-16,-1],[-3,48],[-26,19],[3,20],[-24,17],[10,26],[62,25],[-9,49],[-9,-6],[-4,48],[-15,53],[39,16]],[[5859,7472],[-27,18],[-20,76],[-23,36],[1,41],[-25,28],[-68,-41],[-18,33],[-19,7],[2,20],[-26,-23],[-29,-48],[-21,-9],[-46,23],[-34,2],[-11,-78],[-12,-36],[-29,-13],[-15,35],[-38,-8],[-30,15],[-35,80],[30,39],[-36,39],[-40,-2],[-20,-53],[-23,-18]],[[5247,7635],[-29,44],[42,46],[-17,57],[27,38],[28,91],[17,29],[19,-21],[24,54],[-2,41],[-13,9],[4,44],[-33,23],[-33,40],[-48,20],[4,31],[20,11],[33,-2],[25,14],[40,70],[-47,74]],[[4918,7287],[22,38],[51,52],[19,32],[12,44],[31,50],[20,13],[46,53],[40,-4],[20,-14],[40,31],[28,53]
 ],[[955,3954],[-81,-32],[-47,51],[-48,38],[-35,18],[-12,29],[-41,-1],[-29,81],[-42,55],[-31,49],[-115,113],[-29,17],[-33,49],[-134,-20],[-48,-10],[-57,8],[-52,106],[-58,132],[-19,20],[-14,44],[19,82],[33,73],[25,31],[113,29],[42,22],[20,47],[13,52],[51,46]],[[4819,8139],[51,54],[27,41],[63,72],[39,34],[44,-34],[16,26]],[[8230,6026],[-22,4],[-42,35],[-71,-30],[-70,18],[-65,7],[-27,15],[-117,8],[-60,36],[-44,-3],[9,39],[-3,52],[38,36],[-2,75],[29,49],[-55,68],[14,41],[-23,-1],[7,34],[-12,36],[9,50],[42,-33],[56,34],[36,66],[17,5],[-25,54],[2,18],[68,-23],[27,-16],[31,63],[4,36],[30,30],[-7,47],[21,26],[4,22],[38,-39],[44,57],[42,-19],[23,60],[157,-62]],[[3026,1536],[48,37],[58,-19],[51,29],[49,41],[14,32],[-4,63],[11,47],[11,-4]],[[4059,1735],[-35,-40],[-110,-45]]],"transform":{"scale":[0.05977255600264826,-0.048004800480048],"translate":[181.16710626476004,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/so-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/so-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/so-municipalities.json
deleted file mode 100644
index cffaa0c..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/so-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":2401,"properties":{"name":"Egerkingen"},"arcs":[[[-177,-109,-142,182,-46,183,184]]]},{"type":"MultiPolygon","id":2402,"properties":{"name":"Härkingen"},"arcs":[[[-178,-185,232,233]]]},{"type":"MultiPolygon","id":2403,"properties":{"name":"Kestenholz"},"arcs":[[[124,-78,-107,125,126]]]},{"type":"MultiPolygon","id":2404,"properties":{"name":"Neuendorf"},"arcs":[[[174,175,-110,176,177,178]]]},{"type":"MultiPolygon","id":2405,"properties":{"name":"Niederbuchsiten"},"arcs":[[[-126,-111,-176,-186]]]},{"type":"MultiPolygon","id":2406,"properties":{"name":"Oberbuchsiten"},"arcs":[[[106,-77,-42,107,108,109,110]]]},{"type":"MultiPolygon","id":2407,"properties":{"name":"Oensingen"},"arcs":[[[75,-43,76,77]]]},{"type":"MultiPolygon","id":2408,"properties":{"name":"Wolfwil"},"arcs":[[[-127,185,-175,186,187]]]},{"type":"MultiPolygon","id":2421,"properties":{"name":"Aedermannsdorf"
 },"arcs":[[[63,-38,64,-11,-2,65]]]},{"type":"MultiPolygon","id":2422,"properties":{"name":"Balsthal"},"arcs":[[[38,39,-6,40,41,42]]]},{"type":"MultiPolygon","id":2423,"properties":{"name":"Gänsbrunnen"},"arcs":[[[-21,97,-36,-60,-79]]]},{"type":"MultiPolygon","id":2424,"properties":{"name":"Herbetswil"},"arcs":[[[31,32,33,34,35,36,37]]]},{"type":"MultiPolygon","id":2425,"properties":{"name":"Holderbank (SO)"},"arcs":[[[-108,-41,-5,140,141]]]},{"type":"MultiPolygon","id":2426,"properties":{"name":"Laupersdorf"},"arcs":[[[43,-7,-40,44]]]},{"type":"MultiPolygon","id":2427,"properties":{"name":"Matzendorf"},"arcs":[[[-66,-1,-44,98]]]},{"type":"MultiPolygon","id":2428,"properties":{"name":"Mümliswil-Ramiswil"},"arcs":[[[0,1,2,3,4,5,6]]]},{"type":"MultiPolygon","id":2429,"properties":{"name":"Welschenrohr"},"arcs":[[[59,-35,60,61,62]]]},{"type":"MultiPolygon","id":2441,"properties":{"name":"Aetigkofen"},"arcs":[[[-302,-289,325,-87]]]},{"type":"MultiPolygon","id":2442,"properties":{"name"
 :"Aetingen"},"arcs":[[[306,-294,307,308,309]]]},{"type":"MultiPolygon","id":2444,"properties":{"name":"Bibern (SO)"},"arcs":[[[302,303,304,305]]]},{"type":"MultiPolygon","id":2445,"properties":{"name":"Biezwil"},"arcs":[[[-166,270,271,-85]]]},{"type":"MultiPolygon","id":2446,"properties":{"name":"Brügglen"},"arcs":[[[-308,-293,-332,-266,-324,335]]]},{"type":"MultiPolygon","id":2449,"properties":{"name":"Gossliwil"},"arcs":[[[-306,-320,-300,326]]]},{"type":"MultiPolygon","id":2450,"properties":{"name":"Hessigkofen"},"arcs":[[[-305,317,318,-291,-301,319]]]},{"type":"MultiPolygon","id":2452,"properties":{"name":"Küttigkofen"},"arcs":[[[322,323,-265,324]]]},{"type":"MultiPolygon","id":2453,"properties":{"name":"Kyburg-Buchegg"},"arcs":[[[-309,-336,-323,338]]]},{"type":"MultiPolygon","id":2455,"properties":{"name":"Lüterkofen-Ichertswil"},"arcs":[[[263,264,265,266,267,-138,-260]]]},{"type":"MultiPolygon","id":2456,"properties":{"name":"Lüterswil-Gächliwil"},"arcs":[[[-272,298,299,30
 0,-290,301,-86]]]},{"type":"MultiPolygon","id":2457,"properties":{"name":"Messen"},"arcs":[[[83,84,85,86,87,88]]]},{"type":"MultiPolygon","id":2458,"properties":{"name":"Mühledorf (SO)"},"arcs":[[[287,288,289,290,291,292,293]]]},{"type":"MultiPolygon","id":2461,"properties":{"name":"Schnottwil"},"arcs":[[[165,-84,166]]]},{"type":"MultiPolygon","id":2462,"properties":{"name":"Tscheppach"},"arcs":[[[-292,-319,-318,-304,330,-267,331]]]},{"type":"MultiPolygon","id":2463,"properties":{"name":"Unterramsern"},"arcs":[[[339,-88,-326,-288,-307]]]},{"type":"MultiPolygon","id":2464,"properties":{"name":"Lüsslingen-Nennigkofen"},"arcs":[[[136,137,138,-17,139,-69]]]},{"type":"MultiPolygon","id":2471,"properties":{"name":"Bättwil"},"arcs":[[[-160,336,-312]]]},{"type":"MultiPolygon","id":2472,"properties":{"name":"Büren (SO)"},"arcs":[[[-30,-136,205,-192,206]]]},{"type":"MultiPolygon","id":2473,"properties":{"name":"Dornach"},"arcs":[[[223,-217,-134]]]},{"type":"MultiPolygon","id":2474,"proper
 ties":{"name":"Gempen"},"arcs":[[[-135,216,217,-193,-206]]]},{"type":"MultiPolygon","id":2475,"properties":{"name":"Hochwald"},"arcs":[[[132,133,134,135,-29]]]},{"type":"MultiPolygon","id":2476,"properties":{"name":"Hofstetten-Flüh"},"arcs":[[[-131,158,159,160,161]]]},{"type":"MultiPolygon","id":2477,"properties":{"name":"Metzerlen-Mariastein"},"arcs":[[[128,129,130,131]]]},{"type":"MultiPolygon","id":2478,"properties":{"name":"Nuglar-St. Pantaleon"},"arcs":[[[191,192,193]]]},{"type":"MultiPolygon","id":2479,"properties":{"name":"Rodersdorf"},"arcs":[[[241,-129]]]},{"type":"MultiPolygon","id":2480,"properties":{"name":"Seewen"},"arcs":[[[25,26,27,28,29,30]]]},{"type":"MultiPolygon","id":2481,"properties":{"name":"Witterswil"},"arcs":[[[-161,311,312]]]},{"type":"MultiPolygon","id":2491,"properties":{"name":"Hauenstein-Ifenthal"},"arcs":[[[238,-48,239,240,-150,-182]]]},{"type":"MultiPolygon","id":2492,"properties":{"name":"Kienberg"},"arcs":[[[-116,127]]]},{"type":"MultiPolygon","id"
 :2493,"properties":{"name":"Lostorf"},"arcs":[[[51,52,53,54,55,56,57,58]]]},{"type":"MultiPolygon","id":2495,"properties":{"name":"Niedergösgen"},"arcs":[[[-237,268,-58,-208,-112,269,-221]]]},{"type":"MultiPolygon","id":2497,"properties":{"name":"Obergösgen"},"arcs":[[[-213,-273,-59,-269,-236]]]},{"type":"MultiPolygon","id":2498,"properties":{"name":"Rohr (SO)"},"arcs":[[[-209,-56,320,-114]]]},{"type":"MultiPolygon","id":2499,"properties":{"name":"Stüsslingen"},"arcs":[[[207,-57,208,-113]]]},{"type":"MultiPolygon","id":2500,"properties":{"name":"Trimbach"},"arcs":[[[148,149,150,-53,151,-93]]]},{"type":"MultiPolygon","id":2501,"properties":{"name":"Winznau"},"arcs":[[[-94,-152,-52,272,-212]]]},{"type":"MultiPolygon","id":2502,"properties":{"name":"Wisen (SO)"},"arcs":[[[-241,249,-54,-151]]]},{"type":"MultiPolygon","id":2503,"properties":{"name":"Erlinsbach (SO)"},"arcs":[[[111,112,113,114,115,116,117,118]]]},{"type":"MultiPolygon","id":2511,"properties":{"name":"Aeschi (SO)"},"arc
 s":[[[-257,274,275,276]],[[337]]]},{"type":"MultiPolygon","id":2513,"properties":{"name":"Biberist"},"arcs":[[[66,67,68,69,70,71,72,73]]]},{"type":"MultiPolygon","id":2514,"properties":{"name":"Bolken"},"arcs":[[[-283,-202,321,-276]]]},{"type":"MultiPolygon","id":2516,"properties":{"name":"Deitingen"},"arcs":[[[142,143,144,145,146,147]]]},{"type":"MultiPolygon","id":2517,"properties":{"name":"Derendingen"},"arcs":[[[-73,227,228,-148,-200,229,230,231]]]},{"type":"MultiPolygon","id":2518,"properties":{"name":"Etziken"},"arcs":[[[280,281,-203,282,-275]]]},{"type":"MultiPolygon","id":2519,"properties":{"name":"Gerlafingen"},"arcs":[[[-74,-232,327,328,329]]]},{"type":"MultiPolygon","id":2520,"properties":{"name":"Halten"},"arcs":[[[-286,332,-316,-254]]]},{"type":"MultiPolygon","id":2523,"properties":{"name":"Horriwil"},"arcs":[[[-256,313,-205,314,-281]]]},{"type":"MultiPolygon","id":2524,"properties":{"name":"Hüniken"},"arcs":[[[-315,-204,-282]]]},{"type":"MultiPolygon","id":2525,"prope
 rties":{"name":"Kriegstetten"},"arcs":[[[-231,-317,-333,-285,-341,-328]]]},{"type":"MultiPolygon","id":2526,"properties":{"name":"Lohn-Ammannsegg"},"arcs":[[[258,259,-137,-68]]]},{"type":"MultiPolygon","id":2527,"properties":{"name":"Luterbach"},"arcs":[[[-252,-174,-143,-229]]]},{"type":"MultiPolygon","id":2528,"properties":{"name":"Obergerlafingen"},"arcs":[[[-329,340,-284,341]]]},{"type":"MultiPolygon","id":2529,"properties":{"name":"Oekingen"},"arcs":[[[-255,315,316,-230,-199,-314]]]},{"type":"MultiPolygon","id":2530,"properties":{"name":"Recherswil"},"arcs":[[[283,284,285,-253,286]]]},{"type":"MultiPolygon","id":2532,"properties":{"name":"Subingen"},"arcs":[[[198,199,-147,200,201,202,203,204]]]},{"type":"MultiPolygon","id":2534,"properties":{"name":"Zuchwil"},"arcs":[[[-72,-198,250,-168,251,-228]]]},{"type":"MultiPolygon","id":2535,"properties":{"name":"Drei Höfe"},"arcs":[[[252,253,254,255,256,257]]]},{"type":"MultiPolygon","id":2541,"properties":{"name":"Balm bei Günsberg"},
 "arcs":[[[-122,-61,-34,234,-170]]]},{"type":"MultiPolygon","id":2542,"properties":{"name":"Bellach"},"arcs":[[[-140,-24,-227,-82,242,-195,-70]]]},{"type":"MultiPolygon","id":2543,"properties":{"name":"Bettlach"},"arcs":[[[-9,-19,74]]]},{"type":"MultiPolygon","id":2544,"properties":{"name":"Feldbrunnen-St. Niklaus"},"arcs":[[[-197,-124,-169,-251]]]},{"type":"MultiPolygon","id":2545,"properties":{"name":"Flumenthal"},"arcs":[[[-173,294,295,-145]]]},{"type":"MultiPolygon","id":2546,"properties":{"name":"Grenchen"},"arcs":[[[7,8,9]]]},{"type":"MultiPolygon","id":2547,"properties":{"name":"Günsberg"},"arcs":[[[-235,-33,243,244,245,-171]]]},{"type":"MultiPolygon","id":2548,"properties":{"name":"Hubersdorf"},"arcs":[[[-172,-246,342,343,-295]]]},{"type":"MultiPolygon","id":2549,"properties":{"name":"Kammersrohr"},"arcs":[[[-245,344,-343]]]},{"type":"MultiPolygon","id":2550,"properties":{"name":"Langendorf"},"arcs":[[[-243,-81,-121,-196]]]},{"type":"MultiPolygon","id":2551,"properties":{"na
 me":"Lommiswil"},"arcs":[[[-23,-83,226]]]},{"type":"MultiPolygon","id":2553,"properties":{"name":"Oberdorf (SO)"},"arcs":[[[-22,78,-63,79,80,81,82]]]},{"type":"MultiPolygon","id":2554,"properties":{"name":"Riedholz"},"arcs":[[[167,168,-123,169,170,171,172,-144,173]]]},{"type":"MultiPolygon","id":2555,"properties":{"name":"Rüttenen"},"arcs":[[[119,120,-80,-62,121,122,123]]]},{"type":"MultiPolygon","id":2556,"properties":{"name":"Selzach"},"arcs":[[[16,17,18,-8,19,20,21,22,23]]]},{"type":"MultiPolygon","id":2571,"properties":{"name":"Boningen"},"arcs":[[[-262,-274,-247,-90,310]]]},{"type":"MultiPolygon","id":2572,"properties":{"name":"Däniken"},"arcs":[[[-214,235,236,-220,237]]]},{"type":"MultiPolygon","id":2573,"properties":{"name":"Dulliken"},"arcs":[[[209,210,-95,211,212,213,214]]]},{"type":"MultiPolygon","id":2574,"properties":{"name":"Eppenberg-Wöschnau"},"arcs":[[[-278,-118,334]]]},{"type":"MultiPolygon","id":2575,"properties":{"name":"Fulenbach"},"arcs":[[[-187,-179,-234,261
 ,262]]]},{"type":"MultiPolygon","id":2576,"properties":{"name":"Gretzenbach"},"arcs":[[[218,219,220,221,222]]]},{"type":"MultiPolygon","id":2578,"properties":{"name":"Gunzgen"},"arcs":[[[-233,-184,-51,-248,273]]]},{"type":"MultiPolygon","id":2579,"properties":{"name":"Hägendorf"},"arcs":[[[45,46,47,48,49,50]]]},{"type":"MultiPolygon","id":2580,"properties":{"name":"Kappel (SO)"},"arcs":[[[246,247,-50,248,-180,-91]]]},{"type":"MultiPolygon","id":2581,"properties":{"name":"Olten"},"arcs":[[[89,90,91,92,93,94,95,96]]]},{"type":"MultiPolygon","id":2582,"properties":{"name":"Rickenbach (SO)"},"arcs":[[[-249,-49,-239,-181]]]},{"type":"MultiPolygon","id":2583,"properties":{"name":"Schönenwerd"},"arcs":[[[-222,-270,-119,277,278]]]},{"type":"MultiPolygon","id":2584,"properties":{"name":"Starrkirch-Wil"},"arcs":[[[-96,-211,333]]]},{"type":"MultiPolygon","id":2585,"properties":{"name":"Walterswil (SO)"},"arcs":[[[-215,-238,-219,260]]]},{"type":"MultiPolygon","id":2586,"properties":{"name":"W
 angen bei Olten"},"arcs":[[[179,180,181,-149,-92]]]},{"type":"MultiPolygon","id":2601,"properties":{"name":"Solothurn"},"arcs":[[[-71,194,195,-120,196,197]]]},{"type":"MultiPolygon","id":2611,"properties":{"name":"Bärschwil"},"arcs":[[[99,100]]]},{"type":"MultiPolygon","id":2612,"properties":{"name":"Beinwil (SO)"},"arcs":[[[10,11,12,13,14,15,-3]]]},{"type":"MultiPolygon","id":2613,"properties":{"name":"Breitenbach"},"arcs":[[[188,-156,189,190,-104]]]},{"type":"MultiPolygon","id":2614,"properties":{"name":"Büsserach"},"arcs":[[[152,153,154,155,156,157]]]},{"type":"MultiPolygon","id":2615,"properties":{"name":"Erschwil"},"arcs":[[[162,163,-153,164,-13]]]},{"type":"MultiPolygon","id":2616,"properties":{"name":"Fehren"},"arcs":[[[-225,-157,-189,-280]]]},{"type":"MultiPolygon","id":2617,"properties":{"name":"Grindel"},"arcs":[[[296,-100,297,-154,-164]]]},{"type":"MultiPolygon","id":2618,"properties":{"name":"Himmelried"},"arcs":[[[-105,-191,215,-27]]]},{"type":"MultiPolygon","id":2619
 ,"properties":{"name":"Kleinlützel"},"arcs":[[[24]]]},{"type":"MultiPolygon","id":2620,"properties":{"name":"Meltingen"},"arcs":[[[-14,-165,-158,224,225,-102]]]},{"type":"MultiPolygon","id":2621,"properties":{"name":"Nunningen"},"arcs":[[[-15,101,102,103,104,-26,105]]]},{"type":"MultiPolygon","id":2622,"properties":{"name":"Zullwil"},"arcs":[[[-226,279,-103]]]}]}},"arcs":[[[4112,6076],[-49,5],[-192,-59]],[[3871,6022],[-14,32],[-36,-20],[-33,11],[-24,-10],[-54,14],[-52,-32],[6,-52],[-29,-1],[-54,-23],[-87,-52],[-27,29],[-9,42],[-33,86]],[[3425,6046],[86,76],[33,20],[115,40],[81,34],[77,38],[76,75],[72,30],[35,6],[17,14],[125,70],[61,26],[103,54],[-7,79],[86,28],[-1,66],[-11,18],[14,49],[-19,23],[-2,28],[37,-2],[-3,22]],[[4400,6840],[208,27],[155,23],[169,31],[303,44],[174,-36],[186,-45],[16,-1],[90,-260],[127,-187],[126,-124]],[[5954,6312],[-55,-41],[-167,-36],[-46,-40],[-76,-30],[-64,-33]],[[5546,6132],[-99,-80],[10,-79],[-43,-58],[-66,-39],[-41,2],[-74,16],[-28,16],[-24,45],[5,40]
 ,[-36,31],[-17,3],[-77,38],[-23,-7],[-21,71],[-60,-4],[-35,-28],[-59,-4]],[[4858,6095],[-98,9],[-40,-15],[-75,40],[-41,-21],[-56,3],[-105,-20],[-79,-9],[0,10],[-46,-4],[-9,30],[-40,-4],[-72,-38],[-43,-4],[-42,4]],[[1036,3880],[12,-50],[27,-83],[-75,-61]],[[1000,3686],[-45,-28],[-167,-62],[-17,-54],[5,-17],[-67,-54],[7,-62],[22,-61],[55,-95],[26,-21],[74,-117],[33,-27],[39,-75],[43,-66],[16,-12],[55,-140],[31,2],[24,-72],[19,-27],[17,-74],[22,-50],[20,-28],[11,-49],[26,1],[38,-14],[26,10]],[[1313,2494],[12,-59],[-2,-61],[-22,-34],[-31,-25],[-90,-30],[-49,-25],[-25,-49],[-10,-87],[-38,-52],[-22,-16],[-48,-8],[-81,17],[-29,1],[-57,-23],[-57,-36],[-15,18],[-71,-25],[-5,-12],[-50,22],[-12,19],[-12,54],[6,36],[36,22],[89,-11],[17,16],[-33,96],[-72,176],[-17,54],[-58,113],[-34,50],[-31,32],[-46,32],[-53,19],[-15,17],[-25,69],[-39,-25],[-120,-43],[-111,365],[-29,0],[-43,122],[-21,120],[40,8],[45,30],[102,25],[22,14],[34,4],[30,-33],[44,0],[46,28],[26,35],[48,37],[57,69],[54,18],[31,26],[125
 ,49],[53,28],[60,23],[71,44],[26,21],[65,76],[57,35]],[[3425,6046],[-50,-40],[-21,-52]],[[3354,5954],[-64,108],[-68,127],[-15,47],[-28,27],[-45,-12],[-3,41],[-167,84],[-45,6],[-40,-4],[-14,40],[-18,22],[15,46],[22,24],[29,59],[-26,102]],[[2887,6671],[55,7],[27,-8],[31,-35],[33,-6],[63,24],[4,47],[37,101],[33,-5],[18,-33],[43,15],[-21,44],[21,76],[2,50],[94,-9]],[[3327,6939],[9,-10],[36,43],[28,-26],[62,-8],[28,-13],[24,-27],[61,12],[62,31],[41,-27],[132,-68],[16,-1],[22,24],[36,21],[43,-57],[38,3],[13,31]],[[3978,6867],[18,9],[103,103],[16,38],[54,41],[-22,30],[28,28],[55,-18],[67,-5],[55,6]],[[4352,7099],[32,-66],[-4,-50],[20,-143]],[[2095,2981],[-13,-43],[5,-67],[15,-43],[-8,-52],[-22,-27],[-40,-15],[-28,3],[-41,-22]],[[1963,2715],[-22,-6],[-110,-8],[-102,-24],[-55,-6],[-102,13],[-5,-35],[19,-63]],[[1586,2586],[-46,-2],[-41,-25],[-18,80],[-22,-10],[-22,52],[-26,-11],[-32,84],[48,17],[-54,139],[31,13],[-9,36],[21,2],[-17,43],[-2,83],[-37,35],[-30,68],[22,1],[-5,39],[40,39],[51,15],
 [-5,39],[-31,40],[-5,20],[-40,61],[-27,21],[-21,-2],[-32,17],[-27,-4],[-25,15],[-10,36],[-24,32],[-69,46],[-12,-23],[-67,8],[-43,96]],[[1036,3880],[53,-9],[79,63]],[[1168,3934],[11,-5],[60,35],[24,31],[91,8],[148,111],[53,2],[52,20],[26,1]],[[1633,4137],[9,-34],[53,-47],[24,5],[9,-64],[10,-9],[58,17],[14,-56]],[[1810,3949],[-83,-34],[-53,-12],[-75,-34],[70,-356],[36,-75],[-12,-12],[17,-93],[47,13],[36,-8],[16,-49],[65,-25],[91,26]],[[1965,3290],[24,-89],[11,-64],[-18,-6],[39,-114],[26,-20],[48,-16]],[[519,7930],[17,93],[27,75],[6,62],[4,87],[36,29],[9,55],[-24,19],[15,23],[50,-29],[9,13],[117,66],[29,6],[33,-7],[65,8],[0,73],[50,41],[126,58],[81,72],[37,-55],[28,-7],[144,52],[36,19],[21,-43],[-9,-6],[50,-45],[52,-74],[38,-33],[36,-65],[17,-83],[43,-53],[7,-28],[-12,-57],[-43,-64],[-20,-75],[-1,-47],[-41,-71],[-53,-24],[-29,0],[-73,-15],[-60,26],[-74,13],[-24,-25],[-36,-8],[-36,-46],[-102,-4],[-53,10],[-36,-4],[-43,13],[-45,4],[-65,23],[-47,4],[-90,23],[-87,-17],[-19,10],[-61,8]],[[4
 231,7839],[-70,36],[-58,51],[-131,16],[-132,-42],[-38,17],[-24,42],[-20,13]],[[3758,7972],[52,65],[67,42],[49,67],[31,19],[54,51],[-3,57],[-22,96]],[[3986,8369],[3,113]],[[3989,8482],[57,0],[227,89],[49,45],[29,-16],[58,10],[41,18],[53,78]],[[4503,8706],[18,-31],[41,-27],[85,-19],[46,-44],[21,-82],[46,-98],[39,-36],[52,-64],[15,-3],[83,13],[32,-39]],[[4981,8276],[-24,-81],[-45,-179],[-87,-59],[-141,-117],[-94,-22],[-258,21],[-101,0]],[[3867,4808],[-96,-20],[-295,-71]],[[3476,4717],[-63,-41],[-45,-19],[-59,-18]],[[3309,4639],[-23,-7],[-61,9],[-51,-23]],[[3174,4618],[-60,87],[-34,74],[-59,13],[22,60],[23,4],[60,32],[-46,57],[-30,94],[-27,-1],[-33,76],[-45,1],[-5,-16],[-46,-3],[-71,-17],[-74,-30],[-96,-18],[-90,-23]],[[2563,5008],[-39,85]],[[2524,5093],[93,34],[53,-5],[61,12],[51,2],[68,52],[37,48],[5,30],[-12,48],[55,39],[59,56],[-10,31],[16,47],[9,113]],[[3009,5600],[5,-14],[29,3],[14,-48],[24,-31],[95,38],[14,32],[91,92],[44,56],[22,-79],[-34,-17],[-24,-35],[78,-85],[19,9],[29,-19],
 [48,-10],[36,-30],[46,-18],[55,-6],[126,-158],[27,8],[20,-47],[30,-104],[-65,-27],[-17,-23],[10,-17],[-10,-35],[8,-23],[-23,-50],[76,14],[30,-36],[55,-132]],[[4992,5133],[-29,-21],[-43,-70],[-44,-26]],[[4876,5016],[-41,95],[-53,229],[32,117],[-4,14],[27,84],[63,-2],[6,68],[-17,30],[8,24],[-21,180],[-18,240]],[[5546,6132],[72,-268],[107,-163],[141,73],[2,-13]],[[5868,5761],[-41,-21],[-13,-42],[6,-50],[-44,-53],[-59,-51],[-38,-13],[-37,-47]],[[5642,5484],[-35,-19],[-23,-25],[-63,-34],[-67,18],[-49,7],[9,-37],[-10,-58],[-18,-23],[-51,-37],[-18,2],[-33,-22],[-55,8],[-20,-25],[-25,-13],[-6,-64],[-43,-15],[-25,3],[-31,-20],[-87,3]],[[4507,4872],[-19,23],[-52,217],[-8,72],[-28,82],[-26,34],[14,2],[-13,39],[-23,12],[26,11],[-19,53],[-9,-5],[-90,295],[-64,123],[-46,98],[-38,148]],[[4876,5016],[-57,-16],[-34,-18],[-25,28],[-37,-26],[-83,-24],[-36,-35],[-97,-53]],[[6917,5846],[-26,42],[-19,66],[2,55],[-99,120],[-50,80],[-90,22],[-72,-27]],[[6563,6204],[25,160],[-5,78],[20,86],[18,54],[64,124],
 [46,31],[57,0],[44,8],[106,7],[59,23],[27,3],[71,25],[45,55]],[[7140,6858],[10,-72],[36,-35],[42,-19],[4,-20],[48,0],[-5,-50],[39,3]],[[7314,6665],[11,-99],[-24,-60],[-59,-54],[-7,-30],[12,-44],[55,-4],[22,-12],[20,-73],[-21,-18],[26,-26],[58,-44],[22,-26],[33,-89],[24,-53]],[[7486,6033],[-44,-21],[-71,-63],[-104,-42],[-35,38],[-44,-23],[-24,12],[-41,-7]],[[7123,5927],[-32,-8],[-174,-73]],[[8666,6946],[-28,30],[2,22],[-40,-19],[-52,60],[-39,64],[4,42],[-62,-5],[-28,-34],[-80,30],[-32,2],[-64,-18],[-15,4],[-79,81],[-110,4]],[[8043,7209],[-26,20],[-14,31]],[[8003,7260],[47,29],[44,18],[62,43],[29,93],[17,71],[35,75]],[[8237,7589],[49,41],[36,12],[79,38],[46,-8],[17,23],[103,54],[60,65]],[[8627,7814],[87,2],[89,-13],[22,-17],[49,-80]],[[8874,7706],[-16,-46],[-22,-8],[26,-56],[-12,-28],[3,-59],[19,-33],[26,-20],[5,-39],[31,24],[8,-73],[48,-99],[47,-78],[35,-41],[58,-23]],[[9130,7127],[-19,-27],[-34,-119]],[[9077,6981],[-72,35],[-39,9],[-34,-7],[-18,18],[-23,-3],[0,-54],[-47,12],[0,-37],
 [-63,15],[-56,57],[-59,-80]],[[2355,4185],[-53,139],[-20,109],[-61,98],[-53,136],[38,48],[-91,82],[1,41],[50,54],[165,28],[59,24],[34,5],[74,34],[5,12],[37,1],[23,12]],[[3174,4618],[-74,4],[-110,-5],[-126,-49],[-15,7],[-102,-15],[33,-12],[-38,-34],[-29,-42],[-66,-65],[-61,-70]],[[2586,4337],[-36,-59]],[[2550,4278],[-116,-58],[-79,-35]],[[3953,4826],[-86,-18]],[[3009,5600],[5,49],[144,141],[49,-22],[102,68],[42,66],[3,52]],[[3871,6022],[26,-60],[-28,-25],[19,-68],[18,-13],[-30,-32],[-23,-7],[43,-94],[7,-45],[14,0],[17,-40],[-14,-34],[7,-26],[59,-49],[22,-48],[17,-13],[18,-48],[-35,1],[24,-185],[-32,-10],[-43,-48],[25,-18],[21,-81],[-9,-80],[-18,-67],[-2,-33],[-21,-30],[0,-43]],[[3172,2190],[-45,-50],[-84,-56],[-17,-34],[-31,-29],[-34,-13],[-39,48],[-15,28],[-26,-8]],[[2881,2076],[-20,35],[72,38],[42,39],[-27,34],[-10,31],[-38,4],[-19,13],[52,52],[0,24],[-22,41],[-11,40],[23,15],[-19,28],[-33,-28],[-34,55],[-44,43],[-37,4],[-15,-42],[-24,10],[-4,66],[19,50],[-16,16],[-42,-6],[-23,27],
 [-33,-22],[-3,-43],[-19,-36],[19,-34],[31,6],[-5,-68],[-29,18],[-54,-18],[-29,-25]],[[2529,2443],[-9,28],[-26,13],[-17,62],[16,33],[-4,32],[16,26],[8,46],[13,7],[-13,36],[-25,10],[1,55],[-22,60]],[[2467,2851],[45,-3]],[[2512,2848],[87,-9],[50,15],[50,26],[36,26],[26,33],[77,-59],[4,40],[29,-36],[14,18],[34,5],[0,19],[28,41],[20,15]],[[2967,2982],[70,-59],[-33,-9],[5,-42],[46,-41],[50,15],[55,51],[2,40],[39,-27],[4,14],[48,-21],[48,-11],[3,-20],[40,-20],[5,-69],[40,1],[22,36],[35,-43]],[[3446,2777],[3,-64],[-10,-11],[12,-30],[-36,-27],[36,-83],[-21,-13],[-27,-39],[43,-102]],[[3446,2408],[-26,-18],[-5,-21],[-76,-24],[-24,-14],[-48,9],[-14,14],[-35,11],[-46,-175]],[[1586,2586],[-3,-53],[-27,-42],[-64,-42],[-21,-1],[-28,33],[-20,86],[-36,23],[-40,-14],[-34,-53],[0,-29]],[[5770,4340],[-82,-19],[-49,76],[-68,96],[-6,29],[13,37],[-138,165],[-48,-62],[-42,42],[19,25],[-38,41],[12,25],[-36,43],[-13,-20],[-38,60],[14,17],[-45,65],[-20,-6],[-27,21],[-131,75],[-20,19],[-35,64]],[[5642,5484],[45
 ,-31],[12,-44],[68,-69],[95,-61],[14,25],[32,-23],[14,-39],[16,11],[9,-41],[21,-41]],[[5968,5171],[-196,-114],[57,-120],[-30,-23],[-91,-89],[29,-35],[-22,-22],[21,-27],[-16,-14],[38,-46],[18,-111],[9,-153],[-15,-77]],[[1633,4137],[50,25],[65,24],[38,26],[15,-6],[66,22],[70,5],[16,-6],[90,-65],[48,-19],[84,-5],[43,4],[137,43]],[[2550,4278],[-57,-102],[27,-130],[16,-66],[-9,-12],[23,-64],[20,-6],[18,-41],[11,-48],[27,-45],[48,-40],[13,-72]],[[2687,3652],[-96,-48],[-99,-59],[1,-22],[-47,-6],[-17,-37],[-27,-12],[-64,-61]],[[2338,3407],[-55,66],[-64,22],[-74,1]],[[2145,3496],[-38,32],[-27,-5],[0,22],[-48,-8],[12,23],[-24,17],[-4,24],[26,3],[-58,74],[-11,39],[-10,-6],[-58,212],[-4,29],[-91,-3]],[[1041,497],[-17,49]],[[1024,546],[60,38],[43,68],[93,64],[74,61],[58,7],[54,23]],[[1406,807],[55,30],[24,26],[31,2],[53,35],[52,22],[16,24]],[[1637,946],[48,42],[46,52],[36,15],[84,25],[23,-11]],[[1874,1069],[-7,-23],[5,-42],[14,5],[10,-35],[17,8],[40,-101]],[[1953,881],[-198,-91],[22,-106],[-15,-
 6],[51,-95],[-17,-7],[43,-82],[53,-119],[43,-25],[21,-61],[-32,-49],[-28,-19],[-38,-94],[-33,-29],[-80,-4],[-38,-18],[-52,-63],[-7,25],[-119,-38],[-77,3],[-3,42],[-41,38],[-30,52],[-10,64],[-5,77],[-22,42],[6,37],[18,4],[-13,38],[31,13],[-10,41],[35,13],[-51,147],[-156,-72],[-12,34],[-20,-11],[-11,28],[-117,-93]],[[7829,5555],[-7,43]],[[7822,5598],[7,57],[-8,60]],[[7821,5715],[41,14],[26,-2],[56,45],[7,49],[-24,27],[12,71],[-15,10],[-23,80],[-4,31],[-31,64],[-37,51],[-33,65],[61,36],[58,43],[-44,72],[-21,45],[-50,75],[-62,102],[29,48],[0,17]],[[7767,6658],[89,69],[68,6],[63,-20],[38,-19],[63,-20],[20,-67],[46,2],[44,-5],[25,97],[52,90],[46,65],[50,42]],[[8371,6898],[23,-14],[13,-27],[32,-122],[26,-42],[58,-57]],[[8523,6636],[-14,-18]],[[8509,6618],[-54,-72],[-9,-21],[2,-55],[-32,-183],[14,-52],[25,-24],[-16,-30],[-27,-20],[-40,4],[-38,-20]],[[8334,6145],[-67,59],[-28,42],[-22,16],[5,-40],[-12,-26],[-46,-54],[-69,-130],[-38,-91],[-8,-68],[8,-53],[22,-45],[-41,-42],[-60,-70],[-18,-68]
 ,[-16,-25],[-70,-6],[-45,11]],[[1168,3934],[-41,57],[-27,123],[1,37],[16,38],[20,17],[116,36],[87,58],[95,88],[24,14],[146,1],[13,8],[58,8],[69,18],[75,5],[43,42],[45,74],[57,156],[32,52],[52,57],[53,77],[27,-10],[25,19],[79,40],[14,35],[43,12],[103,58],[7,-19],[84,43],[40,15]],[[4507,4872],[-45,-21],[-94,-6],[-55,3],[-123,-8],[-135,0],[-102,-14]],[[2180,7266],[-11,-46],[-20,-33],[65,-24],[26,5],[33,-69],[-12,-84],[-28,-99]],[[2233,6916],[-100,-22],[-48,9],[-70,31],[-74,-18],[-98,-13],[-19,11],[-43,-6],[-93,28],[-29,17],[-28,55],[-88,47],[-27,40],[-69,46],[-58,-52],[25,87],[0,33],[18,43],[-2,23],[43,54],[24,13],[-19,145],[12,26],[-25,43],[-1,49],[28,50],[24,-37],[29,-23],[45,5],[12,28],[-16,30],[0,34],[43,-2],[28,8],[22,-16],[9,-45],[65,-20],[21,4],[11,27],[20,12],[74,-44],[46,-8],[59,19],[0,-97],[3,-114],[24,-55],[28,-22],[36,10],[17,-7],[5,-37],[83,-39]],[[3978,6867],[-5,68]],[[3973,6935],[23,61],[45,61],[-39,94],[-37,25],[-6,27],[8,64],[-38,90],[-95,193],[-75,38],[-24,38],[-59,-3
 0],[-41,97],[-29,19],[-48,-22]],[[3558,7690],[23,49],[-27,50],[5,31],[-15,11],[-5,38]],[[3539,7869],[42,4],[5,47],[16,21],[50,23],[71,10],[35,-2]],[[4231,7839],[13,-67],[22,-160],[5,-116],[19,-180],[8,-36],[-57,-17],[0,-57],[33,-54],[90,-2],[-12,-51]],[[6044,5207],[-2,8],[-74,-44]],[[5868,5761],[14,21],[36,87],[94,30],[31,-11],[109,28],[33,15],[27,-3],[35,26],[10,-9],[36,28]],[[6293,5973],[15,-36],[-7,-40],[26,-98],[18,-48],[8,3],[96,-150]],[[6449,5604],[-77,-60],[-17,-27],[27,-42],[-18,-10],[23,-38],[16,8],[30,-57],[-49,-26],[35,-68],[-26,-19]],[[6393,5265],[-21,-14],[-51,90],[-54,-29],[-14,26],[-209,-131]],[[9558,7153],[-56,30],[-85,26],[-34,22],[-36,40],[-13,68]],[[9334,7339],[-15,212],[-14,57],[37,13],[-4,19],[-29,-7],[-11,56],[-25,-5],[-14,40],[-60,44],[-13,34],[-88,77]],[[9098,7879],[-18,17],[-17,54],[-32,56],[-35,38],[-43,-7],[-38,31]],[[8915,8068],[0,24],[72,46]],[[8987,8138],[19,13]],[[9006,8151],[91,-50],[42,-29],[28,13],[44,-79],[31,-19],[38,-39],[43,12],[40,-17],[25,19],
 [13,-49],[16,-20],[35,-1],[54,-26],[61,-12],[40,-44],[39,-22],[28,-113],[14,-13],[5,-82],[-9,-43],[9,-15],[50,-19],[46,13],[44,-21],[4,42],[90,-3],[13,-57]],[[9940,7477],[-27,-6],[-26,-31],[-25,-110],[-40,-86],[-29,-4]],[[9793,7240],[-27,10],[-64,56],[-38,10],[-42,-22],[-41,-58],[-25,-66],[2,-17]],[[2945,3400],[-58,-10],[-38,-24],[-52,-2],[-7,20],[-48,10],[-6,-16],[-56,3]],[[2680,3381],[-14,63],[3,46],[24,53],[30,21],[-22,27],[-14,61]],[[2586,4337],[24,-27],[7,-28],[-25,-38],[5,-17],[85,38],[36,31],[33,-40],[29,-19],[57,6],[66,-5],[5,-37],[113,-85],[26,-30],[20,9],[24,-41],[3,-26],[16,-11]],[[3110,4017],[-3,-36],[26,-36],[12,-78],[-74,-22],[-28,-1]],[[3043,3844],[-16,-20],[-82,-19],[9,-138],[27,-60],[-19,-103],[-22,-86],[5,-18]],[[6154,4500],[-60,-96],[-27,-78],[-28,-27],[-53,15],[-58,0],[-67,-41],[-25,12],[-66,55]],[[6044,5207],[-15,-10],[46,-95],[43,9],[-8,-13],[73,-132],[-27,-21],[106,-174],[33,-42],[25,-44]],[[6320,4685],[-39,-65],[-31,-34],[0,-20],[-30,-24],[-54,-26],[-12,-16]]
 ,[[8987,8138],[-16,30],[-72,80],[-84,120],[28,25],[-57,168],[-19,74],[10,56],[37,4],[7,27],[44,53],[10,-2],[24,44],[27,8],[-13,18],[23,24],[-9,32],[-21,16],[41,-7],[21,18],[-3,51],[40,48],[32,12],[16,42],[27,4],[93,-83],[24,-104],[-25,-52],[82,-71],[29,-102],[19,-31],[6,-68],[-7,-67],[17,-61],[19,-39],[-11,-30],[26,-46],[2,-26],[-25,-140],[-18,3],[-6,126],[-53,-18],[-41,-29],[-47,-16],[-94,-51],[-64,-27]],[[1674,9252],[41,30],[94,106],[44,67],[36,31]],[[1889,9486],[40,-2],[33,-13],[30,3],[43,20],[93,22]],[[2128,9516],[41,3],[70,-28],[-2,-26],[-26,-40],[1,-51],[-51,-58],[-7,-39],[-28,-28],[4,-39],[22,-19],[36,-55],[28,-24],[-7,-29],[24,-56],[7,-41]],[[2240,8986],[-39,-8],[-110,-37],[-61,-44],[-53,-2],[-126,-35],[-23,-26],[-144,-83],[-25,-1],[-19,50],[-92,131],[-15,47],[-5,70],[-9,9],[40,49],[32,71],[54,61],[29,14]],[[3989,8482],[-12,46],[17,53],[0,79],[12,37],[18,20],[38,156],[21,66],[-8,48],[0,64],[31,-10],[26,32]],[[4132,9073],[48,67],[45,37],[93,15],[43,52],[18,-8]],[[4379,9236],[
 10,-25],[36,-25],[27,-31],[28,-7],[82,16],[61,-33],[38,-5],[2,-12],[38,22],[31,-15],[40,8]],[[4772,9129],[-9,-39],[-16,-6],[-4,-43],[24,-24],[-66,-39],[-34,-35],[-24,-51],[-62,-47],[-26,-28],[-43,-78],[-9,-33]],[[2529,2443],[-36,-66],[-28,-32]],[[2465,2345],[-25,6],[-18,-18],[-43,-2],[-31,-21],[-39,-10],[-55,-33]],[[2254,2267],[-38,-9],[-59,37],[-39,9],[-86,-32],[-21,79],[-12,26],[5,31],[-24,-21],[1,30],[-25,32],[-5,21],[-24,-6],[-35,34],[61,39],[-7,38],[-28,20],[43,26],[14,34],[-12,60]],[[2095,2981],[21,32],[56,27],[44,-10],[43,-29],[105,-145],[46,-9],[57,4]],[[5954,6312],[39,-27],[143,-12],[33,2],[42,-29],[-5,-60],[20,-4],[37,16],[100,-4],[39,9],[41,-15],[1,-25],[35,9]],[[6479,6172],[13,-64],[-42,-6],[-30,-17],[7,-13],[-13,-36],[-65,-35],[-19,2],[-37,-30]],[[3782,3243],[30,99],[18,38],[-37,3],[-3,34],[11,56],[-18,49],[-77,16],[-86,-32],[-19,3],[-18,69]],[[3583,3578],[38,9],[62,36]],[[3683,3623],[10,-6],[94,9],[71,-13],[38,-23],[35,-86],[36,20],[24,-22],[76,108]],[[4067,3610],[40,1
 2],[39,-71],[48,45],[20,-36],[44,44],[20,-32],[76,59],[50,-101],[-69,-47],[27,-53],[52,-16],[13,-24],[43,-10],[-24,-27],[-11,-72],[17,-28],[21,-60]],[[4473,3193],[-79,-29],[-63,7],[-96,-16],[-23,5],[-3,34],[-49,10],[-14,-32],[-33,-37],[-58,-81],[-7,25],[-48,-8],[-3,16],[-75,-23],[-1,11],[-82,-22],[-11,38],[-64,-12]],[[3764,3079],[4,67],[14,97]],[[7767,6658],[-56,-13],[-6,17],[-47,50],[-88,-27]],[[7570,6685],[-2,69],[8,31],[49,69],[32,34],[-3,27],[-37,10],[-19,26],[-31,1],[-20,20],[-38,-9],[-16,-21],[-20,13],[10,24],[-23,17],[45,20],[57,-3],[80,-32],[51,-11],[17,30],[14,-13],[21,28],[31,15],[7,83],[32,41],[-3,80]],[[7812,7234],[81,41],[80,-30],[30,15]],[[8043,7209],[97,-47],[27,-34],[-23,-34],[25,-32],[-24,-33],[-15,-69],[23,2],[31,20],[42,-2],[100,-19],[9,13],[20,-19],[16,-57]],[[3314,7250],[-67,-34],[5,-16],[-37,-17],[-83,12],[-46,-12],[-67,-2],[-21,-19],[-39,-13],[-42,-26],[-22,18],[-44,4],[-14,-25],[-23,1],[-50,20],[-46,2],[-43,15],[-53,-18]],[[2622,7140],[-23,32],[-35,29],[-3,13
 3]],[[2561,7334],[21,-7],[40,69],[71,169],[37,60]],[[2730,7625],[14,-5],[232,-23],[86,-25],[64,-10],[146,-59],[12,4],[30,-31]],[[3314,7476],[16,-27],[36,-15],[35,-29],[10,-27],[30,18]],[[3441,7396],[-22,-59],[-8,-44],[-48,-28],[-49,-15]],[[2128,9516],[62,62],[26,80],[50,21],[17,-1]],[[2283,9678],[58,-34],[16,-31],[83,-24],[80,-42]],[[2520,9547],[26,-39],[66,-45],[35,-7],[52,-29],[33,-5]],[[2732,9422],[-24,-95],[18,-130],[29,-167],[-42,-3],[-149,-1],[-34,-11],[-76,-44],[-67,1],[-101,23],[-46,-9]],[[2887,6671],[-84,-11],[-16,39],[7,21],[-43,17],[-36,-5],[-64,35],[-24,21],[0,25],[39,83],[-10,54],[-69,1]],[[2587,6951],[-18,76],[32,9],[21,34],[0,70]],[[3314,7250],[20,-121],[-14,-70],[-14,-9],[9,-54],[19,-15],[-7,-42]],[[946,1025],[14,-38],[-12,-13],[19,-40],[-31,0],[9,-76],[29,-78],[-12,-86],[14,-41],[-14,-26],[14,-22],[50,-22],[-2,-37]],[[1041,497],[-50,-20],[-99,-24],[-37,2],[-55,-18],[-81,-20],[-10,68],[-25,6],[-19,18],[-30,2],[0,-18],[-34,7],[10,21],[-6,60],[-13,45],[-31,69],[0,49],[
 -29,47],[-19,4],[-33,105],[-22,10],[-36,62],[34,31],[-22,85],[13,36],[39,-16],[22,12],[-1,24],[49,18],[29,-32],[40,14],[22,44],[24,15],[32,-58],[0,-37],[14,-53],[16,15],[57,35],[62,-39],[65,-54],[29,13]],[[3342,3381],[-32,-35],[-21,-10],[-51,2]],[[3238,3338],[18,55],[-25,48],[20,25],[-17,18],[-34,-29],[-34,11],[39,49],[-15,100],[-49,5],[-15,11],[-54,-28],[4,29],[26,50],[-26,12],[-19,37],[21,6],[-35,107]],[[3110,4017],[48,5],[3,39],[42,46],[43,34],[60,26],[-19,10],[-16,39],[-34,-6],[-24,10]],[[3213,4220],[35,5],[72,35],[3,-36],[62,-29],[16,-21],[24,2],[-3,-37],[39,37],[20,-66],[-4,-23]],[[3477,4087],[-6,3],[13,-87],[-14,-33],[3,-34],[21,2],[12,-41],[21,-10],[0,-42],[27,-11]],[[3554,3834],[16,-53],[-27,-16],[48,-140],[73,12],[19,-14]],[[3583,3578],[-73,-25],[-90,-52],[-78,-120]],[[6868,4812],[-104,51],[-53,9],[-50,-24]],[[6661,4848],[-28,52],[-26,23],[-8,61],[-15,0],[-16,34],[-76,103],[-66,115],[-13,-5],[-20,34]],[[6449,5604],[25,-26],[12,4],[19,-34],[25,-16],[69,32],[17,-30],[49,16],
 [-17,29],[42,27]],[[6690,5606],[26,-40],[-3,-24],[19,11],[32,-74],[15,6],[26,-63],[-26,-17],[32,-81],[15,5],[10,-26],[25,21],[23,-99],[80,-177],[23,-89]],[[6987,4959],[-119,-147]],[[7821,5715],[-36,-16],[-18,45],[-67,92]],[[7700,5836],[20,43],[-18,49],[-8,56],[-66,105],[-20,43],[-22,26],[-46,86],[-22,78],[-99,203],[-59,148]],[[7360,6673],[36,17],[42,2],[76,-13],[56,6]],[[6479,6172],[85,19],[-1,13]],[[6917,5846],[23,-50]],[[6940,5796],[-90,-56],[-176,-102],[16,-32]],[[6320,4685],[53,32],[82,31],[91,16],[51,28],[64,56]],[[6868,4812],[-4,-10],[42,-25],[58,-97],[-16,-14],[36,-27],[42,-79],[38,-21],[8,-38]],[[7072,4501],[-36,-16],[-81,-57],[-27,-30],[-50,-20],[-96,37],[-27,20],[-16,48],[2,42],[-11,17],[-57,-14],[-38,-40],[-61,-107],[-88,-84],[-23,-42],[-24,27],[-125,96],[-8,105],[-10,45],[-142,-28]],[[3558,7690],[-44,33],[-36,-60],[-24,-26],[-77,-12],[-29,-16],[-10,-55],[10,-20],[-11,-46],[-23,-12]],[[2730,7625],[22,25],[12,66],[-37,63],[-20,22],[-3,35],[-27,38],[137,39],[121,17],[117,7]
 ,[74,-2],[141,-19],[155,17],[58,14]],[[3480,7947],[45,-75],[14,-3]],[[5073,8840],[-46,58],[-42,43],[-16,29],[-45,33],[-32,60],[-26,31],[-1,61]],[[4865,9155],[14,64],[22,42],[42,30],[-35,39],[-35,-10],[-17,30],[-50,-10],[-58,26],[-10,42],[32,59],[-20,2],[-14,39],[-21,21],[18,56],[-4,25],[15,10]],[[4744,9620],[47,-40],[75,12],[102,-49],[101,-31],[75,5],[52,-27],[37,-64],[40,-40],[41,-83],[28,-73],[-16,3],[-31,-23],[-46,-98],[-49,-57],[-19,-59],[8,-64],[-13,-32],[-24,-1],[-65,-28],[-14,-31]],[[2512,2848],[-33,52],[-29,237],[56,25],[34,26],[14,35]],[[2554,3223],[6,34],[-26,27],[6,56],[-14,11],[32,10],[69,-12],[8,-13],[45,45]],[[2945,3400],[26,2],[67,-86],[-6,-22],[14,-13],[-5,-37],[10,-27],[24,-6]],[[3075,3211],[-28,-82],[-33,-34],[-17,-1],[-3,-104],[-27,-8]],[[3957,2629],[-57,75],[-55,55]],[[3845,2759],[5,8],[-48,30],[27,49],[-63,40],[-2,193]],[[4473,3193],[13,-23],[24,-76],[-25,-61],[-33,-54]],[[4452,2979],[-19,-33]],[[4433,2946],[-30,-26],[-43,-8],[-65,-36],[-55,-93],[17,-13],[-34,-4
 5],[5,-39]],[[4228,2686],[-15,-2]],[[4213,2684],[-145,26],[-15,-8],[11,-22],[-27,-9],[3,-17],[-34,3],[-34,-30],[-15,2]],[[4772,9129],[56,36],[37,-10]],[[5073,8840],[-12,-19],[-53,-52],[-23,-51],[-22,-125],[3,-34],[-10,-48],[38,-54],[14,-64],[-28,-74],[1,-43]],[[9334,7339],[-42,-60],[-45,-48],[-22,-39],[-95,-65]],[[8874,7706],[37,16],[22,59],[25,42],[81,33],[47,7],[12,16]],[[8798,6052],[-12,-4],[-135,1],[-94,13]],[[8557,6062],[47,25],[-23,65],[-16,64],[-27,32],[38,99],[-1,41],[26,58],[-20,34],[-43,49],[-29,89]],[[8523,6636],[13,-10],[154,34]],[[8690,6660],[29,13],[96,-40],[38,-33],[19,-45],[51,-40],[31,-6]],[[8954,6509],[57,-82],[24,-59],[-16,-68],[-4,-75],[26,-51]],[[9041,6174],[-52,-23],[-9,-40],[-36,4],[5,-45],[-12,-14],[-23,16],[-8,-30],[-39,-15],[-36,14],[-20,20],[-13,-9]],[[3480,7947],[-27,58],[-71,54],[-36,-3],[-28,30],[-31,123],[26,105],[-8,66],[6,23],[-3,61],[39,-10],[59,0],[38,-36],[-10,-58],[36,-9],[-12,-43],[28,-33],[53,-3],[104,95],[93,-13],[52,-21],[76,34],[58,3],[38,13
 ],[26,-14]],[[4379,9236],[51,16],[1,47],[-57,119],[-8,52],[-19,67]],[[4347,9537],[17,12],[31,56],[43,-20],[91,37],[33,24],[-78,20],[28,11],[42,35],[-26,17],[-14,-11],[-35,12],[-22,19],[29,64],[38,35],[70,-17],[35,19],[33,-1],[47,19],[3,-49],[-13,-77],[19,-68],[26,-54]],[[9435,6059],[-35,51],[-22,57],[-45,29]],[[9333,6196],[67,11],[33,47],[-3,74],[-14,49],[3,50],[-26,53],[2,53],[11,16],[-33,60],[-34,49],[-35,29],[-49,6],[-37,55],[-21,-27],[4,-23],[-67,2],[-23,47],[-28,81],[25,-2],[84,-36],[-60,80]],[[9132,6870],[92,-34],[6,-46],[15,-13],[64,-12],[-18,37],[68,-41],[36,-3],[56,17],[13,61]],[[9464,6836],[65,-8],[-4,-43],[51,40],[18,27],[48,-14],[17,-55],[40,-68],[73,81],[53,-10]],[[9825,6786],[-25,-27],[-14,-49],[-31,-21],[-19,-31],[-35,-29],[34,-61],[-2,-55],[-12,-51],[-114,-106],[6,-43],[46,-96],[-32,-61],[-65,-43],[-73,-39],[-54,-15]],[[4132,9073],[-17,7],[-35,47],[-53,52],[-29,3],[-63,38],[-21,19],[-74,2],[-19,10],[37,68],[15,41],[-28,8],[1,34],[-10,45],[4,36],[29,27],[14,40],[-12,5
 1],[-11,90],[40,-15],[40,-3],[20,15],[36,-9],[55,-33],[52,-18],[45,-41],[35,-14],[43,3],[51,-9],[70,-30]],[[3441,7396],[115,40],[59,53]],[[3615,7489],[52,-95],[26,-37],[28,-55],[69,-175],[-5,-52],[25,-13],[26,-46],[57,12],[80,-93]],[[2145,3496],[-15,-24],[-19,8],[2,-52],[27,-15],[14,-58],[-43,3],[-28,-10],[-8,-17],[-57,-15],[-53,-26]],[[3446,2777],[27,43],[4,52],[-14,71]],[[3463,2943],[10,22],[12,78],[64,-11],[-2,11],[107,1],[-1,29],[27,11],[-9,84],[35,-1],[1,26],[75,50]],[[3845,2759],[-7,-2],[-33,-87],[-26,-22],[18,-45],[-38,-89]],[[3759,2514],[-52,-10],[-15,19],[-36,-98],[-7,3],[-21,-63],[-31,-33],[-26,9]],[[3571,2341],[-20,31],[-54,4],[-16,23],[-35,9]],[[6940,5796],[29,-58],[-7,-3],[67,-134],[-6,-19],[47,-59],[30,-8],[43,-89],[51,-155],[54,-117]],[[7248,5154],[-261,-195]],[[3309,4639],[0,-8],[-66,-29],[20,-62],[-1,-39],[-106,-23],[-44,37],[-45,3],[-55,-21],[35,-90],[58,-17],[24,-15],[31,-1],[6,-47],[-32,-25],[57,-51],[0,-22],[22,-9]],[[8954,6509],[42,15],[53,66],[12,54],[-39,132]
 ,[8,63],[14,23]],[[9044,6862],[67,14],[21,-6]],[[9333,6196],[-40,-8],[-30,-20],[-51,45],[-12,-2],[-22,-95],[-10,-24],[-60,-3],[-67,85]],[[7360,6673],[-46,-8]],[[7140,6858],[19,57],[22,33],[7,32],[46,48],[41,26],[55,17],[31,18],[15,24],[126,33],[18,12],[-2,21],[41,20],[85,-16],[79,58],[30,17],[38,-22]],[[7791,7236],[21,-2]],[[1674,9252],[7,47],[-72,56],[-18,5],[-25,-36],[-28,35],[-1,26],[-56,56],[-13,-17],[-78,60],[-60,8],[-38,45],[-34,-28],[-90,-32],[21,83],[31,52],[19,54],[46,61],[12,59],[49,83],[27,22],[67,-46],[21,-24],[86,-39],[53,-73],[62,-19],[19,-23],[62,18],[24,-5],[26,-36],[29,-64],[38,-42],[29,-52]],[[2338,3407],[40,-30],[-10,-44],[16,-27],[35,3],[36,-21],[55,-62],[44,-3]],[[3476,4717],[99,-155],[98,-81],[18,-58]],[[3691,4423],[-119,-55],[8,-66],[-7,-26],[5,-61],[24,-34],[14,-50]],[[3616,4131],[-39,-42],[-88,-5],[-12,3]],[[7822,5598],[-94,-7],[3,-9],[-134,-40],[-54,-5],[-5,24],[14,18],[-18,14],[-68,9],[-69,-31]],[[7397,5571],[-21,55],[-39,-21],[-48,56],[-37,28],[14,19],[-3
 4,29],[-20,42],[-13,-4],[-19,27],[-51,103],[-6,22]],[[7486,6033],[43,31],[59,-62],[28,-50],[42,-40],[42,-76]],[[7791,7236],[13,23],[-12,35],[9,47],[-31,24],[-16,31],[-34,-8],[-28,28],[-42,99],[42,30],[48,19],[33,86],[32,11],[29,-24],[23,12],[-4,24],[15,23],[-11,14],[9,25],[-11,28],[76,28],[23,-3],[125,-126],[29,-21],[16,29],[28,11],[40,-61],[45,-31]],[[3075,3211],[24,74],[18,30],[36,19],[85,4]],[[3342,3381],[99,-321],[1,-69],[21,-48]],[[4048,1872],[16,24],[61,32],[-46,37],[-19,33],[-67,35],[3,17]],[[3996,2050],[7,38],[27,18],[93,-16],[5,-40],[28,17],[-19,14],[24,22],[2,25],[-16,22],[26,6],[-36,59]],[[4137,2215],[-19,22],[23,30],[52,-31],[16,-20],[18,28],[36,21],[46,-9]],[[4309,2256],[60,14],[67,8]],[[4436,2278],[12,-22],[4,-48],[37,-30],[-21,-24],[29,-68],[40,-27]],[[4537,2059],[-18,-18],[28,-19],[-33,-77],[-5,-32],[15,-3],[7,-81],[7,-2],[-20,-52],[-18,-11],[-48,-4],[-27,-15],[-63,59],[-12,49],[-63,-35],[-23,34],[-25,-12],[-13,18],[-34,-33],[-23,13],[-42,-11],[-33,21],[-6,-7],[-40,3
 1]],[[2881,2076],[-53,-19],[-10,40],[-47,-27],[-81,-18],[4,-27],[-47,-9]],[[2647,2016],[-5,39],[-30,-7],[-15,69],[20,15],[-38,12],[-33,66],[-19,-2],[8,58],[-19,0],[-6,53],[-24,-3],[-21,29]],[[9435,6059],[-13,5],[-19,-43],[-34,-33],[2,-22],[-31,-25],[-10,21],[-97,-60],[-26,-30],[7,-29],[-88,-22],[1,-7],[-137,-35],[-75,-27],[-113,-59],[5,22],[-19,97],[3,69],[21,103],[-14,68]],[[7248,5154],[46,-45],[85,-96]],[[7379,5013],[-23,-64],[-46,-86],[-15,-121],[-31,-61],[-115,-141],[-26,-19],[-51,-20]],[[2647,2016],[3,-16],[-35,-5],[-3,-21],[19,-6]],[[2631,1968],[-62,-15],[-28,-25],[-36,14],[-55,-35],[-58,-23],[-47,-26],[-55,-19]],[[2290,1839],[-83,-25]],[[2207,1814],[-19,49],[-25,-6],[-5,22],[-47,-11],[-15,30],[-57,-16],[-19,7]],[[2020,1889],[36,68],[39,33],[54,25],[60,61],[-36,58],[39,32],[61,69],[-19,32]],[[9044,6862],[7,39],[-7,21],[33,59]],[[9558,7153],[-11,-96],[-15,-40],[-39,-71],[-19,-49],[-10,-61]],[[946,1025],[9,-3],[47,48],[5,-10],[31,19],[45,9],[-8,10],[76,10],[9,-15],[63,19],[40,32
 ]],[[1263,1144],[19,-22],[17,-61],[40,-49],[15,-83],[52,-122]],[[8666,6946],[-16,-21],[41,-45],[17,-92],[-18,-128]],[[7397,5571],[-21,-14],[-24,-49],[-31,-27],[-13,-51],[12,-166],[-2,-123],[-70,13]],[[4436,2278],[53,26],[21,20],[6,28],[-28,58],[-3,34],[34,34],[37,23],[13,80],[50,41]],[[4619,2622],[99,-45],[82,0]],[[4800,2577],[19,-27],[13,23],[35,-15],[-12,-13],[43,-11],[-15,-113],[-14,-52],[-30,-28],[-12,-140],[-100,-1],[-10,12],[-62,-29],[-14,17],[-84,-120],[-20,-21]],[[9793,7240],[34,-35],[-41,-42],[31,-52],[5,-59],[32,-80],[16,3],[-37,-73],[7,-15],[34,-12],[38,8]],[[9912,6883],[-17,-60],[-70,-37]],[[3615,7489],[-14,10],[1,51],[-15,50],[-30,60],[1,30]],[[4436,2278],[-20,46],[-46,30],[-34,36]],[[4336,2390],[32,35],[16,45],[-15,67],[19,21],[-31,37],[24,16],[-37,25],[18,12],[-18,14],[-36,-26],[-49,57],[-31,-7]],[[4433,2946],[40,-42],[49,-29],[38,-67],[11,0],[18,-41],[-12,-15],[13,-18],[-30,-26],[59,-86]],[[3624,1805],[-23,60],[44,31],[-10,55],[-29,2],[-14,48],[26,12],[-11,70],[-39,1
 4],[17,47],[-37,7],[-18,42],[41,0],[2,46]],[[3573,2239],[40,-8],[43,-37],[18,23],[19,-19],[33,-7]],[[3726,2191],[18,-43],[68,15],[38,-63],[21,20],[40,-53],[28,31],[57,-48]],[[4048,1872],[-54,50],[-13,-48],[-98,-39],[-52,-6],[-92,-24],[-80,25],[-35,-25]],[[2113,1186],[-38,-23]],[[2075,1163],[-48,52],[-50,34],[-52,55],[-48,-32],[-43,14],[-84,-19],[2,-12],[-52,-22],[-28,-1],[0,-29]],[[1672,1203],[-70,41],[-8,13],[35,25],[-27,37]],[[1602,1319],[101,66],[50,29],[24,-26],[31,14],[-17,41],[126,48],[26,17],[13,35]],[[1956,1543],[30,25],[39,-35],[27,27],[28,1]],[[2080,1561],[-14,-34],[31,27],[64,-72],[58,6],[21,-6],[36,-29]],[[2276,1453],[-76,-87],[-32,-42],[-17,-44],[-54,-63],[16,-31]],[[3554,3834],[67,15],[74,86],[16,-25],[22,-2],[7,23],[-12,50]],[[3728,3981],[20,10],[53,-73],[30,13],[14,-20],[-1,-46],[14,-19],[45,12],[-3,-30],[24,1],[44,-41],[14,-53],[30,-8],[-9,-23],[29,-34],[11,-56],[24,-4]],[[2587,6951],[-123,3],[-152,-6],[-79,-32]],[[2180,7266],[100,-25],[45,1],[32,10],[118,110],[86,-
 28]],[[1263,1144],[22,24],[83,-12],[38,-27],[41,23],[-7,20],[-93,38],[-6,32],[34,-1],[8,29]],[[1383,1270],[76,21],[33,42]],[[1492,1333],[98,58],[12,-16],[-16,-35],[16,-21]],[[1672,1203],[14,-9],[-65,-57],[13,-28],[-17,-16],[-58,3],[5,-68],[27,1],[27,-67],[19,-16]],[[1461,1669],[-18,107],[18,24],[96,83],[62,25],[38,6],[60,-33],[17,-38],[45,9],[67,-57],[57,22]],[[1903,1817],[29,-67]],[[1932,1750],[-58,-30],[-19,-38],[-35,-24],[-39,-11],[5,-17],[-86,-51],[7,-16],[-55,-46],[-35,5],[-43,-19],[1,51],[-30,-16],[-21,-40]],[[1524,1498],[-27,-3],[-14,40],[12,36],[-38,26],[26,44],[-22,28]],[[2204,997],[-17,44],[15,42],[-30,-3],[-21,79],[20,28],[-29,11],[-29,-12]],[[2276,1453],[79,19]],[[2355,1472],[23,-57],[65,35],[12,18],[34,-25],[4,21],[41,-41]],[[2534,1423],[-18,-52],[0,-74],[-56,-98],[-73,-68],[-92,-35],[-91,-99]],[[7829,5555],[-58,10],[-56,-11],[-51,-50],[-36,-24],[-42,-16],[-51,-48],[-13,-39],[-14,-71],[-54,-121],[-16,-69],[-29,-66],[-30,-37]],[[2520,9547],[31,107],[8,51],[-8,47],[33,69]
 ,[2,44]],[[2586,9865],[69,-2],[115,13],[10,-46],[2,-104],[51,2],[3,-57],[-5,-79],[4,-33],[-29,-73],[-16,-56],[-58,-8]],[[4309,2256],[-35,40],[-46,9],[-50,25],[-55,4],[-65,35],[1,19],[-59,15],[-43,32],[-22,68],[15,11],[-16,31],[12,19],[-20,44],[31,21]],[[4213,2684],[3,-18],[-38,-51],[24,-36],[-43,-41],[16,-24],[34,26],[33,-98],[71,-21],[23,-31]],[[4137,2215],[-29,-12],[-39,0],[17,13],[8,34],[-24,4],[8,34],[-53,16],[-9,-42],[-89,21],[-21,-13],[8,37],[-80,8],[-39,23]],[[3795,2338],[15,24],[-13,7],[5,31],[-25,2],[2,105],[-20,7]],[[1932,1750],[17,-29]],[[1949,1721],[-12,-64],[12,-28],[-34,-27],[20,-40],[21,-19]],[[1492,1333],[-16,38],[14,31],[-36,37],[22,31],[48,28]],[[8627,7814],[-14,60],[-13,27],[29,27],[52,28],[65,10],[8,25],[40,16],[38,3],[58,-18],[14,24],[-25,16],[36,36]],[[4452,2979],[117,-15],[38,-10],[65,6],[5,-53],[22,-27],[24,12],[11,-50],[28,2],[9,-43],[35,20],[-3,-46],[48,-50],[-13,-69],[-30,-27],[-8,-52]],[[2739,1787],[-136,-65],[-12,2],[-48,-47],[-41,-55],[-32,20],[-20,37],
 [-20,-9],[-9,18],[-25,-33]],[[2396,1655],[-36,73],[-19,9],[-27,-18],[-9,26],[-15,94]],[[2631,1968],[39,-117],[55,-39],[14,-25]],[[2075,1163],[-40,-15],[-48,-7],[-38,5],[-35,-61],[-40,-16]],[[1383,1270],[9,19],[-14,40],[-61,-51],[-14,8],[10,33],[-19,17],[-47,-6],[-39,85],[-28,21],[71,60],[-12,38],[12,24],[55,41],[59,21],[30,-5],[43,11],[23,43]],[[3571,2341],[4,-14]],[[3575,2327],[-32,-12],[-8,-68],[-22,32],[-14,-8],[-14,35],[-20,-17],[20,-38],[-17,-11],[14,-31],[-58,-49],[29,-32],[-48,-23]],[[3405,2105],[-77,-37],[-6,-10],[-55,44],[7,28],[-19,18],[-17,47],[-66,-5]],[[1903,1817],[35,29],[56,16],[26,27]],[[2207,1814],[-13,-33],[6,-28],[-18,-9],[18,-44],[-17,-14],[-30,9],[-2,-40],[-49,-41],[33,-16],[-55,-37]],[[3726,2191],[19,61],[-6,48],[37,-3],[19,41]],[[8557,6062],[-174,21],[-15,32],[-34,30]],[[9940,7477],[35,-157],[24,-64],[-7,-55],[-19,-47],[5,-38],[-10,-49],[-20,-32],[-1,-39],[-13,-91],[-22,-22]],[[2396,1655],[-36,-44],[3,-42],[13,-7],[-8,-38],[-25,-2],[12,-50]],[[2283,9678],[27,4
 8],[35,-6],[-17,65],[59,44],[83,38],[-34,124],[43,8],[8,-88],[26,2],[11,-29],[62,-19]],[[5079,1831],[-109,38],[-38,3],[-69,-26],[-12,18],[23,49],[-16,9],[41,83],[5,39],[20,35],[24,-19],[21,37],[35,26],[5,28],[45,12],[-8,-35],[44,-10],[50,-52],[0,-13],[93,-5],[-21,-23],[-53,-77],[-27,14],[-53,-131]],[[2739,1787],[10,-51],[-62,-25],[-29,-41],[-7,-73],[-57,-55],[-46,-81],[-14,-38]],[[2204,997],[-16,-10],[-235,-106]],[[3575,2327],[7,-12],[-9,-76]],[[3624,1805],[-24,-16],[-32,-79],[-48,197],[-23,-8],[11,62],[-19,49],[-16,-8],[-31,40],[-37,63]],[[3616,4131],[9,-30],[31,-5],[12,28],[53,-6]],[[3721,4118],[-14,-119],[21,-18]],[[3691,4423],[18,-70],[22,-155],[-10,-80]]],"transform":{"scale":[0.0526131100746408,-0.048004800480048],"translate":[216.9607561818333,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/sz-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/sz-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/sz-municipalities.json
deleted file mode 100644
index 1778229..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/sz-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":1301,"properties":{"name":"Einsiedeln"},"arcs":[[[8,9,10,11,12,13,14,15,16,17]]]},{"type":"MultiPolygon","id":1311,"properties":{"name":"Gersau"},"arcs":[[[-38,55,56,57]]]},{"type":"MultiPolygon","id":1321,"properties":{"name":"Feusisberg"},"arcs":[[[-14,67,68,-65]]]},{"type":"MultiPolygon","id":1322,"properties":{"name":"Freienbach"},"arcs":[[[-15,64,65,66,-52]]]},{"type":"MultiPolygon","id":1323,"properties":{"name":"Wollerau"},"arcs":[[[-69,86,-66]]]},{"type":"MultiPolygon","id":1331,"properties":{"name":"Küssnacht (SZ)"},"arcs":[[[39,-34]]]},{"type":"MultiPolygon","id":1341,"properties":{"name":"Altendorf"},"arcs":[[[-16,51,52,53,54,-50]]]},{"type":"MultiPolygon","id":1342,"properties":{"name":"Galgenen"},"arcs":[[[-51,-55,76,77,-44]]]},{"type":"MultiPolygon","id":1343,"properties":{"name":"Innerthal"},"arcs":[[[-7,28,-18,29,30,31]]]},{"type":"MultiPolygon","id"
 :1344,"properties":{"name":"Lachen"},"arcs":[[[-54,87,-83,-77]]]},{"type":"MultiPolygon","id":1345,"properties":{"name":"Reichenburg"},"arcs":[[[-48,80]]]},{"type":"MultiPolygon","id":1346,"properties":{"name":"Schübelbach"},"arcs":[[[-31,42,43,44,45,46,47,48]]]},{"type":"MultiPolygon","id":1347,"properties":{"name":"Tuggen"},"arcs":[[[-46,74,75]]]},{"type":"MultiPolygon","id":1348,"properties":{"name":"Vorderthal"},"arcs":[[[-17,49,50,-43,-30]]]},{"type":"MultiPolygon","id":1349,"properties":{"name":"Wangen (SZ)"},"arcs":[[[-78,82,83,-75,-45]]]},{"type":"MultiPolygon","id":1361,"properties":{"name":"Alpthal"},"arcs":[[[-42,-23,61,-11]]]},{"type":"MultiPolygon","id":1362,"properties":{"name":"Arth"},"arcs":[[[32,33,34,35,36,37]]]},{"type":"MultiPolygon","id":1363,"properties":{"name":"Illgau"},"arcs":[[[-4,-25,-41]]]},{"type":"MultiPolygon","id":1364,"properties":{"name":"Ingenbohl"},"arcs":[[[-57,72,-28,-27,-59,73]]]},{"type":"MultiPolygon","id":1365,"properties":{"name":"Lauerz"}
 ,"arcs":[[[-56,-37,84,-79,-19,-73]]]},{"type":"MultiPolygon","id":1366,"properties":{"name":"Morschach"},"arcs":[[[58,-26,-2,59,60]]]},{"type":"MultiPolygon","id":1367,"properties":{"name":"Muotathal"},"arcs":[[[0,1,2,3,4,5,6,7]]]},{"type":"MultiPolygon","id":1368,"properties":{"name":"Oberiberg"},"arcs":[[[-5,40,-24,41,-10,-39]]]},{"type":"MultiPolygon","id":1369,"properties":{"name":"Riemenstalden"},"arcs":[[[81,-60,-1]]]},{"type":"MultiPolygon","id":1370,"properties":{"name":"Rothenthurm"},"arcs":[[[-62,-22,62,63,-12]]]},{"type":"MultiPolygon","id":1371,"properties":{"name":"Sattel"},"arcs":[[[69,70,71,-63,-21]]]},{"type":"MultiPolygon","id":1372,"properties":{"name":"Schwyz"},"arcs":[[[18,19,20,21,22,23,24,-3,25,26,27]]]},{"type":"MultiPolygon","id":1373,"properties":{"name":"Steinen"},"arcs":[[[78,79,-70,-20]]]},{"type":"MultiPolygon","id":1374,"properties":{"name":"Steinerberg"},"arcs":[[[-36,85,-71,-80,-85]]]},{"type":"MultiPolygon","id":1375,"properties":{"name":"Unteriberg"
 },"arcs":[[[-6,38,-9,-29]]]}]}},"arcs":[[[5605,1215],[-53,33],[-18,34],[-55,28],[-14,-5],[-80,39],[-11,45],[-3,127],[3,47],[-7,132],[13,89],[-31,160],[-39,-1],[-68,50],[-18,4],[-25,-14],[-37,3],[-46,14],[-53,38],[-26,-4],[-41,19],[-34,5],[-7,21]],[[4955,2079],[11,67],[11,22],[4,44],[18,48],[32,52],[12,42],[-5,28],[5,140],[25,25],[-40,97],[-18,12],[-32,-12],[-25,20],[-63,-5],[-12,-21],[-36,-18],[-35,-46],[-19,-12],[4,42],[-13,20],[6,28],[-8,27],[-30,51],[-25,4],[4,37],[-11,17],[-3,48],[14,48],[-38,-8],[-55,6],[-27,18],[-30,4]],[[4576,2904],[0,24],[18,37],[22,24],[10,27],[24,23],[-9,40],[42,-8],[18,52],[-5,26],[49,80],[27,15],[21,-34],[61,18],[15,-6],[34,25],[35,37],[39,-7],[37,13]],[[5014,3290],[34,-24],[48,-8],[51,-25],[63,2],[53,-5],[55,-34],[33,-81],[25,-33],[21,-10],[33,-41],[15,-32],[45,-19],[18,-29],[40,-31],[54,8],[0,9],[43,40],[20,2],[76,-47],[45,1],[11,-22],[39,-14],[44,2],[52,-15],[61,8],[14,9],[46,-5],[19,27],[27,1],[33,83],[23,6],[36,33],[45,4],[14,29],[53,18],[-40,54],[1
 2,32],[28,19],[49,14]],[[6352,3216],[52,11],[34,17],[125,40],[39,-3],[48,33],[7,16],[58,34],[42,5],[42,-5],[30,20],[21,-8],[50,3],[17,23],[43,2],[41,19],[31,25],[68,-11],[20,-13],[101,47],[20,29],[28,7],[43,50],[47,33]],[[7359,3590],[72,1],[21,-27],[56,-18],[15,-39],[21,-12],[45,-8],[55,12],[30,18],[7,36],[16,30],[18,58],[23,27],[9,63],[18,40],[2,51],[22,36],[0,24],[23,44],[18,14],[-5,38],[9,37],[56,91],[12,41],[2,68]],[[7904,4215],[39,-2],[30,-40],[27,7],[39,-37],[29,-43],[34,-21],[38,-41],[44,-22],[76,11],[18,18]],[[8278,4045],[27,6],[23,-16],[35,13],[26,-13],[62,-55],[83,-44],[12,-42],[-7,-40],[10,-73],[5,-72],[16,-24],[52,-33],[24,-46],[1,-75],[36,-59],[30,-37],[6,36],[23,-6],[9,-21],[41,-43],[44,-36],[29,-52],[21,-64],[17,-77],[27,-24],[-1,-22],[25,-25],[16,7],[2,-26],[19,-41],[14,25],[50,4],[0,-56],[-7,-27],[-20,-15],[-124,-61],[27,-42],[201,-403],[52,63],[12,-16],[-17,-11],[20,-12],[3,-24],[49,-37],[17,-52],[56,-52],[66,-19],[30,-18],[36,2],[49,-36],[39,-2],[16,10],[-8,-45],[
 -49,-32],[-11,7],[-19,-35],[-23,-13],[-8,-26],[-22,-15],[-16,-58],[-5,-73],[6,-9],[-10,-80],[-20,-14],[-11,-46],[-18,-30],[-24,-101],[0,-24],[-21,-36],[12,-61],[29,-29],[12,-37],[-28,1],[5,-16],[49,-86],[17,14],[30,-18],[26,-70],[-14,-54],[-14,-13],[-25,4],[-23,-14],[-29,4],[-7,-18],[-46,12],[-26,-29],[-42,7],[-34,-1],[-2,-25],[-26,-28],[-34,-15],[-25,-34],[-39,10],[-19,-14],[-6,-24],[-15,1],[-5,-23],[-26,-5],[-22,-30],[-17,3],[-31,-35],[-21,-10],[-92,-81],[-29,9],[-21,-24],[-8,-38],[-27,14],[-36,-38],[-8,-24],[-29,-28],[-11,7],[-48,-18],[-1,-18],[-26,-43],[-38,-6],[3,-32],[-36,28],[-40,-11],[-65,-54],[8,-15],[-6,-35],[-47,-5],[-12,-46],[-17,-9],[-37,7],[-82,-20],[-56,-47],[-15,-51],[-24,-36],[-107,-90],[-49,-15],[-3,-13],[-44,2],[-31,23],[-48,3],[-41,-15],[17,-25],[-17,-23],[6,-41],[-49,-74],[-40,-19],[-25,-59],[8,-27],[-26,-10],[-60,81],[-30,84],[-2,58],[10,66],[10,144],[-16,72],[5,35],[-6,53],[15,80],[3,73],[-13,66],[-28,29],[-15,-49],[-32,-23],[-25,-58],[-48,-33],[-58,-22],[-14,
 62],[-30,50],[-58,154],[-24,37],[-14,40],[-6,92],[20,14],[16,36],[-22,28],[4,44],[14,44],[6,74],[-5,33],[-19,36],[-24,25],[-8,61],[-93,13],[-18,34],[-96,35],[-59,83],[-30,-38],[-59,-47],[-30,-8],[-87,-52],[-28,-36],[2,-25],[-30,-46],[-42,-45],[3,-26],[-68,-16],[-30,20],[-65,25],[-14,15],[-31,1],[-23,18],[-60,152],[2,43],[-59,51],[-36,-35],[-35,-7],[-9,-25],[-29,-27],[-32,-2],[-40,-33],[-13,8],[-35,-38],[-10,9],[-113,-87],[-54,46],[-14,-4],[7,-29],[-17,-42],[-37,-25],[-18,20],[-26,-29],[-17,21],[-23,-12],[-17,-53],[-54,-17],[-18,-40],[-48,-1],[6,-22]],[[8113,5522],[-27,33],[-37,16],[-42,-16],[-16,3],[-63,-23],[-15,-30],[-33,-31],[-31,-7],[-87,-1],[-60,21],[-11,-7],[-102,22],[-98,133],[-159,66],[-4,-21],[-73,62],[-35,-11],[-135,24],[-101,13],[-24,-4],[-31,-32],[-14,-30],[-38,0],[-27,-33],[-47,-25],[-34,10],[-24,22],[-19,0],[-38,-22],[-75,-6],[-17,-40],[-24,-4],[-41,34],[-43,21],[-26,-1],[-34,-16],[-28,6],[-42,28],[-39,0],[-36,-9],[0,35],[-16,24],[-51,3],[-51,25],[-21,-54],[-15,-21],[-
 11,-99],[-13,-65],[-15,-27],[-10,-45]],[[6080,5443],[-27,-45],[-41,-37],[-27,-61],[-53,-41],[-38,-8],[-43,1],[-42,12]],[[5809,5264],[-8,42],[-23,47],[-33,36],[-12,32],[17,59],[5,40],[-23,113],[-24,26],[-6,78],[-14,48],[-167,47],[-44,15],[-20,-2],[1,36],[-15,61],[-2,39],[-33,9],[-13,18],[-34,23],[-57,-6],[-78,16],[-34,0],[-8,28]],[[5184,6069],[0,11],[-32,22],[6,41],[-10,34],[-17,15],[-7,35],[9,15],[-19,24],[-17,63],[15,57],[-8,76],[12,73],[23,30],[22,49],[16,57],[25,24],[55,130],[-26,25],[-44,296],[7,58],[-16,32],[-52,51],[-19,51],[-62,34],[-61,-31],[-26,19],[-20,53],[-35,-17],[-46,-6],[-15,10]],[[4842,7400],[5,27],[-36,9],[-18,75],[9,56],[13,8],[43,111],[30,37],[6,20],[28,5],[18,30],[30,17],[9,17],[26,8],[15,-23],[11,29],[34,14]],[[5065,7840],[76,-10],[-1,29],[52,1],[31,35],[22,-8],[11,16],[31,-18],[24,9],[43,-25],[22,42],[25,17],[26,62],[22,19],[9,58],[22,36],[23,20],[17,34],[1,84],[14,64],[92,10],[28,-43],[34,6],[48,-17],[34,11],[43,44],[53,7],[31,20],[43,11],[-6,73],[20,21],[-5,3
 6],[23,-19],[10,71],[23,19],[-1,33],[46,66],[48,20],[32,-19],[33,12],[20,-19],[32,-116]],[[6216,8532],[4,-3],[346,16]],[[6566,8545],[53,-49],[40,-18],[-9,-23],[18,-67],[76,-54],[55,-7],[34,-22],[6,-45],[24,-84],[5,-101],[53,11],[55,-40],[11,-26],[15,-1],[28,-44],[-6,-23],[6,-38],[-28,-11],[29,-96],[31,-53],[29,-22],[3,-25],[41,-25],[25,-43],[38,-30],[33,36],[54,-22],[15,-19],[51,-8],[-4,-27],[-15,-23],[15,-8],[-6,-53],[-11,-22],[-36,-30],[-18,25],[-13,-17],[-13,9],[-46,-28],[-11,-26],[47,-80],[-7,-14],[19,-43],[35,-14],[1,22],[32,21],[45,1]],[[7365,7289],[1,-14],[62,-49],[14,-21],[5,-40],[17,-46],[1,-37],[-40,-81],[-47,-32],[2,-67],[-5,-30],[35,-16],[53,-6],[36,-68],[93,-80],[30,-8],[14,-19],[-9,-92],[16,-9],[26,-42],[10,-36],[17,-12],[56,-67],[60,-25]],[[7812,6392],[-17,-52],[17,-158],[31,-53],[20,-69],[14,-18],[15,-47],[51,-16],[19,-16],[20,-82],[35,-80],[2,-22],[61,-41],[9,-54],[27,-14],[4,-71],[-10,-31],[3,-46]],[[3547,3877],[-25,58],[-7,37],[53,28],[-4,24],[7,42],[21,-7],[2,32]
 ,[-11,-2],[-15,34]],[[3568,4123],[158,276],[-9,35],[14,14],[64,14],[51,75],[7,51],[36,0],[19,42],[-21,13],[15,47],[23,14],[-5,26],[9,79],[32,2],[0,48],[51,50],[-17,7],[26,60],[6,34],[21,20],[42,55],[9,47]],[[4099,5132],[22,25],[42,25],[8,23],[21,7],[28,51],[12,-50],[25,31],[-3,40],[29,7],[29,22],[-5,-28],[53,-39],[28,-10],[22,10],[18,-12],[30,9],[10,-12],[54,-18],[21,25],[-21,39],[1,24],[39,-34],[18,-46],[16,-72],[1,-48],[8,4]],[[4605,5105],[14,-8],[40,-70],[18,2],[55,-27],[46,4],[36,54],[30,18],[25,28]],[[4869,5106],[9,-21],[32,-126],[53,-38],[-57,-46],[55,-42],[19,-1],[16,-24],[-12,-55],[23,-57],[-19,-24],[-13,-41],[8,-30],[-46,-18],[-15,-36],[0,-36],[18,-20],[7,-38],[19,-29],[23,-10],[16,-47],[-12,-11],[14,-54],[-15,-63],[7,-38],[27,-5],[50,11],[40,-13],[45,-36],[25,-115],[43,-19],[26,8],[57,0],[152,46],[47,0],[41,34],[-20,44],[-4,37],[-22,57],[12,57],[42,66],[0,35],[53,65],[14,37]],[[5627,4510],[182,-275],[58,-72],[39,-59],[11,10],[21,-41],[5,-42],[138,-171],[5,-20],[52,-69],[12
 ,-61],[35,-39],[24,-78],[104,-37],[80,-180],[-41,-54]],[[6352,3322],[-75,89],[-28,9],[-49,55],[-23,46],[14,19],[-54,22],[-29,29],[-36,13],[-35,1],[-19,39],[-31,33],[-38,17],[-6,-30],[-77,-82],[-33,-88],[-42,1],[-36,16],[-14,-13],[-53,20],[-33,-7],[-42,11],[-25,-8],[-61,-3],[-32,22],[-32,-6],[-79,24],[-63,-12],[-23,6],[-43,-45],[-12,-2],[22,-56],[-61,-4],[-11,-23],[-97,16],[-18,-3],[-48,-54],[-33,-57],[2,-28],[15,1]],[[4576,2904],[-50,-4],[-320,13],[8,30],[-3,44],[-29,30],[-3,22],[17,29],[-11,30],[-51,-1],[-4,40],[19,30],[-12,9],[-71,-24],[15,39],[-18,10]],[[4063,3201],[-21,34],[17,9],[21,70],[45,49],[-8,7]],[[4117,3370],[39,27],[-21,54],[-15,-14],[-27,78],[-24,-27],[-77,117],[-30,-16],[-3,62],[-18,3],[-3,37],[-40,0],[-120,-31],[-10,11],[15,31],[43,22],[-19,52],[26,28],[-10,24],[-13,-10],[-21,38],[-27,-22],[3,17],[-25,22],[-17,-3],[-38,50],[-7,-5],[-23,36],[-12,-25],[-55,-54],[-41,5]],[[7904,4215],[-9,47],[22,65],[-1,18],[24,15],[69,87],[10,27],[37,41],[6,42],[-30,123],[0,51],[23,26]
 ,[43,77],[-6,10],[35,33],[14,48],[-7,80],[29,66],[-10,41],[11,70],[-84,45],[-8,24],[9,18],[-12,32],[-75,43],[47,56],[58,35],[5,60],[9,27]],[[7812,6392],[45,19],[30,95],[19,19],[10,42],[19,20],[3,42],[-21,18],[53,45],[-15,11],[12,17],[31,-5],[51,13],[18,24],[40,-4],[-2,-34],[44,-33],[87,-33],[6,-23],[64,-18],[24,-44],[60,22],[-17,28],[12,30],[15,71],[37,-5],[83,-24],[60,11],[32,-28],[44,25],[21,42],[29,12],[14,-8],[43,3],[15,-53],[62,-26],[31,12],[32,-12],[8,-19],[30,15],[16,40],[7,75],[-4,35],[-26,40],[47,78],[47,-2],[15,47]],[[9043,6972],[21,-18],[26,-60],[19,-15],[5,-40],[30,-79],[63,-26],[56,9],[61,36],[60,10],[34,-1],[48,27],[43,52],[12,6]],[[9521,6873],[-9,-38],[-17,-31],[-18,-10],[4,-72],[-28,-47],[26,-61],[6,-50],[-8,-28],[-53,-34],[-46,-18],[-27,-32],[-51,-27],[-25,-70],[-14,-7],[-7,-54],[-26,-40],[-16,-8],[-3,-82],[12,-25],[32,2],[12,-26],[58,-6],[61,-38],[67,-30],[78,-7],[13,-19],[17,4],[13,-18],[-43,-35],[-59,-60],[-25,-33],[-27,-3],[6,-48],[-26,-49],[-46,-51],[-23,-8],[2
 2,-44],[-8,-67],[4,-34],[-10,-22],[-19,3],[-15,-26],[-16,-67],[-25,-49],[-33,-23],[-29,-90],[1,-25],[-25,-23],[-11,-78],[-17,-46],[9,-44],[-14,-41],[4,-43],[-13,-85],[-15,-12],[-28,4],[-5,-12],[-68,-34],[-37,-59],[-3,-25],[-24,-35],[-57,-36],[-46,-14],[-97,-71],[-17,-29],[-24,-17],[-63,-11],[-4,11],[-42,5],[-12,42],[-42,-21],[-43,12],[-27,-14],[-26,-26],[-35,9],[-46,-39],[-9,-32],[5,-69],[9,-21],[-8,-39],[39,-69],[9,-72],[-46,-34],[-47,-9],[-41,-17],[-1,-40],[-37,-11],[32,-80]],[[2051,3943],[-56,54],[-33,17],[-51,8],[-31,-11],[-42,17],[-31,70],[-21,18],[-15,35],[-34,7],[-46,62],[-21,18],[-12,47],[-24,31],[-31,17],[-43,85],[-36,20],[-45,41],[-149,218],[-25,22],[-57,5]],[[1248,4724],[31,12],[42,60],[33,31],[40,59],[20,41],[32,-6],[70,14],[72,48],[-2,95],[-8,50],[-21,75],[-2,48],[-21,91],[-1,64],[10,19],[-3,36],[12,32],[37,43],[12,46],[2,54],[332,479]],[[1935,6115],[229,-141],[22,16],[18,-5],[19,37],[76,4],[89,15],[12,-9],[57,7],[73,75],[31,-5],[15,-17],[24,-1],[65,11],[54,-16],[39,16]
 ,[68,-4],[18,-53],[5,-90],[18,-66],[-23,-49],[-15,-65],[15,-33]],[[2844,5742],[-1,-40],[19,-83],[8,-84],[-6,-63],[33,-15],[7,-75],[36,-16],[6,-42],[-7,-17],[4,-78],[35,-63],[-3,-30],[11,-19],[-5,-73],[15,-3],[8,-41],[22,-16],[5,-40],[24,-17],[21,-49],[-5,-57],[8,-37],[-4,-76],[18,-16],[37,-11]],[[3130,4681],[-1,-136],[-18,3],[-5,-32],[-21,-1],[-45,-50],[-26,-60],[-81,-36],[-14,-23],[-9,-71],[0,-43],[15,-40],[11,-69],[-21,-36],[-24,-20],[-33,-80],[-17,-18],[-28,6],[-46,-7],[-27,11],[-43,36],[-57,-40]],[[2640,3975],[-35,2],[-30,28],[-27,13],[-47,-18],[-35,8],[-43,28],[-38,0],[-56,24],[-22,23],[-23,-6],[-75,22],[-12,18],[-53,11],[-39,-59],[-40,-38],[-1,-38],[-13,-9],[11,-22],[-11,-19]],[[7359,3590],[4,34],[-28,109],[18,31],[3,27],[21,20],[27,67],[-21,39],[12,129],[-6,47],[10,19],[-21,16],[-6,23],[5,66],[-7,64],[11,18],[8,45],[36,54],[15,54],[-148,-30],[-64,-30],[-31,-10],[-28,5],[-21,-10],[-23,6],[-30,-30],[-3,-95],[-8,-94],[-25,-116],[-34,-44],[11,-8],[-49,-58],[-34,-34],[-25,-53],[-1
 1,13],[-32,-2],[-2,-28],[-19,-12],[-7,-98],[-49,-26],[-145,-134],[-20,14],[2,36],[-56,52],[7,12],[-23,19],[12,14],[14,115],[14,11],[-5,39],[42,25],[3,53],[27,16],[6,28],[66,26],[-4,54],[-41,93],[18,39],[-4,168],[5,51],[14,43],[-77,42],[-10,25],[-8,54],[17,38],[-1,31],[19,16],[-7,72],[19,31],[-6,77],[4,46],[16,53],[-15,8],[-114,-6],[-7,20],[-15,-10],[-3,33],[-65,-16],[-37,-45],[-28,-12],[-29,19],[-37,97],[3,32],[-37,23],[-24,39],[-6,51],[-71,78],[-24,72],[4,40],[-27,15],[-54,19],[-40,29]],[[1248,4724],[-186,199],[-63,47],[-64,41],[-24,29],[26,33],[-76,80],[-33,19],[-48,-9],[-21,16],[-18,-3],[-8,27],[-27,19],[-28,-2],[-504,-185],[-19,15],[-95,23],[-29,15],[4,30],[-12,29],[-9,131],[-14,60],[12,29],[52,47],[34,13],[15,35],[39,43],[23,0],[94,99],[17,10],[9,55],[32,49],[2,69],[24,37],[-11,19],[-6,58],[-9,11],[15,56],[-15,32],[12,49],[76,84],[64,123],[35,46],[55,57],[67,28],[50,32],[42,3],[20,20],[34,-7],[6,14],[-17,26],[6,39],[46,53],[15,-2],[17,25],[49,1],[45,-10],[15,9],[10,59],[12,32],
 [49,-13],[63,-32],[7,-14],[32,22],[10,-35],[28,6],[-3,-21],[57,-12],[92,54],[11,-31],[35,17],[32,-26],[1,-100],[15,-54],[520,-327]],[[6352,3216],[0,106]],[[5627,4510],[18,42],[8,63],[-11,48],[7,37],[34,29],[-18,62],[-17,87],[12,71],[-3,64],[22,17],[12,40],[29,39],[54,54],[-3,22],[14,43],[24,36]],[[9043,6972],[-21,42],[-8,105],[-9,21],[-3,53],[10,39],[-18,20],[0,24],[-23,29],[-19,1],[-37,37],[-66,21],[-16,23],[-30,10],[-5,34],[-24,23],[6,18],[-24,12],[-15,-15],[-26,10],[-21,51],[-28,18],[-16,-3],[-10,25],[-31,-7],[-35,39],[-25,-5],[-27,25],[-12,-16],[-34,17],[-11,27],[-16,-11],[-30,9],[-23,-34],[-29,-5],[-33,14],[-28,40],[-28,4],[2,18],[-27,23],[0,40],[9,36],[-20,42],[4,59]],[[8246,7885],[8,57],[-6,24],[6,61],[-28,65],[-9,60],[-30,46],[1,49],[-32,52],[-1,18],[19,45],[41,34],[13,42],[35,7],[13,16],[12,60],[-10,31],[-52,85]],[[8226,8637],[20,42],[66,45],[6,38],[17,-5],[29,30],[9,35],[33,48],[15,62],[18,-7],[9,21]],[[8448,8946],[74,-29],[32,123],[73,-36],[59,-34],[92,-61],[70,-28],[63,-
 9],[111,4],[264,34],[11,3]],[[9297,8913],[-7,-41],[10,-91],[137,-16]],[[9437,8765],[40,1],[3,-81],[-37,11],[-6,-42],[-29,6],[0,-54],[-9,2],[-9,-53],[-17,4],[1,-22],[-94,-44],[-34,7],[-16,-15],[-12,-75],[-29,-56],[-16,-47],[5,-61],[-2,-78],[13,-31],[-7,-103],[-27,12],[-45,-3],[-22,-28],[8,-54],[-19,-64],[-12,-113],[43,-55],[51,-46],[9,-20],[33,-27],[40,11],[32,-15],[13,-29],[30,-28],[11,5],[29,-21],[20,-39],[32,-9]],[[9408,7511],[34,-63],[-20,-28],[17,-101],[-12,-17],[-9,-88],[-23,-52],[-14,-102],[31,-68],[49,-27],[29,-3],[18,-37],[13,-52]],[[7365,7289],[21,40],[50,37],[25,28],[-21,10],[-44,42],[5,49],[18,13],[2,48],[21,1],[4,25],[39,52],[29,10],[48,37]],[[7562,7681],[32,45],[99,83],[39,22],[33,10],[50,34],[40,-9],[73,6],[43,-9],[92,-51],[18,40],[40,-8],[16,53],[-3,19],[50,-4],[16,-17],[46,-10]],[[6566,8545],[29,25],[14,28],[5,75],[52,34],[12,17],[14,58],[-12,36],[-18,15],[-18,43],[7,31],[-13,70],[22,36],[-25,82],[20,39],[4,30],[30,43],[-3,27],[12,21],[58,23],[-34,60],[6,54],[187,373
 ]],[[6915,9765],[46,-43],[62,-43],[62,-35],[44,-19],[79,-24],[90,-12]],[[7298,9589],[67,-492],[24,-45],[24,-19],[3,-73],[56,-4],[18,-26],[58,-7],[40,-21]],[[7588,8902],[-20,-75],[4,-72],[22,-97],[-2,-100],[-4,-25],[-26,-6],[-11,-21],[15,-33],[-34,-20],[4,-32],[-18,-16],[1,-53],[-11,-36],[-30,-15],[-9,-59],[-4,-98],[18,-44],[-14,-30],[4,-30],[-19,-33],[-6,-105],[-8,-48],[51,-32],[14,-33],[57,-108]],[[2640,3975],[28,-67],[-12,-27],[6,-19],[41,-34],[42,-134],[31,-46],[37,-33]],[[2813,3615],[-36,-24],[-43,-63],[-9,-63],[-36,-57],[-19,-16],[-26,-51],[14,-22],[-18,-30],[3,-40],[39,-43],[40,-16],[11,-49],[37,-51],[77,-177]],[[2847,2913],[-305,-214],[-383,0],[-370,-107],[-515,225],[44,365],[90,-28],[29,13],[63,10],[33,16],[30,0],[122,75],[28,3],[40,38],[96,13],[44,67],[27,20],[63,22],[4,27],[27,21],[-7,19],[12,68],[16,28],[20,77],[-3,107],[9,40],[-2,76],[-8,49]],[[3545,2800],[125,17],[17,-3],[41,12],[7,29],[-6,78],[-29,62],[5,22],[35,32],[73,28],[9,26],[41,13],[24,-3],[0,24],[18,-3],[6,-36]
 ,[55,39],[12,24],[55,32],[30,8]],[[4955,2079],[-24,-20],[-35,-2],[-37,31],[-30,-21],[-17,-25],[-33,3],[-64,31],[-77,-23],[-36,25],[-38,-18],[-39,8],[-39,16],[-5,-7],[-41,23],[-49,47],[-62,68],[-25,-10],[-17,-57],[-19,-37],[-70,-86],[-10,-5],[4,-36],[-20,-58],[-23,-20],[-11,-49],[-52,-14]],[[4086,1843],[-68,-2],[-9,10],[-43,1],[-31,-11],[-1,29],[-59,49],[-21,6],[-27,-7],[-268,-22],[-20,494],[-40,198],[46,212]],[[4869,5106],[-9,35],[29,27],[11,23],[-4,33],[14,37],[54,58],[17,36],[-1,31],[-19,71],[4,71],[17,104],[46,95],[6,22],[-35,161],[7,67],[-8,61],[94,8],[61,25],[31,-2]],[[4605,5105],[-3,29],[11,44],[-5,48],[-29,65],[-4,51],[-20,44],[-37,33],[51,93],[21,102],[-10,47],[-57,80],[-29,79],[-27,0],[-16,14],[-13,39],[-39,-5],[-41,60],[10,11],[-14,92],[-13,22],[9,19],[-9,83],[14,44],[-14,109],[-48,64],[-55,40]],[[4238,6412],[71,131],[31,22],[39,50],[27,21],[13,29],[-14,84],[48,16],[43,-5],[27,21],[73,5],[-9,32],[17,-1],[-22,68],[23,3],[7,37],[47,23],[12,35],[24,0],[-8,46],[24,20],[49,14],
 [9,26],[-1,49],[14,40],[24,30],[-12,25],[24,1],[9,15],[-25,16],[8,14],[-11,26],[26,50],[24,-10],[-19,41],[12,14]],[[6216,8532],[16,7],[-13,23],[38,49],[30,24],[4,30],[34,51],[19,8],[50,62],[44,29],[8,43],[-31,18],[-12,-19],[-21,0],[-38,23],[-123,58],[-13,-4],[-22,24],[9,25],[-40,-2],[-23,15],[8,62],[-14,23],[-31,-2],[-36,11],[0,-12],[-41,-12],[-80,2],[-42,-10],[2,51],[-37,28],[1,10],[-67,-18],[-90,-36],[-51,-33],[-13,0],[-72,-39],[-123,-72],[-27,-6],[-10,-21]],[[5409,8922],[-19,41],[10,10],[8,44],[-10,18],[23,10],[0,18],[-26,1],[6,33],[25,5],[2,78],[-7,13],[27,13],[10,37],[13,12],[4,31],[-31,19],[-22,27],[-51,120]],[[5371,9452],[314,204],[23,8],[567,219],[262,116],[220,-61],[28,-6],[53,-80],[77,-87]],[[5065,7840],[-36,45],[-8,37],[11,38],[-19,52],[0,61],[-24,21],[1,30],[-16,70],[-59,13],[-4,98]],[[4911,8305],[16,142],[14,81],[29,-19],[5,26],[24,0],[21,26],[-5,43],[56,40],[20,44],[9,43],[-37,14],[-26,-7],[-33,56],[17,1],[0,25],[180,-24],[-7,31],[3,49],[23,38],[62,-8],[22,-21],[22,41]
 ,[32,-10],[15,-16],[36,22]],[[4099,5132],[-21,40],[-40,14],[-17,37],[-57,-3],[2,69],[-8,15],[-17,-14],[-45,16],[-30,-28],[-32,-1],[-14,17],[-46,-1],[-28,22],[-60,-10],[-8,20],[-18,-13],[-23,14],[-1,19],[-56,47],[-34,-15],[-41,80],[-27,13],[-32,-57],[-24,56],[6,53],[-32,43],[-27,8],[-28,26],[-17,-21]],[[3324,5578],[-9,30],[-57,129],[11,49],[-15,48],[-20,31]],[[3234,5865],[45,23],[12,73],[47,53],[38,26],[33,-26],[28,-1],[122,46],[21,73],[49,17],[183,-6],[48,-23],[66,0],[77,-13],[42,1],[124,77],[8,112],[61,115]],[[2813,3615],[24,-8],[52,21],[33,27],[62,20],[12,12],[57,-2],[35,-10],[23,-18],[103,32],[20,14],[27,-1],[86,42],[16,18],[44,15],[99,85],[41,15]],[[3545,2800],[-18,133],[-99,99],[-242,90],[-185,-101],[-154,-108]],[[8448,8946],[2,15],[-33,9],[10,46],[-25,24],[-3,51],[22,2],[-48,17],[5,30],[51,45],[-8,69],[-12,12],[10,60],[73,31],[0,44],[-10,76],[-23,15],[-6,22],[17,14],[-31,60],[-30,219]],[[8409,9807],[539,115],[218,-48],[37,1],[142,36],[34,3],[26,-8],[36,-29],[21,-37],[23,-64],[
 -71,-40],[-13,-17],[-55,-381],[-128,35],[51,-316],[11,-100],[17,-44]],[[7588,8902],[44,-23],[7,27],[15,-6],[24,61],[6,-4],[21,58],[18,-3],[89,88],[25,6]],[[7837,9106],[80,-76],[17,-29],[43,-121],[14,-24],[154,-152],[57,-40],[24,-27]],[[3568,4123],[-340,472],[-17,0],[0,23],[-46,3],[1,27],[-22,4],[-11,33]],[[3133,4685],[12,57],[35,36],[49,4],[10,28],[22,26],[51,4],[42,13],[-27,52],[-24,18],[0,35],[18,14],[21,-14],[42,-6],[20,33],[-11,39],[-25,30],[5,24],[20,7],[-27,100],[-3,87],[3,32],[-22,120],[-18,1],[-11,68],[9,52],[-13,26],[13,7]],[[9437,8765],[10,54],[37,-9],[10,60],[51,-13],[4,25],[25,0],[22,21],[70,-20],[104,-51],[52,-36],[59,-49],[-20,-40],[94,-64],[8,15],[36,-44],[-176,-278],[-32,-57],[-257,-549],[-14,-22],[6,-28],[-15,-57],[-32,-53],[-19,-10],[-52,-49]],[[5605,1215],[-4,-23],[-36,-34],[-17,4],[-13,-21],[1,-24],[-32,-39],[-12,-31],[-22,-8],[1,-41],[-18,-25],[-26,-12],[-2,-23],[-17,5],[-19,-18],[-47,15],[-31,-29],[-31,-16],[-20,12],[-28,59],[-34,48],[-71,52],[-16,33],[-7,52],[
 -29,87],[60,116],[-9,63],[-36,114],[-19,48],[5,56],[-9,25],[-24,17],[-27,64],[-6,35],[-47,2],[-94,-49],[-52,19],[-67,-15],[-28,-24],[-22,3],[-33,-19],[-39,-11],[-79,41],[-45,6],[-52,20],[-31,-17],[-19,17],[-58,15],[-36,23],[-31,5],[-44,31],[-42,6],[-22,-4],[-13,14],[-40,-6],[-30,10]],[[7837,9106],[-25,24],[-126,217],[-10,29],[-22,124],[-20,142]],[[7634,9642],[775,165]],[[3130,4681],[3,4]],[[2844,5742],[29,-19],[73,4],[11,15],[65,18],[54,67],[17,-12],[40,-2],[39,21],[27,24],[35,7]],[[4911,8305],[-14,45],[2,24],[-19,23],[-71,49],[-46,58],[-12,24],[4,25],[-10,41],[-28,63],[-1,36],[15,51],[-5,74],[39,54],[33,21],[32,59],[104,235],[29,11],[31,-3],[76,46],[13,29],[-10,21],[1,52],[19,24],[34,0],[20,-26],[45,-28],[48,78],[63,17],[68,44]],[[7298,9589],[84,2],[55,9],[197,42]]],"transform":{"scale":[0.059737383834582894,-0.048004800480048],"translate":[181.34294951900284,490]}}


[46/50] [abbrv] zest-qi4j git commit: Final cleanup

Posted by ni...@apache.org.
Final cleanup


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/684bb9eb
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/684bb9eb
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/684bb9eb

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: 684bb9eb3f99121a9817d5cd24e8f6c011fcdad5
Parents: 503532e
Author: jj <ju...@gmail.com>
Authored: Sat Jan 17 17:15:12 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Sat Jan 17 17:15:12 2015 +0100

----------------------------------------------------------------------
 .../java/org/qi4j/api/geometry/TFeature.java    |  34 +-
 .../qi4j/api/geometry/TFeatureCollection.java   |  18 +-
 .../org/qi4j/api/geometry/TGeometryFactory.java |  41 +-
 .../java/org/qi4j/api/geometry/TMultiPoint.java |  30 +-
 .../main/java/org/qi4j/api/geometry/TPoint.java |  89 ++--
 .../java/org/qi4j/api/geometry/TPolygon.java    |  66 +--
 .../main/java/org/qi4j/api/geometry/TUnit.java  |   6 +-
 .../qi4j/api/geometry/internal/Coordinate.java  |  83 ++--
 .../qi4j/api/geometry/internal/TLinearRing.java |   6 +-
 .../internal/builders/TFeatureBuilder.java      |  20 +-
 .../internal/builders/TLineStringBuilder.java   |  28 +-
 .../builders/TMultiPolygonsBuilder.java         |  29 +-
 .../convert/ST_PointFromTextSpecification.java  |  44 --
 .../ST_WithinSpatialSpecification.java          |  78 ---
 .../predicate/ST_WithinSpecification.java       |  36 +-
 .../org/qi4j/api/geometry/TGeometryTest.java    | 195 ++++----
 .../spatial/ElasticSearchSpatialFinder.java     |  49 +-
 .../spatial/ElasticSearchSpatialIndexer.java    | 121 +++--
 .../configuration/SpatialConfiguration.java     |  57 ++-
 .../SpatialFunctionsSupportMatrix.java          |  65 +--
 .../functions/convert/ST_GeometryFromText.java  |  14 +-
 .../functions/predicates/ST_Disjoint.java       |  24 +-
 .../functions/predicates/ST_Intersects.java     |  26 +-
 .../mappings/builders/GeoPointBuilder.java      |  29 +-
 .../mappings/builders/GeoShapeBuilder.java      |  21 +-
 .../mappings/builders/MappingQueryBuilder.java  |   6 +-
 .../builders/SpatialMappingFactory.java         |  12 +-
 .../spatial/mappings/cache/MappingsCache.java   |  46 +-
 .../ElasticSearchSpatialClusterQueryTest.java   | 484 -------------------
 .../spatial/ElasticSearchSpatialBench.java      | 170 -------
 ...earchSpatialQueryTestUsingUsingDefaults.java |   6 +-
 .../extension/spatial/utils/RandomPoint.java    | 148 ------
 .../src/test/resources/RIAKBenchmark.properties |   1 -
 libraries/spatial/build.gradle                  |  14 +-
 libraries/spatial/dev-status.xml                |  26 +-
 .../conversions/from/GeoJsonFromConverter.java  | 204 --------
 .../from/TGeometryFromConverter.java            |  38 --
 .../conversions/from/WKTFromConverter.java      | 226 ---------
 .../conversions/to/GeoJsonToConverter.java      |  66 ---
 .../conversions/to/Spatial4JToConverter.java    | 117 -----
 .../conversions/to/TGeometryToConverter.java    |  46 --
 .../formats/conversions/TConversions.java       |  31 ++
 .../from/TGeometryFromConverter.java            |  39 ++
 .../conversions/from/WKTFromConverter.java      | 164 +++++++
 .../conversions/to/Spatial4JToConverter.java    | 114 +++++
 .../conversions/to/TGeometryToConverter.java    |  47 ++
 .../formats/conversions/to/ToHelper.java        |  63 +++
 .../transformations/fromto/ToHelper.java        | 150 ------
 .../transformations/TTransformations.java       |  32 ++
 .../ConvertFromGeoJsonToTGeometryTest.java      | 179 -------
 .../conversions/ConversionsFromWktTest.java     |  33 ++
 .../ConvertFromGeoJsonToTGeometryTest.java      | 189 ++++++++
 .../formats/data/GeoJSONSpec20080616.java       |  28 ++
 .../spatial/topo/GeoJSONSwissLakes2013.java     |  79 ---
 .../openstreetmap/model/FeatureEntity.java      |  17 -
 .../domain/openstreetmap/model/TagEntity.java   |  15 -
 .../OpenStreetMapDomainModelAssembler.java      |  45 --
 .../model/interactions/api/OSM.java             | 110 -----
 58 files changed, 1423 insertions(+), 2731 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java b/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
index cf983e9..b47abec 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
@@ -17,18 +17,21 @@ package org.qi4j.api.geometry;
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.geometry.internal.Coordinate;
 import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.api.injection.scope.Structure;
 import org.qi4j.api.injection.scope.This;
 import org.qi4j.api.mixin.Mixins;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.structure.Module;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 @Mixins(TFeature.Mixin.class)
-public interface TFeature extends TGeometry {
+public interface TFeature extends TGeometry
+{
 
 
     @Optional
@@ -43,6 +46,7 @@ public interface TFeature extends TGeometry {
     TFeature of(TGeometry geometry);
 
     TFeature withProperties(Map<String, List<String>> properties);
+
     TFeature addProperty(String name, String value);
 
     TGeometry asGeometry();
@@ -50,7 +54,8 @@ public interface TFeature extends TGeometry {
     Map<String, List<String>> asProperties();
 
 
-    public abstract class Mixin implements TFeature {
+    public abstract class Mixin implements TFeature
+    {
 
         @Structure
         Module module;
@@ -58,7 +63,8 @@ public interface TFeature extends TGeometry {
         @This
         TFeature self;
 
-        public TFeature of(TGeometry geometry) {
+        public TFeature of(TGeometry geometry)
+        {
             self.geometryType().set(TGEOMETRY_TYPE.FEATURE);
             self.geometry().set(geometry);
 
@@ -76,10 +82,9 @@ public interface TFeature extends TGeometry {
             if (self.properties() == null || self.properties().get() == null || !self.properties().get().containsKey(name))
             {
                 Map<String, List<String>> properties = new HashMap<>();
-                properties.put(name, Arrays.asList(value) );
+                properties.put(name, Arrays.asList(value));
                 self.properties().set(properties);
-            }
-            else
+            } else
             {
                 self.properties().get().get(name).add(value);
             }
@@ -87,7 +92,8 @@ public interface TFeature extends TGeometry {
         }
 
 
-        public boolean isEmpty() {
+        public boolean isEmpty()
+        {
             return (self.geometry() == null) || (self.geometry().get() == null) || (self.geometry().get().isEmpty()) ? true : false;
         }
 
@@ -96,16 +102,20 @@ public interface TFeature extends TGeometry {
         {
             return self.geometry().get().getCoordinates();
         }
-        public int getNumPoints() {
+
+        public int getNumPoints()
+        {
             return isEmpty() ? 0 : self.geometry().get().getNumPoints();
         }
 
 
-        public TGeometry asGeometry() {
+        public TGeometry asGeometry()
+        {
             return self.geometry().get();
         }
 
-        public Map<String, List<String>> asProperties() {
+        public Map<String, List<String>> asProperties()
+        {
             return self.properties().get();
         }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/TFeatureCollection.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TFeatureCollection.java b/core/api/src/main/java/org/qi4j/api/geometry/TFeatureCollection.java
index 406a718..99593d3 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TFeatureCollection.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TFeatureCollection.java
@@ -25,29 +25,34 @@ import java.util.ArrayList;
 import java.util.List;
 
 @Mixins(TFeatureCollection.Mixin.class)
-public interface TFeatureCollection extends GeometryCollections {
+public interface TFeatureCollection extends GeometryCollections
+{
 
     TFeatureCollection of(TFeature... features);
     TFeatureCollection of(List<TFeature> features);
 
-    public abstract class Mixin extends GeometryCollections.Mixin implements TFeatureCollection {
+    public abstract class Mixin extends GeometryCollections.Mixin implements TFeatureCollection
+    {
         @Structure
         Module module;
 
         @This
         TFeatureCollection self;
 
-        public TFeatureCollection of(List<TFeature> features) {
+        public TFeatureCollection of(List<TFeature> features)
+        {
             of(features.toArray(new TFeature[features.size()]));
             return self;
         }
 
-        public TFeatureCollection of(TFeature... features) {
+        public TFeatureCollection of(TFeature... features)
+        {
             self.geometryType().set(TGEOMETRY_TYPE.FEATURECOLLECTION);
             init();
             List<TGeometry> l = new ArrayList<>();
 
-            for (TFeature f : features) {
+            for (TFeature f : features)
+            {
                 l.add(f);
             }
 
@@ -58,8 +63,5 @@ public interface TFeatureCollection extends GeometryCollections {
 
             return self;
         }
-
-
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java b/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java
index 33b1709..7292e28 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java
@@ -17,48 +17,51 @@ package org.qi4j.api.geometry;
 import org.qi4j.api.geometry.internal.builders.*;
 import org.qi4j.api.structure.Module;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TGeometryFactory {
+
+public class TGeometryFactory
+{
 
 
-    public static TCRSBuilder TCrs(Module module) {
+    public static TCRSBuilder TCrs(Module module)
+    {
         return new TCRSBuilder(module);
     }
-
-    public static TPointBuilder TPoint(Module module) {
+    public static TPointBuilder TPoint(Module module)
+    {
         return new TPointBuilder(module);
     }
 
-    public static TMultiPointBuilder TMultiPoint(Module module) {
+    public static TMultiPointBuilder TMultiPoint(Module module)
+    {
         return new TMultiPointBuilder(module);
     }
-
-    public static TLinearRingBuilder TLinearRing(Module module) {
+    public static TLinearRingBuilder TLinearRing(Module module)
+    {
         return new TLinearRingBuilder(module);
     }
-
-    public static TLineStringBuilder TLineString(Module module) {
+    public static TLineStringBuilder TLineString(Module module)
+    {
         return new TLineStringBuilder(module);
     }
-
     public static TMultiLineStringBuilder TMultiLineString(Module module)
     {
         return new TMultiLineStringBuilder(module);
     }
-    public static TPolygonBuilder TPolygon(Module module) {
+
+    public static TPolygonBuilder TPolygon(Module module)
+    {
         return new TPolygonBuilder(module);
     }
-    public static TMultiPolygonsBuilder TMultiPolygon(Module module) {
+    public static TMultiPolygonsBuilder TMultiPolygon(Module module)
+    {
         return new TMultiPolygonsBuilder(module);
     }
-
-    public static TFeatureBuilder TFeature(Module module) {
+    public static TFeatureBuilder TFeature(Module module)
+    {
         return new TFeatureBuilder(module);
     }
-
-    public static TFeatureCollectionBuilder TFeatureCollection(Module module) {
+    public static TFeatureCollectionBuilder TFeatureCollection(Module module)
+    {
         return new TFeatureCollectionBuilder(module);
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java b/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java
index 2a85011..00e0a6f 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java
@@ -26,42 +26,38 @@ import java.util.List;
 
 
 @Mixins(TMultiPoint.Mixin.class)
-public interface TMultiPoint extends GeometryCollections {
-
-
+public interface TMultiPoint extends GeometryCollections
+{
     TMultiPoint of(TPoint... points);
     TMultiPoint of(List<TPoint> points);
-
     TMultiPoint yx(double y, double x);
 
-    public abstract class Mixin extends GeometryCollections.Mixin implements TMultiPoint {
-
+    public abstract class Mixin extends GeometryCollections.Mixin implements TMultiPoint
+    {
         @This
         TMultiPoint self;
-
         @Structure
         Module module;
 
-        public TMultiPoint of(List<TPoint> points) {
+        public TMultiPoint of(List<TPoint> points)
+        {
             of(points.toArray(new TPoint[points.size()]));
             return self;
         }
-
-        public TMultiPoint yx(double y, double x) {
+        public TMultiPoint yx(double y, double x)
+        {
             of(module.newValueBuilder(TPoint.class).prototype().x(x).y(y));
             return self;
         }
-
-
-        public TMultiPoint of(TPoint... points) {
+        public TMultiPoint of(TPoint... points)
+        {
             self.geometryType().set(TGEOMETRY_TYPE.MULTIPOINT);
             init();
             List<TGeometry> l = new ArrayList<>();
-
-            for (TPoint p : points) {
+            for (TPoint p : points)
+            {
                 l.add(p);
             }
-
             if (self.isEmpty())
                 self.geometries().set(l); // points().set(l);
             else
@@ -69,7 +65,5 @@ public interface TMultiPoint extends GeometryCollections {
 
             return self;
         }
-
-
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java b/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
index 80b72d8..e7106ef 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
@@ -15,7 +15,6 @@
 package org.qi4j.api.geometry;
 
 import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.HasNoArea;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.injection.scope.Structure;
 import org.qi4j.api.injection.scope.This;
@@ -28,7 +27,7 @@ import java.util.List;
 
 /**
  * Lat = Y Lon = X
- *
+ * <p/>
  * For type "Point", each element in the coordinates array is a number representing the point coordinate in one
  * dimension. There must be at least two elements, and may be more. The order of elements must follow x, y, z order
  * (or longitude, latitude, altitude for coordinates in a geographic coordinate reference system). Any number of
@@ -36,36 +35,46 @@ import java.util.List;
  * this specification.
  */
 @Mixins(TPoint.Mixin.class)
-public interface TPoint extends HasNoArea, TGeometry {
+public interface TPoint extends TGeometry
+{
 
     Property<List<Coordinate>> coordinates();
 
     TPoint of(Coordinate... coordinates);
+
     TPoint of(double x, double y, double z);
+
     TPoint of();
 
     TPoint x(double x);
+
     TPoint y(double y);
+
     TPoint z(double z);
 
     double x();
+
     double y();
+
     double z();
 
     Coordinate getCoordinate();
+
     int compareTo(Object o);
 
 
-    public abstract class Mixin implements TPoint {
+    public abstract class Mixin implements TPoint
+    {
 
         @Structure
         Module module;
         @This
         TPoint self;
 
-        private void init() {
-
-            if (self.coordinates().get() == null) {
+        private void init()
+        {
+            if (self.coordinates().get() == null)
+            {
 
                 List<Coordinate> c = new ArrayList<Coordinate>();
                 c.add(module.newValueBuilder(Coordinate.class).prototype().x(0).y(0).z(0));
@@ -75,31 +84,33 @@ public interface TPoint extends HasNoArea, TGeometry {
         }
 
         @Override
-        public boolean isEmpty() {
+        public boolean isEmpty()
+        {
             return (self.coordinates() == null) || (self.coordinates().get() == null) || (self.coordinates().get().isEmpty()) ? true : false;
         }
 
 
-        public TPoint of() {
+        public TPoint of()
+        {
             if (isEmpty())
                 return self.of(0.0d, 0.0d, 0.0d);
             else
                 return self;
         }
-
-        public TPoint of(double x, double y, double z) {
+        public TPoint of(double x, double y, double z)
+        {
             init();
-            self.x(x); // JJ TODO use fluent DSL
-            self.y(y);
-            self.z(z);
+            self.x(x).y(y).z(z);
             self.geometryType().set(TGEOMETRY_TYPE.POINT);
             return self;
         }
 
-        public TPoint of(Coordinate... coordinates) {
+        public TPoint of(Coordinate... coordinates)
+        {
             List<Coordinate> c = new ArrayList<Coordinate>();
 
-            for (Coordinate xyzn : coordinates) {
+            for (Coordinate xyzn : coordinates)
+            {
                 c.add(xyzn);
             }
             self.coordinates().set(c);
@@ -107,66 +118,68 @@ public interface TPoint extends HasNoArea, TGeometry {
             return self;
         }
 
-        public TPoint x(double x) {
+        public TPoint x(double x)
+        {
             init();
             self.coordinates().get().get(0).x(x);
             return self;
         }
 
-        public double x() {
-
+        public double x()
+        {
             return self.coordinates().get().get(0).getOrdinate(Coordinate.X);
         }
-
-
-        public TPoint y(double y) {
+        public TPoint y(double y)
+        {
             init();
             self.coordinates().get().get(0).y(y);
-
             return self;
         }
-
-        public double y() {
+        public double y()
+        {
             return self.coordinates().get().get(0).getOrdinate(Coordinate.Y);
         }
-        public double z() {
+        public double z()
+        {
             return self.coordinates().get().get(0).getOrdinate(Coordinate.Z);
         }
-
-
-        public TPoint z(double z) {
+        public TPoint z(double z)
+        {
             init();
             self.coordinates().get().get(0).z(z);
-
             return self;
         }
 
-        public TPoint of(List<Double> coordinates) {
-
+        public TPoint of(List<Double> coordinates)
+        {
             List<Coordinate> c = new ArrayList<Coordinate>();
-
-            for (Double xyzn : coordinates) {
+            for (Double xyzn : coordinates)
+            {
                 c.add(module.newValueBuilder(Coordinate.class).prototype().of(xyzn));
             }
             return null;
         }
 
         @Override
-        public Coordinate[] getCoordinates() {
+        public Coordinate[] getCoordinates()
+        {
             List<Coordinate> coordinates = new ArrayList<>();
             coordinates.add(getCoordinate());
             return coordinates.toArray(new Coordinate[coordinates.size()]);
         }
 
-        public Coordinate getCoordinate() {
+        public Coordinate getCoordinate()
+        {
             return self.coordinates().get().size() != 0 ? self.coordinates().get().get(0) : null;
         }
 
-        public int getNumPoints() {
+        public int getNumPoints()
+        {
             return isEmpty() ? 0 : 1;
         }
 
-        public int compareTo(Object other) {
+        public int compareTo(Object other)
+        {
             TPoint point = (TPoint) other;
             return getCoordinate().compareTo(point.getCoordinate());
         }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java b/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java
index 26a900b..7c2b627 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java
@@ -16,9 +16,9 @@ package org.qi4j.api.geometry;
 
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TShape;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.geometry.internal.TLinearRing;
+import org.qi4j.api.geometry.internal.TShape;
 import org.qi4j.api.injection.scope.Structure;
 import org.qi4j.api.injection.scope.This;
 import org.qi4j.api.mixin.Mixins;
@@ -29,7 +29,8 @@ import java.util.ArrayList;
 import java.util.List;
 
 @Mixins(TPolygon.Mixin.class)
-public interface TPolygon extends TShape, TGeometry {
+public interface TPolygon extends TShape, TGeometry
+{
 
     Property<TLinearRing> shell();
 
@@ -38,52 +39,54 @@ public interface TPolygon extends TShape, TGeometry {
 
     TPolygon of(TLinearRing shell);
     TPolygon of(TLinearRing shell, @Optional TLinearRing... holes);
-
     TPolygon withHole(TLinearRing hole);
     TPolygon withHoles(@Optional TLinearRing... holes);
-
     boolean isEmpty();
 
-    public abstract class Mixin implements TPolygon {
+    public abstract class Mixin implements TPolygon
+    {
         @Structure
         Module module;
 
         @This
         TPolygon self;
 
-        private void init() {
-
-            if (self.holes().get() == null) {
-
+        private void init()
+        {
+            if (self.holes().get() == null)
+            {
                 List<TLinearRing> ring = new ArrayList<>();
                 self.holes().set(ring);
                 self.geometryType().set(TGEOMETRY_TYPE.POINT);
             }
         }
 
-        public TPolygon of(TLinearRing shell) {
+        public TPolygon of(TLinearRing shell)
+        {
             return of(shell, null);
         }
 
-        public TPolygon of(TLinearRing shell, TLinearRing... holes) {
+        public TPolygon of(TLinearRing shell, TLinearRing... holes)
+        {
             init();
-
-            if (shell != null) {
+            if (shell != null)
+            {
                 self.shell().set(shell);
             }
-
             withHoles(holes);
             self.geometryType().set(TGEOMETRY_TYPE.POLYGON);
             return self;
         }
 
-        public TPolygon withHole(TLinearRing hole) {
+        public TPolygon withHole(TLinearRing hole)
+        {
             if (hole != null) self.holes().get().add(hole);
             return self;
         }
-
-        public TPolygon withHoles(TLinearRing... holes) {
-            if (holes != null && holes.length != 0) {
+        public TPolygon withHoles(TLinearRing... holes)
+        {
+            if (holes != null && holes.length != 0)
+            {
                 for (TLinearRing hole : holes)
                     withHole(hole);
             }
@@ -91,22 +94,25 @@ public interface TPolygon extends TShape, TGeometry {
         }
 
         @Override
-        public Coordinate[] getCoordinates() {
-            if (isEmpty()) {
+        public Coordinate[] getCoordinates()
+        {
+            if (isEmpty())
+            {
                 return new Coordinate[]{};
             }
-
             Coordinate[] coordinates = new Coordinate[getNumPoints()];
-
             int k = -1;
             Coordinate[] shellCoordinates = self.shell().get().getCoordinates();
-            for (int x = 0; x < shellCoordinates.length; x++) {
+            for (int x = 0; x < shellCoordinates.length; x++)
+            {
                 k++;
                 coordinates[k] = shellCoordinates[x];
             }
-            for (int i = 0; i < self.holes().get().size(); i++) {
+            for (int i = 0; i < self.holes().get().size(); i++)
+            {
                 Coordinate[] childCoordinates = self.holes().get().get(i).getCoordinates();
-                for (int j = 0; j < childCoordinates.length; j++) {
+                for (int j = 0; j < childCoordinates.length; j++)
+                {
                     k++;
                     coordinates[k] = childCoordinates[j];
                 }
@@ -114,18 +120,20 @@ public interface TPolygon extends TShape, TGeometry {
             return coordinates;
         }
 
-        public boolean isEmpty() {
+        public boolean isEmpty()
+        {
             return (self.shell() == null) || (self.shell().get() == null) || (self.shell().get().isEmpty()) ? true : false;
         }
 
-        public int getNumPoints() {
+        public int getNumPoints()
+        {
 
             int numPoints = self.shell().get().getNumPoints();
-            for (int i = 0; i < self.holes().get().size(); i++) {
+            for (int i = 0; i < self.holes().get().size(); i++)
+            {
                 numPoints += self.holes().get().get(i).getNumPoints();
             }
             return numPoints;
         }
-
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/TUnit.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TUnit.java b/core/api/src/main/java/org/qi4j/api/geometry/TUnit.java
index 7de5a49..308fd9b 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TUnit.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TUnit.java
@@ -14,10 +14,8 @@
 
 package org.qi4j.api.geometry;
 
-/**
- * Created by jj on 02.12.14.
- */
-public enum TUnit {
+public enum TUnit
+{
 
     RADIAN,
     DEGREE,

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java
index ac01539..e49e96e 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java
@@ -28,7 +28,8 @@ import java.util.List;
  */
 
 @Mixins(Coordinate.Mixin.class)
-public interface Coordinate extends Comparable, ValueComposite, TGeometryRoot {
+public interface Coordinate extends Comparable, ValueComposite
+{
 
     public static final int X = 0;
     public static final int Y = 1;
@@ -42,7 +43,6 @@ public interface Coordinate extends Comparable, ValueComposite, TGeometryRoot {
     Coordinate of(double x, double y, double z);
     Coordinate of(double... coordinates);
 
-
     Coordinate x(double x);
     Coordinate y(double y);
     Coordinate z(double z);
@@ -52,20 +52,20 @@ public interface Coordinate extends Comparable, ValueComposite, TGeometryRoot {
     double z();
 
     double getOrdinate(int ordinateIndex);
-
     int compareTo(Object o);
-
     double[] source();
 
-
-    public abstract class Mixin implements Coordinate {
+    public abstract class Mixin implements Coordinate
+    {
 
         List<Double> EMPTY = new ArrayList<>(X + Y + Z);
         @This
         Coordinate self;
 
-        private void init() {
-            if (isEmpty()) {
+        private void init()
+        {
+            if (isEmpty())
+            {
                 EMPTY.add(new Double(0.0));
                 EMPTY.add(new Double(0.0));
                 EMPTY.add(new Double(0.0));
@@ -74,15 +74,18 @@ public interface Coordinate extends Comparable, ValueComposite, TGeometryRoot {
             }
         }
 
-        private boolean isEmpty() {
+        private boolean isEmpty()
+        {
             return (self.coordinate() == null) || (self.coordinate().get() == null) || (self.coordinate().get().isEmpty()) ? true : false;
         }
 
-        public Coordinate of() {
+        public Coordinate of()
+        {
             return self.of(0.0d, 0.0d, 0.0d);
         }
 
-        public Coordinate of(double x, double y, double z) {
+        public Coordinate of(double x, double y, double z)
+        {
             init();
             self.x(x);
             self.y(y);
@@ -91,50 +94,52 @@ public interface Coordinate extends Comparable, ValueComposite, TGeometryRoot {
         }
 
 
-        public double x() {
+        public double x()
+        {
             return getOrdinate(X);
         }
-
-        public double y() {
+        public double y()
+        {
             return getOrdinate(Y);
         }
-
-        public double z() {
+        public double z()
+        {
             return getOrdinate(Z);
         }
 
-        public Coordinate x(double x) {
+        public Coordinate x(double x)
+        {
             init();
-
-            if (!Double.isNaN(x) && !Double.isInfinite(x)) {
+            if (!Double.isNaN(x) && !Double.isInfinite(x))
+            {
                 self.coordinate().get().set(X, x);
             }
             return self;
         }
 
-        public Coordinate y(double y) {
-
+        public Coordinate y(double y)
+        {
             init();
-
-            if (!Double.isNaN(y) && !Double.isInfinite(y)) {
+            if (!Double.isNaN(y) && !Double.isInfinite(y))
+            {
                 self.coordinate().get().set(Y, y);
             }
             return self;
         }
 
-        public Coordinate z(double z) {
-
+        public Coordinate z(double z)
+        {
             init();
-
-            if (!Double.isNaN(z) && !Double.isInfinite(z)) {
+            if (!Double.isNaN(z) && !Double.isInfinite(z))
+            {
                 self.coordinate().get().set(Z, z);
             }
             return self;
         }
 
-        public int compareTo(Object o) {
+        public int compareTo(Object o)
+        {
             Coordinate other = (Coordinate) o;
-
             if (self.coordinate().get().get(X) < other.coordinate().get().get(X)) return -1;
             if (self.coordinate().get().get(X) > other.coordinate().get().get(X)) return 1;
             if (self.coordinate().get().get(Y) < other.coordinate().get().get(Y)) return -1;
@@ -142,8 +147,10 @@ public interface Coordinate extends Comparable, ValueComposite, TGeometryRoot {
             return 0;
         }
 
-        public double getOrdinate(int ordinateIndex) {
-            switch (ordinateIndex) {
+        public double getOrdinate(int ordinateIndex)
+        {
+            switch (ordinateIndex)
+            {
                 case X:
                     return self.coordinate().get().get(X);
                 case Y:
@@ -154,28 +161,26 @@ public interface Coordinate extends Comparable, ValueComposite, TGeometryRoot {
             throw new IllegalArgumentException("Invalid ordinate index: " + ordinateIndex);
         }
 
-        public double[] source() {
+        public double[] source()
+        {
             double[] source = new double[X + Y + Z];
             source[X] = getOrdinate(X);
             source[Y] = getOrdinate(Y);
             source[Z] = getOrdinate(Z);
-
             return source;
         }
 
 
-        public Coordinate of(double... coordinates) {
-
+        public Coordinate of(double... coordinates)
+        {
             List<Double> l = new ArrayList<Double>(coordinates.length);
-
-            for (double xyzn : coordinates) {
+            for (double xyzn : coordinates)
+            {
                 // only values that makes "sense"
                 if (!Double.isNaN(xyzn) && !Double.isInfinite(xyzn))
                     l.add(new Double(xyzn));
             }
-
             self.coordinate().set(l);
-
             return self;
         }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
index 87fc414..2b99f9a 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
@@ -19,7 +19,8 @@ import org.qi4j.api.injection.scope.This;
 import org.qi4j.api.mixin.Mixins;
 
 @Mixins(TLinearRing.Mixin.class)
-public interface TLinearRing extends TLineString {
+public interface TLinearRing extends TLineString
+{
 
     boolean isValid();
 
@@ -29,7 +30,8 @@ public interface TLinearRing extends TLineString {
         TLinearRing self;
 
         @Override
-        public boolean isValid() {
+        public boolean isValid()
+        {
             if (self.getStartPoint() == null || self.getEndPoint() == null) return false;
             return self.getStartPoint().compareTo(self.getEndPoint()) == 0 ? true : false;
         }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
index 58932e2..7cce0bd 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
@@ -18,22 +18,23 @@ import org.qi4j.api.geometry.TFeature;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.structure.Module;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TFeatureBuilder {
+
+public class TFeatureBuilder
+{
 
     private Module module;
     private TFeature geometry;
 
 
-    public TFeatureBuilder(Module module) {
+    public TFeatureBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TFeature.class).prototype();
     }
 
 
-    public TFeatureBuilder of(TGeometry feature) {
+    public TFeatureBuilder of(TGeometry feature)
+    {
         geometry.of(feature);
         return this;
     }
@@ -44,10 +45,13 @@ public class TFeatureBuilder {
         return this;
     }
 
-    public TFeature geometry() {
+    public TFeature geometry()
+    {
         return geometry;
     }
-    public TFeature geometry(int srid) {
+
+    public TFeature geometry(int srid)
+    {
         return geometry();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLineStringBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLineStringBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLineStringBuilder.java
index df1bbb8..21b6f6d 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLineStringBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLineStringBuilder.java
@@ -18,45 +18,51 @@ import org.qi4j.api.geometry.TLineString;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.structure.Module;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TLineStringBuilder {
+
+public class TLineStringBuilder
+{
 
     private Module module;
     private TLineString geometry;
 
 
-    public TLineStringBuilder(Module module) {
+    public TLineStringBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TLineString.class).prototype();
     }
 
 
-    public TLineStringBuilder points(double[][] points) {
-        for (double yx[] : points) {
+    public TLineStringBuilder points(double[][] points)
+    {
+        for (double yx[] : points)
+        {
             if (yx.length < 2) return null;
             geometry.yx(yx[0], yx[1]);
         }
         return this;
     }
 
-    public TLineStringBuilder of(TPoint... points) {
+    public TLineStringBuilder of(TPoint... points)
+    {
         geometry().of(points);
         return this;
     }
 
-    public TLineStringBuilder of() {
+    public TLineStringBuilder of()
+    {
         geometry().of();
         return this;
     }
 
 
-    public TLineString geometry() {
+    public TLineString geometry()
+    {
         return geometry;
     }
 
-    public TLineString geometry(int srid) {
+    public TLineString geometry(int srid)
+    {
         return geometry();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPolygonsBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPolygonsBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPolygonsBuilder.java
index 342e92e..c57bb16 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPolygonsBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPolygonsBuilder.java
@@ -20,45 +20,50 @@ import org.qi4j.api.structure.Module;
 
 import java.util.List;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TMultiPolygonsBuilder {
+
+public class TMultiPolygonsBuilder
+{
 
     private Module module;
     private TMultiPolygon geometry;
 
 
-    public TMultiPolygonsBuilder(Module module) {
+    public TMultiPolygonsBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TMultiPolygon.class).prototype();
     }
 
 
-    public TMultiPolygonsBuilder points(double[][][] points) {
-        for (double xy[][] : points) {
+    public TMultiPolygonsBuilder points(double[][][] points)
+    {
+        for (double xy[][] : points)
+        {
             if (xy.length < 2) return null;
-            // geometry.xy(xy[0], xy[1]);
         }
         return this;
     }
 
-    public TMultiPolygonsBuilder of(List<TPolygon> polygons) {
+    public TMultiPolygonsBuilder of(List<TPolygon> polygons)
+    {
         geometry.of(polygons);
         return this;
     }
 
-    public TMultiPolygonsBuilder of(TPolygon... polygons) {
+    public TMultiPolygonsBuilder of(TPolygon... polygons)
+    {
         geometry.of(polygons);
         return this;
     }
 
 
-    public TMultiPolygon geometry() {
+    public TMultiPolygon geometry()
+    {
         return geometry;
     }
 
-    public TMultiPolygon geometry(int srid) {
+    public TMultiPolygon geometry(int srid)
+    {
         return geometry();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_PointFromTextSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_PointFromTextSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_PointFromTextSpecification.java
deleted file mode 100644
index 4498f40..0000000
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_PointFromTextSpecification.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.qi4j.api.query.grammar.extensions.spatial.convert;
-
-import com.spatial4j.core.context.SpatialContext;
-import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
-import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
-import com.spatial4j.core.io.jts.JtsWktShapeParser;
-import com.spatial4j.core.shape.Point;
-import com.spatial4j.core.shape.Shape;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.structure.Module;
-
-import java.text.ParseException;
-
-/**
- * ST_Within Specification.
- *
- *
- */
-public class ST_PointFromTextSpecification<T extends TGeometry>
-    extends SpatialConvertSpecification<T>
-{
-
-
-
-
-    public ST_PointFromTextSpecification(String wkt, String crs)
-    {
-        super( wkt, crs );
-    }
-
-    @Structure
-    Module module;
-
-
-
-
-
-    @Override
-    public String toString()
-    {
-        return "converting"; //property.toString() + " is within " + value.toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/measurements/ST_WithinSpatialSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/measurements/ST_WithinSpatialSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/measurements/ST_WithinSpatialSpecification.java
deleted file mode 100644
index b2f5681..0000000
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/measurements/ST_WithinSpatialSpecification.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.qi4j.api.query.grammar.extensions.spatial.measurements;
-
-import org.qi4j.api.query.grammar.PropertyFunction;
-
-import java.util.Collection;
-
-/**
- * Regular expression match Specification.
- */
-public class ST_WithinSpatialSpecification<T>
-        extends SpatialMeasurementsSpecification
-{
-
-
-
-    // public ST_WithinSpatialSpecification(Property<T> property, T value, Double range)
-    // PropertyFunction<T> property
-    public ST_WithinSpatialSpecification(PropertyFunction<T> property, T value, Double range)
-    {
-        // super( property, value );
-        // super(T);
-        super (property, value);
-    }
-
-    private PropertyFunction<? extends Collection<T>> collectionProperty;
-    private Iterable<T> valueCollection;
-
-//    public WithInSpatialSpecification( PropertyFunction<? extends Collection<T>> collectionProperty,
-//                                     Iterable<T> valueCollection
-//    )
-//    {
-//        this.collectionProperty = collectionProperty;
-//        this.valueCollection = valueCollection;
-//    }
-
-    public PropertyFunction<? extends Collection<T>> collectionProperty()
-    {
-        return collectionProperty;
-    }
-
-    public Iterable<T> containedValues()
-    {
-        return valueCollection;
-    }
-
-    // @Override
-    public boolean satisfiedBy( Object item )
-    {
-      return true;
-    }
-
-//    @Override
-//    public boolean satisfiedBy( Composite item )
-//    {
-//        Collection<T> collection = collectionProperty.map( item ).get();
-//
-//        if( collection == null )
-//        {
-//            return false;
-//        }
-//
-//        for( T value : valueCollection )
-//        {
-//            if( !collection.contains( value ) )
-//            {
-//                return false;
-//            }
-//        }
-//
-//        return true;
-//    }
-
-    @Override
-    public String toString()
-    {
-        return "WithInSpatialSpecification()"; // collectionProperty + " contains " + Iterables.toList(valueCollection);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
index cd28a85..4483fa6 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
@@ -4,13 +4,12 @@ import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TUnit;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.query.grammar.PropertyFunction;
-import org.qi4j.api.query.grammar.Variable;
 import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.functional.Specification;
 
 
 public class ST_WithinSpecification<T extends TGeometry>
-    extends SpatialPredicatesSpecification<T>
+        extends SpatialPredicatesSpecification<T>
 {
 
     private double distance;
@@ -18,37 +17,44 @@ public class ST_WithinSpecification<T extends TGeometry>
 
     public ST_WithinSpecification(PropertyFunction<T> property, TGeometry param)
     {
-        super( property, param );
+        super(property, param);
     }
 
     public ST_WithinSpecification(PropertyFunction<T> property, TPoint param, double distance, TUnit unit)
     {
-        super( property, param );
-        this.distance   = distance;
-        this.unit       = unit;
+        super(property, param);
+        this.distance = distance;
+        this.unit = unit;
     }
 
     public ST_WithinSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator, double distance, TUnit unit)
     {
-        super( property, operator );
-        this.distance   = distance;
-        this.unit       = unit;
+        super(property, operator);
+        this.distance = distance;
+        this.unit = unit;
     }
 
 
     public ST_WithinSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator)
     {
-        super( property, operator );
+        super(property, operator);
     }
 
-    public double getDistance() { return distance; }
-    public TUnit  getUnit() { return unit; }
+    public double getDistance()
+    {
+        return distance;
+    }
+
+    public TUnit getUnit()
+    {
+        return unit;
+    }
 
 
-   @Override
-    protected boolean compare( TGeometry param )
+    @Override
+    protected boolean compare(TGeometry param)
     {
-        return param.equals( this.param );
+        return param.equals(this.param);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
index 2c12c18..99f0493 100644
--- a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
+++ b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
@@ -26,16 +26,15 @@ import org.qi4j.test.AbstractQi4jTest;
 
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.*;
-import static org.junit.Assert.assertEquals;
 
 /**
  * JAVADOC
  */
 public class TGeometryTest
-    extends AbstractQi4jTest
+        extends AbstractQi4jTest
 {
-    public void assemble( ModuleAssembly module )
-        throws AssemblyException
+    public void assemble(ModuleAssembly module)
+            throws AssemblyException
     {
         // internal values
         module.values(Coordinate.class, TLinearRing.class, TCircle.class, TGeometry.class);
@@ -58,14 +57,14 @@ public class TGeometryTest
         String CRS = "urn:ogc:def:crs:OGC:1.3:CRS84";
         ValueBuilder<TCRS> builder = module.newValueBuilder(TCRS.class);
         TCRS crs = builder.prototype().of(CRS);
-        assertThat(crs.crs(), equalTo( CRS ));
+        assertThat(crs.crs(), equalTo(CRS));
     }
 
-        @Test
+    @Test
     public void script02()
     {
         ValueBuilder<Coordinate> builder = module.newValueBuilder(Coordinate.class);
-        Coordinate coordinate1 = builder.prototype().of(1d,2d,3d);
+        Coordinate coordinate1 = builder.prototype().of(1d, 2d, 3d);
 
         assertNotNull(coordinate1);
         assertEquals(1d, coordinate1.x(), 0.0d);
@@ -86,11 +85,11 @@ public class TGeometryTest
         assertEquals(2d, point1.y(), 0.0d);
         assertEquals(3d, point1.z(), 0.0d);
 
-       // assertTrue(point1.isEmpty() == false);
+        // assertTrue(point1.isEmpty() == false);
 
         ValueBuilder<TPoint> builder2 = module.newValueBuilder(TPoint.class);
 
-        TPoint point2 = builder2.prototype().of(1d,2d,3d);
+        TPoint point2 = builder2.prototype().of(1d, 2d, 3d);
         assertEquals(1d, point2.x(), 0.0d);
         assertEquals(2d, point2.y(), 0.0d);
         assertEquals(3d, point2.z(), 0.0d);
@@ -105,7 +104,7 @@ public class TGeometryTest
 
         ValueBuilder<TPoint> builder4 = module.newValueBuilder(TPoint.class);
 
-        TPoint point4 = builder4.prototype().x(10d).y(20d).z(30d).of(1d,2d,3d); // check dsl
+        TPoint point4 = builder4.prototype().x(10d).y(20d).z(30d).of(1d, 2d, 3d); // check dsl
         assertEquals(1d, point4.x(), 0.0d);
         assertEquals(2d, point4.y(), 0.0d);
         assertEquals(3d, point4.z(), 0.0d);
@@ -140,7 +139,8 @@ public class TGeometryTest
     }
 
     @Test
-    public void script05() {
+    public void script05()
+    {
         ValueBuilder<TLineString> builder = module.newValueBuilder(TLineString.class);
 
         TLineString lineString = builder.prototype().of()
@@ -155,7 +155,8 @@ public class TGeometryTest
     }
 
     @Test
-    public void script06() {
+    public void script06()
+    {
         ValueBuilder<TMultiLineString> builder = module.newValueBuilder(TMultiLineString.class);
 
         TMultiLineString multiLineString = builder.prototype().of(
@@ -165,19 +166,19 @@ public class TGeometryTest
                         .yx(0d, 1d)
                         .yx(1d, 0d)
                         .yx(1d, 1d)
-                        .yx(0d, 0d) );
+                        .yx(0d, 0d));
 
         assertEquals(5, multiLineString.getNumPoints());
         assertTrue(multiLineString.getGeometryN(0).isLineString());
     }
 
 
-        @Test
+    @Test
     public void script07()
     {
         ValueBuilder<TLinearRing> builder = module.newValueBuilder(TLinearRing.class);
 
-        TLinearRing linearRing = (TLinearRing)builder.prototype().of(
+        TLinearRing linearRing = (TLinearRing) builder.prototype().of(
                 module.newValueBuilder(TPoint.class).prototype().x(0d).y(0d).z(0d),
                 module.newValueBuilder(TPoint.class).prototype().x(0d).y(1d).z(0d),
                 module.newValueBuilder(TPoint.class).prototype().x(1d).y(0d).z(0d),
@@ -193,7 +194,7 @@ public class TGeometryTest
     {
         ValueBuilder<TLinearRing> builder = module.newValueBuilder(TLinearRing.class);
 
-        TLinearRing linearRing = (TLinearRing)builder.prototype().of(
+        TLinearRing linearRing = (TLinearRing) builder.prototype().of(
                 module.newValueBuilder(TPoint.class).prototype().x(0d).y(0d).z(0d),
                 module.newValueBuilder(TPoint.class).prototype().x(0d).y(1d).z(0d),
                 module.newValueBuilder(TPoint.class).prototype().x(1d).y(0d).z(0d),
@@ -209,7 +210,7 @@ public class TGeometryTest
     {
         ValueBuilder<TLinearRing> builder = module.newValueBuilder(TLinearRing.class);
 
-        TLinearRing shell = (TLinearRing)builder.prototype().of()
+        TLinearRing shell = (TLinearRing) builder.prototype().of()
 
                 .yx(0d, 0d)
                 .yx(0d, 1d)
@@ -228,15 +229,15 @@ public class TGeometryTest
     {
         ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
 /**
-        builder.prototype().of(
-                module.newValueBuilder((TLinearRing.class).prototype().of()
-                        .xy(0d,  0d)
-                        .xy(0d, 10d)
-                        .xy(10d, 0d)
-                        .xy(1d, 10d)
-                        .xy(0d, 0d)
-        );
-*/
+ builder.prototype().of(
+ module.newValueBuilder((TLinearRing.class).prototype().of()
+ .xy(0d,  0d)
+ .xy(0d, 10d)
+ .xy(10d, 0d)
+ .xy(1d, 10d)
+ .xy(0d, 0d)
+ );
+ */
         //builder.prototype().of(
         //        module.newValueBuilder(TLinearRing.class).prototype().
     }
@@ -247,21 +248,21 @@ public class TGeometryTest
     {
         ValueBuilder<TLineString> builder = module.newValueBuilder(TLineString.class);
         assertNotNull(
-        builder.prototype().of
-                (
-                    module.newValueBuilder(TPoint.class).prototype().of
-                    (
-                        module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
-                        module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
-                    )
-                 ,
-                    module.newValueBuilder(TPoint.class).prototype().of
-                    (
-                        module.newValueBuilder(Coordinate.class).prototype().of(2d),  //x
-                        module.newValueBuilder(Coordinate.class).prototype().of(2d)   //y
-                    )
-
-                )
+                builder.prototype().of
+                        (
+                                module.newValueBuilder(TPoint.class).prototype().of
+                                        (
+                                                module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
+                                                module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
+                                        )
+                                ,
+                                module.newValueBuilder(TPoint.class).prototype().of
+                                        (
+                                                module.newValueBuilder(Coordinate.class).prototype().of(2d),  //x
+                                                module.newValueBuilder(Coordinate.class).prototype().of(2d)   //y
+                                        )
+
+                        )
         );
 
     }
@@ -271,21 +272,21 @@ public class TGeometryTest
     {
         ValueBuilder<TLinearRing> builder = module.newValueBuilder(TLinearRing.class);
         assertNotNull(
-        builder.prototype().of
-                (
-                        module.newValueBuilder(TPoint.class).prototype().of
-                                (
-                                        module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
-                                        module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
-                                )
-                        ,
-                        module.newValueBuilder(TPoint.class).prototype().of
-                                (
-                                        module.newValueBuilder(Coordinate.class).prototype().of(2d),  //x
-                                        module.newValueBuilder(Coordinate.class).prototype().of(2d)   //y
-                                )
-
-                )
+                builder.prototype().of
+                        (
+                                module.newValueBuilder(TPoint.class).prototype().of
+                                        (
+                                                module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
+                                                module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
+                                        )
+                                ,
+                                module.newValueBuilder(TPoint.class).prototype().of
+                                        (
+                                                module.newValueBuilder(Coordinate.class).prototype().of(2d),  //x
+                                                module.newValueBuilder(Coordinate.class).prototype().of(2d)   //y
+                                        )
+
+                        )
         );
 
     }
@@ -295,46 +296,46 @@ public class TGeometryTest
     {
         ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
         assertNotNull(
-        builder.prototype().of
-                (
-                        // shell
-                        (TLinearRing)module.newValueBuilder(TLinearRing.class).prototype().of
-                                (
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(2d)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(2d),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(2d)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(2d),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
-                                                )
-
-                                )
-                      ,
-                       // no holes
-                       null
-                )
+                builder.prototype().of
+                        (
+                                // shell
+                                (TLinearRing) module.newValueBuilder(TLinearRing.class).prototype().of
+                                        (
+                                                module.newValueBuilder(TPoint.class).prototype().of
+                                                        (
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
+                                                        )
+                                                ,
+                                                module.newValueBuilder(TPoint.class).prototype().of
+                                                        (
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(2d)   //y
+                                                        )
+                                                ,
+                                                module.newValueBuilder(TPoint.class).prototype().of
+                                                        (
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(2d),  //x
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(2d)   //y
+                                                        )
+                                                ,
+                                                module.newValueBuilder(TPoint.class).prototype().of
+                                                        (
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(2d),  //x
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
+                                                        )
+                                                ,
+                                                module.newValueBuilder(TPoint.class).prototype().of
+                                                        (
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
+                                                                module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
+                                                        )
+
+                                        )
+                                ,
+                                // no holes
+                                null
+                        )
         );
 
     }
@@ -353,7 +354,7 @@ public class TGeometryTest
         TCircle tCircle = builder.prototype().of(48.13905780942574, 11.57958984375, 100);
         TPolygon tPolygon = tCircle.polygonize(360);
         assertTrue(tPolygon.shell().get().isValid());
-        assertTrue(tPolygon.shell().get().getNumPoints() == (360 + 1) );
+        assertTrue(tPolygon.shell().get().getNumPoints() == (360 + 1));
     }
 
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
index 29c38c4..fe42a47 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
@@ -1,4 +1,3 @@
-
 /*
  * Copyright 2014 Jiri Jetmar.
  *
@@ -48,36 +47,43 @@ import org.slf4j.LoggerFactory;
 import java.util.HashMap;
 import java.util.Map;
 
-public final class ElasticSearchSpatialFinder {
+public final class ElasticSearchSpatialFinder
+{
 
     private static final Logger LOGGER = LoggerFactory.getLogger(ElasticSearchSpatialFinder.class);
 
     private static final Map<Class<?>, SpatialQuerySpecSupport> SPATIAL_QUERY_EXPRESSIONS_CATALOG = new HashMap<>(2);
 
-    static {
+    static
+    {
         SPATIAL_QUERY_EXPRESSIONS_CATALOG.put(SpatialPredicatesSpecification.class, new PredicateFinderSupport());
         SPATIAL_QUERY_EXPRESSIONS_CATALOG.put(SpatialConvertSpecification.class, new ConvertFinderSupport());
     }
 
 
-    private ElasticSearchSpatialFinder() {
+    private ElasticSearchSpatialFinder()
+    {
     }
 
-    public interface Support {
+    public interface Support
+    {
         SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support);
     }
 
 
-    public static interface SpatialQuerySpecSupport extends Support {
+    public static interface SpatialQuerySpecSupport extends Support
+    {
         void processSpecification(FilterBuilder filterBuilder, Specification<?> spec, Map<String, Object> variables) throws EntityFinderException;
     }
 
     public static class SpatialSpecSupport
-            implements SpatialQuerySpecSupport {
+            implements SpatialQuerySpecSupport
+    {
         private Module module;
         private ElasticSearchSupport support;
 
-        public SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support) {
+        public SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support)
+        {
             this.module = module;
             this.support = support;
             return this;
@@ -87,19 +93,22 @@ public final class ElasticSearchSpatialFinder {
         public void processSpecification(FilterBuilder filterBuilder,
                                          Specification<?> spec,
                                          Map<String, Object> variables)
-                throws EntityFinderException {
+                throws EntityFinderException
+        {
             SPATIAL_QUERY_EXPRESSIONS_CATALOG.get(spec.getClass().getSuperclass()).support(module, support).processSpecification(filterBuilder, spec, variables);
         }
 
     }
 
     public static class SpatialTypeSupport
-            implements ElasticSearchFinderSupport.ComplexTypeSupport {
+            implements ElasticSearchFinderSupport.ComplexTypeSupport
+    {
 
         private Module module;
         private ElasticSearchSupport support;
 
-        public ElasticSearchFinderSupport.ComplexTypeSupport support(Module module, ElasticSearchSupport support) {
+        public ElasticSearchFinderSupport.ComplexTypeSupport support(Module module, ElasticSearchSupport support)
+        {
             this.module = module;
             this.support = support;
 
@@ -107,24 +116,30 @@ public final class ElasticSearchSpatialFinder {
         }
 
 
-        public FilterBuilder comparison(ComparisonSpecification<?> spec, Map<String, Object> variables) {
+        public FilterBuilder comparison(ComparisonSpecification<?> spec, Map<String, Object> variables)
+        {
             throw new RuntimeException("Unsupported operation");
         }
 
-        public FilterBuilder contains(ContainsSpecification<?> spec, Map<String, Object> variables) {
+        public FilterBuilder contains(ContainsSpecification<?> spec, Map<String, Object> variables)
+        {
             throw new RuntimeException("Unsupported operation");
         }
 
-        public FilterBuilder containsAll(ContainsAllSpecification<?> spec, Map<String, Object> variables) {
+        public FilterBuilder containsAll(ContainsAllSpecification<?> spec, Map<String, Object> variables)
+        {
             throw new RuntimeException("Unsupported operation");
         }
 
-        public void orderBy(SearchRequestBuilder request, Specification<Composite> whereClause, OrderBy orderBySegment, Map<String, Object> variables) throws EntityFinderException {
-            if (!TPoint.class.isAssignableFrom(InternalUtils.classOfPropertyType(orderBySegment.property()))) {
+        public void orderBy(SearchRequestBuilder request, Specification<Composite> whereClause, OrderBy orderBySegment, Map<String, Object> variables) throws EntityFinderException
+        {
+            if (!TPoint.class.isAssignableFrom(InternalUtils.classOfPropertyType(orderBySegment.property())))
+            {
                 throw new EntityFinderException("Ordering can only be done on TPoints.. TODO");
             }
 
-            if (!SpatialIndexMapper.IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), orderBySegment.property().toString())) {
+            if (!SpatialIndexMapper.IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), orderBySegment.property().toString()))
+            {
                 throw new EntityFinderException("OrderBy is only supported when GEO_POINT indexing is used");
             }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
index 7fd7a2a..c51f31d 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
@@ -28,7 +28,7 @@ import org.qi4j.index.elasticsearch.ElasticSearchIndexException;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper;
-import org.qi4j.library.spatial.projection.ProjectionsRegistry;
+import org.qi4j.library.spatial.projections.ProjectionsRegistry;
 
 import java.util.HashMap;
 import java.util.ListIterator;
@@ -36,23 +36,27 @@ import java.util.Map;
 import java.util.Stack;
 
 import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper.IndexMappingCache;
-import static org.qi4j.library.spatial.projection.transformations.TTransformations.Transform;
+import static org.qi4j.library.spatial.projections.transformations.TTransformations.Transform;
 
-public final class ElasticSearchSpatialIndexer {
+public final class ElasticSearchSpatialIndexer
+{
 
     private static final String EPSG_4326 = "EPSG:4326";
     private static final String DefaultSupportedProjection = EPSG_4326;
     private static final double DefaultProjectionConversionPrecisionInMeters = 2.00;
     private Module module;
 
-    private ElasticSearchSpatialIndexer() {
+    private ElasticSearchSpatialIndexer()
+    {
     }
 
-    public static void toJSON(ElasticSearchSupport support, TGeometry geometry, String property, String deepProperty, JSONObject json, Module module) throws ElasticSearchIndexException {
+    public static void toJSON(ElasticSearchSupport support, TGeometry geometry, String property, String deepProperty, JSONObject json, Module module) throws ElasticSearchIndexException
+    {
 
         // Spatial Mappings
         {
-            if (SpatialConfiguration.isEnabled(support.spatialConfiguration())) {
+            if (SpatialConfiguration.isEnabled(support.spatialConfiguration()))
+            {
                 SpatialIndexMapper.createIfNotExist(support, geometry, deepProperty);
             } else throw new ElasticSearchIndexException("Spatial support is disabled. No spatial indexing available");
         }
@@ -61,50 +65,65 @@ public final class ElasticSearchSpatialIndexer {
         {
             if (new ProjectionsRegistry().getCRS(geometry.getCRS()) == null)
                 throw new ElasticSearchIndexException("Project with the CRS Identity " + geometry.getCRS() + " is unknown. Supported projections are JJ TODO");
-            if (SpatialConfiguration.isIndexerProjectionConversionEnabled(support.spatialConfiguration())) {
+            if (SpatialConfiguration.isIndexerProjectionConversionEnabled(support.spatialConfiguration()))
+            {
                 Transform(module).from(geometry).to(DefaultSupportedProjection, SpatialConfiguration.getIndexerProjectionConversionAccuracy(support.spatialConfiguration()));
             } else if (!geometry.getCRS().equalsIgnoreCase(DefaultSupportedProjection))
                 throw new ElasticSearchIndexException("Project with the CRS Identity " + geometry.getCRS() + " is not supported by ElasticSearch and projection conversion is " +
                         "disabled in the configuration.");
         }
 
-        try {
+        try
+        {
 
-            if (geometry.isPoint()) {
-                if (IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), deepProperty)) {
+            if (geometry.isPoint())
+            {
+                if (IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), deepProperty))
+                {
                     createIndexPointAsGeoPointType(property, json, (TPoint) geometry);
-                } else if (IndexMappingCache.isMappedAsGeoShape(support.index(), support.entitiesType(), deepProperty)) {
+                } else if (IndexMappingCache.isMappedAsGeoShape(support.index(), support.entitiesType(), deepProperty))
+                {
                     createIndexPointAsGeoShapeType(property, json, (TPoint) geometry);
                 } else
                     new ElasticSearchIndexException("No spatial mapping for property " + deepProperty + " available.");
-            } else if (geometry.isMultiPoint()) {
+            } else if (geometry.isMultiPoint())
+            {
                 createIndexMultiPoint(property, json, (TMultiPoint) geometry);
-            } else if (geometry.isLineString()) {
+            } else if (geometry.isLineString())
+            {
                 createIndexLineString(property, json, (TLineString) geometry);
-            } else if (geometry.isMultiLineString()) {
+            } else if (geometry.isMultiLineString())
+            {
                 createIndexMultiLineString(property, json, (TMultiLineString) geometry);
-            } else if (geometry.isPolygon()) {
+            } else if (geometry.isPolygon())
+            {
                 createIndexPolygon(property, json, (TPolygon) geometry);
-            } else if (geometry.isMultiPolygon()) {
+            } else if (geometry.isMultiPolygon())
+            {
                 createIndexMultiPolygon(property, json, (TMultiPolygon) geometry);
-            } else if (geometry.isFeature()) {
+            } else if (geometry.isFeature())
+            {
                 createIndexFeature(property, json, (TFeature) geometry);
-            } else if (geometry.isFeatureCollection()) {
+            } else if (geometry.isFeatureCollection())
+            {
                 createIndexFeatureCollection(property, json, (TFeatureCollection) geometry);
             } else new ElasticSearchIndexException("Unsupported Geometry : " + geometry.getClass());
 
-        } catch (JSONException _ex) {
+        } catch (JSONException _ex)
+        {
             throw new ElasticSearchIndexException("", _ex);
         }
     }
 
-    private static void createIndexMultiPoint(String property, JSONObject json, TMultiPoint tMultiPoint) throws JSONException {
+    private static void createIndexMultiPoint(String property, JSONObject json, TMultiPoint tMultiPoint) throws JSONException
+    {
 
         Map tMultiPointMap = new HashMap();
         tMultiPointMap.put("type", "multipoint");
 
         JSONArray points = new JSONArray();
-        for (int i = 0; i < tMultiPoint.getNumPoints(); i++) {
+        for (int i = 0; i < tMultiPoint.getNumPoints(); i++)
+        {
             TPoint point = (TPoint) tMultiPoint.getGeometryN(i);
             points.put(new JSONArray().put(point.y()).put(point.x()));
         }
@@ -114,12 +133,14 @@ public final class ElasticSearchSpatialIndexer {
 
     }
 
-    private static void createIndexLineString(String property, JSONObject json, TLineString tLineString) throws JSONException {
+    private static void createIndexLineString(String property, JSONObject json, TLineString tLineString) throws JSONException
+    {
         Map tLineStringMap = new HashMap();
         tLineStringMap.put("type", "linestring");
 
         JSONArray points = new JSONArray();
-        for (int i = 0; i < tLineString.getNumPoints(); i++) {
+        for (int i = 0; i < tLineString.getNumPoints(); i++)
+        {
             TPoint point = (TPoint) tLineString.getPointN(i);
             points.put(new JSONArray().put(point.y()).put(point.x()));
         }
@@ -160,7 +181,8 @@ public final class ElasticSearchSpatialIndexer {
      * @param tPoint
      * @throws Exception
      */
-    private static void createIndexPointAsGeoPointType(String property, JSONObject json, TPoint tPoint) throws JSONException {
+    private static void createIndexPointAsGeoPointType(String property, JSONObject json, TPoint tPoint) throws JSONException
+    {
         Map tPointMap = new HashMap();
         tPointMap.put("lat", tPoint.y());
         tPointMap.put("lon", tPoint.x());
@@ -168,7 +190,8 @@ public final class ElasticSearchSpatialIndexer {
         json.put(property, tPointMap);
     }
 
-    private static void createIndexPointAsGeoShapeType(String property, JSONObject json, TPoint tPoint) throws JSONException {
+    private static void createIndexPointAsGeoShapeType(String property, JSONObject json, TPoint tPoint) throws JSONException
+    {
         Map tPointMap = new HashMap();
         tPointMap.put("type", "point");
         tPointMap.put("coordinates", new JSONArray().put(tPoint.x()).put(tPoint.y()));
@@ -176,18 +199,21 @@ public final class ElasticSearchSpatialIndexer {
         json.put(property, tPointMap);
     }
 
-    private static void createIndexMultiLineString(String property, JSONObject json, TMultiLineString tMultiLineString) throws JSONException {
+    private static void createIndexMultiLineString(String property, JSONObject json, TMultiLineString tMultiLineString) throws JSONException
+    {
         Map tMultiLineStringMap = new HashMap();
         tMultiLineStringMap.put("type", "multilinestring");
 
         JSONArray coordinates = new JSONArray();
 
-        for (int i = 0; i < tMultiLineString.geometries().get().size(); i++) {
+        for (int i = 0; i < tMultiLineString.geometries().get().size(); i++)
+        {
             JSONArray p = new JSONArray();
             int nPoints = ((TLineString) tMultiLineString.getGeometryN(i)).getNumPoints();
 
             JSONArray line = new JSONArray();
-            for (int j = 0; j < nPoints; j++) {
+            for (int j = 0; j < nPoints; j++)
+            {
                 JSONArray xy = new JSONArray();
                 xy.put(((TLineString) tMultiLineString.getGeometryN(i)).getPointN(j).x());
                 xy.put(((TLineString) tMultiLineString.getGeometryN(i)).getPointN(j).y());
@@ -199,7 +225,8 @@ public final class ElasticSearchSpatialIndexer {
         json.put(property, tMultiLineStringMap);
     }
 
-    private static void createIndexPolygon(String property, JSONObject json, TPolygon tPolygon) throws JSONException {
+    private static void createIndexPolygon(String property, JSONObject json, TPolygon tPolygon) throws JSONException
+    {
         if (!tPolygon.shell().get().isValid())
             throw new ElasticSearchIndexException("Polygon shell has to be closed - first and last point must match. ");
 
@@ -211,7 +238,8 @@ public final class ElasticSearchSpatialIndexer {
         // shell
         {
             JSONArray shell = new JSONArray();
-            for (int i = 0; i < tPolygon.shell().get().getNumPoints(); i++) {
+            for (int i = 0; i < tPolygon.shell().get().getNumPoints(); i++)
+            {
                 JSONArray p = new JSONArray();
 
                 p.put(tPolygon.shell().get().getPointN(i).x());
@@ -224,10 +252,12 @@ public final class ElasticSearchSpatialIndexer {
 
         // wholes
         {
-            for (int i = 0; i < tPolygon.holes().get().size(); i++) {
+            for (int i = 0; i < tPolygon.holes().get().size(); i++)
+            {
                 JSONArray whole = new JSONArray();
                 // TLinearRing whole = tPolygon.holes().get().get(i);
-                for (int j = 0; j < tPolygon.holes().get().get(i).getNumPoints(); j++) {
+                for (int j = 0; j < tPolygon.holes().get().get(i).getNumPoints(); j++)
+                {
                     if (!tPolygon.holes().get().get(i).isValid())
                         throw new ElasticSearchIndexException("Polygon whole has to be closed - first and last point must match. ");
 
@@ -246,12 +276,14 @@ public final class ElasticSearchSpatialIndexer {
         json.put(property, tPolygonMap);
     }
 
-    private static void createIndexMultiPolygon(String property, JSONObject json, TMultiPolygon tMultiPolygon) throws JSONException {
+    private static void createIndexMultiPolygon(String property, JSONObject json, TMultiPolygon tMultiPolygon) throws JSONException
+    {
         Map tMultiPolygonMap = new HashMap();
         tMultiPolygonMap.put("type", "multipolygon");
         JSONArray coordinates = new JSONArray();
 
-        for (int i = 0; i < tMultiPolygon.geometries().get().size(); i++) {
+        for (int i = 0; i < tMultiPolygon.geometries().get().size(); i++)
+        {
             JSONObject _json = new JSONObject();
             createIndexPolygon(property, _json, (TPolygon) tMultiPolygon.getGeometryN(i));
             coordinates.put(((JSONObject) _json.get(property)).get("coordinates"));
@@ -260,16 +292,19 @@ public final class ElasticSearchSpatialIndexer {
         json.put(property, tMultiPolygonMap);
     }
 
-    private static void createIndexFeatureCollection(String property, JSONObject json, TFeatureCollection tFeatureCollection) throws JSONException {
+    private static void createIndexFeatureCollection(String property, JSONObject json, TFeatureCollection tFeatureCollection) throws JSONException
+    {
         Map tFeatureMap = new HashMap();
         tFeatureMap.put("type", "geometrycollection");
 
         JSONArray geometries = new JSONArray();
         JSONObject _json = new JSONObject();
 
-        for (TGeometry tGeometry : tFeatureCollection.geometries().get()) {
+        for (TGeometry tGeometry : tFeatureCollection.geometries().get())
+        {
             TFeature tFeature = (TFeature) tGeometry;
-            switch (tFeature.asGeometry().getType()) {
+            switch (tFeature.asGeometry().getType())
+            {
                 case POINT:
                     createIndexPointAsGeoShapeType(property, _json, (TPoint) tFeature.asGeometry());
                     break;
@@ -296,14 +331,16 @@ public final class ElasticSearchSpatialIndexer {
         json.put(property, tFeatureMap);
     }
 
-    private static void createIndexFeature(String property, JSONObject json, TFeature tFeature) throws JSONException {
+    private static void createIndexFeature(String property, JSONObject json, TFeature tFeature) throws JSONException
+    {
         Map tFeatureMap = new HashMap();
         tFeatureMap.put("type", "geometrycollection");
 
         JSONArray geometries = new JSONArray();
         JSONObject _json = new JSONObject();
 
-        switch (tFeature.asGeometry().getType()) {
+        switch (tFeature.asGeometry().getType())
+        {
             case POINT:
                 createIndexPointAsGeoShapeType(property, _json, (TPoint) tFeature.asGeometry());
                 break;
@@ -330,11 +367,13 @@ public final class ElasticSearchSpatialIndexer {
         json.put(property, tFeatureMap);
     }
 
-    public static String spatialMappingPropertyName(Stack<String> stack) {
+    public static String spatialMappingPropertyName(Stack<String> stack)
+    {
         ListIterator<String> it = stack.listIterator();
         if (!it.hasNext()) return "";
         StringBuilder sb = new StringBuilder();
-        for (; ; ) {
+        for (; ; )
+        {
             String s = it.next();
             sb.append(s);
             if (!it.hasNext())


[19/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/gr-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/gr-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/gr-municipalities.json
deleted file mode 100644
index 21ec1b7..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/gr-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":3501,"properties":{"name":"Alvaschein"},"arcs":[[[-275,-397,-451,-450,-425,-476]]]},{"type":"MultiPolygon","id":3502,"properties":{"name":"Mon"},"arcs":[[[-477,-430,490,-323]]]},{"type":"MultiPolygon","id":3503,"properties":{"name":"Mutten"},"arcs":[[[-379,477,-269,-475]]]},{"type":"MultiPolygon","id":3504,"properties":{"name":"Stierva"},"arcs":[[[-380,474,-276,475,-424,476,-322]]]},{"type":"MultiPolygon","id":3505,"properties":{"name":"Tiefencastel"},"arcs":[[[423,424,425,426,-288,-253,-393,427,428,429]]]},{"type":"MultiPolygon","id":3506,"properties":{"name":"Vaz/Obervaz"},"arcs":[[[268,269,270,271,-231,272,-50,273,274,275]]]},{"type":"MultiPolygon","id":3511,"properties":{"name":"Alvaneu"},"arcs":[[[287,288,289,290,-59,291,-254]]]},{"type":"MultiPolygon","id":3512,"properties":{"name":"Brienz/Brinzauls"},"arcs":[[[449,450,-396,-395,-394,-290,451,-426]]]},{"type":"
 MultiPolygon","id":3513,"properties":{"name":"Lantsch/Lenz"},"arcs":[[[-274,-60,-291,393,394,395,396]]]},{"type":"MultiPolygon","id":3514,"properties":{"name":"Schmitten (GR)"},"arcs":[[[-292,-58,-2,-255]]]},{"type":"MultiPolygon","id":3515,"properties":{"name":"Surava"},"arcs":[[[-452,-289,-427]]]},{"type":"MultiPolygon","id":3521,"properties":{"name":"Bergün/Bravuogn"},"arcs":[[[85,-7,86,87,88,89,90,91]]]},{"type":"MultiPolygon","id":3522,"properties":{"name":"Filisur"},"arcs":[[[251,252,253,254,-1,-86,-191]]]},{"type":"MultiPolygon","id":3531,"properties":{"name":"Bivio"},"arcs":[[[131,132,133,134,135,-8,-127]]]},{"type":"MultiPolygon","id":3532,"properties":{"name":"Cunter"},"arcs":[[[-325,507,-428,-392,-196]]]},{"type":"MultiPolygon","id":3533,"properties":{"name":"Marmorera"},"arcs":[[[-297,-386,-133]]]},{"type":"MultiPolygon","id":3534,"properties":{"name":"Mulegns"},"arcs":[[[-141,-198,294,-194,295,296,-132,-126]]]},{"type":"MultiPolygon","id":3536,"properties":{"name":"Rio
 m-Parsonz"},"arcs":[[[194,195,196,197,-140]],[[-324,-491,-429,-508]]]},{"type":"MultiPolygon","id":3538,"properties":{"name":"Salouf"},"arcs":[[[-246,320,321,322,323,324,-195,-139]]]},{"type":"MultiPolygon","id":3539,"properties":{"name":"Savognin"},"arcs":[[[-197,391,392,-252,-190,-295]]]},{"type":"MultiPolygon","id":3540,"properties":{"name":"Sur"},"arcs":[[[-296,-193,384,385]]]},{"type":"MultiPolygon","id":3541,"properties":{"name":"Tinizong-Rona"},"arcs":[[[189,190,-92,191,192,193]]]},{"type":"MultiPolygon","id":3551,"properties":{"name":"Brusio"},"arcs":[[[-30,246]]]},{"type":"MultiPolygon","id":3561,"properties":{"name":"Poschiavo"},"arcs":[[[27,28,29,30]]]},{"type":"MultiPolygon","id":3571,"properties":{"name":"Castrisch"},"arcs":[[[-416,503,504,505,506,-70]]]},{"type":"MultiPolygon","id":3572,"properties":{"name":"Falera"},"arcs":[[[386,387,388,389,390,-314,-313,-312]]]},{"type":"MultiPolygon","id":3574,"properties":{"name":"Ilanz"},"arcs":[[[-461,521,-459,-521,-505,522,-515
 ,-489,-488,-487]]]},{"type":"MultiPolygon","id":3575,"properties":{"name":"Laax"},"arcs":[[[311,312,313,314,315,-215,316]]]},{"type":"MultiPolygon","id":3576,"properties":{"name":"Ladir"},"arcs":[[[517,-457,518,-388]],[[-390,529,-455]]]},{"type":"MultiPolygon","id":3577,"properties":{"name":"Luven"},"arcs":[[[-490,514,515,-36]]]},{"type":"MultiPolygon","id":3578,"properties":{"name":"Pitasch"},"arcs":[[[-38,473,-414,-408]]]},{"type":"MultiPolygon","id":3579,"properties":{"name":"Riein"},"arcs":[[[413,414,415,-69]]]},{"type":"MultiPolygon","id":3580,"properties":{"name":"Ruschein"},"arcs":[[[452,-445,453,-315,-391,454,455,456,457,458]]]},{"type":"MultiPolygon","id":3581,"properties":{"name":"Sagogn"},"arcs":[[[-507,508,-317,-214,-71]]]},{"type":"MultiPolygon","id":3582,"properties":{"name":"Schluein"},"arcs":[[[-506,520,-458,-518,-387,-509]]]},{"type":"MultiPolygon","id":3583,"properties":{"name":"Schnaus"},"arcs":[[[-519,-456,-530,-389]],[[-460,-446,-453,-522]]]},{"type":"MultiPolyg
 on","id":3584,"properties":{"name":"Sevgein"},"arcs":[[[-37,-516,-523,-504,-415,-474]]]},{"type":"MultiPolygon","id":3593,"properties":{"name":"Duvin"},"arcs":[[[-39,407,-68]]]},{"type":"MultiPolygon","id":3598,"properties":{"name":"St. Martin"},"arcs":[[[-63,-40,-67]]]},{"type":"MultiPolygon","id":3603,"properties":{"name":"Vals"},"arcs":[[[60,61,-41,62,63,64]]]},{"type":"MultiPolygon","id":3611,"properties":{"name":"Andiast"},"arcs":[[[441,-407,442,-300]]]},{"type":"MultiPolygon","id":3612,"properties":{"name":"Obersaxen"},"arcs":[[[-123,156,157,158,159,160,161,162,163,164,165,166,-34]]]},{"type":"MultiPolygon","id":3613,"properties":{"name":"Pigniu"},"arcs":[[[403,404,405,406]]]},{"type":"MultiPolygon","id":3614,"properties":{"name":"Rueun"},"arcs":[[[-166,-302,-301,-443,-406,-447,459,460,461]]]},{"type":"MultiPolygon","id":3615,"properties":{"name":"Siat"},"arcs":[[[443,444,445,446,-405]]]},{"type":"MultiPolygon","id":3616,"properties":{"name":"Waltensburg/Vuorz"},"arcs":[[[298,
 299,300,301,-165,-164,-163,-162,-161,-160,-159,-213,-212]]]},{"type":"MultiPolygon","id":3617,"properties":{"name":"Mundaun"},"arcs":[[[-167,-462,486,487,488,489,-35]]]},{"type":"MultiPolygon","id":3618,"properties":{"name":"Lumnezia"},"arcs":[[[31,32,33,34,35,36,37,38,39,40,41]]]},{"type":"MultiPolygon","id":3631,"properties":{"name":"Almens"},"arcs":[[[-339,-232,-272,-439,-438,491,492,493,494,495]]]},{"type":"MultiPolygon","id":3633,"properties":{"name":"Fürstenau"},"arcs":[[[-333,531,-492,437,-438,-437,-484,-511]]]},{"type":"MultiPolygon","id":3634,"properties":{"name":"Paspels"},"arcs":[[[-340,-496,-495,523,-330]]]},{"type":"MultiPolygon","id":3635,"properties":{"name":"Pratval"},"arcs":[[[-332,-531,-493,-532]]]},{"type":"MultiPolygon","id":3636,"properties":{"name":"Rodels"},"arcs":[[[-524,-494,530,-331]]]},{"type":"MultiPolygon","id":3637,"properties":{"name":"Rothenbrunnen"},"arcs":[[[-449,-383,-337,-328]]]},{"type":"MultiPolygon","id":3638,"properties":{"name":"Scharans"},"
 arcs":[[[435,436,437,438,-271]]]},{"type":"MultiPolygon","id":3640,"properties":{"name":"Sils im Domleschg"},"arcs":[[[-378,-377,-376,-375,-374,-373,482,483,-436,-270,-478]]]},{"type":"MultiPolygon","id":3661,"properties":{"name":"Cazis"},"arcs":[[[-76,326,327,328,329,330,331,332,333,334,335]]]},{"type":"MultiPolygon","id":3662,"properties":{"name":"Flerden"},"arcs":[[[-336,524,525,-359]],[[-361,-528,-498]]]},{"type":"MultiPolygon","id":3663,"properties":{"name":"Masein"},"arcs":[[[-335,-514,-527,-525]]]},{"type":"MultiPolygon","id":3668,"properties":{"name":"Thusis"},"arcs":[[[-334,510,-483,-372,-371,-370,511,-500,512,513]]]},{"type":"MultiPolygon","id":3669,"properties":{"name":"Tschappina"},"arcs":[[[-77,358,359,360,361,362]]]},{"type":"MultiPolygon","id":3670,"properties":{"name":"Urmein"},"arcs":[[[-526,526,-513,-499,527,-360]]]},{"type":"MultiPolygon","id":3671,"properties":{"name":"Tomils"},"arcs":[[[336,337,-233,338,339,-329]]]},{"type":"MultiPolygon","id":3672,"properties":
 {"name":"Safiental"},"arcs":[[[65,-64,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80]]]},{"type":"MultiPolygon","id":3681,"properties":{"name":"Avers"},"arcs":[[[124,125,126,-11,127,128,129]]]},{"type":"MultiPolygon","id":3691,"properties":{"name":"Hinterrhein"},"arcs":[[[233,-61,234,-46]]]},{"type":"MultiPolygon","id":3693,"properties":{"name":"Nufenen"},"arcs":[[[-47,-235,-65,-66,-180]]]},{"type":"MultiPolygon","id":3694,"properties":{"name":"Splügen"},"arcs":[[[-48,179,-81,180,181]]]},{"type":"MultiPolygon","id":3695,"properties":{"name":"Sufers"},"arcs":[[[-181,-80,292,-242,-137,293]]]},{"type":"MultiPolygon","id":3701,"properties":{"name":"Andeer"},"arcs":[[[241,242,243,244,245,-138]]]},{"type":"MultiPolygon","id":3703,"properties":{"name":"Casti-Wergenstein"},"arcs":[[[-79,355,356,-243,-293]]]},{"type":"MultiPolygon","id":3705,"properties":{"name":"Donat"},"arcs":[[[-418,-502,-364,-244,-357]]]},{"type":"MultiPolygon","id":3707,"properties":{"name":"Lohn (GR)"},"arcs":[[[-362,49
 7,498,499,500,-365,501,-417]]]},{"type":"MultiPolygon","id":3708,"properties":{"name":"Mathon"},"arcs":[[[-78,-363,416,417,-356]]]},{"type":"MultiPolygon","id":3711,"properties":{"name":"Rongellen"},"arcs":[[[-501,-512,-369,-368,-367,-366]]]},{"type":"MultiPolygon","id":3712,"properties":{"name":"Zillis-Reischen"},"arcs":[[[-245,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,-321]]]},{"type":"MultiPolygon","id":3713,"properties":{"name":"Ferrera"},"arcs":[[[136,137,138,139,140,-125,141]],[[-129,532]]]},{"type":"MultiPolygon","id":3721,"properties":{"name":"Bonaduz"},"arcs":[[[-74,-238,-280,-381,434]]]},{"type":"MultiPolygon","id":3722,"properties":{"name":"Domat/Ems"},"arcs":[[[380,-279,381,-346,-227,-338,382,383]]]},{"type":"MultiPolygon","id":3723,"properties":{"name":"Rhäzüns"},"arcs":[[[-75,-435,-384,448,-327]]]},{"type":"MultiPolygon","id":3731,"properties":{"name":"Felsberg"},"arcs":[[[-278,447,-402,-343,-382]]]},{"type":"MultiPolygon","id":3732,"propert
 ies":{"name":"Flims"},"arcs":[[[213,214,215,216,-72]]]},{"type":"MultiPolygon","id":3733,"properties":{"name":"Tamins"},"arcs":[[[-237,276,277,278,279]]]},{"type":"MultiPolygon","id":3734,"properties":{"name":"Trin"},"arcs":[[[-73,-217,235,236,237]]]},{"type":"MultiPolygon","id":3741,"properties":{"name":"Ardez"},"arcs":[[[174,175,176,177,178,-14]]]},{"type":"MultiPolygon","id":3742,"properties":{"name":"Guarda"},"arcs":[[[325,-176,-249]]]},{"type":"MultiPolygon","id":3743,"properties":{"name":"Lavin"},"arcs":[[[-26,247,248,-175,-13,-124]]]},{"type":"MultiPolygon","id":3744,"properties":{"name":"Susch"},"arcs":[[[-5,-27,123,-12,-97]]]},{"type":"MultiPolygon","id":3745,"properties":{"name":"Tarasp"},"arcs":[[[-179,238,-93,-19,-15]]]},{"type":"MultiPolygon","id":3746,"properties":{"name":"Zernez"},"arcs":[[[11,12,13,14,15,16,17]]]},{"type":"MultiPolygon","id":3752,"properties":{"name":"Samnaun"},"arcs":[[[-84,188]]]},{"type":"MultiPolygon","id":3761,"properties":{"name":"Ftan"},"arcs"
 :[[[-178,259,260,-116,-94,-239]]]},{"type":"MultiPolygon","id":3762,"properties":{"name":"Scuol"},"arcs":[[[-20,92,93,94,95]]]},{"type":"MultiPolygon","id":3763,"properties":{"name":"Sent"},"arcs":[[[-95,115,116,117,-82,118]]]},{"type":"MultiPolygon","id":3764,"properties":{"name":"Valsot"},"arcs":[[[81,82,83,84]],[[469,-117,-261]]]},{"type":"MultiPolygon","id":3781,"properties":{"name":"Bever"},"arcs":[[[-385,-192,-91,-221,-341,-250,-134]],[[-156,-218]]]},{"type":"MultiPolygon","id":3782,"properties":{"name":"Celerina/Schlarigna"},"arcs":[[[-148,-342,-219,-109]]]},{"type":"MultiPolygon","id":3783,"properties":{"name":"Madulain"},"arcs":[[[-100,-187,-152,-151,-486]],[[-154,-186,-112]]]},{"type":"MultiPolygon","id":3784,"properties":{"name":"Pontresina"},"arcs":[[[107,108,109,110,111,112,113,-28,114]]]},{"type":"MultiPolygon","id":3785,"properties":{"name":"La Punt-Chamues-ch"},"arcs":[[[-89,149,150,151,152,153,-111,154,155]]]},{"type":"MultiPolygon","id":3786,"properties":{"name":"S
 amedan"},"arcs":[[[-144,145,146,147,-108,148]],[[-90,217,-155,-110,218,219,220]]]},{"type":"MultiPolygon","id":3787,"properties":{"name":"St. Moritz"},"arcs":[[[340,-220,341,-147,-251]]]},{"type":"MultiPolygon","id":3788,"properties":{"name":"S-chanf"},"arcs":[[[-6,96,-18,97,98,99,100,-87]]]},{"type":"MultiPolygon","id":3789,"properties":{"name":"Sils im Engadin/Segl"},"arcs":[[[-136,142,143,144,-9]]]},{"type":"MultiPolygon","id":3790,"properties":{"name":"Silvaplana"},"arcs":[[[249,250,-146,-143,-135]]]},{"type":"MultiPolygon","id":3791,"properties":{"name":"Zuoz"},"arcs":[[[-113,185,-153,186,-99,187]],[[-101,485,-150,-88]]]},{"type":"MultiPolygon","id":3792,"properties":{"name":"Bregaglia"},"arcs":[[[7,8,9,10]]]},{"type":"MultiPolygon","id":3801,"properties":{"name":"Arvigo"},"arcs":[[[-399,408,409,410,411,412]]]},{"type":"MultiPolygon","id":3803,"properties":{"name":"Braggio"},"arcs":[[[-412,509,-480,-465]]]},{"type":"MultiPolygon","id":3804,"properties":{"name":"Buseno"},"arcs":
 [[[-400,-413,464,465,466,-282]]]},{"type":"MultiPolygon","id":3805,"properties":{"name":"Castaneda"},"arcs":[[[-283,-467,-479,-431]]]},{"type":"MultiPolygon","id":3806,"properties":{"name":"Cauco"},"arcs":[[[470,-410,471,-183,-240,-207,472]]]},{"type":"MultiPolygon","id":3808,"properties":{"name":"Rossa"},"arcs":[[[182,183,-44,184]]]},{"type":"MultiPolygon","id":3810,"properties":{"name":"Santa Maria in Calanca"},"arcs":[[[478,-466,479,480,481]]]},{"type":"MultiPolygon","id":3811,"properties":{"name":"Selma"},"arcs":[[[-481,-510,-411,-471,-520]]]},{"type":"MultiPolygon","id":3821,"properties":{"name":"Lostallo"},"arcs":[[[204,205,206,207,208,209]]]},{"type":"MultiPolygon","id":3822,"properties":{"name":"Mesocco"},"arcs":[[[42,43,44,45,46,47,48]]]},{"type":"MultiPolygon","id":3823,"properties":{"name":"Soazza"},"arcs":[[[-208,239,-185,-43,240]]]},{"type":"MultiPolygon","id":3831,"properties":{"name":"Cama"},"arcs":[[[418,419,420,-205,421,422]]]},{"type":"MultiPolygon","id":3832,"prop
 erties":{"name":"Grono"},"arcs":[[[-284,430,431,432,-419,433]]]},{"type":"MultiPolygon","id":3833,"properties":{"name":"Leggia"},"arcs":[[[-433,484,-420]]]},{"type":"MultiPolygon","id":3834,"properties":{"name":"Roveredo (GR)"},"arcs":[[[280,281,282,283,284,285,286]]]},{"type":"MultiPolygon","id":3835,"properties":{"name":"San Vittore"},"arcs":[[[397,398,399,-281]],[[-286,528]]]},{"type":"MultiPolygon","id":3836,"properties":{"name":"Verdabbio"},"arcs":[[[-422,-210,496]],[[-482,519,-473,-206,-421,-485,-432]]]},{"type":"MultiPolygon","id":3847,"properties":{"name":"Val Müstair"},"arcs":[[[-16,18,19,20]]]},{"type":"MultiPolygon","id":3851,"properties":{"name":"Davos"},"arcs":[[[0,1,2,3,4,5,6]]]},{"type":"MultiPolygon","id":3861,"properties":{"name":"Fideris"},"arcs":[[[-56,-355,-318,357]]]},{"type":"MultiPolygon","id":3862,"properties":{"name":"Furna"},"arcs":[[[-265,-259,-174,297,-54]]]},{"type":"MultiPolygon","id":3863,"properties":{"name":"Jenaz"},"arcs":[[[-298,-173,-319,354,-55]
 ]]},{"type":"MultiPolygon","id":3871,"properties":{"name":"Klosters-Serneus"},"arcs":[[[21,22,23,24,25,26,-4]]]},{"type":"MultiPolygon","id":3881,"properties":{"name":"Conters im Prättigau"},"arcs":[[[-57,-358,402,-352,-23]]]},{"type":"MultiPolygon","id":3882,"properties":{"name":"Küblis"},"arcs":[[[-320,-202,-353,-403]]]},{"type":"MultiPolygon","id":3883,"properties":{"name":"Saas"},"arcs":[[[351,352,-201,353,-24]]]},{"type":"MultiPolygon","id":3891,"properties":{"name":"Luzein"},"arcs":[[[317,318,-172,-199,319]]]},{"type":"MultiPolygon","id":3893,"properties":{"name":"St. Antönien"},"arcs":[[[198,-171,199,200,201]]]},{"type":"MultiPolygon","id":3901,"properties":{"name":"Chur"},"arcs":[[[342,343,-268,344,-228,345]]]},{"type":"MultiPolygon","id":3911,"properties":{"name":"Churwalden"},"arcs":[[[226,227,228,229,230,231,232]]]},{"type":"MultiPolygon","id":3921,"properties":{"name":"Arosa"},"arcs":[[[49,50,51,52,53,54,55,56,-22,-3,57,58,59]]]},{"type":"MultiPolygon","id":3926,"prop
 erties":{"name":"Maladers"},"arcs":[[[-345,-267,-266,-52,-347,-229]]]},{"type":"MultiPolygon","id":3932,"properties":{"name":"Tschiertschen-Praden"},"arcs":[[[-273,-230,346,-51]]]},{"type":"MultiPolygon","id":3941,"properties":{"name":"Haldenstein"},"arcs":[[[400,-351,-262,-344,401]]]},{"type":"MultiPolygon","id":3945,"properties":{"name":"Trimmis"},"arcs":[[[261,262,263,-256,264,-53,265,266,267]]]},{"type":"MultiPolygon","id":3946,"properties":{"name":"Untervaz"},"arcs":[[[347,348,349,-263,350]]]},{"type":"MultiPolygon","id":3947,"properties":{"name":"Zizers"},"arcs":[[[467,468,-257,-264,-350]]]},{"type":"MultiPolygon","id":3951,"properties":{"name":"Fläsch"},"arcs":[[[-304,439],[440]],[[516,-306]]]},{"type":"MultiPolygon","id":3952,"properties":{"name":"Jenins"},"arcs":[[[-308,-224,-463]]]},{"type":"MultiPolygon","id":3953,"properties":{"name":"Maienfeld"},"arcs":[[[302,303,304,305,306,-225,307,308,309,310]],[[-441]]]},{"type":"MultiPolygon","id":3954,"properties":{"name":"Malans
 "},"arcs":[[[-309,462,-223,463]]]},{"type":"MultiPolygon","id":3955,"properties":{"name":"Landquart"},"arcs":[[[-310,-464,-258,-469]],[[-311,-468,-349,502]]]},{"type":"MultiPolygon","id":3961,"properties":{"name":"Grüsch"},"arcs":[[[255,256,257,-222,-168,258]]]},{"type":"MultiPolygon","id":3962,"properties":{"name":"Schiers"},"arcs":[[[167,168,169,170,171,172,173]]]},{"type":"MultiPolygon","id":3972,"properties":{"name":"Seewis im Prättigau"},"arcs":[[[221,222,223,224,225,-169]]]},{"type":"MultiPolygon","id":3981,"properties":{"name":"Breil/Brigels"},"arcs":[[[210,211,212,-158,-204]]]},{"type":"MultiPolygon","id":3982,"properties":{"name":"Disentis/Mustér"},"arcs":[[[-106,130,-120,-103]]]},{"type":"MultiPolygon","id":3983,"properties":{"name":"Medel (Lucmagn)"},"arcs":[[[101,102,103,-32,104]]]},{"type":"MultiPolygon","id":3985,"properties":{"name":"Sumvitg"},"arcs":[[[119,120,121,122,-33,-104]]]},{"type":"MultiPolygon","id":3986,"properties":{"name":"Tujetsch"},"arcs":[[[105,-102
 ,106]]]},{"type":"MultiPolygon","id":3987,"properties":{"name":"Trun"},"arcs":[[[202,203,-157,-122]]]}]}},"arcs":[[[5961,5738],[1,42],[-23,58],[-17,27],[-6,88],[-43,-11],[-17,-16],[2,62],[-23,11],[-28,-12],[-28,-32],[-2,-26],[-19,-16],[7,-37],[31,-37],[18,-58],[-14,15],[-21,-5],[27,-46],[-30,-48],[-11,-1],[-2,88],[-25,95],[-21,-26],[-26,6]],[[5691,5859],[4,36],[-14,16],[-15,49],[-2,87],[-41,94],[-54,76],[-28,25],[-36,66]],[[5505,6308],[45,38],[6,21],[24,32],[6,28],[31,1],[13,-13],[50,11],[13,48],[22,2],[35,38],[-1,42],[30,48],[0,62],[12,22],[30,12],[21,29],[-47,74],[13,25],[25,26],[8,29],[23,14],[33,32],[25,36],[13,35],[4,50],[35,39],[34,6],[23,14],[37,53],[-1,30],[61,47],[34,8],[42,66],[12,3],[-1,35],[15,37],[-14,93]],[[6216,7481],[9,7],[1,64],[22,42],[-4,23],[13,83],[17,51],[71,32],[12,-17],[43,8],[10,-6],[33,14],[21,-30],[105,-41],[10,-28],[20,-16],[9,-32],[-3,-39],[16,-22],[29,-87],[7,-59],[19,-43],[20,-5],[26,-26],[35,-17],[41,-38],[52,-30],[34,-6],[29,-16],[30,13],[49,35],[8,-
 67],[-19,-45],[9,-27],[33,-44],[35,-10],[-12,-55],[4,-32],[-8,-19],[5,-41],[17,-29],[-7,-60],[23,-71],[31,-52]],[[7111,6743],[-14,-21],[13,-46],[-14,-23],[-20,-7],[-38,-38],[-21,13],[-20,-3],[-67,-29],[23,-54],[-2,-14],[31,-87],[15,-63],[-11,-43],[28,-44],[35,-4],[34,-63],[-12,-46],[-11,-5],[4,-37],[-17,-33],[27,-63],[1,-40],[-9,-19]],[[7066,5974],[-71,-5],[-30,27],[-41,-3],[-18,-21],[-51,-20],[-24,-27],[-13,-51],[-53,-19],[-23,-28],[-22,5],[-36,-17],[-21,38]],[[6663,5853],[-52,21],[-47,46],[-14,26],[-22,-18],[-5,-20],[-20,-4],[-40,-85],[-17,-5],[-22,-48],[-31,-28],[-41,66],[-22,25],[-51,-27],[-5,-17],[-29,-22],[-29,-4],[-22,-30],[-30,-9],[-51,-40],[-26,-8],[-85,57],[-41,9]],[[5231,2753],[12,-35],[14,-8],[30,8],[19,-8],[46,3],[26,-15],[34,-1],[0,26],[22,-1],[13,21],[16,54],[44,15],[38,-9],[5,47],[-4,32],[22,21],[35,5]],[[5603,2908],[22,-11],[35,-47],[54,21],[36,-50],[27,10],[3,22],[62,5],[53,22],[113,5],[9,-62],[16,-33],[10,-66],[38,-94],[-1,-20],[26,-99],[7,-57],[7,-99],[13,-31],[-
 2,-26],[23,-56],[7,-90],[35,-39],[18,-45],[9,-44]],[[6223,2024],[-38,-70],[-42,9],[-27,20],[-20,25],[-35,61],[-43,23],[-22,44],[-24,-23],[-17,5],[-14,-32],[-35,-37],[-21,-42],[15,-29],[14,-58],[-23,-20],[-1,-25],[-20,-18],[-11,-37],[4,-25],[28,-5],[18,-16],[-5,-103],[-34,-43],[-20,-106],[1,-46],[-66,-26],[-56,32],[-16,-6],[-42,38],[-3,32],[-24,35],[-38,-38],[-3,-38],[-31,5],[-20,-13],[-22,-30],[-31,-15],[0,-24],[-24,-13],[-36,-32],[-37,3],[-44,21],[-29,-14],[-49,78],[-39,-1],[-20,12],[-35,-26],[-16,17],[-36,-9],[-28,10],[-28,42],[-13,-3],[-21,25],[-24,10],[-13,40],[-30,0],[-29,-42],[-59,62],[-29,44],[-48,85],[-22,52],[-17,25],[-10,59],[-14,-3],[-3,36],[-13,11],[-7,71],[-9,23],[-4,72],[-17,8],[-28,42],[-3,40],[-21,49],[-22,15],[-50,14],[-17,38],[-28,2],[-13,15],[-51,19],[-13,25],[11,32],[-12,45],[14,-2],[27,63],[-14,34],[1,70],[-40,171],[-21,23]],[[4416,2786],[51,30],[8,41],[29,19],[50,89],[18,-37],[3,27],[70,60],[38,15],[34,-49],[31,-13],[-2,-39],[21,-61],[17,-106],[-11,-47],[18,-71
 ],[21,-33],[-7,-44],[37,-64],[36,-32],[15,-3],[51,-41],[48,65],[19,50],[15,17],[4,93],[28,25],[43,12],[24,-23],[32,56],[6,33],[23,18],[45,-20]],[[7107,5902],[45,14],[26,28],[49,15],[30,-21],[28,18],[15,118],[-8,28],[31,43],[11,34],[9,-2],[23,41],[-14,55],[6,41],[-8,27],[-22,41],[15,17],[33,-12],[32,-25],[31,-1],[37,30],[20,-2],[42,20],[78,22],[39,-29],[56,-14],[95,0],[27,7],[83,-20]],[[7916,6375],[8,-17],[49,-44],[28,-39],[21,0],[34,-20],[38,40],[-7,34],[11,35]],[[8098,6364],[39,-11],[47,-64],[54,-31],[35,9],[28,-68],[23,-4],[25,-58],[5,-35],[15,-18],[42,-6],[20,-17],[24,10],[26,-5]],[[8481,6066],[71,-54],[55,-4],[48,-36],[23,0],[30,-22],[40,0]],[[8748,5950],[-2,-88],[19,-70],[24,-24],[15,-30],[4,-41],[25,-22],[-22,-53],[-45,-67],[-50,-62],[-31,13],[-63,-19],[-8,-27],[29,-22],[33,-94],[6,-61],[-27,-26]],[[8655,5257],[-21,53],[-15,92],[-78,-73],[-23,-56],[2,-29],[-24,-53],[-50,40],[-71,23],[-4,31],[-26,-5],[-136,-117],[-59,-15],[-44,-45],[-33,-5],[-5,-32],[-46,-29],[-77,18],[-37,38],
 [-23,-1]],[[7885,5092],[-26,34],[-14,33],[3,33],[-13,48],[-23,-5],[-24,16],[-43,8],[-24,-19],[-68,-8],[5,39],[-5,18],[16,39],[-97,99],[-5,0],[-87,83],[-64,25],[-72,58],[-56,73],[-49,41],[-13,17],[-27,13],[-74,56],[-29,33],[-4,23],[16,31],[-1,22]],[[8748,5950],[3,15],[39,29],[18,30]],[[8808,6024],[21,-32],[13,-36],[41,-7],[2,-14],[43,-50],[22,-2],[32,-27],[28,-7],[7,-56],[0,-58],[10,-19],[48,-34],[45,-67],[10,6],[35,-13],[57,0],[30,-14],[32,0],[108,18],[27,-5],[36,52]],[[9455,5659],[13,-18],[0,-29],[24,-48],[9,-60],[-10,-21],[14,-19],[38,-18],[59,40],[34,2],[54,14],[38,2],[13,22],[49,-40],[43,-46],[146,-190],[20,3],[-5,-51],[-20,-28],[-13,-54],[15,-33],[2,-41],[-13,-21],[-4,-32],[21,-30],[-19,-87],[7,-46],[-21,-31],[-16,-42],[-3,-39],[-11,-11],[-2,-43],[22,-55],[-16,-70],[-18,-35],[8,-55],[-34,-26],[-37,-1],[2,-41],[-27,-54],[-6,-26],[-89,71],[-18,43],[-49,54],[-38,52],[-30,-11],[-75,-75],[-12,-1],[-42,30],[-25,33],[-25,-4],[-22,29],[-68,30],[-47,-5],[-16,5],[-10,-48],[4,-20],[-31,-3
 9],[-14,-30],[-27,-8],[-37,68],[-27,24],[-33,-38],[-17,-1],[-25,-22],[-23,27],[-27,-4],[-34,10],[-10,20],[11,35],[-4,44],[-37,61],[-4,44],[-9,20],[-48,14],[-33,25],[-19,37],[-30,-8],[-35,-40],[-16,-28],[-43,34],[-13,42],[-2,62],[-16,57],[2,34],[23,54],[9,42],[16,20],[21,68],[17,23],[-79,126]],[[6216,7481],[-42,47],[-24,5],[23,48],[18,4],[19,41],[7,37],[-17,25],[-26,2],[-13,33]],[[6161,7723],[9,21],[10,60],[37,44],[9,45],[-8,15],[23,61],[0,30],[17,34],[-1,19]],[[6257,8052],[11,44],[11,7],[4,45],[-8,12],[21,70],[-3,16],[31,-9],[11,21],[16,-1],[40,23],[38,-33],[80,-46],[52,14],[49,-16],[24,19],[25,62],[23,37],[10,58],[36,81],[15,14],[52,28]],[[6795,8498],[37,-42],[33,-15],[47,-37],[48,-8],[23,24],[45,19],[24,-38],[46,13],[6,18],[27,11],[15,-22],[13,-85],[23,-6],[18,-33],[32,-1],[36,-31],[18,-4],[21,19],[26,-3],[17,18],[11,-31],[39,-34],[13,-48],[31,-48],[17,1],[20,-32],[6,-35],[18,-6],[40,-45],[-10,-54],[4,-77],[25,-26],[29,-8],[78,17],[31,-15],[34,9],[32,-44],[-7,-30],[6,-33],[24,-27]
 ],[[7791,7729],[-39,-33],[-23,-37],[-15,-45],[2,-26],[-14,-22],[-18,15],[-21,-20],[-18,-49],[32,-27],[-45,-64],[-21,-79],[1,-17]],[[7612,7325],[-17,2],[-52,-15],[-29,-35],[-69,17],[-15,-115],[-38,-64],[-110,-21],[-10,-28],[-24,-23],[-3,-34],[-20,-37],[-7,-113],[-54,-51],[-13,-7],[-40,-58]],[[7163,2479],[32,8],[11,-6],[21,15],[17,64],[19,26],[23,3],[10,115],[13,12],[21,39],[87,76],[63,62],[12,26],[1,40],[11,125],[54,-30],[31,17],[17,51],[-8,31],[3,62]],[[7601,3215],[47,-15],[10,-17],[19,16],[13,-29],[0,-70],[14,-39],[22,-27],[54,32],[16,-3],[18,-30],[-5,-26],[9,-22],[33,5],[26,16],[30,-15],[19,1],[8,37],[24,15],[9,27],[39,-23],[13,6],[4,30],[65,31],[10,-26],[44,-8],[21,-41],[15,-16],[10,-68],[-4,-29],[10,-16],[41,37],[22,-5],[4,-20],[30,-67],[-23,-26],[-4,-25],[15,-137],[-10,-34],[-31,-29],[-37,6],[-10,13],[-28,-9],[-38,-43],[-41,-63],[6,-33],[-11,-26],[18,-119],[-45,-35],[-40,-62],[-17,6],[-10,-15],[8,-63],[-17,-44],[0,-118],[28,-46],[22,-70],[0,-26],[16,-49],[38,-21],[56,-65],[29,-
 14],[-3,-39]],[[8162,1670],[-65,-48],[-31,-60],[-70,-3],[-6,-28],[35,-63],[-61,-129],[-72,-128],[4,-49],[-21,-12],[5,-33],[-9,-53],[-33,-15],[-30,-34],[-30,7],[-26,43]],[[7752,1065],[-11,53],[0,29],[-15,13],[10,14],[-15,51],[0,32],[-66,45],[-24,34],[-46,39],[-121,36],[-50,23],[-24,21],[-12,76],[-14,44],[21,13],[28,52],[-1,25],[-25,38],[15,24],[4,41],[-29,7],[-18,29],[-30,29],[-6,18],[-29,22],[21,62],[8,64],[25,32],[1,28],[28,35],[-9,45],[7,50],[-14,13],[-47,-12],[-5,22],[-39,42],[-19,6],[-16,31],[-36,30],[-51,107],[15,51]],[[1663,5077],[35,16],[29,3]],[[1727,5096],[26,-21],[84,-23],[38,0],[8,-31],[24,-4],[5,29],[19,39],[38,29],[62,82],[-26,64],[21,46],[-5,32],[-20,17],[-28,131],[11,55],[-6,43],[6,14]],[[1984,5598],[26,11],[60,-28],[24,7],[82,41],[97,71],[50,-8],[40,16],[27,60],[32,54],[18,48],[0,50],[28,60],[36,31],[6,18],[31,15],[-5,29],[16,27],[13,60],[37,27],[19,43],[37,43]],[[2658,6273],[32,10],[12,28],[28,18],[22,26],[23,-2],[16,15],[36,5],[16,12]],[[2843,6385],[57,-11],[14,11]
 ,[42,-6],[26,33],[47,-17],[26,0]],[[3055,6395],[6,-67]],[[3061,6328],[-22,-32],[1,-18],[-20,-48],[-14,-18]],[[3006,6212],[1,-23],[-19,-14],[-7,-48],[-18,-6],[3,-40],[25,-35],[23,-11],[41,-43],[22,-10],[25,-45],[27,-69],[15,-16],[6,-28],[24,-24],[20,-49],[20,-32],[18,-68],[-15,-74],[-10,-84],[-16,-14],[-26,-68]],[[3165,5411],[-13,46],[-2,44],[-21,80],[-57,53],[-31,-1],[-37,58],[-31,-44],[-18,-9],[-40,1],[-15,9],[-40,4],[-2,-51],[9,-33],[-12,-28],[27,-46],[-81,-6],[-5,-8],[-37,15],[-15,-20],[3,-31],[-22,-26],[6,-80]],[[2731,5338],[-11,-26],[-29,-35],[-22,-7],[-3,-20],[14,-16],[-4,-42],[16,-45],[-21,-69],[-39,-35],[-72,-27],[-5,-47],[-40,-81],[-42,-47],[-5,-27],[-27,-43],[5,-66],[-14,-1],[-7,-36],[-38,-47],[-20,-58],[-20,-27],[-14,0],[-43,-29],[-42,9],[-50,-12],[-28,40],[1,23],[-31,1]],[[2140,4568],[-8,23],[8,21],[-15,32],[-32,19],[-7,20],[-2,69],[-37,-8],[-11,23],[-25,18],[-23,-1],[-26,52],[-41,37],[-48,3],[-63,-34],[-57,-70],[-35,10],[-25,-12],[-14,89],[17,83],[-33,135]],[[3441,2217]
 ,[-37,-13],[-10,-26],[-21,-16],[-16,-30],[-37,-7],[-37,12],[-22,-7],[-29,51],[-10,58],[-20,69],[-35,7],[-19,-19],[-41,27],[-23,4],[-40,32],[-94,37],[-37,3],[-28,-15]],[[2885,2384],[-47,31],[-32,120],[3,90],[-14,14],[4,30],[-29,33],[5,49],[-37,10],[-4,98],[-33,51],[-4,48],[-32,117],[-10,-4],[-54,28],[-29,29],[-33,-99],[-43,-75],[-82,-1]],[[2414,2953],[-16,75],[24,56],[2,51],[16,79],[-30,73],[-27,43],[2,49],[-38,29]],[[2347,3408],[417,316],[139,9],[93,8],[29,-14],[0,13]],[[3025,3740],[15,-22],[18,6],[97,87],[10,44],[104,8],[77,38],[27,37],[14,2]],[[3387,3940],[21,-45],[-11,-21],[0,-61],[10,-10],[47,-15],[-4,-103],[7,-33]],[[3457,3652],[-22,-61],[0,-44],[-25,-46],[19,-48],[-7,-45],[3,-31],[-13,-28],[5,-75],[19,-15],[-16,-25],[-6,-31],[-21,-37],[-41,-39],[-54,-9],[-29,-29],[11,-96],[-1,-57],[36,-57],[40,-40],[10,-38],[23,-7],[11,-19],[16,23],[15,-6],[6,-44],[19,-11],[16,-105],[-20,-19],[16,-21],[-8,-32],[-23,-39],[10,-50],[19,-36],[18,-11],[-1,-25],[-31,-54],[-1,-47],[-14,-14],[10,-17],
 [-5,-50]],[[5114,6435],[0,36],[14,65],[-7,49],[18,36]],[[5139,6621],[36,-3],[21,26],[32,11],[8,53],[-4,33],[13,31],[5,50],[35,36],[19,44],[0,21],[24,42],[10,41],[-18,46],[-3,31],[-30,2],[-19,13],[-18,43],[-42,61],[3,71],[7,10],[-17,78],[-7,-8],[-34,15],[0,22],[-16,-7],[-28,22],[5,10],[-43,4],[-8,17],[-18,-9],[-30,3]],[[5022,7430],[-5,40],[8,7],[7,62],[11,33],[33,59],[0,65],[-23,64],[-14,20]],[[5039,7780],[12,-4],[9,32],[14,14],[37,2],[29,35],[27,8],[41,-35],[50,38],[16,25]],[[5274,7895],[14,-26],[9,-39],[15,-25],[50,-9],[36,12],[42,-2],[42,14],[20,-8],[7,14]],[[5509,7826],[35,18],[38,-34],[20,-28],[53,-4]],[[5655,7778],[7,-23],[59,-15],[24,-27],[17,-38],[60,8],[41,25],[17,24],[38,29],[39,19],[13,32],[24,28],[24,2]],[[6018,7842],[40,-18],[53,-65],[-6,-11],[16,-38],[40,13]],[[5505,6308],[-27,-1]],[[5478,6307],[-13,25],[0,34],[50,69],[9,41],[21,6],[34,67],[17,20],[21,84],[-25,37],[-20,-23],[-21,7],[-4,-15],[-30,-15],[4,-18],[-19,-19],[-3,-22],[-23,66],[-11,-23],[-36,-39],[2,-20],[-40,-
 42],[-1,-25],[-26,-15],[-17,-30],[-16,5],[-26,-17],[-34,-10],[-17,-26],[-10,3],[-39,-26]],[[5205,6386],[-57,56],[-34,-7]],[[3007,4268],[-45,6],[-68,-38],[-9,-36],[-74,-33],[-41,-37],[-18,-26],[-5,-78],[-24,-4],[-49,-42],[-45,-9],[-48,-38],[-31,-56],[-16,-3],[-30,-79],[-32,-40],[-40,-13],[-32,16],[-46,-11],[-96,39],[-74,-38],[-10,-12],[-30,-84],[-9,-75]],[[2135,3577],[-31,75],[-34,30],[-26,53],[-12,45],[0,62],[7,11],[-18,70],[-1,34],[-16,6],[-4,33],[27,21],[7,44],[-21,109],[26,78],[-7,36],[20,60],[-3,23],[18,67],[30,48],[-3,18],[13,57],[33,11]],[[2731,5338],[55,17],[51,-8],[-12,-30],[39,38],[29,13],[18,-18],[24,-68],[-5,-19],[41,-27],[18,-44],[4,-44],[30,-19],[15,-33],[75,-47],[24,-5]],[[3137,5044],[21,-39],[52,-50],[10,-20],[-3,-33],[-29,-16],[-14,-44],[-10,-82],[22,-88],[2,-82],[-28,-64],[9,-18]],[[3169,4508],[-6,-74],[-15,-20],[-24,-4],[-37,-23],[-33,-13],[-21,-40],[-8,-31],[-18,-35]],[[3223,4510],[-13,20],[-29,-23],[-12,1]],[[3137,5044],[18,7],[30,38],[9,76],[13,52],[-8,26],[-3,4
 9],[-26,41],[-16,60],[11,18]],[[3165,5411],[37,7],[40,34],[22,45],[15,11],[21,45],[19,21],[34,78],[36,148],[8,64],[33,80],[8,70],[-16,100]],[[3422,6114],[1,64],[62,76],[-20,34],[0,65],[-10,13],[-11,49],[-19,23],[-24,1],[-18,36],[-33,21],[-18,63]],[[3332,6559],[-16,49],[-12,105],[-26,83],[-4,26]],[[3274,6822],[30,58],[12,5],[57,54],[21,36],[25,-11],[32,3],[32,-17],[14,30],[-9,59],[9,40],[35,18]],[[3532,7097],[26,16],[22,-27],[22,6],[0,27]],[[3602,7119],[14,-9],[14,-44],[27,7]],[[3657,7073],[28,-34],[26,6],[18,-31],[-18,-31],[34,-75],[-4,-18],[21,-28],[15,-54],[22,33],[39,17],[35,-16],[-2,-50]],[[3871,6792],[-1,-62],[28,-32],[12,11],[19,-53],[-12,-24],[16,-23]],[[3933,6609],[-8,-7],[10,-34],[-7,-56],[-11,-15],[19,-50],[-14,-47],[-45,-105],[-6,-33],[-12,-7],[-39,-91],[-7,-39],[16,-84],[2,-40],[-16,-22]],[[3815,5979],[-37,-37],[-30,-16],[-2,-14],[-45,-40],[-32,-104],[-34,-71],[-25,-31],[37,-37],[23,4],[29,-29],[37,-59],[12,-38],[-6,-56],[4,-51],[-10,-13],[0,-59],[-20,-14],[-5,-32],[16,-
 32],[11,8],[15,-21]],[[3753,5237],[-29,-23]],[[3724,5214],[-26,-29],[-39,-4],[-69,-45],[-30,4],[-10,-39],[0,-42],[10,-22],[-21,-41],[0,-20],[22,-35],[36,-22],[0,-114],[5,-12]],[[3602,4793],[-10,-8],[-14,-65],[3,-27],[-10,-41]],[[3571,4652],[-54,-17],[-21,-15],[-21,1],[-13,-13],[-57,-14],[-26,-30],[-68,-21],[-48,-23],[-40,-10]],[[9571,7148],[-15,42],[-15,11],[-12,31],[-21,28],[8,26],[-5,30],[-11,0],[-34,69],[-32,33],[-8,41],[-27,36],[-27,19],[-37,-1],[9,26],[-14,31],[-13,-6],[-27,-39],[-31,23],[7,42],[14,29],[-51,44],[-6,21],[-22,3],[-57,29],[-20,24],[-16,50],[-14,20],[-19,53],[-4,57],[-20,71],[11,42],[-13,52],[-13,28],[-3,47],[-17,41],[-15,9],[-37,64],[-20,14],[-23,63],[-37,35],[-44,17],[-33,54],[-5,85],[12,7],[19,43]],[[8833,8592],[19,-21],[20,54],[46,15],[36,-5]],[[8954,8635],[22,-22],[20,-1],[54,-55],[2,-25],[14,-14],[4,-31],[23,-11],[10,-34],[-1,-31],[13,-12],[49,-8],[17,8],[46,-6],[19,-32],[28,-14],[25,34],[1,91],[-12,29],[5,76],[13,34],[-2,60],[7,46],[15,30],[1,40],[35,69],[0,
 13],[67,68],[6,15],[38,31],[33,-9],[29,2],[34,14],[13,24]],[[9582,9014],[34,-26],[11,4],[37,-19],[35,8],[7,-22],[38,-28],[28,-10],[41,-64],[72,-33],[-17,-54],[-1,-36],[16,-43],[-14,-77],[5,-42],[-13,-30],[-25,-20],[-3,-83],[-13,-23],[2,-78],[-31,-57],[-22,-57],[25,-34],[13,-90],[-3,-69],[-11,-52],[24,-148],[-15,-10],[-11,-45],[-14,-29],[14,-19],[2,-40],[-18,-21],[-10,6],[-24,-51],[22,-61],[-23,-31],[2,-41],[10,-18],[-34,-137],[-16,-36],[-46,-42],[-47,-9],[-13,-37],[-5,-48],[-20,-14]],[[5736,4911],[-22,56],[-7,53],[13,32],[-12,108],[19,35],[10,49],[-27,51],[6,35],[43,62],[42,97],[-22,74],[73,151],[77,10],[32,14]],[[6663,5853],[-64,-157],[16,-57],[-7,-33],[-27,-45],[0,-48],[69,-98],[66,-244]],[[6716,5171],[-23,-26],[-31,-16],[-26,24],[-27,-45],[-4,-29],[-20,-52],[10,-27],[-9,-51]],[[6586,4949],[-40,0],[-17,-13],[-46,-73],[-17,-9],[-22,14],[-43,-4],[0,-56],[-22,-29],[14,-109],[29,-69]],[[6422,4601],[-74,-17],[-14,-32],[-33,-13],[-105,-27],[-23,-25],[-20,1],[-23,-15],[-59,-9],[-16,-29],
 [-39,-1],[-9,-27]],[[6007,4407],[-6,-11],[-31,-7],[-6,14],[-37,7],[-17,-16],[-4,-25],[-48,-36]],[[5858,4333],[-4,77],[-23,34],[0,19],[-30,48],[14,34],[-15,76],[-41,36],[-20,27],[-4,38],[17,14],[-4,27],[18,35],[-1,62],[-29,51]],[[8808,6024],[-18,27],[-4,28],[-19,5],[-17,31],[-55,37],[-14,76],[23,74],[-1,30],[20,32],[1,21],[29,50],[-16,58],[53,36],[7,75],[11,18],[-4,49],[8,14],[-5,65],[-9,9],[21,123],[15,14],[24,55],[21,14],[-9,100],[18,53],[-35,11],[-21,-21],[-26,12],[-55,-11]],[[8751,7109],[-19,79],[-8,72],[-15,56],[-17,90],[-14,46],[-85,45],[4,31],[-21,27],[2,37],[19,30],[6,31],[21,16],[22,87]],[[8646,7756],[44,-15],[46,-43],[1,-11],[34,-12],[30,-58],[84,-83],[47,-75],[54,-72],[24,-13],[96,-72],[11,7],[21,-68],[86,-159],[-10,-17],[22,-105],[-29,-98],[-7,-5],[13,-39],[3,-50],[-25,-56],[30,-13],[-5,-44],[24,1],[19,22],[27,-9],[-2,-27],[28,-26],[22,25],[35,2],[11,-31],[33,-34],[17,-43],[36,-4]],[[9466,6531],[1,-9],[40,-33],[11,-37],[28,-57],[24,-16],[-3,-50],[-10,-14],[1,-47],[-25,-36
 ],[-19,-11],[-24,4],[-25,-83],[-8,-44],[-24,-65],[-27,-17],[-17,1],[-9,-33],[21,-26],[23,-59],[10,-51],[7,-2],[-6,-43],[11,-74],[-9,-24],[8,-41],[10,-5]],[[7066,5974],[-1,-15],[26,-26],[16,-31]],[[7885,5092],[-18,-54],[15,-54],[-18,-33],[-4,-51],[24,-47],[-5,-30],[3,-42],[-18,-29],[-8,-31],[-39,-17],[-52,-12],[8,-44],[31,-42],[-41,-74],[-22,-7],[-23,-68],[-5,-44],[-28,-26],[-4,-25],[-25,-13],[-29,2],[-27,-12]],[[7600,4339],[1,17],[-33,40],[-31,-4],[-30,16],[-35,-1],[-23,24],[-41,-4],[-28,44],[-25,-8],[-36,19],[-21,22],[41,56],[11,67],[20,24],[4,26],[-13,47],[5,51],[11,22],[-1,74],[-15,27],[-63,97],[-31,24],[-48,-30],[-24,-5],[-22,36],[-26,64],[11,40],[-5,21],[-26,24],[-120,60],[-30,-60],[-12,5],[-31,-20],[-58,28],[-11,12],[-33,-20]],[[6832,5174],[-23,39],[-21,18]],[[6788,5231],[-21,16],[-26,-15],[-20,-37],[-5,-24]],[[549,4448],[1,69],[26,75],[17,71],[21,7],[32,66],[8,45],[30,30],[16,43],[34,2],[7,26],[-1,66],[14,49],[-18,63],[-4,67],[30,68],[-12,27],[8,31],[15,16],[21,83],[32,25],[1
 0,58],[3,83]],[[839,5518],[51,7],[23,-7],[32,4],[10,-14],[50,54],[13,20],[81,85],[5,19],[25,2],[29,-19],[46,52],[136,30],[31,-16]],[[1371,5735],[20,-94],[-17,-39],[12,-23],[-7,-47],[34,-53],[-1,-33],[-17,-61],[13,-30],[36,-15],[52,21],[24,-3],[16,24],[28,7],[25,-16],[48,25],[21,-37],[23,-11],[16,-53],[7,-103],[15,-45],[8,-53]],[[1663,5077],[-26,23],[-9,-29],[-1,-66],[-48,-62],[-46,26],[-39,6],[-8,17],[-21,-14],[-8,-22],[-40,-14],[-5,-23],[-17,-8],[-11,-46],[11,-66],[13,-32],[31,-39],[11,-31],[-9,-9],[5,-33],[-20,-36],[-47,-63],[-53,-25],[-25,-32],[-53,-18],[-12,-32],[-52,-19],[-26,-2],[-7,-22],[-32,-10],[-66,-78],[-61,3],[-13,42],[0,42],[-157,-94],[-212,117],[-12,-9],[-26,7],[-23,22]],[[697,6138],[-9,-9],[-13,-80],[-29,-27],[-3,-49],[13,-55],[28,-60],[37,-25],[84,-114],[34,-201]],[[549,4448],[-38,-45],[-26,-1],[-10,15],[-43,24],[-8,14],[-30,-46],[-26,-22],[-43,24],[-23,5],[-3,37],[-10,17],[-37,25],[-20,-16],[-12,8],[-39,-6],[-8,-18],[-17,9],[17,104],[-9,72],[-17,36],[-3,32],[15,46],
 [-12,45],[5,73],[-11,44],[-29,-5],[-39,21],[-3,18],[-32,32],[-8,58],[-30,31],[4,41],[30,42],[-7,23],[12,37],[-21,32],[34,68],[27,0],[29,33],[21,45],[17,15],[-9,43],[-17,28],[-3,98],[-5,19],[12,45],[-8,62],[23,45],[44,-7],[16,21],[17,65],[42,20],[48,-50],[44,41],[2,39],[54,16],[53,75],[17,6],[37,43],[7,25],[-27,91],[17,51],[1,27],[29,26],[19,31],[51,44],[18,-4],[0,-39],[16,-9],[19,-45],[9,-40],[17,-14],[8,-30]],[[6882,2497],[5,17],[-12,30],[-3,73],[9,53],[-10,0],[-4,39],[-22,36],[-4,49],[6,39],[-8,25],[3,52],[-21,19],[-17,35],[-5,36],[17,33],[2,32],[12,17],[-7,24],[24,20],[-2,44],[6,92],[-32,195],[-81,44],[-84,-3]],[[6654,3498],[10,20],[72,105],[23,-6],[19,50],[-2,30],[35,44],[-15,43],[-53,55],[-16,44],[-13,16]],[[6714,3899],[64,50],[2,-34],[40,12],[56,-17],[10,-23],[23,-10],[12,-23],[31,-11],[59,-37],[21,-26],[20,-5]],[[7052,3775],[31,-49],[29,-12],[23,-57],[29,-39],[17,-38],[55,-13],[11,23],[25,-1]],[[7272,3589],[23,27],[11,-14],[20,4],[39,-44],[26,28],[27,9],[-2,18]],[[7416,3617],
 [37,-17],[32,8],[15,-13],[60,-19],[46,17]],[[7606,3593],[27,-29],[13,-25],[4,-65],[12,-13],[-9,-47],[-31,-34],[3,-16],[-19,-14],[-10,-30],[5,-36],[-17,-24],[17,-45]],[[7163,2479],[-32,11],[-99,-55],[-24,-33],[4,-51],[-28,-16],[-4,29],[-22,31],[-20,-14],[-42,102],[-14,14]],[[8646,7756],[-3,54],[5,66],[-19,9],[9,51],[-3,40],[-53,41]],[[8582,8017],[45,116],[-21,53],[60,30],[-1,39],[-17,56],[8,45],[19,8],[0,33],[-13,56],[-14,9],[-8,47],[-7,98],[4,62]],[[8637,8669],[50,-8],[146,-69]],[[9571,7148],[4,-15],[30,-17],[11,-27],[16,-8],[9,-49],[24,-24],[13,-36],[0,-32],[18,-101],[-12,-87],[-33,6],[-66,-87],[-53,-52],[-7,-25],[-59,-63]],[[1371,5735],[-10,109],[13,41],[-10,31],[-17,93],[-30,69],[-8,33],[11,34],[0,55],[6,36],[-9,13],[0,50],[-13,29],[0,35],[-16,46],[-53,98],[-25,31],[13,40],[18,26],[8,77],[-15,62],[5,42],[31,57],[-1,60],[4,46],[132,127]],[[1405,7075],[-3,-28],[8,-38],[-7,-51],[22,-25],[30,1],[26,-20]],[[1481,6914],[5,-43],[30,-139],[13,-32],[29,-4],[29,-52],[6,-45],[72,-151],[-15,
 -63],[30,-149],[16,8],[11,-19],[-10,-49],[2,-33],[29,-159],[-19,-9],[-8,-21],[5,-31],[-13,-30],[1,-108],[7,-14],[27,2],[33,-13],[19,-38],[38,-7],[61,18],[23,-14],[7,-21],[23,-7],[10,-24]],[[1942,5667],[42,-69]],[[7612,7325],[39,-46],[-13,-43],[29,-70],[-12,-15],[-12,-77],[3,-24],[27,-54],[16,-14],[25,-49],[23,-23],[5,-54],[41,-38],[34,-9],[8,-26],[-23,-28],[49,-74],[23,-60],[19,-30],[35,-22],[17,-87],[-11,-16],[-3,-38],[-15,-53]],[[4441,3807],[52,-27],[16,6],[43,-42],[8,-33],[24,-1],[13,-24],[39,-4],[14,6],[35,-32],[40,-12],[21,18]],[[4746,3662],[3,-15],[41,-27],[46,0],[36,-11],[14,6],[38,-34],[11,-22],[19,10],[21,-68],[1,-33],[18,-77],[32,-31],[82,-19],[7,-11],[43,13]],[[5158,3343],[11,-42],[29,-80],[19,-28],[12,-93],[-14,-53],[10,-52],[22,-42],[7,-85],[13,-55],[-25,-32],[-11,-28]],[[4416,2786],[-10,33],[6,109],[10,56],[-5,31],[18,64],[-8,45],[1,63],[-7,55],[5,81],[19,16],[11,43],[-11,54],[0,45],[-10,21]],[[4435,3502],[-7,49]],[[4428,3551],[5,70],[1,82],[-9,81],[16,23]],[[697,6138]
 ,[22,17],[47,23],[26,-2],[22,28],[26,13],[25,25],[-16,84],[21,56],[0,60],[23,45],[-1,35],[21,13],[18,27],[32,-19],[15,30],[-25,47],[-5,66],[-8,33],[5,19],[-15,71],[9,43],[19,10],[15,25],[23,0],[13,-15],[39,-3],[-7,51],[29,19],[39,68],[52,12],[26,25],[12,43],[63,21],[19,-12],[36,11],[13,-27],[31,-18],[44,13]],[[5158,3343],[2,47],[-5,125],[16,57],[-6,28],[16,32]],[[5181,3632],[68,-11],[92,1],[34,-14],[62,-7],[72,3],[126,33],[38,-3],[31,34],[-9,47],[27,39],[-6,24],[10,90],[9,28]],[[5735,3896],[34,-14],[28,13],[17,-11],[17,9],[28,-6],[14,-24]],[[5873,3863],[-17,-54],[-5,-38],[11,-20],[23,-2],[9,-49],[-14,-38],[23,-31],[0,-56],[-19,-37],[0,-72],[-13,-19],[6,-97],[35,-40],[-19,-82]],[[5893,3228],[-39,-73],[5,-34],[-38,-30],[-64,16],[-28,-37],[-54,-39],[-34,-50],[-18,-11],[-20,-62]],[[3946,3746],[12,3],[40,41],[43,56],[11,-1],[28,78],[-2,38],[10,21],[6,76],[18,64],[-7,47]],[[4105,4169],[23,38],[30,34],[38,10],[15,43],[15,7],[26,68],[19,69],[-8,46],[23,18],[-5,29],[49,57],[5,-37],[17,-13],[
 27,0],[18,40],[24,15],[43,4],[49,-23],[10,12],[29,-7],[40,65]],[[4592,4644],[8,-80],[18,-54],[15,-24],[0,-27]],[[4633,4459],[-1,-57],[30,-55],[-44,-26],[8,-29],[-4,-55],[5,-68],[-3,-83],[-8,-51],[-24,-21],[18,-67],[39,-32],[84,3],[18,-22],[11,-61],[39,-48],[4,-24]],[[4805,3763],[-2,-50],[-30,-38],[-27,-13]],[[4441,3807],[-4,11],[-28,-7],[-18,-34],[-112,-88],[-22,-58],[-28,-42],[10,-37],[-11,-39],[0,-68],[-32,-39],[-25,-55],[-21,-11],[-58,34],[-46,35],[-12,27],[-2,35],[-16,37],[-28,20],[-13,-6],[-25,58],[-10,1],[-18,55],[8,44],[16,13],[0,53]],[[5893,3228],[20,-12],[43,42],[46,31],[20,58],[38,-32],[5,7],[125,-115],[68,-33],[5,-50],[12,-34],[39,-66],[-26,-16],[5,-44],[37,-56],[-9,-29],[77,-51]],[[6398,2828],[-19,-50],[13,-36],[-8,-46],[9,-20],[-21,-86],[8,-80],[24,-90],[-23,-48],[23,-35],[38,-13],[34,-55],[0,-16]],[[6476,2253],[0,-14],[-22,-45],[-50,-65],[-17,5],[-56,-47],[-12,-26],[-57,-12],[-24,-26],[-15,1]],[[6398,2828],[2,52],[86,105],[17,29],[5,31],[-11,39],[11,8],[-2,39],[9,42],[
 19,31],[-7,46],[-12,33],[24,11],[1,40]],[[6540,3334],[28,8],[23,76],[20,6],[9,50]],[[6620,3474],[29,10],[5,14]],[[6882,2497],[-110,-91],[-16,1],[-12,-48],[-70,-77],[-20,24],[-38,-9],[-8,-14],[-38,18],[-17,-31],[-34,5],[-12,-17],[-31,-5]],[[6586,4949],[5,4],[62,-32],[50,6],[33,-11],[21,-25],[26,-10]],[[6783,4881],[51,-82],[65,-5],[25,-14],[21,-40]],[[6945,4740],[10,-16],[24,13],[3,-21],[24,11],[22,-32],[-17,-48],[43,-26],[31,-41],[29,-2],[26,25],[13,-5]],[[7153,4598],[52,-11],[62,-54],[-1,-55],[26,-14],[-5,-32],[20,-29],[-10,-30],[12,-10],[1,-64],[-13,-95],[12,-54],[-34,-68],[24,-30],[-18,-88],[-2,-33],[15,-16]],[[7294,3915],[1,-22],[-16,-65],[19,-54],[-15,-61],[9,-19],[-6,-30],[8,-15],[-23,-47],[1,-13]],[[7052,3775],[6,25],[-4,48],[20,25],[20,61],[7,48],[-11,19],[-13,49],[-27,39],[-64,49],[-7,20]],[[6979,4158],[9,39],[-37,67],[-23,60],[-19,16],[-6,41],[-23,17],[-29,34],[10,36],[-12,20],[14,49],[-33,12],[-68,96],[-38,-20],[-33,-35],[-38,11],[-14,-9],[-64,20],[-47,-14],[-53,18],[-53,-
 15]],[[1942,5667],[37,115],[0,40],[-12,92],[-10,17],[1,67],[-7,31],[2,71],[-5,25],[10,28],[35,30],[26,15],[30,38]],[[2049,6236],[26,70],[-23,-8],[-5,14],[63,47],[23,40],[39,24],[45,20],[26,-20],[23,-1],[117,35]],[[2383,6457],[18,3],[29,23],[12,-3],[44,30]],[[2486,6510],[1,1]],[[2487,6511],[12,10]],[[2499,6521],[8,6]],[[2507,6527],[-2,12],[25,23],[-1,15]],[[2529,6577],[12,17]],[[2541,6594],[46,17],[-10,25]],[[2577,6636],[40,13],[13,-6],[23,16]],[[2653,6659],[17,-23],[-4,-55],[-27,-5],[-4,-13],[-31,-15],[8,-53],[-1,-51],[12,-54],[35,-117]],[[5453,8838],[4,30],[21,55],[-33,-1],[-3,75],[-32,5],[4,65],[12,18],[27,-15],[35,27],[11,34],[72,78],[7,31],[35,26],[33,83],[43,18],[31,-6],[38,36],[4,76],[46,52],[4,40],[27,48]],[[5839,9613],[32,50],[23,4],[57,-7],[63,28],[36,66]],[[6050,9754],[36,-38],[17,-37],[49,-24],[33,-59],[27,-19],[15,9],[49,-30],[25,-31],[12,-26]],[[6313,9499],[-22,-48],[-2,-34],[-56,-49],[29,-99],[-19,-54],[-64,-18],[-77,0],[-53,-27],[-41,-45]],[[6008,9125],[-34,19],[-38,-
 108],[-11,-91],[-21,-13],[-16,8],[-16,-43],[-22,3],[-39,-46],[-12,14],[-19,-21],[-18,-55],[-18,-35],[9,-14],[-21,-20],[-50,5],[-37,34]],[[5645,8762],[-8,12],[-46,14],[-20,16],[-53,-9]],[[5518,8795],[-65,43]],[[8098,6364],[0,31],[-25,30],[-6,23],[6,54],[26,25],[5,16],[-4,65],[4,38]],[[8104,6646],[21,16],[2,26],[19,53],[27,4],[-5,64],[-34,38],[19,56],[20,106],[3,31],[-6,63],[3,80],[-8,63],[14,17],[25,65],[17,26],[-32,31],[-6,31],[3,49],[-8,20],[-39,35],[-13,-7],[-31,29],[6,86],[29,33],[0,45],[-11,29]],[[8119,7735],[23,34],[36,-1],[27,39],[27,3],[22,29]],[[8254,7839],[21,-22],[-12,-47],[2,-43],[-9,-19],[1,-41],[16,-20],[23,-7],[7,-30],[53,-40],[20,-81],[-10,-88],[17,-40],[11,-65],[0,-66],[29,-78],[5,-47],[27,-46],[21,3],[30,-55],[5,-44]],[[8511,6963],[-24,-27],[-16,-34],[12,-12],[-20,-23],[0,-40],[14,-94],[-23,-25],[-15,-39],[-27,-107],[-19,-40],[-10,-41],[60,-1],[-3,-53],[25,-45],[8,-41],[-40,-28],[8,-50],[31,-12],[28,-36],[16,-4],[-33,-61],[7,-21],[-9,-63]],[[3387,3940],[33,57],[-27,
 79],[4,20],[-9,39],[15,3],[-20,33],[-6,26],[9,84],[-29,23],[-1,41],[-19,32],[-47,58],[-67,75]],[[3571,4652],[12,-16],[37,-15],[1,-52],[9,-5],[14,-50],[57,0],[31,24],[26,-16],[42,-44],[11,-38],[43,-60],[13,-32],[5,-39],[13,-37],[50,-57],[2,-35],[-25,-39],[4,-37],[-13,-16],[3,-73],[-25,-13],[-3,-27],[-18,-34],[26,-31],[8,-35],[-8,-70]],[[3886,3805],[-39,-59],[-22,11],[-65,-19],[-12,24],[-141,-27],[-34,-37],[-66,-30],[-6,-10],[-44,-6]],[[2801,1892],[-52,2],[-10,-9],[-35,10],[-31,-13],[-31,10],[-35,49],[-37,-24],[-34,-35],[-34,-13],[-63,26],[-21,0],[-38,27],[-52,-7]],[[2328,1915],[57,61],[36,3],[0,36],[16,35],[15,96],[-10,39],[0,35],[15,24],[-15,48],[0,30],[-18,70],[-15,26],[21,79],[26,47],[-24,29],[-10,43],[65,49],[2,31],[-10,44],[-24,43],[-8,40],[-36,77],[3,53]],[[2885,2384],[-22,-82],[6,-42],[-21,-26],[21,-82],[-2,-41],[-25,-40],[-5,-39],[-44,-54],[8,-47],[0,-39]],[[7416,3617],[-5,30],[12,40],[1,35],[-15,16],[-7,31],[9,24],[-12,45],[7,47],[-9,45],[92,88],[-36,93],[-91,-71],[15,-35],[
 -37,-38],[-11,-27],[-35,-25]],[[7153,4598],[1,58],[-21,68],[-28,45],[-15,6],[-21,-22],[-31,51],[10,24],[-44,24],[-11,19],[-26,-12],[-35,1],[-22,39],[-11,121],[-8,42],[-40,47],[-19,65]],[[7600,4339],[-14,-44],[0,-28],[14,-25],[36,-30],[4,-19],[-14,-13],[19,-77],[-2,-49],[-10,-54],[-24,-32],[-24,-6],[10,-69],[29,-45],[-18,-39],[-2,-54],[16,-44],[-24,-63],[2,-38],[8,-17]],[[8954,8635],[5,58],[-57,86],[-7,23],[13,34],[-5,45],[7,29],[85,28],[14,19],[8,49],[-2,69],[23,56],[2,33],[27,51],[0,48],[20,11],[12,40],[0,43],[45,33],[93,-14],[7,20],[26,29],[33,58],[24,7],[52,-38],[20,-65],[24,-22],[24,-52],[22,-24],[32,-17],[38,-56],[-5,-69],[-15,-33],[5,-73],[32,-33],[26,6]],[[5144,4179],[18,64],[-2,32],[9,41],[23,54],[38,39],[11,41],[-37,72],[-19,83],[5,39],[-6,21],[5,39],[16,24],[-15,33],[64,38],[7,-10],[43,1],[52,41],[9,36],[16,15],[2,24],[23,24],[20,68]],[[5426,4998],[26,-19],[34,-10],[49,19],[13,-5],[14,-33],[-3,-41],[42,-10],[33,6],[28,-16],[13,8],[57,1],[4,13]],[[5858,4333],[-41,-53],[-12,
 -36],[-87,13],[-32,-14]],[[5686,4243],[-18,25],[-24,-4],[0,52],[8,12],[-18,27],[-37,11],[-30,-26],[-9,-45],[-52,-24],[-76,0],[-18,18],[-41,-4],[-11,-37]],[[5360,4248],[-41,-1],[-7,-10],[-11,47],[-14,21],[-15,-21],[26,-50],[3,-22],[-16,10],[12,-35],[-11,-58],[-42,4],[-57,21],[-43,25]],[[4633,4459],[19,-6],[47,42],[17,30],[23,22],[16,44],[26,-3],[10,44],[-4,41],[16,132],[5,21],[-6,47],[33,48],[24,-9],[31,24],[14,-9],[29,24],[-19,24],[15,42],[63,-1],[12,-12],[46,15],[49,40]],[[5099,5059],[5,-39],[-16,-54],[8,-93]],[[5096,4873],[-19,-14],[1,-76],[-34,-52],[8,-65],[-29,-39],[-12,-35],[27,-35],[15,-53],[-24,-32],[-3,-32],[25,-45],[16,-15],[-35,-102],[-3,-66],[15,-23],[4,-53]],[[5048,4136],[-35,-33],[-29,-93],[-25,-34],[-33,-78],[-4,-35],[-46,-9],[-13,-23],[-41,-44],[3,-14],[-20,-10]],[[6157,8679],[7,19],[-5,40],[11,26],[3,66],[12,93],[21,37],[-31,41],[-13,-6],[-55,27],[-51,10],[-11,26],[1,35],[-38,32]],[[6313,9499],[12,3],[16,-22],[27,30],[29,14],[34,3],[23,30],[12,47],[31,-17],[59,-1],[2
 3,-35],[-25,-43],[-25,-16],[13,-70],[58,-47],[29,-13],[4,-70],[16,-60],[-38,-40],[-9,-25],[9,-28],[-44,-76],[-7,-22],[8,-21],[-3,-32],[-21,-48],[11,-28],[31,-42],[-9,-58],[-11,-11],[11,-29],[1,-78],[22,-11],[-16,-18],[-7,-39]],[[6577,8626],[-21,-40],[-39,18],[-54,2],[-28,35],[-10,-58],[-14,-19],[-35,8],[-19,22]],[[6357,8594],[-2,11],[-46,30],[-21,-1],[-9,26],[-21,-12],[-25,4],[-21,19],[-37,16],[-18,-8]],[[1481,6914],[35,26],[29,9],[24,32],[31,5],[15,26],[24,-5]],[[1639,7007],[-3,-24],[8,-55],[11,-23],[5,-43],[28,-26],[19,-31],[21,-18],[44,5],[29,20],[22,-13],[27,-73],[62,-44],[31,-35],[16,-39],[16,1],[19,-57],[0,-46],[20,-64],[26,-44],[22,-19],[-46,-69],[9,-45],[24,-29]],[[3113,1224],[-21,31],[-43,10],[-50,65],[-68,30]],[[2931,1360],[-32,8],[-21,47],[-28,116],[5,17],[-17,15],[-17,50],[5,16],[-14,21]],[[2812,1650],[8,32],[-3,94],[-3,28],[12,59]],[[2826,1863],[6,-1],[37,-51],[108,-22],[22,13],[7,22],[29,26],[39,57],[16,-37],[33,-15],[21,-35],[32,-33],[12,48],[35,4],[25,-23],[18,-33],[
 24,12],[36,-24],[50,53],[51,-8],[45,-94],[5,-57],[24,-36]],[[3501,1629],[-19,-57],[13,-38],[8,-98],[-26,-23],[-43,-66],[-19,-79],[-52,-43],[5,-61],[-12,-41],[-36,-34]],[[3320,1089],[-41,8],[-16,-7],[-25,63],[-13,19],[-2,26],[-16,37],[-28,17],[-35,-21],[-31,-7]],[[1639,7007],[44,24],[58,14],[22,-4],[55,19],[42,24],[56,5],[58,70],[6,49],[21,45],[25,82],[23,26]],[[2049,7361],[17,-44],[20,-96],[69,-58],[48,-142],[25,-32],[29,-73],[38,-74],[57,-187],[17,-33]],[[2369,6622],[13,-88],[-16,-12],[19,-36],[-2,-29]],[[3532,7097],[-39,69],[-40,17]],[[3453,7183],[-39,3],[-21,11],[-41,39],[-47,86],[-36,79],[-24,29],[-19,37],[-36,105],[-30,55],[-1,19],[-20,31],[3,78],[-30,45],[-61,114],[-14,6],[-28,32],[-5,66]],[[3004,8018],[28,34],[34,74],[15,50],[37,26],[27,-3],[25,70],[24,25],[29,-33],[19,-53],[51,-55]],[[3293,8153],[-3,-34],[-11,-9],[-17,-53],[-3,-69],[-11,-8],[4,-47],[79,-14],[115,-49],[37,3],[36,-59],[26,-107],[31,-32],[11,-36],[20,-16],[15,18],[24,-14],[8,-54],[28,-24],[27,-82],[-14,-31],[-2
 6,0],[-56,-30],[-8,-23],[-9,-68],[-1,-135],[7,-61]],[[6422,4601],[-18,-107],[-56,-107],[-10,-33],[-31,-26],[-4,-44],[11,-12],[47,2],[22,-16],[83,9],[29,13],[2,17],[30,38],[42,12],[41,-23],[19,-3],[69,36],[28,-16],[-22,-31],[8,-15],[16,33],[3,28],[38,-12],[31,2],[7,-20],[-23,-25],[22,-29],[57,-40],[46,-16],[18,-21],[52,-37]],[[6714,3899],[-15,11],[-32,76],[-44,63],[-1,37],[-32,-22],[-56,17],[-40,49],[-35,30],[-28,-13],[-18,16],[-41,-24],[-20,8],[-31,44],[-45,-58],[-39,-5],[5,-14],[-20,-20],[-32,-16],[-5,-27],[15,-26],[-16,-44],[13,-24],[-14,-36],[0,-35]],[[6183,3886],[-41,-31],[-9,35],[-36,-5],[-32,26],[-25,33]],[[6040,3944],[-5,12],[-1,54],[13,47],[18,37],[-3,17],[34,37],[-8,39],[-2,110],[-27,4],[-33,46],[-19,60]],[[5839,9613],[-28,10],[-25,-5],[-29,8],[-18,-17],[-39,-2],[-16,-16],[-9,21],[-54,-17],[-45,4],[-24,20],[-40,-6],[-89,-89],[-37,-31],[-4,-49],[-22,-22],[-4,-51],[5,-47],[-21,-30],[9,-20],[6,-61],[-26,-18],[2,-21],[-16,-45],[9,-33],[-74,-90],[-28,15],[-32,5],[-64,-25]],[[512
 6,9001],[4,18],[-43,18],[-42,32],[-1,40],[-16,7],[10,32],[1,36],[16,33],[-20,21],[15,24],[13,119],[26,37],[-3,11]],[[5086,9429],[75,91],[52,27],[10,20],[-71,18]],[[5152,9585],[-5,41],[45,33],[10,37],[56,-4],[-2,69],[2,109]],[[5258,9870],[25,26],[18,65],[72,-15],[33,20],[26,-4],[67,33],[1,-35],[35,-40],[21,-4],[30,-25],[22,-1],[29,18],[7,-26],[-13,-12],[8,-26],[53,-32],[10,-17],[32,9],[40,-5],[33,-16],[20,10],[15,-13],[17,-48],[28,-3],[23,14],[33,-4],[22,16],[41,6],[44,-7]],[[4560,7061],[-11,39],[5,21],[-30,59],[2,22],[18,7],[12,47]],[[4556,7256],[36,1],[25,54],[9,34],[25,37],[35,3],[95,-12],[37,9],[-12,45],[10,22]],[[4816,7449],[21,-27],[19,-2],[18,-19],[39,8]],[[4913,7409],[9,-44],[10,-10],[1,-41],[12,-21],[-3,-68],[10,-32],[-5,-50],[21,-40],[14,-80],[29,-73],[18,-15],[-5,-46],[26,-83],[24,-37],[28,21],[-6,-41]],[[5096,6749],[-10,-37],[-23,-30],[3,-31],[-33,-7],[-38,-129],[-75,45],[-41,69],[-11,47],[-23,-4],[-11,37],[-50,-6],[17,-49],[-4,-72],[-26,-7],[2,-26],[-41,2],[-69,-19]],[[4
 663,6532],[-12,34]],[[4651,6566],[-21,75],[-15,24],[-45,25],[-10,49],[-28,54],[11,30],[43,36],[-38,163],[12,39]],[[2347,3408],[-27,23],[-46,-23],[-25,-23],[-36,4],[-16,28],[-32,21],[14,26],[-17,50],[-24,12],[-9,25],[6,26]],[[3007,4268],[32,-43],[22,-11],[52,-73],[-3,-51],[8,-28],[-57,-44],[11,-16],[-45,-101],[-23,-14],[5,-13],[-7,-58],[2,-23],[21,-36],[0,-17]],[[3293,8153],[36,37],[38,9],[32,-23],[37,24],[45,-17],[45,5],[42,-49],[39,-9],[5,10],[70,12],[24,-41]],[[3706,8111],[-5,-148],[67,-20],[20,-49],[54,-78],[0,-91],[21,-95],[43,-50],[6,-42],[26,-70],[-1,-25],[21,-64],[-20,-15],[10,-47],[-24,15],[-25,-3],[-3,-36]],[[3896,7293],[-28,-12],[-34,-44],[-8,-28],[-24,-9],[-15,12],[-18,-8],[-35,-56],[-23,-51],[-26,0],[-28,-24]],[[8511,6963],[35,-40],[7,38],[19,5],[13,24],[34,0],[9,29],[23,35],[11,-7],[21,25],[36,18],[23,4],[9,15]],[[2826,1863],[-25,29]],[[3441,2217],[14,-7],[25,-100],[75,-23],[8,-32],[-6,-40],[19,-60],[-37,-64],[-2,-38],[26,-69],[13,-9],[-17,-43],[-4,-63],[-6,-15],[-48,-2
 5]],[[4105,4169],[0,15],[31,55],[10,52],[-16,26],[3,41],[-6,56],[5,50],[-38,24],[-6,34],[-64,69],[-39,21],[-42,42],[-36,19],[-193,73]],[[3714,4746],[36,46],[24,-12],[65,-11],[34,12],[34,-2],[18,18],[24,-8],[12,11],[24,58],[22,15],[3,24],[29,20],[29,46]],[[4068,4963],[48,31],[22,6],[17,-18],[14,12],[10,34],[19,10],[23,36],[21,-22],[14,32]],[[4256,5084],[21,-18],[145,-37],[34,7],[35,-35],[11,-34],[30,-53],[42,-14],[26,-27]],[[4600,4873],[-5,-23],[4,-56],[24,-56],[-11,-35],[-19,-23],[-1,-36]],[[8162,1670],[6,-17],[48,-51],[27,-4],[24,-53],[-14,-35],[12,-17],[25,-11],[7,-28],[1,-62],[10,-8],[1,-37],[25,-14],[27,-44],[12,-60],[11,-24],[-8,-41],[-127,-172],[-24,-102],[-73,-61],[-21,1],[-30,-20],[-23,16],[-53,1],[-32,30],[-24,-12],[-24,10],[-33,-11],[-41,-28],[-53,-94],[-22,9],[-23,24],[-24,50],[-14,2],[-26,28],[-42,19],[2,17],[26,19],[24,34],[-3,61],[19,33],[-1,24],[18,23]],[[7791,7729],[32,-45],[15,-40]],[[7838,7644],[-18,-38],[10,-82],[18,-7],[13,-24],[-5,-19],[26,-71],[-16,-48],[6,-13]
 ,[41,-18],[-3,-52],[-15,-58],[13,-19],[15,-62],[114,-25],[6,-64],[-2,-45],[16,-38],[0,-88],[-11,-11],[-3,-52],[-21,-8],[46,-100],[36,-56]],[[5873,3863],[32,-22],[88,-10]],[[5993,3831],[38,-82],[25,-25],[-10,-24],[20,-23],[36,2],[12,-13],[9,-46],[12,-31],[46,19],[110,36],[38,-63],[1,-26],[33,-28],[24,-34],[54,-59],[73,-86],[26,-14]],[[5426,4998],[-17,25],[0,23]],[[5409,5046],[8,26],[-13,58],[5,36],[0,98],[9,23],[0,81],[4,52],[17,57],[4,57]],[[5443,5534],[-9,23],[-34,47],[40,29],[39,3],[51,60],[11,46]],[[5541,5742],[15,27],[26,10],[31,25],[18,27],[32,4],[28,24]],[[5282,8439],[-20,-7],[-63,1],[-8,66],[-20,23],[-17,-11],[1,-33],[16,-43],[17,-22],[-36,-51],[-40,-21],[-47,77]],[[5065,8418],[24,47],[14,9],[-11,39],[21,23],[10,27],[-17,49],[-34,34]],[[5072,8646],[-21,49],[24,45],[-4,23],[12,75],[25,67],[-4,32],[37,34],[-15,30]],[[5453,8838],[-35,-1],[-15,-44],[-49,15],[-38,0],[-51,-44],[-30,-37],[-4,-39],[5,-67],[46,-45],[-7,-6],[-8,-74],[-12,-13],[27,-44]],[[8254,7839],[14,45],[27,23],[15,
 43],[28,4],[27,-21],[29,3],[61,30],[39,-10],[22,8],[-6,29],[8,25]],[[8518,8018],[48,-6],[16,5]],[[4755,8037],[13,52],[3,52]],[[4771,8141],[19,96],[13,32],[30,42],[14,36],[5,42]],[[4852,8389],[47,-8],[20,13],[37,0],[54,16],[55,8]],[[5282,8439],[37,-44],[21,-34],[32,-125],[1,-66],[22,-68],[-13,-48],[-25,-24],[-6,-41],[-61,-50],[-16,-44]],[[5039,7780],[-16,-26]],[[5023,7754],[-21,-17],[-3,-31]],[[4999,7706],[-16,44],[-16,22],[-16,49],[-13,18],[-3,31],[-36,46],[-16,10],[-119,111],[-9,0]],[[4652,5658],[-22,3],[4,57],[18,55],[14,23],[-58,29]],[[4608,5825],[-7,20],[-25,25]],[[4576,5870],[-12,39],[3,42],[-21,15],[11,21],[32,14],[24,29],[0,22],[-25,26],[-40,-13],[-9,11],[62,47],[46,46],[14,71],[-33,95],[-1,27]],[[4627,6362],[22,84],[14,86]],[[5096,6749],[27,-79],[6,-38],[10,-11]],[[5114,6435],[-13,-8],[-24,-41],[-13,-6],[-34,-60],[-14,-71],[-9,-21],[2,-50],[-53,-20],[-62,-7],[3,-44],[-15,-36],[4,-13],[-18,-89],[-45,-104]],[[4823,5865],[-19,-9],[3,-34],[-20,-41],[-30,-2],[-15,-21],[18,-30],[-
 14,-7],[-33,-39],[-4,-16]],[[4709,5666],[-16,-12],[-41,4]],[[3706,8111],[21,16],[101,-27],[13,10],[36,-4],[38,5],[31,-10],[38,-34],[27,-13],[35,3],[46,-12],[61,-36],[16,-23],[27,-9],[26,-53],[61,-74]],[[4283,7850],[-37,-36],[34,-71],[43,-68],[-24,-20],[-44,7],[-6,17],[-44,-31],[2,-26],[-25,-6],[12,-71],[9,7],[18,-27],[22,-51]],[[4243,7474],[-22,-25],[-17,-39],[-36,-9],[-58,-48],[-12,-42],[-28,-16]],[[4070,7295],[-10,20],[-24,-5],[-51,-28],[-65,-3],[-10,-13],[-14,27]],[[2441,476],[45,-6],[8,18],[42,-9],[40,33],[-9,38],[7,21],[-43,15],[-21,-12],[-5,82],[34,10],[32,54],[27,29],[-5,33],[42,95]],[[2635,877],[5,18]],[[2640,895],[46,-11]],[[2686,884],[-8,-18],[70,-113],[15,-46],[20,-34],[58,6],[68,-25],[67,-10],[-4,-61],[-11,-22],[32,-29],[16,-38],[50,-40],[8,-15]],[[3067,439],[-22,-137],[-15,-30],[5,-54],[14,-18],[-19,-33],[2,-53],[-39,-48],[-16,-44],[-25,-21],[-16,17],[-23,0]],[[2913,18],[-10,80],[-25,104],[1,81],[-2,36],[13,14],[-3,38],[-52,78],[-6,-45],[5,-112],[-17,-32],[8,-31],[10,-8
 8],[22,-65],[32,-51]],[[2889,25],[-39,-12],[-10,-13],[-34,5],[-32,38],[-31,48],[-36,25],[-20,38],[-6,50],[-36,76],[-10,2],[-21,53],[-59,56],[-108,73],[-6,12]],[[5443,5534],[-31,3],[-19,-54],[-28,-11]],[[5365,5472],[-14,32],[-1,64],[-38,-8],[-14,12],[0,84]],[[5298,5656],[1,9],[-25,140],[-22,50],[0,44],[-9,53],[-20,70],[-12,14],[-32,70]],[[5179,6106],[20,37],[-7,146],[7,25],[6,72]],[[5478,6307],[-14,-41],[-40,-33],[35,-158],[16,-26],[6,-44],[37,-33],[5,-64],[-23,-70],[-12,-8],[9,-29],[19,-15],[12,-34],[13,-10]],[[3602,4793],[75,-21],[14,-19],[23,-7]],[[3946,3746],[-27,12],[-22,43],[-11,4]],[[5048,4136],[24,-10],[29,19],[30,4],[13,30]],[[5360,4248],[-10,-33],[-22,-29],[-4,-63],[-27,-66],[18,-32],[-21,-30]],[[5294,3995],[-40,-44],[-14,-25],[4,-43],[-20,-21],[-16,-50],[-23,-17],[-8,-38],[29,-74],[-25,-51]],[[5518,8795],[-34,-32],[-25,-45],[75,6],[5,-42],[-9,-21],[21,-34],[27,-18],[25,1],[-11,-31],[-23,-24],[1,-34],[-28,-13],[-11,-20],[-1,-31],[14,-40],[0,-28],[17,-44],[-7,-23],[7,-56],[1
 9,-42],[-5,-107],[-31,-57],[-8,-45],[-22,-28],[26,-52],[-21,-42],[-1,-44],[-9,-23]],[[2049,7361],[-4,44],[28,84],[36,43],[-10,54],[3,104],[18,25],[31,14],[19,34]],[[2170,7763],[67,-193],[25,-81],[30,-60],[3,-29],[33,-48],[25,-70],[-9,-72],[15,-37],[26,-116],[14,-35],[4,-49],[-23,-17],[9,-49],[15,-40],[12,-89],[34,-51],[7,11],[45,22],[32,7],[16,19],[17,-8]],[[2567,6778],[19,10],[28,-5],[5,-11]],[[2619,6772],[11,-4],[-22,-35],[-39,-27],[-7,-26],[15,-44]],[[4784,9018],[-134,229],[-56,113],[-8,24]],[[4586,9384],[40,52],[17,48],[47,53],[0,34],[11,15],[46,33],[35,14],[9,65],[-6,38],[-18,29],[-14,-36],[-32,-43],[-37,3],[-46,39],[-14,46],[40,62],[4,102],[17,36]],[[4685,9974],[49,25],[27,-30],[23,-14],[24,-44],[8,-74],[14,-19]],[[4830,9818],[6,-23],[-2,-62],[66,-3],[38,-44],[18,8],[34,-18],[54,-57],[23,-1],[12,-18],[20,1],[31,18],[-22,53],[-40,50],[-6,65],[-18,6],[-22,34],[-10,47],[-16,21]],[[4996,9895],[19,26],[43,22],[20,32],[17,-11],[58,-77],[28,-12],[56,-11],[21,6]],[[5152,9585],[-15,-6]
 ,[-48,7],[-32,-46],[-51,-23],[-20,-2],[-65,-79],[18,63],[0,51],[8,21],[-5,31],[-23,10],[-38,-18],[-10,-19],[-27,-4],[9,-22],[-13,-63],[-30,-54],[-12,-56],[17,-4],[-51,-59],[11,-13],[-15,-22],[19,-39],[42,-61],[8,-53]],[[4829,9125],[45,-67],[0,-41],[-51,-23],[3,-31],[45,-11],[6,-14]],[[4877,8938],[-68,-5]],[[4809,8933],[-6,51],[-19,34]],[[3185,6922],[20,47],[-14,10],[-3,43]],[[3188,7022],[-2,3]],[[3186,7025],[23,31],[-13,23],[4,44],[-10,16],[24,37],[-25,21],[-13,-5],[0,28],[-16,1],[-24,24],[-23,71],[-6,49],[1,57],[-19,3],[-35,30],[-19,4],[-52,33],[10,17],[-91,88],[-151,197]],[[2751,7794],[-47,15]],[[2704,7809],[-22,64],[45,-4],[88,0],[47,-15],[12,-12],[16,26],[44,20],[25,29],[8,40],[27,31],[10,30]],[[3453,7183],[-71,-110],[-78,-38],[-26,-28],[5,-30],[-36,-19],[-19,-21],[-43,-15]],[[6004,8310],[-16,1],[-43,26],[13,17],[-18,48],[-26,27],[-8,26],[-49,-1],[-36,11],[-14,-5],[-24,20]],[[5783,8480],[7,24],[-41,31],[-27,59],[-4,19],[-22,-17],[-14,74],[-37,92]],[[6157,8679],[-10,-32],[-35,-48
 ],[-15,4],[-16,-29],[-17,-70],[-35,-18],[-4,-32],[-18,-45],[-3,-99]],[[4600,4873],[22,31],[14,61],[3,51],[-20,39],[-5,43],[-9,11]],[[4605,5109],[74,80]],[[4679,5189],[99,139],[30,12],[86,-20],[37,0],[25,-25],[34,2],[38,-8],[8,-32],[20,7]],[[5056,5264],[12,-42],[-6,-24]],[[5062,5198],[-8,-25],[3,-44],[22,-28],[20,-42]],[[7838,7644],[41,16],[34,24],[3,36],[18,10],[45,-7],[47,3],[37,44],[42,-10],[14,-25]],[[3933,6609],[18,-3],[50,24],[46,49],[-20,26],[59,6],[3,-11],[59,2]],[[4148,6702],[1,-35],[14,-59]],[[4163,6608],[3,-10]],[[4166,6598],[30,-109]],[[4196,6489],[54,-204]],[[4250,6285],[15,-57]],[[4265,6228],[32,-119]],[[4297,6109],[-57,-43],[-19,-4],[39,-71],[-21,-14]],[[4239,5977],[-1,32],[-21,27],[-2,24],[-17,12],[-44,8],[-19,-79]],[[4135,6001],[-72,5],[-27,19],[-46,-26],[-9,17],[-39,17],[-32,-26],[-21,15],[-74,-43]],[[4163,6608],[60,18],[-10,10],[1,57],[12,28],[-23,8],[-9,38],[-15,20],[6,54],[-6,29],[-42,27],[-15,27],[1,43],[-11,16]],[[4112,6983],[4,25],[58,71],[27,16],[21,-29],[42,
 29],[45,52],[0,12],[37,18],[20,-28],[17,-53],[32,-49],[24,-24],[19,-3],[72,22],[30,19]],[[4651,6566],[-49,12],[-36,-13],[-17,-46],[-53,-26],[-13,0]],[[4483,6493],[-39,22],[-37,31],[-25,33],[-37,0],[-15,24],[-13,-1],[-1,-37],[-15,-6],[11,-20],[-27,-13],[-52,50],[-15,-9],[-32,28],[-20,3]],[[5993,3831],[26,39],[3,45],[18,29]],[[6183,3886],[17,-29],[35,5],[76,38],[42,-2],[49,12],[45,25],[41,-86],[36,-4],[67,-42],[24,-74],[-18,-58],[25,-69],[5,-80],[-7,-48]],[[4484,7548],[20,28],[30,70]],[[4534,7646],[20,47],[57,70],[102,93],[13,26],[8,93],[21,62]],[[4999,7706],[-36,-9],[-21,-15],[-6,-23],[-52,-31],[-13,-42],[1,-38],[-30,-16],[-25,-25],[-1,-58]],[[4556,7256],[-37,17],[-13,28],[6,59],[-9,47],[18,37],[-6,36],[-17,48],[-14,20]],[[4913,7409],[58,31],[22,5],[5,-25],[24,10]],[[4380,8119],[-3,34],[20,17],[23,57],[36,21],[30,46],[-51,36],[-5,54],[13,60],[27,50],[4,57],[38,26],[-5,17],[29,62]],[[4536,8656],[27,-5],[41,5],[26,19],[45,10],[31,-15],[21,16],[53,18]],[[4780,8704],[0,-31],[13,-55],[54,
 -76],[11,-25],[4,-50],[-10,-78]],[[4771,8141],[-34,6],[-39,-15],[-24,11],[2,50],[-21,18],[-19,-1],[-25,-53],[-52,-38],[-91,-26],[-88,26]],[[6257,8052],[-34,37],[35,135],[-4,38],[-31,11],[-16,28],[-47,36],[-19,5]],[[6141,8342],[-27,9],[16,32],[2,74],[6,-6],[64,25],[18,22],[60,14],[77,82]],[[6577,8626],[28,4],[17,-20],[57,-14],[27,-44],[45,-26],[22,14],[22,-42]],[[5783,8480],[-25,-50],[-41,-53],[-21,-90],[20,-29],[86,-86],[12,-36],[2,-82],[-22,-32],[-78,-29],[-2,-50],[-20,-66],[-2,-33],[-36,-47],[-1,-19]],[[3724,5214],[123,-124],[99,-4],[31,56],[43,2],[46,33],[25,-14]],[[4091,5163],[13,-24],[23,-16],[38,39],[43,-25],[-5,-60],[-34,-17],[-39,4],[-39,-15],[-23,-21],[0,-65]],[[6004,8310],[-21,-117],[6,-47],[-31,-34],[28,-79],[2,-49],[20,-25],[1,-101],[9,-16]],[[3815,5979],[23,-33],[45,-14],[26,-20],[36,-12]],[[3945,5900],[34,-18],[11,10],[21,-30],[3,-40],[20,-36],[-5,-15],[21,-52]],[[4050,5719],[-48,-32],[14,-29],[-1,-29],[-12,-25],[10,-62],[13,-25],[3,-58]],[[4029,5459],[-23,-13]],[[4006
 ,5446],[-63,-12],[-10,-17],[-30,-6],[-33,17],[-36,-26],[-2,-20],[-24,-27],[-8,-35],[-28,-41],[-19,-42]],[[4256,5084],[7,31],[3,68],[-25,4],[31,82],[33,36],[6,56],[-10,42]],[[4301,5403],[16,41],[-24,84],[19,-5],[16,30]],[[4328,5553],[10,39],[-2,44]],[[4336,5636],[-2,15]],[[4334,5651],[8,25]],[[4342,5676],[6,26]],[[4348,5702],[-25,54]],[[4323,5756],[-12,35]],[[4311,5791],[-28,40],[2,30]],[[4285,5861],[-1,-31],[27,-39]],[[4311,5791],[12,-35]],[[4323,5756],[17,-21],[11,-43],[-9,-16]],[[4342,5676],[-8,-25]],[[4334,5651],[2,-15]],[[4336,5636],[35,-14],[41,-3],[59,-15]],[[4471,5604],[12,-41],[3,-45],[39,-83],[5,-42],[15,-25]],[[4545,5368],[12,-24],[34,-24],[19,-23],[7,-76],[-8,-32],[7,-45],[-11,-35]],[[4102,7114],[18,32],[-4,30],[-30,7],[-16,23],[6,62],[-6,27]],[[4243,7474],[37,-9],[58,-2],[75,57],[71,28]],[[4112,6983],[-41,-8]],[[4071,6975],[-3,42],[16,28],[18,69]],[[5686,4243],[-6,-19],[21,-90],[16,-14],[-2,-27],[-20,-53],[10,-30],[12,-1],[1,-34],[-10,-48],[27,-31]],[[5735,3896],[-20,12]
 ,[-80,-59],[-12,-16],[-33,-5],[-24,20],[-26,-2],[-12,-13],[-19,5],[-50,-25],[-8,47],[-15,26],[-75,1],[-8,22],[-31,5],[-1,39],[-27,42]],[[3185,6922],[-59,13],[-19,-10],[-30,7],[-11,34],[-16,24],[-51,89],[-16,20]],[[2983,7099],[-21,28],[-73,60]],[[2889,7187],[-26,54],[-11,36],[5,80]],[[2857,7357],[-21,106],[-32,72],[-19,14]],[[2785,7549],[-26,68],[-1,43],[7,55],[-14,79]],[[5096,4873],[33,19],[45,13],[29,58],[36,52],[28,24],[50,61]],[[5317,5100],[41,-37],[51,-17]],[[5179,6106],[-20,4],[-34,-39],[-16,-9],[-4,-53],[12,-46],[-10,-69],[-23,-34],[-16,-95],[-44,-95],[-42,-21]],[[4982,5649],[-8,8]],[[4974,5657],[-1,4]],[[4973,5661],[-16,17],[2,33],[-13,-9],[-18,18],[-19,0],[-28,34],[-12,28],[-29,27],[-17,56]],[[2441,476],[-22,70],[-8,59],[-18,89],[-27,-18],[-19,38],[25,30],[3,230],[3,18],[-31,81],[-36,41],[-15,27],[-5,43],[-21,31],[-30,136],[10,35],[28,16],[39,108],[11,7]],[[2328,1517],[5,-35],[-6,-64]],[[2327,1418],[10,-43],[1,-40],[14,-34],[10,-50],[18,-45],[-17,-44],[22,-56],[46,8],[6,-25]
 ,[15,20],[6,-28],[19,-11],[4,-56],[18,13],[68,-80],[-8,-9],[17,-51],[33,-11],[12,11],[14,-10]],[[4311,7979],[-1,17],[42,9],[25,-5],[15,60],[-12,59]],[[4534,7646],[-41,134],[-32,-37],[-22,33],[-46,105],[-9,31],[-23,31],[-50,36]],[[6004,8310],[26,-7],[47,37],[21,6],[30,-13],[13,9]],[[2211,7804],[60,5],[14,-13],[85,-32],[-2,-29],[51,-93],[8,-80],[41,-20],[9,19],[31,30],[38,19],[6,26],[34,19]],[[2586,7655],[-8,-26],[7,-37],[-5,-38],[11,-33],[17,-91],[4,-61],[17,-67],[-5,-35]],[[2624,7267],[-60,-84],[-34,-23],[-11,-27],[19,-86],[0,-91],[-9,-26]],[[2529,6930],[-9,50],[-21,63],[-26,32],[-2,37],[-13,47],[13,67],[-32,68],[-57,78],[-33,17],[39,30],[-60,87],[-8,35],[-18,8],[-18,73],[-25,40],[-32,70],[-16,72]],[[3006,6212],[42,-16],[21,-35],[22,-57],[36,-43],[48,-23],[62,-56],[36,6],[71,-20],[40,26],[24,39],[5,54],[9,27]],[[2328,1517],[12,9],[14,69],[-16,50],[-27,50],[-17,16],[0,28],[28,52]],[[2322,1791],[52,2],[79,25],[54,-16],[32,-18],[0,-72],[22,-8],[16,13]],[[2577,1717],[-17,-48],[26,4],[-1
 ,-52],[-8,-34],[0,-49],[15,-2]],[[2592,1536],[14,-46],[-29,10],[0,-44],[21,-6],[-10,-31],[19,-37],[-4,-26],[11,-62]],[[2614,1294],[-21,12],[-2,28],[-55,1],[-1,-33],[-13,-40],[-20,17],[-14,-11],[-25,26],[-34,52],[-28,-17],[-31,-2],[-21,56],[-22,35]],[[3422,6114],[-14,13],[-68,6],[-27,13],[-3,23],[-56,33],[-39,73],[-30,40],[-41,1],[-36,-10]],[[3108,6306],[-18,25],[-1,51],[13,46],[1,34],[31,24],[11,34],[52,51],[-17,12]],[[3180,6583],[-5,10],[30,25],[28,0],[7,-15],[68,-55],[24,11]],[[4006,5446],[90,-78],[16,-27],[29,-16],[21,23],[24,-38]],[[4186,5310],[5,-26],[-32,-29],[-2,-24],[28,-14],[-15,-49],[-19,-3],[-16,-23],[-44,21]],[[3167,672],[-12,31]],[[3155,703],[-7,138],[-25,39],[-21,49],[-30,10],[-12,17],[-36,0],[-30,41],[-94,58],[-59,33]],[[2841,1088],[17,53],[29,57],[8,71],[25,25],[11,66]],[[3113,1224],[-39,-26],[-18,-47],[-21,18],[-29,52],[-33,-46],[-8,-94],[39,12],[60,-5],[28,8],[46,-6],[-7,-35],[43,-50],[41,-61],[13,7],[45,-32],[38,-41]],[[3311,878],[9,-24],[1,-64],[-5,-62],[-11,-19]
 ,[-37,0],[-22,12],[-60,-44],[-19,-5]],[[4870,5544],[16,42],[16,11]],[[4902,5597],[30,-18],[5,-20],[11,36],[23,37],[12,2]],[[4983,5634],[20,-12],[7,-38],[12,-13],[29,-4],[19,-19],[30,-4],[-1,-15],[30,3]],[[5129,5532],[-4,-12],[10,-61],[21,-38],[-14,-31],[22,-23],[18,2],[51,-47],[37,11],[8,51],[25,-7],[-4,49],[31,9],[-6,20],[44,7],[-3,10]],[[5317,5100],[-32,39],[-2,16],[-78,99],[-25,59],[-12,6]],[[5168,5319],[-24,15],[-97,-10]],[[5047,5324],[0,28],[-34,50],[-12,41],[-16,3],[-35,53],[-19,3],[-15,40],[-24,26],[-22,-24]],[[2686,884],[11,26],[45,-15],[38,41],[3,33]],[[2783,969],[8,-11]],[[2791,958],[65,-75],[38,-31],[32,-58],[54,-2],[24,11],[31,0],[30,-31],[12,-36],[30,-18],[48,-15]],[[3167,672],[11,-58],[-13,-27],[-10,-55],[2,-25],[-21,-36],[-44,-10],[-25,-22]],[[4102,7114],[-11,-3],[-123,2],[-30,10],[-54,-2],[-14,-37],[13,-28],[2,-114],[9,10],[13,-56],[23,-21],[8,-35],[-21,-11],[-1,-31],[-45,-6]],[[4576,5870],[-5,12],[-32,6],[-27,-7],[-20,20],[-8,27],[-28,-13],[-11,23],[1,40],[-47,-6],[
 -3,23],[-22,35],[-20,2],[-24,24]],[[4330,6056],[9,108],[-1,66],[25,24]],[[4363,6254],[0,1]],[[4363,6255],[30,13],[49,10],[-1,24],[41,18],[21,-7],[6,50],[24,-5],[79,13],[15,-9]],[[4586,9384],[-18,80],[-144,290],[-32,84],[5,32],[29,17],[-3,-29],[23,-48],[29,81],[10,3],[34,-25],[2,33],[15,-9],[61,14],[13,31],[75,36]],[[4683,9582],[10,33],[-28,-10],[18,-23]],[[2170,7763],[17,29],[24,12]],[[2529,6930],[12,-94],[26,-58]],[[2586,7655],[28,16]],[[2614,7671],[18,-61],[20,-42],[14,-52],[13,-27],[2,-40],[35,-95],[30,-29],[22,-42],[9,-42],[-5,-63],[21,-79],[-5,-36],[8,-29],[14,-114],[6,-15]],[[2816,6905],[5,-27],[-7,-47]],[[2814,6831],[-15,-37],[-24,-11],[-11,10],[-22,-13],[-35,14],[-31,55],[-28,76],[-9,-1],[-5,44],[1,53],[8,34],[-6,28],[70,33],[0,21],[-15,69],[-21,31],[-47,30]],[[4283,7850],[20,20],[17,73],[-9,36]],[[4071,6975],[2,-28],[70,-207],[5,-38]],[[4983,5634],[-9,23]],[[4974,5657],[-1,4]],[[5298,5656],[-37,-36],[-46,9],[-24,-4],[-62,-77],[0,-16]],[[2889,6755],[-20,14],[-29,5],[-6,24],[
 14,48],[-32,59]],[[2614,7671],[25,85],[22,33],[19,-1],[24,21]],[[2785,7549],[-23,-37],[-3,-90],[21,-80],[11,-66],[12,-4]],[[2803,7272],[-2,-97],[9,-36],[42,-7]],[[2852,7132],[27,-69],[-18,-65],[13,-59],[26,-30],[42,-62],[51,-15],[16,11]],[[3009,6843],[8,-25],[-37,-37]],[[2980,6781],[-23,0],[-23,-15],[-45,-11]],[[2814,6831],[2,-69],[-20,-50]],[[2796,6712],[-28,9],[-30,-20],[-11,-33]],[[2727,6668],[-30,14],[-33,-9],[-11,-14]],[[4829,9125],[-1,13],[25,25],[49,26],[4,39],[-9,36],[15,25],[-3,18],[16,35],[20,8],[74,94],[5,21],[18,10],[20,-34],[24,-12]],[[5126,9001],[-26,4],[-128,-54],[-95,-13]],[[2614,1294],[39,-16],[44,6]],[[2697,1284],[-12,-35],[-6,-44],[-18,-22]],[[2661,1183],[-16,-22],[-42,-17],[0,-32],[10,-17],[-30,-14],[-19,-35],[10,-41],[65,-60],[-10,-39],[11,-11]],[[4780,8704],[29,229]],[[4809,8933],[14,-42],[9,2],[10,-83],[49,-101],[26,-60],[29,-30],[54,-37],[18,20],[28,13],[26,31]],[[8518,8018],[-4,45],[10,24],[0,88],[-21,36],[-17,12],[-6,76],[13,7],[21,45],[2,45],[13,73],[1,38]
 ,[15,11],[12,32],[-11,70],[5,66],[86,-17]],[[2783,1645],[-44,30],[-21,42],[-37,7],[-57,3],[-1,17],[-23,1],[-7,-27],[-16,-1]],[[2322,1791],[-18,43],[24,81]],[[2812,1650],[-29,-5]],[[3061,6328],[11,-33],[20,-7],[16,18]],[[4545,5368],[44,67],[20,-4],[15,27],[47,48],[7,57],[-26,95]],[[4709,5666],[51,-10],[16,50],[44,-7],[14,-32],[43,-29],[25,-41]],[[4870,5544],[-41,-42],[-60,-76],[-54,-35],[-6,-27],[-14,-9],[-14,-39],[1,-38],[-11,-27],[-3,-42],[11,-20]],[[4471,5604],[-11,32],[-22,24],[-22,8],[-11,33],[21,24],[8,25],[20,5],[25,-7],[7,15],[52,39],[70,23]],[[2783,969],[-45,54],[-49,-33],[-7,36],[-33,-7],[-23,50],[61,39],[-26,75]],[[2697,1284],[13,39],[26,21],[8,56],[-5,19],[19,49],[6,54],[-7,54],[23,41]],[[2780,1617],[0,25]],[[2780,1642],[31,-67],[19,-69],[-3,-77],[24,-111],[-3,-33],[-21,-25],[-8,-31],[2,-53],[-30,-55],[-14,-76],[6,-76]],[[4285,5861],[20,67],[18,136]],[[4323,6064],[7,-8]],[[2791,958],[12,7],[38,123]],[[6788,5231],[-5,-41],[38,-99],[27,-86],[18,-97],[-41,-57],[-42,30]],[[27
 27,6668],[30,-7],[15,-20],[24,-5]],[[2796,6636],[52,3],[10,-14]],[[2858,6625],[47,-3],[0,-10]],[[2905,6612],[-23,-5],[-67,14],[-10,-48],[-21,-66],[19,-41],[-3,-21],[43,-60]],[[5047,5324],[14,-23],[-5,-37]],[[4363,6254],[-28,-8]],[[4335,6246],[-4,59],[-22,22],[3,21]],[[4312,6348],[23,45]],[[4335,6393],[28,52],[11,2]],[[4374,6447],[27,13],[17,-7],[50,23],[15,17]],[[3320,1089],[9,-7],[7,-45],[-20,-81],[13,-38],[-18,-40]],[[4029,5459],[25,43],[18,-2]],[[4072,5500],[47,35]],[[4119,5535],[34,30],[0,26],[46,-14]],[[4199,5577],[92,26],[18,-12],[19,-38]],[[4301,5403],[-47,-43],[-10,-32],[-18,-21],[-11,6],[-2,-32],[-20,-16],[-2,29],[11,31],[-13,10],[-3,-25]],[[4536,8656],[9,54],[16,-1],[6,47],[59,17],[18,17],[-11,121],[8,33],[24,26],[61,25],[35,-3],[23,26]],[[3180,6583],[-59,46],[-55,13],[-23,34],[-36,10]],[[3007,6686],[15,56]],[[3022,6742],[31,11],[38,-1],[52,37],[17,41],[16,14],[15,-8]],[[3191,6836],[26,-20],[26,-8],[31,14]],[[5062,5198],[10,21],[8,-32],[17,-25],[-8,-34],[13,-15],[32,-3],[1
 9,25],[19,-7],[9,25],[-13,57],[-8,-1],[-6,56],[10,16],[4,38]],[[3191,6836],[-12,71],[6,15]],[[2592,1536],[12,59],[15,-14],[60,48],[63,-1],[38,-11]],[[4297,6109],[26,-45]],[[4348,5702],[-24,13],[-51,-5],[-19,-25],[-36,-29],[-19,-28],[0,-51]],[[4119,5535],[5,55],[-18,65],[5,31]],[[4111,5686],[21,35],[42,17],[4,-11],[21,25],[15,56],[-20,25],[33,39],[18,60],[-6,45]],[[2905,6612],[30,-13],[45,1],[23,-76],[15,5],[-4,-36],[30,-45]],[[3044,6448],[-4,-12],[15,-41]],[[4830,9818],[15,1],[25,26],[62,30],[32,-5],[32,25]],[[2983,7099],[5,-39],[1,-64],[36,-90],[0,-46],[-16,-17]],[[2852,7132],[17,13],[20,42]],[[2780,1642],[3,3]],[[3022,6742],[-42,39]],[[2796,6712],[47,-41],[13,-2],[-18,29],[28,16],[23,41]],[[3007,6686],[-8,-34],[5,-54],[15,-51],[18,-28],[7,-71]],[[4335,6393],[-19,-15],[-23,33],[-28,22],[-18,-15],[-4,44],[-12,41],[-35,-14]],[[4135,6001],[17,-27],[-17,-110]],[[4135,5864],[-104,46],[-41,13],[0,21],[-50,5],[5,-49]],[[4135,5864],[-3,-21],[15,-17],[-37,-63],[-5,-39],[6,-38]],[[4072,5500]
 ,[9,67],[-23,68],[1,40],[-9,44]],[[2913,18],[-24,7]],[[2857,7357],[-56,-30],[2,-55]],[[4312,6348],[-6,-14],[-40,-41],[-16,-8]],[[4265,6228],[39,19],[31,-1]],[[4435,3502],[-68,-7],[-4,48],[65,8]]],"transform":{"scale":[0.06752260002506406,-0.048004800480048],"translate":[142.4207611746922,490]}}


[04/50] [abbrv] zest-qi4j git commit: Merge branch 'fb/spatial.queries' of https://github.com/ramtej/qi4j-sdk into fb/spatial.queries

Posted by ni...@apache.org.
Merge branch 'fb/spatial.queries' of https://github.com/ramtej/qi4j-sdk into fb/spatial.queries

Conflicts:
	extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/b4e474da
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/b4e474da
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/b4e474da

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: b4e474da37bdf4fb17a76a26c833547dc2692f57
Parents: 9a62448 c990fe4
Author: jj <ju...@gmail.com>
Authored: Tue Jan 6 17:15:46 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Tue Jan 6 17:15:46 2015 +0100

----------------------------------------------------------------------
 .../api/configuration/ConfigurationTest.java    |   1 -
 extensions/indexing-elasticsearch/build.gradle  |   4 +
 .../ElasticSearchClusterConfiguration.java      |   1 +
 .../ElasticSearchConfiguration.java             |   4 +-
 .../elasticsearch/ElasticSearchFinder.java      |  58 +--
 .../elasticsearch/ElasticSearchIndexer.java     |  14 +-
 .../elasticsearch/ElasticSearchSupport.java     |   3 +
 .../assembly/ESClusterIndexQueryAssembler.java  |   9 +
 .../ESFilesystemIndexQueryAssembler.java        |   9 +
 .../assembly/ESMemoryIndexQueryAssembler.java   |   7 +
 .../elasticsearch/cluster/ESClusterSupport.java |   2 +
 .../spatial/ElasticSearchSpatialIndexer.java    |  20 +-
 .../configuration/SpatialConfiguration.java     |  98 +++++
 .../SpatialConfigurationValues.java             |   9 -
 .../SpatialFunctionsSupportMatrix.java          |  70 ++-
 .../functions/predicates/ST_Disjoint.java       |  14 +-
 .../AbstractElasticSearchSpatialFunction.java   |  23 +-
 .../spatial/mappings/SpatialIndexMapper.java    |  22 +-
 .../mappings/builders/GeoShapeBuilder.java      |   3 +-
 .../old/ElasticSearchMappingsCache.java         |  90 ----
 .../old/ElasticSearchMappingsHelper.java        | 121 -----
 .../ElasticSearchSpatialIndexerMappings.java    | 314 -------------
 .../filesystem/ESFilesystemSupport.java         |  18 +-
 .../internal/AbstractElasticSearchSupport.java  |  18 +-
 .../elasticsearch/memory/ESMemorySupport.java   |   6 +-
 .../spatial/ElasticSearchSpatialBench.java      | 247 +++++++++++
 ...earchSpatialRegressionQueryVariant1Test.java |  31 +-
 ...earchSpatialRegressionQueryVariant2Test.java |  40 +-
 .../extension/spatial/utils/RandomPoint.java    | 148 +++++++
 .../extension/spatial/utils/RandomUtils.java    | 438 +++++++++++++++++++
 ...lasticSearchConfigurationVariant1.properties |  28 ++
 ...lasticSearchConfigurationVariant2.properties |  28 ++
 .../openstreetmap/model/test/TestOSMModel.java  |  54 +--
 33 files changed, 1241 insertions(+), 711 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/b4e474da/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
----------------------------------------------------------------------
diff --cc extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
index 223d579,23f8b33..795fc6b
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
@@@ -22,7 -21,7 +22,8 @@@ import org.qi4j.api.common.Optional
  import org.qi4j.api.common.UseDefaults;
  import org.qi4j.api.configuration.ConfigurationComposite;
  import org.qi4j.api.property.Property;
 +import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialExceptionConfiguration;
+ import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
  
  // START SNIPPET: config
  public interface ElasticSearchConfiguration
@@@ -54,8 -53,13 +55,9 @@@
  
      @Optional Property<INDEX_MAPPING_POINT_METHOD> indexPointMappingMethod();
  
 -
 -
      @Optional
-     Association<SpatialExceptionConfiguration> spatial();
+     Property<SpatialConfiguration.Configuration> spatial();
+ 
  
 -    // @Optional
 -    // Property<String> spatial();
  }
  // END SNIPPET: config


[33/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSwissLakes2013.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSwissLakes2013.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSwissLakes2013.java
index 38915af..9d286a9 100644
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSwissLakes2013.java
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSwissLakes2013.java
@@ -2,13 +2,78 @@ package org.qi4j.library.spatial.topo;
 
 /**
  * https://github.com/interactivethings/swiss-maps
- *
  */
-public  class GeoJSONSwissLakes2013 {
+public class GeoJSONSwissLakes2013 {
 
     // Used http://www.freeformatter.com/javascript-escape.html#ad-output
 
 
-     public static final String SWISS_LAKES = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"id\":9040,\"properties\":{\"name\":\"Greifensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[593.9590783343607,112.49024902490248],[595.8203253450184,114.65046504650462],[596.6663467134993,115.08250825082507],[597.9071780539377,117.09870987098708],[598.1327837521992,119.018901890189],[598.8660022715492,120.50705070507047],[600.7272492822069,121.46714671467146],[600.6144464330762,123.1473147314731],[599.3736150926377,124.29942994299427],[598.4711922995915,124.20342034203418],[597.9635794785031,122.3312331233123],[595.8203253450184,118.77887788778872],[594.5230925800146,118.10681068106805],[592.3234370219645,114.8424842484248],[592.4926412956606,112.87428742874283],[593.9590783343607,112.49024902490248]]]]}},{\"type\":\"Feature\",\"id\":9050,\"properties\":{\"name\":\"Z\u00FCrichsee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[616.914
 4581324724,147.1017101710171],[619.0577122659571,149.021902190219],[622.0469877679225,149.8379837983798],[637.7265837970996,147.19771977197718],[636.5421538812266,148.49384938493847],[631.9736384914303,150.12601260126007],[629.5483772351188,150.27002700270026],[629.0407644140303,149.5979597959796],[627.969137347288,150.36603660366035],[626.8975102805457,150.03000300029998],[623.8518333540148,151.03810381038102],[623.7390305048841,153.00630063006298],[622.272593466184,153.58235823582356],[620.7497550029186,152.76627662766276],[618.6629022939994,152.8142814281428],[618.3244937466071,151.75817581758173],[615.8428310657301,150.6540654065406],[611.9511327707186,150.07800780078003],[611.6127242233263,150.51005100510048],[606.6493988615723,149.64596459645963],[603.6601233596069,151.66216621662164],[602.4756934437339,151.32613261326128],[606.5365960124416,149.30993099309927],[614.7148025744225,146.66966696669664],[616.9144581324724,147.1017101710171]],[[616.4632467359494,147.9177917791779],
 [614.8840068481186,148.54185418541852],[614.6019997252916,149.9339933993399],[616.858056707907,148.44584458445843],[616.4632467359494,147.9177917791779]]],[[[637.7265837970996,147.19771977197718],[622.0469877679225,149.8379837983798],[619.0577122659571,149.021902190219],[616.9144581324724,147.1017101710171],[614.940408272684,142.87728772877284],[617.9860851992148,143.40534053405338],[618.4372965957378,144.9414941494149],[617.4784723781263,145.51755175517548],[618.0988880483455,146.5256525652565],[619.6781279361763,146.66966696669664],[620.7497550029186,147.77377737773776],[622.6674034381417,148.10981098109806],[623.8518333540148,147.72577257725771],[623.4006219574917,146.71767176717668],[625.2054675435841,146.6216621662166],[625.8822846383687,147.38973897389735],[627.7435316490264,147.96579657965793],[630.6764057264264,147.38973897389735],[631.0148142738187,146.90969096909686],[634.2296954740457,145.6615661566156],[637.9521894953612,145.8055805580558],[637.7265837970996,147.19771977
 197718]]],[[[614.940408272684,142.87728772877284],[616.9144581324724,147.1017101710171],[614.7148025744225,146.66966696669664],[606.5365960124416,149.30993099309927],[602.4756934437339,151.32613261326128],[599.9940307628569,147.8217821782178],[597.1739595345877,146.045604560456],[596.2715367415415,144.89348934893485],[594.0718811834915,143.26132613261325],[592.4362398710953,140.8130813081308],[591.1954085306568,140.28502850285025],[590.0673800393491,140.86108610861083],[586.5704917162952,139.32493249324932],[583.3556105160683,137.5007500750075],[580.084327891276,130.78007800780074],[578.2230808806182,128.37983798379832],[577.602665210399,125.73957395739569],[576.3054324453951,122.57125712571252],[574.387784010172,119.11491149114909],[574.4441854347374,114.93849384938488],[575.403009652349,114.4104410441044],[576.5874395682221,117.57875787578757],[577.3206580875722,117.62676267626762],[578.8434965508375,119.78697869786976],[579.2383065227953,121.46714671467146],[580.8175464106259,125
 .06750675067502],[581.1559549580184,126.55565556555655],[583.468413365199,129.77197719771976],[583.9760261862875,131.06810681068106],[586.5704917162952,134.38043804380436],[590.5185914358722,136.9246924692469],[593.9026769097953,137.64476447644762],[598.0763823276338,139.66096609660963],[598.1891851767646,140.14101410141012],[601.4604678015569,141.72517251725168],[602.7012991419954,143.2133213321332],[605.6341732193955,144.3654365436543],[613.6995769322455,143.98139813981396],[614.940408272684,142.87728772877284]]]]}},{\"type\":\"Feature\",\"id\":9073,\"properties\":{\"name\":\"Thunersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[435.18906818280146,257.3207320732073],[440.20879496912073,261.7371737173717],[441.95723913064774,262.6492649264926],[442.6904576499977,264.08940894089403],[448.443402955667,266.2016201620162],[451.376277033067,269.22592259225917],[451.9402912787209,271.57815781578154],[453.857939713944,272.3942394239424],[454.64755965785935,271.914191419
 1419],[456.9600180650402,271.96219621962194],[459.1032721985248,271.14611461146114],[462.20535054962096,271.9141914191419],[463.3897804654941,273.45034503450347],[465.1946260515864,274.84248424842485],[464.79981607962867,275.75457545754574],[462.88216764440557,276.81068106810676],[460.7953149354863,275.7065706570657],[458.4264551037402,277.2907290729073],[456.11399669655935,278.01080108010797],[454.19634826133625,278.058805880588],[450.81226278741315,276.13861386138615],[449.176621475017,275.8025802580258],[445.3413246045708,273.64236423642365],[445.510528878267,272.1062106210621],[443.19807047108617,270.57005700570056],[442.97246477282465,269.7059705970597],[439.0807664778131,268.55385538553855],[438.34754795846305,267.1617161716172],[435.97868812671686,265.2415241524152],[435.18906818280146,263.3693369336934],[433.5534268704053,262.8892889288929],[433.6098282949707,260.72907290729074],[435.18906818280146,257.3207320732073]]]]}},{\"type\":\"Feature\",\"id\":9089,\"properties\":{\"n
 ame\":\"Brienzersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[494.57976825015203,254.58445844584458],[497.1742337801598,255.54455445544554],[498.35866369603286,255.25652565256524],[499.48669218734057,256.16861686168613],[499.3738893382098,258.3288328832883],[496.10260671341746,258.90489048904885],[490.12405570948664,262.5052505250525],[487.6987944531751,264.5694569456946],[484.0891032809904,266.1056105610561],[482.34065911946345,268.07380738073806],[479.29498219293265,270.18601860186016],[475.96729814357496,270.37803780378033],[475.7980938698788,269.7059705970597],[473.8240440100903,269.08190819081904],[476.24930526640185,267.0657065706571],[477.54653803140576,266.5376537653765],[481.66384202467884,263.4173417341734],[485.72474459338656,259.4809480948095],[487.30398448121736,258.7608760876087],[488.714020095352,256.7446744674467],[491.8724998710136,255.11251125112508],[494.57976825015203,254.58445844584458]]]]}},{\"type\":\"Feature\",\"id\":9148,\"properties\":{
 \"name\":\"Bielersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[347.14644443623524,187.5217521752175],[346.6388316151468,186.84968496849683],[349.007691446893,185.79357935793576],[347.14644443623524,187.5217521752175]]],[[[351.0381427312468,188.62586258625862],[347.7668601064545,188.62586258625862],[347.14644443623524,187.5217521752175],[349.007691446893,185.79357935793576],[352.10976979798914,184.2094209420942],[353.12499544016606,182.28922892289228],[358.65233504757384,178.88088808880883],[359.7239621143161,178.6408640864086],[363.05164616367387,175.95259525952594],[364.23607607954693,174.36843684368432],[367.4509572797739,172.016201620162],[369.7070142623893,169.6159615961596],[371.2862541502201,168.7998799879988],[371.9630712450047,169.5199519951995],[369.4814085641278,173.07230723072303],[369.19940144130084,174.41644164416437],[367.0561473078162,177.77677767776777],[367.1125487323816,179.40894089408937],[364.0104703812854,184.5454545454545],[362.600434767150
 8,184.73747374737474],[362.4312304934546,186.12961296129612],[360.6263849073623,187.80978097809776],[358.31392650018154,188.3378337833783],[356.1142709421315,189.68196819681964],[353.2941997138622,190.59405940594058],[351.32014985407375,189.77797779777973],[351.0381427312468,188.62586258625862]],[[351.0381427312468,188.62586258625862],[352.22257264711993,188.09780978097808],[356.0014680930007,185.5055505550555],[357.9191165282238,183.44134413441344],[358.31392650018154,182.24122412241223],[357.41150370713535,181.7131713171317],[356.1142709421315,184.44944494449442],[351.0381427312468,188.62586258625862]]]]}},{\"type\":\"Feature\",\"id\":9151,\"properties\":{\"name\":\"Lac de Neuch\u00E2tel\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[300.44606489609635,232.59825982598255],[294.4111124676001,238.3108310831083],[298.3592121871771,242.6312631263126],[296.3287609028232,244.1194119411941],[294.0727039202078,242.9192919291929],[290.2374070497616,243.15931593159314],[289.
 84259707780393,243.6393639363936],[286.00730020735773,245.4155415541554],[283.0744261299577,247.23972397239723],[280.53636202451537,248.007800780078],[279.5775378069038,247.76777677767774],[277.6598893716807,245.65556555655564],[277.6598893716807,244.16741674167415],[281.43878481756155,240.95109510951093],[284.37165889496157,239.70297029702968],[285.6688916599654,237.78277827782776],[288.94017428475775,235.86258625862584],[290.3502098988924,233.8463846384638],[292.493464032377,232.93429342934292],[294.24190819390395,231.2541254125412],[296.27235947825784,229.95799579957992],[296.7799722993463,228.9018901890189],[300.44606489609635,232.59825982598255]]],[[[317.98690793593113,225.01350135013502],[315.336040981358,227.89378937893787],[314.49001961287723,229.2379237923792],[309.6394971002541,232.74227422742274],[308.9062785809041,234.13441344134412],[305.63499595611177,235.5265526552655],[303.5481432471925,237.20672067206718],[298.3592121871771,242.6312631263126],[294.4111124676001,238.
 3108310831083],[300.44606489609635,232.59825982598255],[314.03880821635414,219.78097809780974],[317.98690793593113,225.01350135013502]]],[[[341.3370977060006,203.79537953795375],[340.71668203578133,205.71557155715567],[339.3066464216467,207.5397539753975],[335.8661595231582,209.93999399939992],[334.7381310318505,210.32403240324032],[331.7488555298851,212.5322532253225],[331.86165837901586,213.39633963396335],[328.9851857261812,215.65256525652563],[323.85265609073116,209.89198919891987],[335.47134955120055,202.2112211221122],[341.3370977060006,203.79537953795375]]],[[[328.9851857261812,215.65256525652563],[325.6011002522581,218.72487248724872],[322.72462759942346,220.74107410741072],[318.7765278798465,216.13261326132613],[323.85265609073116,209.89198919891987],[328.9851857261812,215.65256525652563]]],[[[322.72462759942346,220.74107410741072],[319.67895067289265,222.6132613261326],[319.67895067289265,223.28532853285327],[317.98690793593113,225.01350135013502],[314.03880821635414,219.7
 8097809780974],[318.7765278798465,216.13261326132613],[322.72462759942346,220.74107410741072]]],[[[341.3370977060006,203.79537953795375],[339.0810407233852,197.8427842784278],[340.9422877340429,198.85088508850885],[342.6907318955698,201.87518751875183],[341.3370977060006,203.79537953795375]]],[[[339.0810407233852,197.8427842784278],[341.3370977060006,203.79537953795375],[335.47134955120055,202.2112211221122],[323.85265609073116,209.89198919891987],[318.7765278798465,216.13261326132613],[314.03880821635414,219.78097809780974],[300.44606489609635,232.59825982598255],[296.7799722993463,228.9018901890189],[298.07720506435015,225.34953495349532],[299.0360292819617,224.05340534053403],[300.6152691697925,223.23732373237323],[302.02530478392714,221.17311731173118],[303.83015037001945,219.54095409540952],[304.50696746480406,218.38883888388835],[308.39866575981563,215.8445844584458],[309.80870137395027,215.74857485748572],[310.1471099213426,213.97239723972393],[310.936729865258,213.1083108310
 831],[313.0799839987426,212.5322532253225],[314.9412310094003,211.38013801380134],[315.4488438304888,208.78787878787875],[315.61804810418494,206.003600360036],[317.47929511484267,204.7074707470747],[320.6941763150696,203.98739873987398],[323.51424754333885,201.6351635163516],[323.96545893986195,201.82718271827179],[328.6467771787889,199.7149714971497],[328.81598145248506,198.94689468946893],[330.6772284631428,198.3228322832283],[332.4820740492351,196.97869786978697],[334.11771536163127,197.17071707170714],[336.03536379685437,198.56285628562853],[339.0810407233852,197.8427842784278]]]]}},{\"type\":\"Feature\",\"id\":9157,\"properties\":{\"name\":\"Baldeggersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[529.7742571789524,149.021902190219],[531.6919056141755,149.26192619261923],[532.4251241335255,150.22202220222022],[533.1583426528755,153.77437743774374],[534.117166870487,155.35853585358535],[534.2299697196179,157.27872787278727],[533.7223568985294,157.9507950795079
 4],[532.2559198598294,156.7026702670267],[530.451074273737,152.9102910291029],[529.1538415087332,150.89408940894089],[529.7742571789524,149.021902190219]]]]}},{\"type\":\"Feature\",\"id\":9163,\"properties\":{\"name\":\"Sempachersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[510.7105756758522,159.15091509150915],[512.7974283847715,160.44704470447044],[514.4330696971676,162.36723672367236],[517.7607537465253,164.9114911491149],[520.6936278239255,167.64776477647763],[521.1448392204485,169.6159615961596],[519.9604093045754,171.6321632163216],[519.0015850869638,171.7281728172817],[515.5046967639099,169.42394239423942],[513.4742454795561,167.64776477647763],[510.6541742512868,164.43144314431441],[510.14656143019835,161.74317431743174],[510.7105756758522,159.15091509150915]]]]}},{\"type\":\"Feature\",\"id\":9172,\"properties\":{\"name\":\"Hallwilersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[526.5593759787255,136.30063006300628],[525.3749460628524
 ,141.00510051005097],[523.6265019013254,136.78067806780678],[522.6112762591486,132.98829882988298],[521.9908605889293,129.29192919291927],[522.0472620134947,126.65166516651664],[523.4572976276293,126.17161716171614],[524.585326118937,127.85178517851784],[525.318544638287,131.1161116111611],[526.6721788278562,135.6285628562856],[526.5593759787255,136.30063006300628]]],[[[525.3749460628524,141.00510051005097],[526.5593759787255,136.30063006300628],[527.4053973472062,138.3168316831683],[526.1081645822023,142.54125412541254],[525.3749460628524,141.00510051005097]]]]}},{\"type\":\"Feature\",\"id\":9175,\"properties\":{\"name\":\"Zugersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[568.2964301571105,175.37653765376535],[565.9275703253643,173.98439843984397],[567.2812045149335,173.26432643264326],[566.6607888447143,171.82418241824178],[565.2507532305797,171.96819681968196],[564.1791261638373,171.20012001200115],[566.3787817218874,169.5199519951995],[568.3528315816759,172
 .25622562256223],[568.2964301571105,175.37653765376535]]],[[[572.6393398486451,177.63276327632758],[568.2964301571105,175.37653765376535],[568.3528315816759,172.25622562256223],[566.3787817218874,169.5199519951995],[564.1791261638373,171.20012001200115],[563.7279147673142,168.7998799879988],[565.0251475323181,166.5436543654365],[562.7690905497027,165.91959195919588],[562.656287700572,164.67146714671463],[563.4459076444873,162.65526552655263],[561.8666677566566,159.34293429342932],[562.1486748794835,158.28682868286825],[564.4611332866643,156.99069906990695],[565.8147674762336,156.75067506750673],[566.2095774481912,157.99879987998798],[567.9580216097181,157.66276627662762],[570.9472971116836,159.24692469246924],[571.3985085082066,159.9189918991899],[569.8192686203759,164.67146714671463],[569.9320714695066,167.023702370237],[568.4092330062413,169.90399039903986],[569.7628671958105,173.6483648364836],[572.6393398486451,177.63276327632758]]],[[[568.2964301571105,175.37653765376535],[572.
 6393398486451,177.63276327632758],[573.7109669153874,181.95319531953191],[572.0753256029913,183.96939693969392],[570.270480016899,181.56915691569156],[567.7324159114567,179.9369936993699],[564.3483304375335,176.9606960696069],[564.0663233147066,175.95259525952594],[565.9275703253643,173.98439843984397],[568.2964301571105,175.37653765376535]]]]}},{\"type\":\"Feature\",\"id\":9179,\"properties\":{\"name\":\"Vierwaldst\u00E4ttersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[564.6867389849258,199.09090909090907],[564.2919290129681,201.92319231923187],[569.1988529501566,203.65136513651362],[572.8085441223413,202.83528352835282],[576.4182352945259,202.83528352835282],[580.5355392877991,200.33903390339032],[581.3251592317145,201.77917791779174],[577.5462637858336,204.17941794179416],[573.5981640662567,205.33153315331532],[571.6805156310336,206.48364836483648],[569.1424515255912,206.8196819681968],[566.3787817218874,206.09960996099608],[564.6867389849258,204.659465946594
 65],[561.8666677566566,204.7074707470747],[560.5694349916528,204.03540354035403],[558.0877723107758,203.79537953795375],[556.959743819468,202.4512451245124],[557.0725466685988,201.3951395139514],[560.8514421144796,199.6189618961896],[563.2767033707912,199.42694269426943],[563.9535204655758,198.70687068706866],[562.7126891251373,198.034803480348],[558.1441737353412,197.79477947794777],[558.3133780090373,194.43444344434442],[564.7995418340565,196.1626162616261],[564.6867389849258,199.09090909090907]]],[[[551.6580099103219,197.69876987698768],[549.1199458048795,197.6027602760276],[547.1458959450911,200.0990099009901],[546.5818816994372,201.7311731173117],[543.9874161694295,203.12331233123308],[544.3822261413872,204.99549954995496],[542.8029862535564,206.57965796579657],[539.4753022041987,208.69186918691867],[539.9829150252872,205.71557155715567],[541.2237463657256,205.57155715571554],[543.4234019237756,204.46744674467442],[543.7054090466025,202.6912691269127],[540.8289363937679,202.931
 2931293129],[541.2237463657256,200.96309630963094],[540.6597321200718,198.8988898889889],[541.4493520639871,198.70687068706866],[543.9310147448641,201.10711071107107],[549.1199458048795,194.05040504050402],[551.4888056366257,194.43444344434442],[551.6580099103219,197.69876987698768]]],[[[565.589161777972,199.28292829282924],[564.6867389849258,199.09090909090907],[564.7995418340565,196.1626162616261],[558.3133780090373,194.43444344434442],[558.1441737353412,197.79477947794777],[552.7860384016295,197.5067506750675],[551.6580099103219,197.69876987698768],[551.4888056366257,194.43444344434442],[549.1199458048795,194.05040504050402],[543.9310147448641,201.10711071107107],[541.4493520639871,198.70687068706866],[540.6597321200718,198.8988898889889],[539.5881050533294,196.59465946594656],[541.1109435165948,196.06660666066603],[541.6749577622486,197.65076507650764],[543.1413948009487,198.4188418841884],[544.8898389624756,197.26672667266723],[544.5514304150834,194.86648664866482],[545.0590432
 361718,194.43444344434442],[544.0438175939948,193.0903090309031],[544.5514304150834,191.60216021602156],[542.2389720079025,188.86588658865884],[539.7009079024601,186.51365136513647],[543.4234019237756,186.27362736273625],[546.6946845485679,189.77797779777973],[546.9202902468295,190.88208820882085],[548.1047201627025,190.88208820882085],[550.9247913909719,187.95379537953795],[553.0680455244565,186.17761776177616],[554.4216797140257,184.5454545454545],[558.5953851318642,183.48934893489348],[558.0877723107758,186.41764176417638],[556.959743819468,188.09780978097808],[554.9292925351142,189.44194419441942],[553.2372497981526,191.84218421842183],[554.1396725911989,192.41824182418242],[555.4933067807681,191.69816981698165],[557.241750942295,191.89018901890188],[558.0877723107758,191.3141314131413],[560.6258364162181,191.36213621362134],[562.4306820023104,192.9462946294629],[564.5739361357951,193.0903090309031],[565.4199575042758,194.48244824482447],[566.7171902692796,195.25052505250522],[5
 67.2812045149335,197.69876987698768],[565.589161777972,199.28292829282924]]],[[[558.5953851318642,183.48934893489348],[554.4216797140257,184.5454545454545],[555.9445181772911,183.92139213921388],[559.1593993775181,179.88898889888986],[559.7798150477373,179.79297929792978],[558.5953851318642,183.48934893489348]]],[[[588.4881401515183,208.88388838883884],[588.6009430006491,210.03600360036],[587.2473088110798,213.25232523252322],[587.4729145093414,214.98049804980496],[589.164957246303,216.94869486948693],[588.8829501234761,218.48484848484844],[589.4469643691299,219.1569156915691],[588.9957529726069,220.78907890789077],[587.5293159339068,221.22112211221122],[586.0628788952067,223.28532853285327],[585.1604561021607,221.84518451845184],[584.483639007376,219.6369636963696],[584.483639007376,217.71677167716769],[585.1604561021607,216.61266126612657],[582.4531877230222,214.06840684068402],[583.2992090915029,209.89198919891987],[584.5964418565068,205.7635763576357],[584.0888290354183,203.6993
 6993699366],[584.7092447056375,201.20312031203116],[583.0736033932413,200.77107710771077],[581.3251592317145,201.77917791779174],[580.5355392877991,200.33903390339032],[582.6223919967183,199.57095709570956],[584.9348504038991,200.24302430243023],[585.8936746215106,201.01110111011099],[585.6116674986837,203.69936993699366],[585.950076046076,205.23552355235523],[586.1756817443376,209.02790279027903],[588.4881401515183,208.88388838883884]]],[[[539.4753022041987,208.69186918691867],[537.783259467237,209.6999699969997],[537.1064423724524,208.64386438643862],[535.8656110320139,209.07590759075907],[536.147618154841,208.11581158115808],[538.2344708637602,206.48364836483648],[539.9829150252872,205.71557155715567],[539.4753022041987,208.69186918691867]]],[[[588.4881401515183,208.88388838883884],[586.1756817443376,209.02790279027903],[585.950076046076,205.23552355235523],[585.6116674986837,203.69936993699366],[585.8936746215106,201.01110111011099],[584.9348504038991,200.24302430243023],[582.62
 23919967183,199.57095709570956],[580.5355392877991,200.33903390339032],[576.4182352945259,202.83528352835282],[572.8085441223413,202.83528352835282],[569.1988529501566,203.65136513651362],[564.2919290129681,201.92319231923187],[564.6867389849258,199.09090909090907],[565.589161777972,199.28292829282924],[567.6196130623258,199.66696669666965],[568.6348387045027,200.38703870387036],[572.4137341503836,199.6189618961896],[575.2338053786528,200.86708670867085],[577.602665210399,200.77107710771077],[581.3815606562798,198.17881788178818],[583.4120119406336,197.89078907890786],[584.0888290354183,199.04290429042902],[586.5704917162952,199.76297629762973],[587.0217031128184,200.96309630963094],[586.8524988391222,203.93939393939394],[587.5293159339068,206.8196819681968],[588.4881401515183,208.88388838883884]]]]}},{\"type\":\"Feature\",\"id\":9216,\"properties\":{\"name\":\"Sihlsee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[613.0227598374609,162.36723672367236],[614.376394027
 0301,163.03930393039303],[614.0943869042032,164.95949594959495],[615.5044225183378,169.2319231923192],[615.5044225183378,171.6321632163216],[616.0684367639917,174.27242724272423],[619.1705151150879,176.33663366336629],[618.8321065676955,177.4407440744074],[617.7604795009532,177.5367536753675],[616.1248381885571,176.43264326432643],[615.1660139709455,174.65646564656464],[613.473971233984,173.88838883888388],[613.0791612620262,172.78427842784276],[613.6995769322455,171.68016801680164],[612.3459427426762,170.67206720672067],[612.2895413181109,169.18391839183914],[610.4846957320185,165.87158715871584],[609.6386743635378,165.3435343534353],[610.4846957320185,163.51935193519347],[612.0075341952839,163.42334233423338],[613.0227598374609,162.36723672367236]]]]}},{\"type\":\"Feature\",\"id\":9239,\"properties\":{\"name\":\"Sarnersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[529.5486514806909,223.95739573957394],[529.8870600280832,225.06150615061506],[529.3794472069947,22
 7.6057605760576],[525.4313474874177,230.87008700870086],[523.6265019013254,233.79837983798376],[521.4268463432754,231.92619261926188],[522.4420719854523,229.52595259525953],[526.2209674313331,227.3177317731773],[528.5898272630793,224.05340534053403],[529.5486514806909,223.95739573957394]]]]}},{\"type\":\"Feature\",\"id\":9267,\"properties\":{\"name\":\"Walensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[676.7563695963461,169.6159615961596],[673.7106926698153,169.18391839183914],[668.8037687326268,167.55175517551754],[666.0965003534884,167.59975997599759],[664.0096476445691,167.26372637263722],[662.6560134549998,166.25562556255625],[668.5217616097999,166.35163516351633],[670.3266071958922,166.97569756975696],[676.9255738700423,168.03180318031798],[676.7563695963461,169.6159615961596]]],[[[676.7563695963461,169.6159615961596],[676.9255738700423,168.03180318031798],[670.3266071958922,166.97569756975696],[668.5217616097999,166.35163516351633],[662.6560134549998,166.2
 5562556255625],[665.0812747113114,164.76747674767472],[669.8189943748038,165.19951995199517],[672.0750513574192,165.8235823582358],[676.58716532265,165.91959195919588],[680.8172721650539,166.87968796879687],[686.6266188952885,166.3036303630363],[689.7850986709501,166.6396639663966],[690.6311200394309,166.3036303630363],[694.1280083624847,166.44764476447642],[694.015205513354,168.89588958895888],[690.800324313127,170.04800480048004],[687.2470345655078,169.42394239423942],[686.4010131970269,170.04800480048004],[682.6785191757116,170.57605760576052],[680.9864764387501,169.71197119711968],[680.3096593439654,170.19201920192017],[676.7563695963461,169.6159615961596]]]]}},{\"type\":\"Feature\",\"id\":9270,\"properties\":{\"name\":\"Aegerisee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[583.4120119406336,166.59165916591655],[585.7244703478145,166.83168316831683],[586.7960974145568,167.8397839783978],[587.8677244812991,167.59975997599759],[589.3905629445645,168.271827182718
 25],[591.4774156534838,171.5361536153615],[591.364612804353,173.55235523552352],[590.2929857376107,174.6084608460846],[588.8829501234761,173.26432643264326],[588.9393515480415,172.06420642064205],[586.0628788952067,170.48004800480044],[583.6376176388952,169.80798079807977],[584.1452304599836,168.46384638463843],[583.4120119406336,166.59165916591655]]]]}},{\"type\":\"Feature\",\"id\":9276,\"properties\":{\"name\":\"Lac de la Gruy\u00E8re\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[352.33537549625066,263.8493849384938],[351.32014985407375,265.81758175817583],[350.07931851363526,266.2496249624962],[350.30492421189683,267.44974497449743],[351.99696694885836,269.1779177917791],[352.22257264711993,270.8100810081008],[353.8018125349507,270.04200420042],[352.8429883173392,271.9141914191419],[351.5457555523353,271.5301530153015],[351.99696694885836,272.4902490249025],[350.30492421189683,273.97839783978395],[350.53052991015835,275.7065706570657],[349.85371281537374,276.8586
 858685868],[350.0229170890699,280.26702670267025],[351.0381427312468,283.2433243324332],[351.2637484295084,287.8037803780378],[349.74090996624295,287.3237323732373],[348.95129002232756,284.15541554155413],[349.007691446893,281.2751275127513],[349.5717056925468,278.1548154815481],[348.8948885977622,277.05070507050704],[349.74090996624295,275.5625562556255],[348.72568432406604,275.0825082508251],[347.14644443623524,276.04260426042606],[348.1052686538468,274.74647464746477],[348.33087435210837,273.1143114311431],[351.0381427312468,270.57005700570056],[351.2637484295084,269.36993699369935],[348.72568432406604,269.033903390339],[349.85371281537374,267.0657065706571],[348.4436772012391,266.39363936393636],[350.86893845755066,265.28952895289524],[352.33537549625066,263.8493849384938]]]]}},{\"type\":\"Feature\",\"id\":9294,\"properties\":{\"name\":\"Murtensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[348.1052686538468,219.10891089108907],[344.3827746325314,213.732373237
 3237],[344.89038745361984,212.72427242724268],[347.93606438015064,211.4281428142814],[352.2789740716853,209.07590759075907],[354.0838196577776,209.2199219921992],[355.7758623947392,211.62016201620162],[355.5502566964776,212.58025802580255],[353.2941997138622,214.98049804980496],[350.5869313347238,217.2367236723672],[348.7820857486314,217.2367236723672],[348.1052686538468,219.10891089108907]]],[[[348.1052686538468,219.10891089108907],[345.22879600101214,220.8370837083708],[343.42395041491983,220.9330933093309],[341.9575133762198,220.30903090309027],[340.378273488389,218.62886288628863],[340.378273488389,216.75667566756675],[344.3827746325314,213.7323732373237],[348.1052686538468,219.10891089108907]]]]}},{\"type\":\"Feature\",\"id\":9326,\"properties\":{\"name\":\"Bodensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[664.5172604656575,44.13141314131411],[663.6148376726114,44.035403540354025],[661.2459778408652,42.259225922592236],[659.2719279810767,41.395139513951335
 ],[655.8878425071537,41.49114911491148],[654.477806893019,40.579057905790535],[652.6165598823613,40.195019501950185],[647.1456216995189,40.147014701470084],[644.2691490466843,41.49114911491148],[641.3362749692842,43.21932193219317],[639.4186265340611,44.94749474947491],[635.9217382110073,47.011701170116964],[633.8912869266534,47.39573957395737],[628.7587572912033,49.17191719171916],[626.7847074314149,47.63576357635759],[625.6002775155418,47.63576357635759],[625.6002775155418,47.34773477347733],[628.4767501683764,48.21182118211817],[631.2968213966457,47.49174917491746],[633.5528783792611,46.195619561956164],[634.286096898611,46.57965796579657],[638.0085909199265,43.93939393939388],[640.3774507516728,43.363336333633356],[640.715859299065,42.355235523552324],[643.3103248290727,40.96309630963094],[645.7355860853843,37.842784278427814],[643.4231276782035,35.29852985298527],[640.2646479025419,34.24242424242419],[637.6701823725342,32.370237023702316],[635.6961325127457,31.506150615061472],
 [635.4705268144842,29.729972997299683],[638.4598023164497,28.481848184818432],[640.4902536008035,29.00990099009897],[644.4383533203804,31.17011701170111],[644.8895647169036,30.834083408340803],[646.863614576692,31.60216021602156],[644.3819518958151,29.1539153915391],[642.5771063097227,28.76987698769875],[642.182296337765,27.185718571857137],[643.5923319518997,27.137713771377094],[644.6075575940765,28.241824182418213],[648.048044492565,30.35403540354031],[649.5708829558305,30.69006900690067],[657.0158709984613,34.67446744674464],[658.9335194336844,35.10651065106509],[660.4563578969498,36.210621062106156],[661.9227949356498,38.99489948994898],[658.9335194336844,39.71497149714969],[661.8663935110844,39.66696669666965],[664.4044576165268,42.73927392739273],[664.5172604656575,44.13141314131411]],[[650.9245171453997,34.91449144914486],[651.544932815619,35.922592259225894],[650.9245171453997,36.59465946594656],[651.6013342401843,38.418841884188396],[655.8314410825883,40.195019501950185],[6
 57.3542795458536,40.53105310531049],[658.7079137354228,39.85898589858982],[653.9701940719306,35.87458745874585],[652.8421655806228,36.16261626162611],[652.1089470612728,35.10651065106509],[650.9245171453997,34.91449144914486]]],[[[738.3467252217467,61.17311731173112],[730.6761314808543,72.16621662166216],[727.7996588280198,72.55025502550251],[725.0923904488811,72.35823582358233],[723.2311434382234,70.05400540054],[715.2221411499388,60.453045304530406],[714.0377112340657,59.39693969396939],[686.2318089233308,46.05160516051603],[683.1861319968,45.42754275427541],[681.0992792878808,46.05160516051603],[676.1359539261268,46.43564356435638],[673.7670940943807,46.05160516051603],[673.0338755750307,46.43564356435638],[672.4134599048115,43.89138913891384],[674.2183054909037,43.93939393939388],[676.58716532265,44.707470747074694],[678.3920109087423,43.987398739873925],[677.2639824174346,41.683168316831654],[677.4331866911307,40.24302430243023],[675.8539468033,38.08280828082803],[673.541488396
 1191,36.78667866786674],[672.3006570556806,35.20252025202518],[672.5826641785077,33.714371437143654],[671.3418328380692,28.481848184818432],[669.4805858274115,27.617761776177588],[667.4501345430576,25.265526552655217],[665.4760846832692,25.74557455745571],[661.5279849636921,22.385238523852365],[658.425906612596,21.281128112811246],[654.929018289542,18.832883288328787],[651.6013342401843,14.704470447044685],[649.063270134742,13.168316831683114],[649.4580801066998,11.248124812481194],[650.3041014751805,9.999999999999943],[652.6729613069267,10.768076807680757],[653.462581250842,10.480048004800437],[655.0418211386728,12.30423042304227],[657.8054909423768,14.368436843684322],[660.8511678689075,15.616561656165572],[663.3892319743499,17.680768076807624],[664.7992675884844,19.888988898889863],[665.758091806096,20.65706570657062],[668.4089587606691,21.185118511851158],[672.2442556311153,23.153315331533122],[674.0491012172076,24.689468946894635],[676.58716532265,25.45754575457545],[679.294433
 7017884,27.137713771377094],[679.52003940005,30.93009300930089],[681.2684835615769,33.61836183618357],[685.667794677677,37.45874587458741],[687.3598374146386,38.03480348034799],[689.2210844252962,39.71497149714969],[692.8871770220462,41.92319231923187],[694.8048254572693,42.16321632163215],[698.8093266014117,44.65946594659465],[699.9373550927194,44.80348034803478],[702.4754191981617,43.45934593459344],[704.3930676333848,43.45934593459344],[705.1262861527348,42.83528352835282],[707.777153107308,42.787278727872774],[710.0896115144888,43.363336333633356],[711.725252826885,45.091509150915044],[713.3608941392811,45.18751875187513],[715.8989582447234,46.29162916291625],[716.4629724903773,47.10771077107705],[718.1550152273389,46.43564356435638],[719.2266422940811,46.91569156915688],[719.9034593888657,46.195619561956164],[722.4415234943081,47.443744374437415],[724.923186175185,50.75607560756072],[724.9795875997504,52.86828682868281],[726.4460246384504,54.35643564356434],[726.8972360349735,5
 7.284728472847235],[729.0404901684581,58.91689168916889],[729.9429129615044,60.16501650165014],[731.6349556984658,61.07710771077103],[733.7782098319506,61.36513651365135],[736.6546824847851,60.453045304530406],[738.3467252217467,61.17311731173112]],[[674.7259183119922,34.33843384338428],[673.7670940943807,35.49054905490544],[675.6283411050384,35.77857785778576],[674.7259183119922,34.33843384338428]]],[[[758.4256323670238,72.16621662166216],[732.5937799160774,79.55895589558952],[730.6761314808543,72.16621662166216],[738.3467252217467,61.17311731173112],[739.0799437410967,63.57335733573353],[740.8847893271891,64.7254725472547],[742.4640292150198,64.19741974197416],[742.9716420361083,64.96549654965492],[744.6636847730699,65.49354935493545],[746.1865232363352,67.26972697269724],[750.4730315033046,67.12571257125711],[751.1498485980892,68.27782778277822],[752.447081363093,68.70987098709867],[755.6055611387546,68.37383738373836],[757.297603875716,69.90999099909988],[758.4256323670238,72.16
 621662166216]],[[751.1498485980892,68.90189018901884],[749.9090172576507,69.66996699669966],[751.6574614191777,70.19801980198014],[752.3342785139623,68.99789978997899],[751.1498485980892,68.90189018901884]]],[[[625.6002775155418,47.34773477347733],[625.6002775155418,47.63576357635759],[623.7390305048841,47.587758775877546],[623.0058119855341,46.86768676867683],[625.6002775155418,47.34773477347733]]],[[[723.2311434382234,70.05400540054],[713.0788870164542,79.55895589558952],[713.6429012621081,77.1587158715871],[712.0636613742772,76.53465346534648],[708.0591602301349,72.93429342934292],[705.0134833036041,70.67806780678063],[704.2238633596887,69.04590459045903],[704.6750747562118,65.82958295829582],[704.111060510558,64.82148214821478],[698.2453123557578,61.797179717971744],[695.5944454011848,60.1170117011701],[692.7179727483501,57.76477647764773],[691.4207399833463,56.27662766276626],[687.9238516602924,54.308430843084295],[683.9757519407154,52.48424842484246],[683.4681391196269,51.9081
 9081908188],[679.5764408246154,51.04410441044104],[677.9407995122192,49.507950795079466],[675.6847425296038,48.259825982598215],[674.7823197365576,48.3558355835583],[673.0338755750307,46.43564356435638],[673.7670940943807,46.05160516051603],[676.1359539261268,46.43564356435638],[681.0992792878808,46.05160516051603],[683.1861319968,45.42754275427541],[686.2318089233308,46.05160516051603],[714.0377112340657,59.39693969396939],[715.2221411499388,60.453045304530406],[723.2311434382234,70.05400540054]]],[[[664.5172604656575,44.13141314131411],[663.0508234269575,44.563456345634506],[659.6667379530345,44.32343234323429],[658.4823080371614,42.643264326432586],[656.7338638756344,43.363336333633356],[655.5494339597612,42.59525952595254],[650.529707173442,42.499249924992455],[648.8940658610459,42.83528352835282],[647.6532345206074,42.355235523552324],[644.8331632923381,43.171317131713124],[643.1975219799419,44.08340834083407],[642.2386977623304,43.89138913891384],[640.4338521762381,45.95559555
 9555945],[638.7982108638419,46.91569156915688],[635.2449211162227,48.115811581158084],[634.286096898611,48.06780678067804],[632.9324627090418,49.41194119411938],[632.0300399159958,48.97989798979893],[630.3943986035995,49.98799879987996],[628.0819401964187,49.795979597959786],[626.7283060068495,48.115811581158084],[625.3182703927148,48.30783078307826],[623.7390305048841,47.587758775877546],[625.6002775155418,47.63576357635759],[626.7847074314149,47.63576357635759],[628.7587572912033,49.17191719171916],[633.8912869266534,47.39573957395737],[635.9217382110073,47.011701170116964],[639.4186265340611,44.94749474947491],[641.3362749692842,43.21932193219317],[644.2691490466843,41.49114911491148],[647.1456216995189,40.147014701470084],[652.6165598823613,40.195019501950185],[654.477806893019,40.579057905790535],[655.8878425071537,41.49114911491148],[659.2719279810767,41.395139513951335],[661.2459778408652,42.259225922592236],[663.6148376726114,44.035403540354025],[664.5172604656575,44.1314131
 4131411]]],[[[732.5373784915121,80.80708070807077],[732.5937799160774,79.55895589558952],[758.4256323670238,72.16621662166216],[759.4972594337662,72.55025502550251],[761.6969149918161,74.99849984998497],[761.7533164163815,77.73477347734769],[760.8508936233354,78.55085508550854],[754.9851454685354,78.022802280228],[753.7443141280969,78.50285028502844],[751.8266656928738,81.67116711671162],[750.6422357770007,82.39123912391238],[751.0370457489585,80.6150615061506],[749.6270101348236,79.94299429942993],[749.4578058611276,81.28712871287127],[748.8937916154737,78.88688868886885],[748.8937916154737,81.04710471047099],[748.047770246993,80.80708070807077],[745.9609175380738,82.91929192919287],[744.4944804993736,80.56705670567055],[745.566107566116,79.60696069606956],[744.7764876222006,78.74287428742872],[742.0692192430622,81.62316231623157],[741.1667964500159,81.52715271527148],[739.869563685012,82.96729672967291],[736.5418796356544,83.20732073207319],[734.1730198039081,81.62316231623157],[7
 33.6654069828198,80.03900390039001],[732.5373784915121,80.80708070807077]]],[[[730.6761314808543,72.16621662166216],[732.5937799160774,79.55895589558952],[732.5373784915121,80.80708070807077],[730.1685186597658,82.77527752775273],[729.7737086878083,83.9273927392739],[727.5740531297581,85.07950795079506],[722.8363334662658,85.75157515751573],[720.523875059085,85.2235223522352],[718.1550152273389,82.00720072007198],[715.2785425745042,80.9510951095109],[714.4889226305888,79.70297029702965],[713.0788870164542,79.55895589558952],[723.2311434382234,70.05400540054],[725.0923904488811,72.35823582358233],[727.7996588280198,72.55025502550251],[730.6761314808543,72.16621662166216]]]]}},{\"type\":\"Feature\",\"id\":9710,\"properties\":{\"name\":\"Lago di Lugano\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[639.4186265340611,445.3075307530753],[638.6290065901458,445.73957395739575],[637.4445766742726,447.8037803780378],[636.5421538812266,447.27572757275726],[636.767759579488,444
 .29942994299427],[635.4705268144842,443.1953195319532],[634.9065125688303,440.4110411041104],[635.865336786442,438.2988298829883],[635.2449211162227,436.1866186618662],[633.0452655581726,436.2826282628263],[632.7068570107804,435.3225322532253],[631.4660256703419,435.034503450345],[630.2815957544688,433.6903690369037],[633.7784840775226,435.7065706570657],[635.6961325127457,435.17851785178516],[636.1473439092688,436.1866186618662],[636.2037453338341,439.1149114911491],[635.5833296636149,441.37113711371137],[638.0649923444919,444.5874587458746],[639.4186265340611,445.3075307530753]]],[[[648.8376644364805,429.46594659465944],[648.3864530399574,431.4341434143414],[647.596833096042,432.3942394239424],[647.3712273977804,434.026402640264],[645.9047903590804,433.6903690369037],[647.1456216995189,429.27392739273927],[648.8376644364805,429.46594659465944]]],[[[656.4518567528075,425.1455145514551],[654.195799770192,425.96159615961597],[653.6317855245381,426.6816681668167],[650.0220943523536,42
 8.31383138313834],[648.8376644364805,429.46594659465944],[647.1456216995189,429.27392739273927],[645.9047903590804,433.6903690369037],[647.3712273977804,434.026402640264],[646.9764174258228,435.8505850585058],[645.9047903590804,436.71467146714673],[646.9200160012574,437.43474347434744],[646.8072131521267,439.35493549354936],[647.3712273977804,440.84308430843083],[648.9504672856112,442.04320432043204],[650.0220943523536,444.5874587458746],[649.5144815312651,447.03570357035704],[648.3864530399574,446.79567956795677],[647.9916430679997,442.7152715271527],[644.7767618677727,440.0750075007501],[642.5771063097227,441.65916591659163],[641.3926763938496,443.96339633963396],[639.4186265340611,445.3075307530753],[638.0649923444919,444.5874587458746],[635.5833296636149,441.37113711371137],[636.2037453338341,439.1149114911491],[636.1473439092688,436.1866186618662],[635.6961325127457,435.17851785178516],[633.7784840775226,435.7065706570657],[630.2815957544688,433.6903690369037],[631.635229944038
 ,432.34623462346235],[632.3120470388226,433.06630663066306],[631.8608356422995,434.6024602460246],[632.650455586215,435.0825082508251],[634.7937097196996,434.55445544554453],[634.1732940494803,432.7302730273027],[635.865336786442,431.2901290129013],[635.5269282390495,428.6018601860186],[636.1473439092688,427.5457545754575],[637.7265837970996,427.0657065706571],[638.4034008918842,427.8817881788179],[636.2037453338341,432.92229222922293],[637.3881752497073,437.4827482748275],[636.3729496075304,441.13111311131115],[638.5726051655804,443.4353435343534],[639.700633656888,443.33933393339333],[640.9414649973265,442.18721872187217],[642.8591134325496,439.2589258925893],[643.8179376501612,436.85868586858686],[645.397177537992,436.71467146714673],[644.4947547449458,435.3225322532253],[644.5511561695112,433.06630663066306],[645.7355860853843,431.0981098109811],[645.5663818116882,427.92979297929793],[644.2691490466843,426.8256825682568],[645.0023675660343,425.001500150015],[647.596833096042,424
 .5694569456946],[649.3452772575689,425.72157215721575],[651.2065242682266,424.7134713471347],[652.8421655806228,424.6174617461746],[656.0570467808498,421.7371737173717],[656.4518567528075,425.1455145514551]]],[[[656.4518567528075,425.1455145514551],[656.0570467808498,421.7371737173717],[657.4670823949843,420.63306330633065],[659.8359422267306,419.76897689768975],[660.7947664443421,420.05700570057],[665.306880409573,419.96099609960993],[667.1117259956652,419.67296729672967],[670.7778185924153,416.984698469847],[672.2442556311153,418.95289528952895],[667.506535967623,423.1773177317732],[665.1376761358767,423.46534653465346],[662.6560134549998,422.84128412841284],[658.7643151599882,422.84128412841284],[656.4518567528075,425.1455145514551]]]]}},{\"type\":\"Feature\",\"id\":9711,\"properties\":{\"name\":\"Lago Maggiore\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[613.0791612620262,402.1512151215121],[610.9359071285417,398.31083108310827],[608.1158359002724,401.095109510
 9511],[606.5929974370069,404.11941194119413],[603.9421304824339,403.15931593159314],[606.4801945878762,398.93489348934895],[607.5518216546186,395.4305430543054],[609.5822729389724,392.74227422742274],[614.6584011498571,390.9180918091809],[617.4220709535609,392.88628862886287],[618.7757051431302,392.74227422742274],[620.354945030961,390.9180918091809],[620.6933535783533,388.997899789979],[620.072937908134,387.3657365736574],[622.6674034381417,386.6456645664566],[624.9798618453226,385.06150615061506],[626.5027003085879,385.97359735973595],[628.420348743811,388.037803780378],[628.9843629894649,391.06210621062104],[629.9995886316418,390.6300630063006],[630.3943986035995,391.4941494149415],[628.7587572912033,391.6381638163816],[625.8258832138033,393.4143414341434],[622.3853963153149,394.2304230423042],[620.806156427484,395.0945094509451],[619.3961208133494,396.6306630663066],[617.4784723781263,397.73477347734774],[613.9815840550725,401.76717671767176],[613.0791612620262,402.1512151215121
 ]]],[[[613.0791612620262,402.1512151215121],[610.1462871846263,402.6312631263126],[609.6950757881032,404.7914791479148],[607.4954202300531,407.33573357335734],[609.1874629670147,410.6960696069607],[608.9618572687532,412.4722472247225],[609.7514772126685,414.34443444344436],[609.5258715144071,417.17671767176716],[611.725527072457,418.7128712871287],[612.6279498655032,420.8730873087309],[612.6279498655032,422.5532553255325],[611.4999213741955,425.09750975097506],[609.6950757881032,426.96969696969694],[608.51064587223,426.96969696969694],[606.4801945878762,428.88988898889886],[606.2545888896148,430.9060906090609],[603.9421304824339,433.3063306330633],[598.8096008469838,436.95469546954695],[598.5839951487224,439.54695469546954],[596.7227481380646,440.2190219021902],[595.31271252393,441.4191419141914],[594.1846840326223,443.14731473147316],[591.5902185026146,444.4914491449145],[590.6877957095684,446.027602760276],[592.0978313237031,447.13171317131713],[591.7594227763107,447.7077707770777
 ],[589.164957246303,447.8037803780378],[587.9241259058645,451.16411641164115],[589.1085558217376,453.3723372337234],[588.5445415760837,454.7164716471647],[589.6161686428261,455.964596459646],[590.91340140783,459.7089708970897],[592.2670355973992,459.94899489948995],[592.9438526921838,464.4134413441344],[593.3950640887069,465.85358535853584],[592.0978313237031,466.95769576957696],[591.5902185026146,466.47764776477646],[590.4621900113068,467.8217821782178],[590.4057885867414,470.84608460846084],[588.6009430006491,472.52625262526254],[587.2473088110798,472.7182718271827],[584.8784489793337,472.0942094209421],[583.468413365199,475.83858385838585],[583.468413365199,477.4227422742274],[584.6528432810721,479.1989198919892],[587.1909073865145,479.15091509150915],[586.0628788952067,479.87098709870986],[586.965301688253,482.7032703270327],[588.2625344532569,482.7992799279928],[589.164957246303,487.5037503750375],[590.6877957095684,487.45574557455745],[590.3493871621761,488.65586558655866],[59
 2.4926412956606,489.13591359135916],[594.1282826080569,490],[590.5749928604375,489.23192319231924],[588.3189358778222,487.83978397839786],[586.8524988391222,484.14341434143415],[582.1147791756298,477.6627662766277],[581.832772052803,475.2145214521452],[582.0583777510644,473.006300630063],[583.468413365199,470.7980798079808],[586.1756817443376,469.45394539453946],[587.3601116602106,468.0618061806181],[588.4881401515183,464.65346534653463],[587.9241259058645,460.3810381038104],[587.0781045373838,458.55685568556856],[584.3144347336798,451.54815481548155],[584.5400404319414,449.1959195919592],[587.9241259058645,444.53945394539454],[591.6466199271799,440.6990699069907],[601.8552777735147,429.36993699369935],[604.7317504263492,426.3456345634563],[607.9466316265762,423.46534653465346],[609.1310615424493,420.2010201020102],[607.7774273528801,416.984698469847],[606.5929974370069,411.2721272127213],[605.1829618228724,407.2397239723972],[606.5929974370069,404.11941194119413],[608.1158359002724
 ,401.0951095109511],[610.9359071285417,398.31083108310827],[613.0791612620262,402.1512151215121]]],[[[606.5929974370069,404.11941194119413],[605.1829618228724,407.2397239723972],[606.5929974370069,411.2721272127213],[607.7774273528801,416.984698469847],[609.1310615424493,420.2010201020102],[607.9466316265762,423.46534653465346],[604.7317504263492,426.3456345634563],[601.8552777735147,429.36993699369935],[591.6466199271799,440.6990699069907],[587.9241259058645,444.53945394539454],[584.5400404319414,449.1959195919592],[584.3144347336798,451.54815481548155],[587.0781045373838,458.55685568556856],[587.9241259058645,460.3810381038104],[588.4881401515183,464.65346534653463],[587.3601116602106,468.0618061806181],[586.1756817443376,469.45394539453946],[583.468413365199,470.7980798079808],[582.0583777510644,473.006300630063],[581.832772052803,475.2145214521452],[582.1147791756298,477.6627662766277],[586.8524988391222,484.14341434143415],[588.3189358778222,487.83978397839786],[590.57499286043
 75,489.23192319231924],[594.1282826080569,490],[589.2213586708683,489.2799279927993],[587.4729145093414,489.9039903990399],[586.0628788952067,486.01560156015603],[584.3708361582453,484.6714671467147],[584.4272375828107,482.84728472847286],[583.6376176388952,482.5112511251125],[583.468413365199,481.07110711071107],[581.1559549580184,479.006900690069],[580.6483421369298,477.9027902790279],[580.084327891276,474.014401440144],[579.5767150701874,473.24632463246326],[581.0995535334529,468.9258925892589],[582.0583777510644,469.3579357935794],[583.7504204880261,468.0618061806181],[583.9760261862875,465.3255325532553],[585.2732589512914,463.26132613261325],[583.8068219125914,456.44464446444647],[581.832772052803,453.9003900390039],[576.4182352945259,451.5961596159616],[574.2185797364759,448.33183318331834],[574.1621783119106,446.79567956795677],[571.8497199047297,444.3954395439544],[570.2140785923336,443.24332433243325],[571.0600999608143,441.7551755175517],[573.5981640662567,440.69906990699
 07],[575.0081996803913,440.6990699069907],[579.2947079473606,442.66726672667266],[580.8739478351913,444.8274827482748],[582.6223919967183,446.07560756075605],[583.6940190634606,443.33933393339333],[584.7656461302029,441.56315631563155],[587.3037102356452,440.4590459045904],[591.8722256254414,436.6186618661866],[593.3386626641415,433.25832583258324],[596.8919524117607,428.64986498649864],[598.8096008469838,424.8094809480948],[600.8400521313376,421.92919291929195],[604.0549333315646,421.06510651065105],[606.2545888896148,419.5769576957696],[606.4801945878762,418.0888088808881],[605.3521660965685,415.4965496549655],[605.6905746439609,414.05640564056404],[604.5625461526531,412.3282328232823],[604.3369404543917,410.55205520552056],[603.0961091139532,406.75967596759676],[603.9421304824339,403.15931593159314],[606.5929974370069,404.11941194119413]]]]}},{\"type\":\"Feature\",\"id\":9751,\"properties\":{\"name\":\"Lac de Joux\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[228
 .87265712262257,274.31443144314426],[229.21106567001488,274.84248424842485],[227.46262150848793,277.9147914791479],[221.31486623086096,283.29132913291323],[219.39721779563786,284.1074107410741],[216.9155551147609,286.3636363636364],[215.50551950062626,286.8436843684368],[215.0543081041032,285.8355835583558],[217.47956936041476,283.00330033003297],[222.10448617477633,279.16291629162913],[224.64255028021867,277.6267626762676],[228.87265712262257,274.31443144314426]]]]}},{\"type\":\"Feature\",\"id\":9757,\"properties\":{\"name\":\"Lac L\u00E9man\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[306.08620735263486,330],[303.4353403980617,337.53675367536755],[301.46129053827326,337.6807680768077],[295.9903523554309,335.3285328532853],[292.6062668815078,334.8964896489649],[289.72979422867314,333.98439843984397],[283.35643325278465,334.1284128412841],[282.2848061860423,334.6084608460846],[276.81386800319996,334.3204320432043],[273.9373953503653,335.04050405040505],[269.3124785
 360037,335.1845184518452],[262.03669476706904,336.8166816681668],[258.65260929314593,334.8964896489649],[257.41177795270744,334.56045604560455],[253.97129105421897,336.048604860486],[252.44845259095356,337.53675367536755],[252.44845259095356,339.4569456945694],[251.65883264703817,341.041104110411],[243.9318374815804,344.73747374737474],[241.2245691024419,344.73747374737474],[239.98373776200344,346.65766576657666],[239.0249135443919,346.9456945694569],[237.8404836285188,349.009900990099],[236.43044801438418,348.8178817881788],[233.04636254046108,347.3297329732973],[231.46712265263028,344.06540654065407],[231.52352407719565,342.86528652865286],[230.39549558588794,342.1932193219322],[227.12421296109562,342.24122412241223],[224.86815597848022,342.9132913291329],[221.65327477825326,344.88148814881487],[219.79202776759556,346.65766576657666],[218.88960497454937,349.3939393939394],[216.5771465673686,352.27422742274223],[216.74635084106475,353.4263426342634],[215.22351237779935,356.49864986
 49865],[213.98268103736086,356.8826882688269],[210.5421941388724,355.15451545154514],[212.62904684779164,350.9300930093009],[214.09548388649165,347.95379537953795],[216.01313232171475,344.16141614161415],[229.21106567001488,334.5124512451245],[243.5370275096227,331.8721872187218],[258.370602170319,322.79927992799276],[284.08965177213463,323.56735673567357],[306.08620735263486,330]]],[[[312.0083569320003,337.53675367536755],[306.08620735263486,330],[284.08965177213463,323.56735673567357],[258.370602170319,322.79927992799276],[243.5370275096227,331.8721872187218],[229.21106567001488,334.5124512451245],[216.01313232171475,344.16141614161415],[214.09548388649165,347.95379537953795],[209.6397713458262,345.79357935793576],[210.9370041108301,343.7773777377738],[213.5878710654032,340.5130513051305],[217.14116081302245,336.8166816681668],[219.39721779563786,337.44074407440746],[220.7508519852071,335.85658565856585],[220.86365483433786,333.7923792379238],[222.2172890239071,331.8241824182418],
 [222.38649329760327,329.95199519951996],[224.75535312934943,328.5598559855986],[226.95500868739947,325.3435343534353],[229.21106567001488,323.7113711371137],[231.29791837893413,321.35913591359133],[236.7688565617765,320.5910591059106],[238.51730072330344,321.7911791179118],[239.98373776200344,321.98319831983196],[243.1986189622304,319.8229822982298],[247.3723243800689,318.6228622862286],[248.33114859768045,317.6147614761476],[249.34637423985737,317.7587758775877],[249.45917708898816,316.17461746174615],[250.756409853992,314.9264926492649],[252.11004404356123,314.87848784878486],[253.52007965769587,312.4302430243024],[254.76091099813436,312.04620462046205],[256.5657565842267,309.45394539453946],[258.59620786858056,309.3579357935794],[261.3598776722844,311.1341134113411],[264.5747588725114,311.2301230123012],[265.75918878838445,310.2220222022202],[268.46645716752295,308.8298829882988],[269.93289420622295,308.8298829882988],[271.51213409405375,310.07800780078003],[273.42978252927685,31
 0.6060606060606],[275.7422409364576,311.95019501950196],[281.5515876666923,311.9021902190219],[284.03325034756926,312.4302430243024],[286.7969201512731,313.58235823582356],[290.51941417258854,316.4626462646264],[292.9446754289001,315.74257425742576],[295.03152813781935,316.3666366636663],[296.61076802565015,317.95079507950794],[298.8104235837002,319.15091509150915],[301.12288199088096,319.3429342934293],[304.3377631911079,320.3510351035103],[307.8346515141618,320.8790879087909],[308.39866575981563,322.4152415241524],[310.936729865258,323.32733273327335],[312.12115978113104,325.48754875487543],[314.2080124900503,325.4395439543954],[315.27963955679263,326.6396639663966],[316.9152808691888,327.35973597359737],[318.66372503071574,327.2637263726373],[319.5097463991965,327.8397839783978],[319.9609577957196,329.47194719471946],[321.7658033818119,330.14401440144013],[323.17583899594655,333.8883888388839],[322.3298176274658,336.4806480648065],[321.4273948344196,337.44074407440746],[316.40766
 804810033,337.2007200720072],[313.0799839987426,337.8247824782478],[312.0083569320003,337.53675367536755]]],[[[213.98268103736086,356.8826882688269],[214.09548388649165,358.37083708370835],[212.7982511214878,360.6750675067507],[211.83942690387624,361.2511251125112],[209.3577642229993,365.1875187518752],[206.93250296668774,366.29162916291625],[206.36848872103388,367.5397539753975],[206.2556858719031,370.9000900090009],[205.63527020168388,373.06030603060304],[204.50724171037618,374.6924692469247],[202.81519897341462,377.76477647764773],[199.76952204688382,379.5409540954095],[198.07747930992227,379.44494449444943],[199.76952204688382,378.004800480048],[199.76952204688382,375.94059405940595],[199.20550780122997,374.6924692469247],[199.8259234714492,370.9000900090009],[199.76952204688382,368.979897989799],[202.02557902949923,366.29162916291625],[202.64599469971847,363.93939393939394],[202.25118472776077,361.971197119712],[202.75879754884923,359.042904290429],[207.15810866494928,361.39513
 95139514],[210.5421941388724,355.15451545154514],[213.98268103736086,356.8826882688269]]],[[[212.62904684779164,350.9300930093009],[210.5421941388724,355.15451545154514],[207.15810866494928,361.3951395139514],[202.75879754884923,359.042904290429],[203.77402319102617,358.13081308130813],[206.81970011755695,353.95439543954393],[208.68094712821465,349.1059105910591],[212.62904684779164,350.9300930093009]]],[[[214.09548388649165,347.95379537953795],[212.62904684779164,350.9300930093009],[208.68094712821465,349.1059105910591],[209.019355675607,346.8976897689769],[209.6397713458262,345.79357935793576],[214.09548388649165,347.95379537953795]]],[[[312.0083569320003,337.53675367536755],[311.6135469600426,339.50495049504946],[309.6394971002541,338.83288328832884],[306.5938201737233,339.07290729072906],[303.4353403980617,337.53675367536755],[306.08620735263486,330],[312.0083569320003,337.53675367536755]]]]}}]}";
+    public static final String SWISS_LAKES = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"id\":9040," +
+            "\"properties\":{\"name\":\"Greifensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[593.9590783343607," +
+            "112.49024902490248],[595.8203253450184,114.65046504650462],[596.6663467134993,115.08250825082507],[597.9071780539377," +
+            "117.09870987098708],[598.1327837521992,119.018901890189],[598.8660022715492,120.50705070507047],[600.7272492822069," +
+            "121.46714671467146],[600.6144464330762,123.1473147314731],[599.3736150926377,124.29942994299427],[598.4711922995915," +
+            "124.20342034203418],[597.9635794785031,122.3312331233123],[595.8203253450184,118.77887788778872],[594.5230925800146," +
+            "118.10681068106805],[592.3234370219645,114.8424842484248],[592.4926412956606,112.87428742874283],[593.9590783343607," +
+            "112.49024902490248]]]]}},{\"type\":\"Feature\",\"id\":9050,\"properties\":{\"name\":\"Z\u00FCrichsee\"},\"geometry\":" +
+            "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[616.9144581324724,147.1017101710171],[619.0577122659571,149.021902190219]," +
+            "[622.0469877679225,149.8379837983798],[637.7265837970996,147.19771977197718],[636.5421538812266,148.49384938493847]," +
+            "[631.9736384914303,150.12601260126007],[629.5483772351188,150.27002700270026],[629.0407644140303,149.5979597959796]," +
+            "[627.969137347288,150.36603660366035],[626.8975102805457,150.03000300029998],[623.8518333540148,151.03810381038102]," +
+            "[623.7390305048841,153.00630063006298],[622.272593466184,153.58235823582356],[620.7497550029186,152.76627662766276]," +
+            "[618.6629022939994,152.8142814281428],[618.3244937466071,151.75817581758173],[615.8428310657301,150.6540654065406]," +
+            "[611.9511327707186,150.07800780078003],[611.6127242233263,150.51005100510048],[606.6493988615723,149.64596459645963]," +
+            "[603.6601233596069,151.66216621662164],[602.4756934437339,151.32613261326128],[606.5365960124416,149.30993099309927]," +
+            "[614.7148025744225,146.66966696669664],[616.9144581324724,147.1017101710171]],[[616.4632467359494,147.9177917791779]," +
+            "[614.8840068481186,148.54185418541852],[614.6019997252916,149.9339933993399],[616.858056707907,148.44584458445843]," +
+            "[616.4632467359494,147.9177917791779]]],[[[637.7265837970996,147.19771977197718],[622.0469877679225,149.8379837983798]," +
+            "[619.0577122659571,149.021902190219],[616.9144581324724,147.1017101710171],[614.940408272684,142.87728772877284]," +
+            "[617.9860851992148,143.40534053405338],[618.4372965957378,144.9414941494149],[617.4784723781263,145.51755175517548]," +
+            "[618.0988880483455,146.5256525652565],[619.6781279361763,146.66966696669664],[620.7497550029186,147.77377737773776]," +
+            "[622.6674034381417,148.10981098109806],[623.8518333540148,147.72577257725771],[623.4006219574917,146.71767176717668]," +
+            "[625.2054675435841,146.6216621662166],[625.8822846383687,147.38973897389735],[627.7435316490264,147.96579657965793]," +
+            "[630.6764057264264,147.38973897389735],[631.0148142738187,146.90969096909686],[634.2296954740457,145.6615661566156]," +
+            "[637.9521894953612,145.8055805580558],[637.7265837970996,147.19771977197718]]],[[[614.940408272684,142.87728772877284]," +
+            "[616.9144581324724,147.1017101710171],[614.7148025744225,146.66966696669664],[606.5365960124416,149.30993099309927]," +
+            "[602.4756934437339,151.32613261326128],[599.9940307628569,147.8217821782178],[597.1739595345877,146.045604560456]," +
+            "[596.2715367415415,144.89348934893485],[594.0718811834915,143.26132613261325],[592.4362398710953,140.8130813081308]," +
+            "[591.1954085306568,140.28502850285025],[590.0673800393491,140.86108610861083],[586.5704917162952,139.32493249324932]," +
+            "[583.3556105160683,137.5007500750075],[580.084327891276,130.78007800780074],[578.2230808806182,128.37983798379832]," +
+            "[577.602665210399,125.73957395739569],[576.3054324453951,122.57125712571252],[574.387784010172,119.11491149114909]," +
+            "[574.4441854347374,114.93849384938488],[575.403009652349,114.4104410441044],[576.5874395682221,117.57875787578757]," +
+            "[577.3206580875722,117.62676267626762],[578.8434965508375,119.78697869786976],[579.2383065227953,121.46714671467146]," +
+            "[580.8175464106259,125.06750675067502],[581.1559549580184,126.55565556555655],[583.468413365199,129.77197719771976]," +
+            "[583.9760261862875,131.06810681068106],[586.5704917162952,134.38043804380436],[590.5185914358722,136.9246924692469]," +
+            "[593.9026769097953,137.64476447644762],[598.0763823276338,139.66096609660963],[598.1891851767646,140.14101410141012]," +
+            "[601.4604678015569,141.72517251725168],[602.7012991419954,143.2133213321332],[605.6341732193955,144.3654365436543]," +
+            "[613.6995769322455,143.98139813981396],[614.940408272684,142.87728772877284]]]]}},{\"type\":\"Feature\",\"id\":9073,\"properties\"" +
+            ":{\"name\":\"Thunersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[435.18906818280146,257.3207320732073]," +
+            "[440.20879496912073,261.7371737173717],[441.95723913064774,262.6492649264926],[442.6904576499977,264.08940894089403]," +
+            "[448.443402955667,266.2016201620162],[451.376277033067,269.22592259225917],[451.9402912787209,271.57815781578154]," +
+            "[453.857939713944,272.3942394239424],[454.64755965785935,271.9141914191419],[456.9600180650402,271.96219621962194]," +
+            "[459.1032721985248,271.14611461146114],[462.20535054962096,271.9141914191419],[463.3897804654941,273.45034503450347]," +
+            "[465.1946260515864,274.84248424842485],[464.79981607962867,275.75457545754574],[462.88216764440557,276.81068106810676]," +
+            "[460.7953149354863,275.7065706570657],[458.4264551037402,277.2907290729073],[456.11399669655935,278.01080108010797]," +
+            "[454.19634826133625,278.058805880588],[450.81226278741315,276.13861386138615],[449.176621475017,275.8025802580258]," +
+            "[445.3413246045708,273.64236423642365],[445.510528878267,272.1062106210621],[443.19807047108617,270.57005700570056]," +
+            "[442.97246477282465,269.7059705970597],[439.0807664778131,268.55385538553855],[438.34754795846305,267.1617161716172]," +
+            "[435.97868812671686,265.2415241524152],[435.18906818280146,263.3693369336934],[433.5534268704053,262.8892889288929]," +
+            "[433.6098282949707,260.72907290729074],[435.18906818280146,257.3207320732073]]]]}},{\"type\":\"Feature\",\"id\":9089,\"properties\"" +
+            ":{\"name\":\"Brienzersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[494.57976825015203,254.58445844584458]," +
+            "[497.1742337801598,255.54455445544554],[498.35866369603286,255.25652565256524],[499.48669218734057,256.16861686168613]," +
+            "[499.3738893382098,258.3288328832883],[496.10260671341746,258.90489048904885],[490.12405570948664,262.5052505250525]," +
+            "[487.6987944531751,264.5694569456946],[484.0891032809904,266.1056105610561],[482.34065911946345,268.07380738073806]," +
+            "[479.29498219293265,270.18601860186016],[475.96729814357496,270.37803780378033],[475.7980938698788,269.7059705970597]," +
+            "[473.8240440100903,269.08190819081904],[476.24930526640185,267.0657065706571],[477.54653803140576,266.5376537653765]," +
+            "[481.66384202467884,263.4173417341734],[485.72474459338656,259.4809480948095],[487.30398448121736,258.7608760876087]," +
+            "[488.714020095352,256.7446744674467],[491.8724998710136,255.11251125112508],[494.57976825015203,254.58445844584458]]]]}}," +
+            "{\"type\":\"Feature\",\"id\":9148,\"properties\":{\"name\":\"Bielersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\"" +
+            ":[[[[347.14644443623524,187.5217521752175],[346.6388316151468,186.84968496849683],[349.007691446893,185.79357935793576]," +
+            "[347.14644443623524,187.5217521752175]]],[[[351.0381427312468,188.62586258625862],[347.7668601064545,188.62586258625862]," +
+            "[347.14644443623524,187.5217521752175],[349.007691446893,185.79357935793576],[352.10976979798914,184.2094209420942]," +
+            "[353.12499544016606,182.28922892289228],[358.65233504757384,178.88088808880883],[359.7239621143161,178.6408640864086]," +
+            "[363.05164616367387,175.95259525952594],[364.23607607954693,174.36843684368432],[367.4509572797739,172.016201620162]," +
+            "[369.7070142623893,169.6159615961596],[371.2862541502201,168.7998799879988],[371.9630712450047,169.5199519951995]," +
+            "[369.4814085641278,173.07230723072303],[369.19940144130084,174.41644164416437],[367.0561473078162,177.77677767776777],[367.1125487323816,179.40894089408937],[364.0104703812854,184.5454545454545],[362.6004347671508,184.73747374737474],[362.4312304934546,186.12961296129612],[360.6263849073623,187.80978097809776],[358.31392650018154,188.3378337833783],[356.1142709421315,189.68196819681964],[353.2941997138622,190.59405940594058],[351.32014985407375,189.77797779777973],[351.0381427312468,188.62586258625862]],[[351.0381427312468,188.62586258625862],[352.22257264711993,188.09780978097808],[356.0014680930007,185.5055505550555],[357.9191165282238,183.44134413441344],[358.31392650018154,182.24122412241223],[357.41150370713535,181.7131713171317],[356.1142709421315,184.44944494449442],[351.0381427312468,188.62586258625862]]]]}},{\"type\":\"Feature\",\"id\":9151,\"properties\":{\"name\":\"Lac de Neuch\u00E2tel\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[300.446064
 89609635,232.59825982598255],[294.4111124676001,238.3108310831083],[298.3592121871771,242.6312631263126],[296.3287609028232,244.1194119411941],[294.0727039202078,242.9192919291929],[290.2374070497616,243.15931593159314],[289.84259707780393,243.6393639363936],[286.00730020735773,245.4155415541554],[283.0744261299577,247.23972397239723],[280.53636202451537,248.007800780078],[279.5775378069038,247.76777677767774],[277.6598893716807,245.65556555655564],[277.6598893716807,244.16741674167415],[281.43878481756155,240.95109510951093],[284.37165889496157,239.70297029702968],[285.6688916599654,237.78277827782776],[288.94017428475775,235.86258625862584],[290.3502098988924,233.8463846384638],[292.493464032377,232.93429342934292],[294.24190819390395,231.2541254125412],[296.27235947825784,229.95799579957992],[296.7799722993463,228.9018901890189],[300.44606489609635,232.59825982598255]]],[[[317.98690793593113,225.01350135013502],[315.336040981358,227.89378937893787],[314.49001961287723,229.2379237
 923792],[309.6394971002541,232.74227422742274],[308.9062785809041,234.13441344134412],[305.63499595611177,235.5265526552655],[303.5481432471925,237.20672067206718],[298.3592121871771,242.6312631263126],[294.4111124676001,238.3108310831083],[300.44606489609635,232.59825982598255],[314.03880821635414,219.78097809780974],[317.98690793593113,225.01350135013502]]],[[[341.3370977060006,203.79537953795375],[340.71668203578133,205.71557155715567],[339.3066464216467,207.5397539753975],[335.8661595231582,209.93999399939992],[334.7381310318505,210.32403240324032],[331.7488555298851,212.5322532253225],[331.86165837901586,213.39633963396335],[328.9851857261812,215.65256525652563],[323.85265609073116,209.89198919891987],[335.47134955120055,202.2112211221122],[341.3370977060006,203.79537953795375]]],[[[328.9851857261812,215.65256525652563],[325.6011002522581,218.72487248724872],[322.72462759942346,220.74107410741072],[318.7765278798465,216.13261326132613],[323.85265609073116,209.89198919891987],[3
 28.9851857261812,215.65256525652563]]],[[[322.72462759942346,220.74107410741072],[319.67895067289265,222.6132613261326],[319.67895067289265,223.28532853285327],[317.98690793593113,225.01350135013502],[314.03880821635414,219.78097809780974],[318.7765278798465,216.13261326132613],[322.72462759942346,220.74107410741072]]],[[[341.3370977060006,203.79537953795375],[339.0810407233852,197.8427842784278],[340.9422877340429,198.85088508850885],[342.6907318955698,201.87518751875183],[341.3370977060006,203.79537953795375]]],[[[339.0810407233852,197.8427842784278],[341.3370977060006,203.79537953795375],[335.47134955120055,202.2112211221122],[323.85265609073116,209.89198919891987],[318.7765278798465,216.13261326132613],[314.03880821635414,219.78097809780974],[300.44606489609635,232.59825982598255],[296.7799722993463,228.9018901890189],[298.07720506435015,225.34953495349532],[299.0360292819617,224.05340534053403],[300.6152691697925,223.23732373237323],[302.02530478392714,221.17311731173118],[303.
 83015037001945,219.54095409540952],[304.50696746480406,218.38883888388835],[308.39866575981563,215.8445844584458],[309.80870137395027,215.74857485748572],[310.1471099213426,213.97239723972393],[310.936729865258,213.1083108310831],[313.0799839987426,212.5322532253225],[314.9412310094003,211.38013801380134],[315.4488438304888,208.78787878787875],[315.61804810418494,206.003600360036],[317.47929511484267,204.7074707470747],[320.6941763150696,203.98739873987398],[323.51424754333885,201.6351635163516],[323.96545893986195,201.82718271827179],[328.6467771787889,199.7149714971497],[328.81598145248506,198.94689468946893],[330.6772284631428,198.3228322832283],[332.4820740492351,196.97869786978697],[334.11771536163127,197.17071707170714],[336.03536379685437,198.56285628562853],[339.0810407233852,197.8427842784278]]]]}},{\"type\":\"Feature\",\"id\":9157,\"properties\":{\"name\":\"Baldeggersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[529.7742571789524,149.021902190219],[531.
 6919056141755,149.26192619261923],[532.4251241335255,150.22202220222022],[533.1583426528755,153.77437743774374],[534.117166870487,155.35853585358535],[534.2299697196179,157.27872787278727],[533.7223568985294,157.95079507950794],[532.2559198598294,156.7026702670267],[530.451074273737,152.9102910291029],[529.1538415087332,150.89408940894089],[529.7742571789524,149.021902190219]]]]}},{\"type\":\"Feature\",\"id\":9163,\"properties\":{\"name\":\"Sempachersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[510.7105756758522,159.15091509150915],[512.7974283847715,160.44704470447044],[514.4330696971676,162.36723672367236],[517.7607537465253,164.9114911491149],[520.6936278239255,167.64776477647763],[521.1448392204485,169.6159615961596],[519.9604093045754,171.6321632163216],[519.0015850869638,171.7281728172817],[515.5046967639099,169.42394239423942],[513.4742454795561,167.64776477647763],[510.6541742512868,164.43144314431441],[510.14656143019835,161.74317431743174],[510.7105756
 758522,159.15091509150915]]]]}},{\"type\":\"Feature\",\"id\":9172,\"properties\":{\"name\":\"Hallwilersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[526.5593759787255,136.30063006300628],[525.3749460628524,141.00510051005097],[523.6265019013254,136.78067806780678],[522.6112762591486,132.98829882988298],[521.9908605889293,129.29192919291927],[522.0472620134947,126.65166516651664],[523.4572976276293,126.17161716171614],[524.585326118937,127.85178517851784],[525.318544638287,131.1161116111611],[526.6721788278562,135.6285628562856],[526.5593759787255,136.30063006300628]]],[[[525.3749460628524,141.00510051005097],[526.5593759787255,136.30063006300628],[527.4053973472062,138.3168316831683],[526.1081645822023,142.54125412541254],[525.3749460628524,141.00510051005097]]]]}},{\"type\":\"Feature\",\"id\":9175,\"properties\":{\"name\":\"Zugersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[568.2964301571105,175.37653765376535],[565.9275703253643,173.9843984
 3984397],[567.2812045149335,173.26432643264326],[566.6607888447143,171.82418241824178],[565.2507532305797,171.96819681968196],[564.1791261638373,171.20012001200115],[566.3787817218874,169.5199519951995],[568.3528315816759,172.25622562256223],[568.2964301571105,175.37653765376535]]],[[[572.6393398486451,177.63276327632758],[568.2964301571105,175.37653765376535],[568.3528315816759,172.25622562256223],[566.3787817218874,169.5199519951995],[564.1791261638373,171.20012001200115],[563.7279147673142,168.7998799879988],[565.0251475323181,166.5436543654365],[562.7690905497027,165.91959195919588],[562.656287700572,164.67146714671463],[563.4459076444873,162.65526552655263],[561.8666677566566,159.34293429342932],[562.1486748794835,158.28682868286825],[564.4611332866643,156.99069906990695],[565.8147674762336,156.75067506750673],[566.2095774481912,157.99879987998798],[567.9580216097181,157.66276627662762],[570.9472971116836,159.24692469246924],[571.3985085082066,159.9189918991899],[569.8192686203
 759,164.67146714671463],[569.9320714695066,167.023702370237],[568.4092330062413,169.90399039903986],[569.7628671958105,173.6483648364836],[572.6393398486451,177.63276327632758]]],[[[568.2964301571105,175.37653765376535],[572.6393398486451,177.63276327632758],[573.7109669153874,181.95319531953191],[572.0753256029913,183.96939693969392],[570.270480016899,181.56915691569156],[567.7324159114567,179.9369936993699],[564.3483304375335,176.9606960696069],[564.0663233147066,175.95259525952594],[565.9275703253643,173.98439843984397],[568.2964301571105,175.37653765376535]]]]}},{\"type\":\"Feature\",\"id\":9179,\"properties\":{\"name\":\"Vierwaldst\u00E4ttersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[564.6867389849258,199.09090909090907],[564.2919290129681,201.92319231923187],[569.1988529501566,203.65136513651362],[572.8085441223413,202.83528352835282],[576.4182352945259,202.83528352835282],[580.5355392877991,200.33903390339032],[581.3251592317145,201.77917791779174],[577
 .5462637858336,204.17941794179416],[573.5981640662567,205.33153315331532],[571.6805156310336,206.48364836483648],[569.1424515255912,206.8196819681968],[566.3787817218874,206.09960996099608],[564.6867389849258,204.65946594659465],[561.8666677566566,204.7074707470747],[560.5694349916528,204.03540354035403],[558.0877723107758,203.79537953795375],[556.959743819468,202.4512451245124],[557.0725466685988,201.3951395139514],[560.8514421144796,199.6189618961896],[563.2767033707912,199.42694269426943],[563.9535204655758,198.70687068706866],[562.7126891251373,198.034803480348],[558.1441737353412,197.79477947794777],[558.3133780090373,194.43444344434442],[564.7995418340565,196.1626162616261],[564.6867389849258,199.09090909090907]]],[[[551.6580099103219,197.69876987698768],[549.1199458048795,197.6027602760276],[547.1458959450911,200.0990099009901],[546.5818816994372,201.7311731173117],[543.9874161694295,203.12331233123308],[544.3822261413872,204.99549954995496],[542.8029862535564,206.57965796579
 657],[539.4753022041987,208.69186918691867],[539.9829150252872,205.71557155715567],[541.2237463657256,205.57155715571554],[543.4234019237756,204.46744674467442],[543.7054090466025,202.6912691269127],[540.8289363937679,202.9312931293129],[541.2237463657256,200.96309630963094],[540.6597321200718,198.8988898889889],[541.4493520639871,198.70687068706866],[543.9310147448641,201.10711071107107],[549.1199458048795,194.05040504050402],[551.4888056366257,194.43444344434442],[551.6580099103219,197.69876987698768]]],[[[565.589161777972,199.28292829282924],[564.6867389849258,199.09090909090907],[564.7995418340565,196.1626162616261],[558.3133780090373,194.43444344434442],[558.1441737353412,197.79477947794777],[552.7860384016295,197.5067506750675],[551.6580099103219,197.69876987698768],[551.4888056366257,194.43444344434442],[549.1199458048795,194.05040504050402],[543.9310147448641,201.10711071107107],[541.4493520639871,198.70687068706866],[540.6597321200718,198.8988898889889],[539.5881050533294,1
 96.59465946594656],[541.1109435165948,196.06660666066603],[541.6749577622486,197.65076507650764],[543.1413948009487,198.4188418841884],[544.8898389624756,197.26672667266723],[544.5514304150834,194.86648664866482],[545.0590432361718,194.43444344434442],[544.0438175939948,193.0903090309031],[544.5514304150834,191.60216021602156],[542.2389720079025,188.86588658865884],[539.7009079024601,186.51365136513647],[543.4234019237756,186.27362736273625],[546.6946845485679,189.77797779777973],[546.9202902468295,190.88208820882085],[548.1047201627025,190.88208820882085],[550.9247913909719,187.95379537953795],[553.0680455244565,186.17761776177616],[554.4216797140257,184.5454545454545],[558.5953851318642,183.48934893489348],[558.0877723107758,186.41764176417638],[556.959743819468,188.09780978097808],[554.9292925351142,189.44194419441942],[553.2372497981526,191.84218421842183],[554.1396725911989,192.41824182418242],[555.4933067807681,191.69816981698165],[557.241750942295,191.89018901890188],[558.087
 7723107758,191.3141314131413],[560.6258364162181,191.36213621362134],[562.4306820023104,192.9462946294629],[564.5739361357951,193.0903090309031],[565.4199575042758,194.48244824482447],[566.7171902692796,195.25052505250522],[567.2812045149335,197.69876987698768],[565.589161777972,199.28292829282924]]],[[[558.5953851318642,183.48934893489348],[554.4216797140257,184.5454545454545],[555.9445181772911,183.92139213921388],[559.1593993775181,179.88898889888986],[559.7798150477373,179.79297929792978],[558.5953851318642,183.48934893489348]]],[[[588.4881401515183,208.88388838883884],[588.6009430006491,210.03600360036],[587.2473088110798,213.25232523252322],[587.4729145093414,214.98049804980496],[589.164957246303,216.94869486948693],[588.8829501234761,218.48484848484844],[589.4469643691299,219.1569156915691],[588.9957529726069,220.78907890789077],[587.5293159339068,221.22112211221122],[586.0628788952067,223.28532853285327],[585.1604561021607,221.84518451845184],[584.483639007376,219.6369636963
 696],[584.483639007376,217.71677167716769],[585.1604561021607,216.61266126612657],[582.4531877230222,214.06840684068402],[583.2992090915029,209.89198919891987],[584.5964418565068,205.7635763576357],[584.0888290354183,203.69936993699366],[584.7092447056375,201.20312031203116],[583.0736033932413,200.77107710771077],[581.3251592317145,201.77917791779174],[580.5355392877991,200.33903390339032],[582.6223919967183,199.57095709570956],[584.9348504038991,200.24302430243023],[585.8936746215106,201.01110111011099],[585.6116674986837,203.69936993699366],[585.950076046076,205.23552355235523],[586.1756817443376,209.02790279027903],[588.4881401515183,208.88388838883884]]],[[[539.4753022041987,208.69186918691867],[537.783259467237,209.6999699969997],[537.1064423724524,208.64386438643862],[535.8656110320139,209.07590759075907],[536.147618154841,208.11581158115808],[538.2344708637602,206.48364836483648],[539.9829150252872,205.71557155715567],[539.4753022041987,208.69186918691867]]],[[[588.4881401515
 183,208.88388838883884],[586.1756817443376,209.02790279027903],[585.950076046076,205.23552355235523],[585.6116674986837,203.69936993699366],[585.8936746215106,201.01110111011099],[584.9348504038991,200.24302430243023],[582.6223919967183,199.57095709570956],[580.5355392877991,200.33903390339032],[576.4182352945259,202.83528352835282],[572.8085441223413,202.83528352835282],[569.1988529501566,203.65136513651362],[564.2919290129681,201.92319231923187],[564.6867389849258,199.09090909090907],[565.589161777972,199.28292829282924],[567.6196130623258,199.66696669666965],[568.6348387045027,200.38703870387036],[572.4137341503836,199.6189618961896],[575.2338053786528,200.86708670867085],[577.602665210399,200.77107710771077],[581.3815606562798,198.17881788178818],[583.4120119406336,197.89078907890786],[584.0888290354183,199.04290429042902],[586.5704917162952,199.76297629762973],[587.0217031128184,200.96309630963094],[586.8524988391222,203.93939393939394],[587.5293159339068,206.8196819681968],[58
 8.4881401515183,208.88388838883884]]]]}},{\"type\":\"Feature\",\"id\":9216,\"properties\":{\"name\":\"Sihlsee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[613.0227598374609,162.36723672367236],[614.3763940270301,163.03930393039303],[614.0943869042032,164.95949594959495],[615.5044225183378,169.2319231923192],[615.5044225183378,171.6321632163216],[616.0684367639917,174.27242724272423],[619.1705151150879,176.33663366336629],[618.8321065676955,177.4407440744074],[617.7604795009532,177.5367536753675],[616.1248381885571,176.43264326432643],[615.1660139709455,174.65646564656464],[613.473971233984,173.88838883888388],[613.0791612620262,172.78427842784276],[613.6995769322455,171.68016801680164],[612.3459427426762,170.67206720672067],[612.2895413181109,169.18391839183914],[610.4846957320185,165.87158715871584],[609.6386743635378,165.3435343534353],[610.4846957320185,163.51935193519347],[612.0075341952839,163.42334233423338],[613.0227598374609,162.36723672367236]]]]}},{\"type
 \":\"Feature\",\"id\":9239,\"properties\":{\"name\":\"Sarnersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[529.5486514806909,223.95739573957394],[529.8870600280832,225.06150615061506],[529.3794472069947,227.6057605760576],[525.4313474874177,230.87008700870086],[523.6265019013254,233.79837983798376],[521.4268463432754,231.92619261926188],[522.4420719854523,229.52595259525953],[526.2209674313331,227.3177317731773],[528.5898272630793,224.05340534053403],[529.5486514806909,223.95739573957394]]]]}},{\"type\":\"Feature\",\"id\":9267,\"properties\":{\"name\":\"Walensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[676.7563695963461,169.6159615961596],[673.7106926698153,169.18391839183914],[668.8037687326268,167.55175517551754],[666.0965003534884,167.59975997599759],[664.0096476445691,167.26372637263722],[662.6560134549998,166.25562556255625],[668.5217616097999,166.35163516351633],[670.3266071958922,166.97569756975696],[676.9255738700423,168.031803180317
 98],[676.7563695963461,169.6159615961596]]],[[[676.7563695963461,169.6159615961596],[676.9255738700423,168.03180318031798],[670.3266071958922,166.97569756975696],[668.5217616097999,166.35163516351633],[662.6560134549998,166.25562556255625],[665.0812747113114,164.76747674767472],[669.8189943748038,165.19951995199517],[672.0750513574192,165.8235823582358],[676.58716532265,165.91959195919588],[680.8172721650539,166.87968796879687],[686.6266188952885,166.3036303630363],[689.7850986709501,166.6396639663966],[690.6311200394309,166.3036303630363],[694.1280083624847,166.44764476447642],[694.015205513354,168.89588958895888],[690.800324313127,170.04800480048004],[687.2470345655078,169.42394239423942],[686.4010131970269,170.04800480048004],[682.6785191757116,170.57605760576052],[680.9864764387501,169.71197119711968],[680.3096593439654,170.19201920192017],[676.7563695963461,169.6159615961596]]]]}},{\"type\":\"Feature\",\"id\":9270,\"properties\":{\"name\":\"Aegerisee\"},\"geometry\":{\"type\":\
 "MultiPolygon\",\"coordinates\":[[[[583.4120119406336,166.59165916591655],[585.7244703478145,166.83168316831683],[586.7960974145568,167.8397839783978],[587.8677244812991,167.59975997599759],[589.3905629445645,168.27182718271825],[591.4774156534838,171.5361536153615],[591.364612804353,173.55235523552352],[590.2929857376107,174.6084608460846],[588.8829501234761,173.26432643264326],[588.9393515480415,172.06420642064205],[586.0628788952067,170.48004800480044],[583.6376176388952,169.80798079807977],[584.1452304599836,168.46384638463843],[583.4120119406336,166.59165916591655]]]]}},{\"type\":\"Feature\",\"id\":9276,\"properties\":{\"name\":\"Lac de la Gruy\u00E8re\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[352.33537549625066,263.8493849384938],[351.32014985407375,265.81758175817583],[350.07931851363526,266.2496249624962],[350.30492421189683,267.44974497449743],[351.99696694885836,269.1779177917791],[352.22257264711993,270.8100810081008],[353.8018125349507,270.0420042004
 2],[352.8429883173392,271.9141914191419],[351.5457555523353,271.5301530153015],[351.99696694885836,272.4902490249025],[350.30492421189683,273.97839783978395],[350.53052991015835,275.7065706570657],[349.85371281537374,276.8586858685868],[350.0229170890699,280.26702670267025],[351.0381427312468,283.2433243324332],[351.2637484295084,287.8037803780378],[349.74090996624295,287.3237323732373],[348.95129002232756,284.15541554155413],[349.007691446893,281.2751275127513],[349.5717056925468,278.1548154815481],[348.8948885977622,277.05070507050704],[349.74090996624295,275.5625562556255],[348.72568432406604,275.0825082508251],[347.14644443623524,276.04260426042606],[348.1052686538468,274.74647464746477],[348.33087435210837,273.1143114311431],[351.0381427312468,270.57005700570056],[351.2637484295084,269.36993699369935],[348.72568432406604,269.033903390339],[349.85371281537374,267.0657065706571],[348.4436772012391,266.39363936393636],[350.86893845755066,265.28952895289524],[352.33537549625066,263
 .8493849384938]]]]}},{\"type\":\"Feature\",\"id\":9294,\"properties\":{\"name\":\"Murtensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[348.1052686538468,219.10891089108907],[344.3827746325314,213.7323732373237],[344.89038745361984,212.72427242724268],[347.93606438015064,211.4281428142814],[352.2789740716853,209.07590759075907],[354.0838196577776,209.2199219921992],[355.7758623947392,211.62016201620162],[355.5502566964776,212.58025802580255],[353.2941997138622,214.98049804980496],[350.5869313347238,217.2367236723672],[348.7820857486314,217.2367236723672],[348.1052686538468,219.10891089108907]]],[[[348.1052686538468,219.10891089108907],[345.22879600101214,220.8370837083708],[343.42395041491983,220.9330933093309],[341.9575133762198,220.30903090309027],[340.378273488389,218.62886288628863],[340.378273488389,216.75667566756675],[344.3827746325314,213.7323732373237],[348.1052686538468,219.10891089108907]]]]}},{\"type\":\"Feature\",\"id\":9326,\"properties\":{\"name\":\
 "Bodensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[664.5172604656575,44.13141314131411],[663.6148376726114,44.035403540354025],[661.2459778408652,42.259225922592236],[659.2719279810767,41.395139513951335],[655.8878425071537,41.49114911491148],[654.477806893019,40.579057905790535],[652.6165598823613,40.195019501950185],[647.1456216995189,40.147014701470084],[644.2691490466843,41.49114911491148],[641.3362749692842,43.21932193219317],[639.4186265340611,44.94749474947491],[635.9217382110073,47.011701170116964],[633.8912869266534,47.39573957395737],[628.7587572912033,49.17191719171916],[626.7847074314149,47.63576357635759],[625.6002775155418,47.63576357635759],[625.6002775155418,47.34773477347733],[628.4767501683764,48.21182118211817],[631.2968213966457,47.49174917491746],[633.5528783792611,46.195619561956164],[634.286096898611,46.57965796579657],[638.0085909199265,43.93939393939388],[640.3774507516728,43.363336333633

<TRUNCATED>

[25/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-districts.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-districts.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-districts.json
deleted file mode 100644
index 570e382..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-districts.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"districts":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":101,"properties":{"name":"Affoltern"},"arcs":[[[1014,-920,-997,1015,1016,1017,-972,-971]]]},{"type":"MultiPolygon","id":102,"properties":{"name":"Andelfingen"},"arcs":[[[-725,767,768,769,770,-453,-452,-451,-450,-449,-448,447,-448,-447,-446,-541,-540,-539,-538,-537,-536,-535,-534,-533,-532,-531,-530]]]},{"type":"MultiPolygon","id":103,"properties":{"name":"Bülach"},"arcs":[[[713,714,715,716,717,718,719,720,721,722,723,724,-529,-528,-527,526,-527,-526,725,726,727]]]},{"type":"MultiPolygon","id":104,"properties":{"name":"Dielsdorf"},"arcs":[[[865,866,867,868,859,-860,-859,-858,869,870,871,872,-721,-720,-719,-718]]]},{"type":"MultiPolygon","id":105,"properties":{"name":"Hinwil"},"arcs":[[[-513,-512,-511,-510,-509,-508,-507,736,737,738,739,-740,740,741,-742,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,-296]]]},{"type":"MultiPolygon","id":106,"properties
 ":{"name":"Horgen"},"arcs":[[[969,970,971,972,973,974,975]]]},{"type":"MultiPolygon","id":107,"properties":{"name":"Meilen"},"arcs":[[[1005,-974,1006,1007,1008,1009,1010,1011,-1012,1011,1012,1013,-991,-990,-989,-988,-987,-986,-985,-737,-506,-505]]]},{"type":"MultiPolygon","id":108,"properties":{"name":"Pfäffikon"},"arcs":[[[-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,774,775,-776,775,776,777,778,779,780,781,782,-728,-727,-726,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,783,784,-785,784,785]]]},{"type":"MultiPolygon","id":109,"properties":{"name":"Uster"},"arcs":[[[984,985,986,987,988,989,990,991,-716,-715,-714,-783,-782,-781,-780,-779,-778,-777,-776,775,-776,-775,-745,-744,-743,741,-742,-741,739,-740,-739,-738]]]},{"type":"MultiPolygon","id":110,"properties":{"name":"Winterthur"},"arcs":[[[515,516,517,518,519,520,521,522,523,524,525,526,-527,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,-445,-444,-443,442,-443,-442,-441,541,542,543,-544
 ,543,544,545,546,547]]]},{"type":"MultiPolygon","id":111,"properties":{"name":"Dietikon"},"arcs":[[[-1017,-1016,-996,-862,-861,-860,-869,-1057]]]},{"type":"MultiPolygon","id":112,"properties":{"name":"Zürich"},"arcs":[[[-973,-972,971,-1018,1056,-868,-867,-866,-717,-992,-1014,-1013,-1012,1011,-1012,-1011,-1010,-1009,-1008,-1007]]]},{"type":"MultiPolygon","id":241,"properties":{"name":"Jura bernois"},"arcs":[[[224,225,226,227,228,229,230,231,-232,231,232,233,234,235,236,237,238,239,-240,239,240,241,242,243,244,245,246,247,248,249,250,251]],[[-426,-1062,-906]]]},{"type":"MultiPolygon","id":242,"properties":{"name":"Biel/Bienne"},"arcs":[[[-380,1041,-229,-228,-227,-226,-225,-998]],[[-378,1137]]]},{"type":"MultiPolygon","id":243,"properties":{"name":"Seeland"},"arcs":[[[372,373,374,375,376,377,378,379,380,381,382,-383,382,383,384,385,-386,385,386,-49,-48,-47,46,-47,-46,-45]]]},{"type":"MultiPolygon","id":244,"properties":{"name":"Oberaargau"},"arcs":[[[-185,-184,183,-184,-183,-182,-181,
 -180,409,410,411,412,413,414,-415,414,415,-397,-396,-395,-394,-393,-392,-391,-390,-389,388,-389,-388],[416]]]},{"type":"MultiPolygon","id":245,"properties":{"name":"Emmental"},"arcs":[[[173,174,175,-62,-61,-60,-59,-58,57,-58,-57,-56,-55,-54,-53,-52,-51,176,177,178,179,180,181,182,183,-184,183,184,185,186,-22,-21,-20]]]},{"type":"MultiPolygon","id":246,"properties":{"name":"Bern-Mittelland"},"arcs":[[[37,38,39,40,41,-42,41,42,43,44,45,46,-47,46,47,48,49,50,51,52,53,54,55,56,57,-58,57,58,59,60,61,62,63,64,65],[66,-67,66,67]],[[-797]],[[-1102,-792,-791]]]},{"type":"MultiPolygon","id":247,"properties":{"name":"Thun"},"arcs":[[[-100,-99,98,-99,-98,-66,-65,-64,-63,-176,-175,-174,-19,-18,-17,16,-17,-16,-15,-14,417]]]},{"type":"MultiPolygon","id":248,"properties":{"name":"Obersimmental-Saanen"},"arcs":[[[206,207,208,209,210,211,212,213,-96,-95,-94]]]},{"type":"MultiPolygon","id":249,"properties":{"name":"Frutigen-Niedersimmental"},"arcs":[[[89,90,91,92,93,94,95,96,-38,97,98,-99,98,99,100,-1
 2,-11]]]},{"type":"MultiPolygon","id":250,"properties":{"name":"Interlaken-Oberhasli"},"arcs":[[[8,9,10,11,12,13,14,15,16,-17,16,17,18,19,20,21,22,23],[24]]]},{"type":"MultiPolygon","id":311,"properties":{"name":"Luzern-Stadt"},"arcs":[[[-434,-736,-628,-627,-626]],[[-643,1134]]]},{"type":"MultiPolygon","id":312,"properties":{"name":"Luzern-Land"},"arcs":[[[-347,-436,-435,625,626,627,628,629,630,631,632,633,634,635,636,637,638,-639,638,639,-265,-264,640,641,642,643]]]},{"type":"MultiPolygon","id":313,"properties":{"name":"Hochdorf"},"arcs":[[[-433,728,729,730,731,732,733,-734,733,734,-629,735]]]},{"type":"MultiPolygon","id":314,"properties":{"name":"Sursee"},"arcs":[[[-346,-345,-404,-403,426,427,428,429,430,431,432,433,434,435]]]},{"type":"MultiPolygon","id":315,"properties":{"name":"Willisau"},"arcs":[[[-186,387,388,-389,388,389,390,391,392,393,394,395,396,-397,397,398,399,400,401,402,403,-344,-343,-342,-341,-340]]]},{"type":"MultiPolygon","id":316,"properties":{"name":"Entlebuch"},
 "arcs":[[[-23,-187,339,340,341,342,343,344,345,346,347]]]},{"type":"MultiPolygon","id":501,"properties":{"name":"Einsiedeln"},"arcs":[[[-272,-271,-270,-269,1021,1022,-711]]]},{"type":"MultiPolygon","id":502,"properties":{"name":"Gersau"},"arcs":[[[1129,-641,-263]]]},{"type":"MultiPolygon","id":503,"properties":{"name":"Höfe"},"arcs":[[[-1023,1117,-976,-975,-1006,-504,-712]]]},{"type":"MultiPolygon","id":504,"properties":{"name":"Küssnacht (SZ)"},"arcs":[[[264,-640,-639,638,-639,-638,-637,-636,-635,-634,-633,1123,-267,-266,-265]]]},{"type":"MultiPolygon","id":505,"properties":{"name":"March"},"arcs":[[[-274,-273,710,711,-503,712]]]},{"type":"MultiPolygon","id":506,"properties":{"name":"Schwyz"},"arcs":[[[262,263,264,265,266,267,268,269,270,271,272,273,274]]]},{"type":"MultiPolygon","id":1001,"properties":{"name":"La Broye"},"arcs":[[[-688,-687,-686,-685,-684,683,-684,-683,-108,-107,1060]],[[-767,-702,-701,-700,699,-700,-699,-698,-697,-696,-695,-694,-693,-692,1094,1095,1096,1097,-78
 7,-648,-647,-646]],[[-571,-680,-679,-678,-677,-676,-675,-674]],[[-122,-121,120,-121,-120,-119,-682,-681,-568]]]},{"type":"MultiPolygon","id":1002,"properties":{"name":"La Glâne"},"arcs":[[[-282,-281,-280,-279,759,760,761,762,763,764,765,-660,-659,766,-645]]]},{"type":"MultiPolygon","id":1003,"properties":{"name":"La Gruyère"},"arcs":[[[-213,275,276,277,278,279,280,281,282,283,284]]]},{"type":"MultiPolygon","id":1004,"properties":{"name":"La Sarine"},"arcs":[[[-283,644,645,646,647,648,649,650,-651,651,652,653,654,-495,-494,-493,-492,-491,-490]]]},{"type":"MultiPolygon","id":1005,"properties":{"name":"See"},"arcs":[[[-497,-496,-655,-654,-653,-652,650,-651,-650,-649,786,787,788,789,790,791,792,793,794,795,-373,-44,-43,-42,41,-42,-41],[796]],[[-67,66,-67,-68]]]},{"type":"MultiPolygon","id":1006,"properties":{"name":"Sense"},"arcs":[[[-214,-285,-284,489,490,491,492,493,494,495,496,-40,-39,-97]]]},{"type":"MultiPolygon","id":1007,"properties":{"name":"La Veveyse"},"arcs":[[[-440,-439,-9
 65,-964,-963,-962,961,-962,-961,-960,-959,957,-958,-957,-956,-955,-954,-953,763,-764,-763,-762,-761,-760,-278]]]},{"type":"MultiPolygon","id":1101,"properties":{"name":"Gäu"},"arcs":[[[-413,-910,-1031,-1078,-892]]]},{"type":"MultiPolygon","id":1102,"properties":{"name":"Thal"},"arcs":[[[904,-251,905,906,907,908,909,-412]]]},{"type":"MultiPolygon","id":1103,"properties":{"name":"Bucheggberg"},"arcs":[[[-50,-387,-386,385,-386,-385,-384,-383,382,-383,-382,-1005,-1086,-1085,-177]]]},{"type":"MultiPolygon","id":1104,"properties":{"name":"Dorneck"},"arcs":[[[-1067,-1077,-1047,-1072,-1071,-1070,-1069,-1068,-1027]],[[-1076,1128,-1044]]]},{"type":"MultiPolygon","id":1105,"properties":{"name":"Gösgen"},"arcs":[[[-1029,-904,-903,-902,-901,-848,-1034,-1033,-1082,-1081,-1080,-1079]]]},{"type":"MultiPolygon","id":1106,"properties":{"name":"Wasseramt"},"arcs":[[[1084,1085,-1004,1086,1087,-999,-410,-179,-178]],[[-417]]]},{"type":"MultiPolygon","id":1107,"properties":{"name":"Lebern"},"arcs":[[[-3
 81,997,-252,-905,-411,998,999,1000,1001,-1002,1001,1002,1003,1004]]]},{"type":"MultiPolygon","id":1108,"properties":{"name":"Olten"},"arcs":[[[1077,-1030,1078,1079,1080,1081,-1032,-894,-893]]]},{"type":"MultiPolygon","id":1109,"properties":{"name":"Solothurn"},"arcs":[[[-1003,-1002,1001,-1002,-1001,-1000,-1088,-1087]]]},{"type":"MultiPolygon","id":1110,"properties":{"name":"Thierstein"},"arcs":[[[-908,-907,1061,-425,1062,1063,1064,-1065,1064,1065,1066,-1026]],[[1130,1131,-1074]]]},{"type":"MultiPolygon","id":1301,"properties":{"name":"Arlesheim"},"arcs":[[[1042,1043,1044,1045,1046]]]},{"type":"MultiPolygon","id":1302,"properties":{"name":"Laufen"},"arcs":[[[-424,1073,1074,1075,-1043,1076,-1066,-1065,1064,-1065,-1064,-1063]],[[-423,1133,-1131]]]},{"type":"MultiPolygon","id":1303,"properties":{"name":"Liestal"},"arcs":[[[1067,1068,1069,1070,1071,-1046,1072,-1020,-1019,-899,-1028]]]},{"type":"MultiPolygon","id":1304,"properties":{"name":"Sissach"},"arcs":[[[897,898,899,-849,900,901,902
 ,903]]]},{"type":"MultiPolygon","id":1305,"properties":{"name":"Waldenburg"},"arcs":[[[-909,1025,1026,1027,-898,1028,1029,1030]]]},{"type":"MultiPolygon","id":1401,"properties":{"name":"Oberklettgau"},"arcs":[[[1124,-1115,-1120,-1119,-1049]]]},{"type":"MultiPolygon","id":1402,"properties":{"name":"Reiat"},"arcs":[[[1121,-1054,-1053,-1052,1122,-455]]]},{"type":"MultiPolygon","id":1403,"properties":{"name":"Schaffhausen"},"arcs":[[[-770,1047,1048,1049,1050,1051,1052,1053,1054]],[[-724,-723,1132,-768]]]},{"type":"MultiPolygon","id":1404,"properties":{"name":"Schleitheim"},"arcs":[[[1118,1119,-1114,1120,-1050]]]},{"type":"MultiPolygon","id":1405,"properties":{"name":"Stein"},"arcs":[[[-457,1125]]]},{"type":"MultiPolygon","id":1406,"properties":{"name":"Unterklettgau"},"arcs":[[[1112,1113,1114]]]},{"type":"MultiPolygon","id":1501,"properties":{"name":"Hinterland"},"arcs":[[[-318,-317,-316,-315,-314,-313,-312,-311,-310,931,-308,-307,306,-886,-885,-884,-808,-807,-806,-805,932,933]]]},{"typ
 e":"MultiPolygon","id":1502,"properties":{"name":"Mittelland"},"arcs":[[[-933,-804,-803,-802,1102,1103,1104,1105,-923,1106]]]},{"type":"MultiPolygon","id":1503,"properties":{"name":"Vorderland"},"arcs":[[[-929,-928,1115,-926,-925,1116,-1105,-1104,-1103,801,-802,-801,-800,-799,-798,-1109,-1108]]]},{"type":"MultiPolygon","id":1721,"properties":{"name":"St. Gallen"},"arcs":[[[797,798,799,800,801,802,803,804,805,806,807,808,809,-810,809,810,-618,811,812,813,814,815,816,817,-818,817,818,819,820,-821,820,821,822,-823,823,824,-825,824,825,826,827,828,829,830,831,832,833,834]]]},{"type":"MultiPolygon","id":1722,"properties":{"name":"Rorschach"},"arcs":[[[-930,1107,1108,-835,-834,-833,-832,-831,-830,-829,-1060,1109,1110,1111]],[[-827,-1058]]]},{"type":"MultiPolygon","id":1723,"properties":{"name":"Rheintal"},"arcs":[[[-657,921,922,923,924,925,926,927,928,929,930]]]},{"type":"MultiPolygon","id":1724,"properties":{"name":"Werdenberg"},"arcs":[[[-321,-320,655,656,657,-259,-258,-257,-256]]]},{"t
 ype":"MultiPolygon","id":1725,"properties":{"name":"Sarganserland"},"arcs":[[[252,253,254,255,256,257,258,259,260,261]]]},{"type":"MultiPolygon","id":1726,"properties":{"name":"See-Gaster"},"arcs":[[[501,502,503,504,505,506,507,508,509,510,511,512,-295,-294,293,-294,-293,-292,-291,-290,-254]]]},{"type":"MultiPolygon","id":1727,"properties":{"name":"Toggenburg"},"arcs":[[[289,290,291,292,293,-294,293,294,295,296,297,298,299,300,301,302,303,304,-305,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,-255]]]},{"type":"MultiPolygon","id":1728,"properties":{"name":"Wil"},"arcs":[[[878,879,880,881,882,-625,-624,-623,-622,-621,-620,-619,-811,-810,809,-810,-809,883,884,885,-307,-306,-305,304,-305,-304,-303,-302,-301,-300]],[[-309,-932]]]},{"type":"MultiPolygon","id":1821,"properties":{"name":"Albula"},"arcs":[[[170,171,172,-73,-72,71,-72,-71,-70,-69,-33]]]},{"type":"MultiPolygon","id":1822,"properties":{"name":"Bernina"},"arcs":[[[-36,548]]]},{"type":"MultiPolygon","id":182
 3,"properties":{"name":"Hinterrhein"},"arcs":[[[195,196,-7,-6,-5,-4,197,198,-171,-32,199]]]},{"type":"MultiPolygon","id":1824,"properties":{"name":"Imboden"},"arcs":[[[-3,704,-262,705,-480,-198]]]},{"type":"MultiPolygon","id":1825,"properties":{"name":"Inn"},"arcs":[[[25,26,27,28,29,30]]]},{"type":"MultiPolygon","id":1826,"properties":{"name":"Landquart"},"arcs":[[[-706,-261,708,-77,-76,-489,-488,-487,-486,-485,484,-485,-484,-483,-482,481,-482,-481]]]},{"type":"MultiPolygon","id":1827,"properties":{"name":"Maloja"},"arcs":[[[31,32,33,-31,-30,-29,-28,34,35,36]]]},{"type":"MultiPolygon","id":1828,"properties":{"name":"Moesa"},"arcs":[[[285,286,287,-196,288]]]},{"type":"MultiPolygon","id":1829,"properties":{"name":"Plessur"},"arcs":[[[-199,479,480,481,-482,481,482,483,484,-485,484,485,486,487,488,-75,-74,-173,-172]]]},{"type":"MultiPolygon","id":1830,"properties":{"name":"Prättigau/Davos"},"arcs":[[[68,69,70,71,-72,71,72,73,74,75,76,77,-26,-34]]]},{"type":"MultiPolygon","id":1831,"pro
 perties":{"name":"Surselva"},"arcs":[[[0,1,2,3,4,5,6,-7,7]]]},{"type":"MultiPolygon","id":1901,"properties":{"name":"Aarau"},"arcs":[[[-895,1031,1032,1033,-847,-846,845,-846,-845,-875,-874,1034,1035]]]},{"type":"MultiPolygon","id":1902,"properties":{"name":"Baden"},"arcs":[[[852,853,854,855,856,857,858,859,860,861,862,863,864]]]},{"type":"MultiPolygon","id":1903,"properties":{"name":"Bremgarten"},"arcs":[[[-919,-918,-917,-916,-915,-914,913,-914,-913,-912,992,993,994,-865,-864,-863,995,996]]]},{"type":"MultiPolygon","id":1904,"properties":{"name":"Brugg"},"arcs":[[[873,874,-844,-843,-842,841,-842,-841,-840,839,-840,-839,-838,875,-855,-854,876,877]]]},{"type":"MultiPolygon","id":1905,"properties":{"name":"Kulm"},"arcs":[[[-897,-896,-1036,-1037,-729,-432,-431,-430]]]},{"type":"MultiPolygon","id":1906,"properties":{"name":"Laufenburg"},"arcs":[[[835,836,837,838,839,-840,839,840,841,-842,841,842,843,844,845,-846,845,846,847,848,849,850,851]]]},{"type":"MultiPolygon","id":1907,"properties
 ":{"name":"Lenzburg"},"arcs":[[[-732,-731,-730,1036,-1035,-878,-877,-853,-995,-994,-993,-911]]]},{"type":"MultiPolygon","id":1908,"properties":{"name":"Muri"},"arcs":[[[-630,-735,-734,733,-734,-733,910,911,912,913,-914,913,914,915,916,917,918,919,920]]]},{"type":"MultiPolygon","id":1909,"properties":{"name":"Rheinfelden"},"arcs":[[[-851,-850,-900,1018,1019,1020]]]},{"type":"MultiPolygon","id":1910,"properties":{"name":"Zofingen"},"arcs":[[[-416,-415,414,-415,-414,891,892,893,894,895,896,-429,-428,-427,-402,-401,-400,-399,-398,396]]]},{"type":"MultiPolygon","id":1911,"properties":{"name":"Zurzach"},"arcs":[[[-872,-871,-870,-857,-856,-876,-837,-836,965]]]},{"type":"MultiPolygon","id":2011,"properties":{"name":"Arbon"},"arcs":[[[-828,1057,-826,-825,824,-825,-824,822,-823,-822,-821,820,-821,-820,-819,-818,817,-818,-817,-816,-815,-814,-813,-812,-617,-616,615,-616,-615,-968,-967,1058,1059]],[[-1111,1136]]]},{"type":"MultiPolygon","id":2012,"properties":{"name":"Frauenfeld"},"arcs":[[[440,
 441,442,-443,442,443,444,445,446,447,-448,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475]]]},{"type":"MultiPolygon","id":2013,"properties":{"name":"Kreuzlingen"},"arcs":[[[966,967,-614,-613,-612,611,-612,-611,-610,-609,-608,-607,-606,605,-606,-605,-604,-603,602,-603,-602,-601,-600,-599,-598,-465,-464,-463,-462,-461,-460,-459,968]]]},{"type":"MultiPolygon","id":2014,"properties":{"name":"Münchwilen"},"arcs":[[[-786,-785,784,-785,-784,-548,-547,-546,-545,-544,543,-544,-543,-542,-476,-475,-474,-597,-596,-595,-594,-593,-592,-591,-590,-883,-882,-881,-880,-879,-299,-298,-297]]]},{"type":"MultiPolygon","id":2015,"properties":{"name":"Weinfelden"},"arcs":[[[589,590,591,592,593,594,595,596,-473,-472,-471,-470,-469,-468,-467,-466,597,598,599,600,601,602,-603,602,603,604,605,-606,605,606,607,608,609,610,611,-612,611,612,613,614,615,-616,615,616,617,618,619,620,621,622,623,624]]]},{"type":"MultiPolygon","id":2101,"properties"
 :{"name":"Bellinzona"},"arcs":[[[-223,-222,702,-286,703,-477]]]},{"type":"MultiPolygon","id":2102,"properties":{"name":"Blenio"},"arcs":[[[-324,-8,6,-197,-288,371]]]},{"type":"MultiPolygon","id":2103,"properties":{"name":"Leventina"},"arcs":[[[-220,-219,-216,321,-206,322,-1,323,324]]]},{"type":"MultiPolygon","id":2104,"properties":{"name":"Locarno"},"arcs":[[[217,-217,218,219,220,221,222,223]]]},{"type":"MultiPolygon","id":2105,"properties":{"name":"Lugano"},"arcs":[[[-224,476,477]],[[1127,-1040]],[[1135,-1038]]]},{"type":"MultiPolygon","id":2106,"properties":{"name":"Mendrisio"},"arcs":[[[1037,1038,1039,1040]]]},{"type":"MultiPolygon","id":2107,"properties":{"name":"Riviera"},"arcs":[[[-221,-325,-372,-287,-703]]]},{"type":"MultiPolygon","id":2108,"properties":{"name":"Vallemaggia"},"arcs":[[[214,215,216]]]},{"type":"MultiPolygon","id":2221,"properties":{"name":"Aigle"},"arcs":[[[325,326,327,328,329,-211,330,331,332,333]]]},{"type":"MultiPolygon","id":2222,"properties":{"name":"Broy
 e-Vully"},"arcs":[[[658,659,660,661,662,-663,662,663,664,665,666,667,-668,667,668,669,670,671,672,-588,-587,-586,-585,-584,582,-583,-582,-581,-580,-579,-578,-577,-576,-575,-574,-573,-572,673,674,675,676,677,678,679,-570,-569,680,681,-118,116,-117,-116,114,-115,-114,-113,111,-112,-111,-110,-109,682,683,-684,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,-700,699,700,701]],[[-1098,-1097,-1096,1098,1099,-795,1100,-793,1101,-790,-789,-788]]]},{"type":"MultiPolygon","id":2223,"properties":{"name":"Gros-de-Vaud"},"arcs":[[[550,551,552,553,554,555,556,-557,556,557,558,559,-560,559,560,561,562,563,564,565,566,-367,-366,-365,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,-153,152,-153,152,-153,-152,-151,-150,-149,-148,-147,145,-146,-145,-144,-143,141,-142,-141,-140,-139,-138,-137,-136,135,-136,-135,-134,133,-134,-133,-132,-131,130,-131,-130,-129,-128,126,-127,-126,-125,-124,-123,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,-583,583,584,585,586,587,5
 88]]]},{"type":"MultiPolygon","id":2224,"properties":{"name":"Jura-Nord vaudois"},"arcs":[[[101,102,103,104,105,106,107,108,109,110,111,-112,112,113,114,-115,115,116,-117,117,118,119,120,-121,120,121,122,123,124,125,126,-127,127,128,129,130,-131,130,131,132,133,-134,133,134,135,-136,135,136,137,138,139,140,141,-142,142,143,144,145,-146,146,147,148,149,150,151,152,-153,152,-153,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,-169,168,169]]]},{"type":"MultiPolygon","id":2225,"properties":{"name":"Lausanne"},"arcs":[[[1088,1089,1090,1091,1092,-1093,1092,1093,-561,-560,559,-560,-559,-558,-557,556,-557,-556,-555,-554,-553,-552,-551,-952,-951,-950,949,-950,-949,-948,-947,-946,944,-945,-944,-943,-942,940,-941,-940,-939,-938,-937,-936]]]},{"type":"MultiPolygon","id":2226,"properties":{"name":"Lavaux-Oron"},"arcs":[[[-438,934,935,936,937,938,939,940,-941,941,942,943,944,-945,945,946,947,948,949,-950,949,950,951,-589,-673,-672,-671,-670,-669,-668,667,-668,-667,-666,-665,-6
 64,-663,662,-663,-662,-661,-766,-765,-764,952,953,954,955,956,957,-958,958,959,960,961,-962,961,962,963,964]]]},{"type":"MultiPolygon","id":2227,"properties":{"name":"Morges"},"arcs":[[[358,359,360,361,362,-363,362,363,-170,-169,168,-169,-168,-167,-166,-165,-164,364,365,366,367,368,369,370]]]},{"type":"MultiPolygon","id":2228,"properties":{"name":"Nyon"},"arcs":[[[-102,-364,-363,362,-363,-362,-361,-360,-359,418],[419]]]},{"type":"MultiPolygon","id":2229,"properties":{"name":"Ouest lausannois"},"arcs":[[[-370,-369,-368,-567,-566,-565,-564,-563,-562,-1094,-1093,1092,-1093,-1092,-1091,-1090,1126]]]},{"type":"MultiPolygon","id":2230,"properties":{"name":"Riviera-Pays-d'Enhaut"},"arcs":[[[-212,-330,-329,436,437,438,439,-277,-276]]]},{"type":"MultiPolygon","id":2301,"properties":{"name":"Brig"},"arcs":[[[334,-89,-88,335,336,337,-203,338]]]},{"type":"MultiPolygon","id":2302,"properties":{"name":"Conthey"},"arcs":[[[-194,-501,-332,549,-357]]]},{"type":"MultiPolygon","id":2303,"properties":{
 "name":"Entremont"},"arcs":[[[187,188,189,190,191,192,193,194]]]},{"type":"MultiPolygon","id":2304,"properties":{"name":"Goms"},"arcs":[[[200,201,202,203,-9,204,205]]]},{"type":"MultiPolygon","id":2305,"properties":{"name":"Hérens"},"arcs":[[[355,-195,356,357,-349,-80]],[[-984,-983,-982,-209,-351]]]},{"type":"MultiPolygon","id":2306,"properties":{"name":"Leuk"},"arcs":[[[-84,-83,82,-83,-82,-355,-354,-353,-352,-207,-93,-92,-91,404]]]},{"type":"MultiPolygon","id":2307,"properties":{"name":"Martigny"},"arcs":[[[497,498,499,-334,-333,500,-193,-192,-191,-190,-189]]]},{"type":"MultiPolygon","id":2308,"properties":{"name":"Monthey"},"arcs":[[[513,-327,514]]]},{"type":"MultiPolygon","id":2309,"properties":{"name":"Raron"},"arcs":[[[-338,478,-336,-87,-86,-85,-405,90,-91,-90,-10,-204]],[[980,-339,-202]]]},{"type":"MultiPolygon","id":2310,"properties":{"name":"Saint-Maurice"},"arcs":[[[709,-515,-326,-500,-499]]]},{"type":"MultiPolygon","id":2311,"properties":{"name":"Sierre"},"arcs":[[[348,34
 9,350,-208,351,352,353,354,-81]]]},{"type":"MultiPolygon","id":2312,"properties":{"name":"Sion"},"arcs":[[[-358,-550,-331,-210,981,982,983,-350]]]},{"type":"MultiPolygon","id":2313,"properties":{"name":"Visp"},"arcs":[[[78,79,80,81,82,-83,82,83,84,85,86,87,88]],[[-337,-479]]]},{"type":"MultiPolygon","id":2401,"properties":{"name":"Boudry"},"arcs":[[[1023,-105,-774,-891,-978,-977,1024]]]},{"type":"MultiPolygon","id":2402,"properties":{"name":"La Chaux-de-Fonds"},"arcs":[[[-890,-889,-888,1055,-707,-236,-979]]]},{"type":"MultiPolygon","id":2403,"properties":{"name":"Le Locle"},"arcs":[[[886,887,888,889,890,-773]]]},{"type":"MultiPolygon","id":2404,"properties":{"name":"Neuchâtel"},"arcs":[[[1082,-1025,-980,-234,-233,-232,231,-232,-231,1083,-376]]]},{"type":"MultiPolygon","id":2405,"properties":{"name":"Val-de-Ruz"},"arcs":[[[976,977,978,-235,979]]]},{"type":"MultiPolygon","id":2406,"properties":{"name":"Val-de-Travers"},"arcs":[[[771,772,773,-104]]]},{"type":"MultiPolygon","id":2601,"
 properties":{"name":"Delémont"},"arcs":[[[-250,-249,-248,-247,-246,-245,-244,-243,-242,-241,-240,239,-240,-239,-238,420,-409,421,422,423,424,425]]]},{"type":"MultiPolygon","id":2602,"properties":{"name":"Les Franches-Montagnes"},"arcs":[[[-237,706,707,-407,-406,-421]]]},{"type":"MultiPolygon","id":2603,"properties":{"name":"Porrentruy"},"arcs":[[[405,406,407,408]]]}]}},"arcs":[[[6153,3761],[-54,30],[-24,10],[-27,-20],[-25,22],[-24,-29],[-27,13],[-16,35],[-44,-9]],[[5912,3813],[6,47],[-12,54],[6,27],[-7,77],[-20,0],[-22,29],[-16,39],[13,40],[-6,41],[15,31],[10,0],[28,43],[-11,32],[-1,102],[10,21],[18,-4],[11,35],[20,13],[20,-23],[18,18],[1,19],[19,4],[33,40],[17,31],[-10,40],[6,37],[41,45],[17,-27],[21,-56],[39,18],[30,31],[-7,38],[18,89],[36,23],[-11,21],[-9,85],[17,36],[31,-7],[-2,23],[29,40],[31,15],[6,21],[45,8],[26,-19],[14,5],[3,-60],[27,-13],[52,33],[5,12],[62,12],[40,20],[22,2],[24,32],[4,23],[42,132],[11,15],[-4,24],[2,49],[21,17],[21,35],[27,1],[42,-21],[-1,-15],[21,-40],[
 4,-37],[14,-10],[37,44],[28,16],[7,39],[28,23],[-5,27],[52,0],[25,-7],[34,30],[20,44]],[[7095,5422],[1,-29],[18,-17],[36,-69],[0,-38],[44,-113],[10,-13],[35,-74],[24,-24],[34,-9],[15,-31],[20,-5],[15,11],[48,-44],[-8,-13],[24,-75],[37,16],[6,-6],[-1,-51],[16,-9],[11,-47]],[[7480,4782],[1,-72],[-52,-146]],[[7429,4564],[8,-57],[-54,-59],[-14,-47],[-24,-47],[17,-16]],[[7362,4338],[20,-11],[20,-37],[0,-56],[-14,-63],[16,-12],[-22,-23],[-16,-1],[-46,-42],[4,-24],[-8,-18],[6,-21],[19,-14],[0,-59],[-14,-64],[-66,-25],[-12,-14],[-65,-24],[-22,-1],[-2,-34],[-45,-28],[-20,-47],[-25,1],[-22,-16],[-4,-17],[-30,-14],[-26,-30],[-1,-33],[-30,-22],[-19,-5],[-27,-28],[-40,-70],[-46,-3],[-43,17],[-27,-16],[-18,-44],[-4,-33]],[[6733,3407],[0,-1]],[[6733,3407],[-15,37],[-11,7],[-16,46],[-3,74],[-10,25],[13,31],[-10,47],[8,19],[13,94],[15,27],[4,37],[14,24],[-23,36],[-1,27],[-14,-2],[-25,18],[-21,37],[-28,5],[-25,-16],[-23,-31],[-25,-1],[-7,40],[8,38],[-12,59],[-12,12],[-4,-37],[-22,-34],[-44,19],[-23,-
 22],[-14,-32],[6,-30],[23,-46],[-2,-20],[-28,-45],[-32,-26],[-22,-7],[-9,-19],[-28,-7],[-45,-50],[-28,10],[-2,31],[-65,-44],[-35,23]],[[5303,4170],[-26,6],[-16,-46],[-27,-59],[-23,-24],[4,-74],[-20,-78],[5,-31],[-7,-31],[10,-19],[-29,-55],[-2,-18],[-32,-36],[-41,-7],[-12,-38],[-23,-35],[-34,-14],[-19,-35],[-35,-12],[-12,-21],[-36,-16],[-22,3],[-93,-22],[-15,-13],[-23,18],[0,37],[-56,1],[-19,15],[-33,11],[-28,48],[-66,24],[-22,20],[-32,-22],[-16,22],[-25,5],[-22,24],[-39,8],[-35,-28],[-7,3],[-27,-55],[-12,3],[-24,-19],[-16,-39],[24,-63],[-12,-58],[-29,-23],[-25,-1],[-20,-24],[-4,-26]],[[4230,3376],[-16,-9],[-7,-26],[-14,0],[-10,-22],[-14,1],[-18,-24],[-61,-25],[-62,0]],[[4028,3271],[-22,14],[-9,34],[-25,7],[-20,38],[18,13],[20,69],[-16,34],[1,30],[-23,44],[-6,47],[15,42],[21,38],[-11,13],[14,23],[0,101],[-18,32],[0,19],[-26,56],[4,23],[-28,17],[-5,34],[-30,7],[-10,26],[-25,17],[-1,34],[-19,34]],[[3827,4117],[-10,14],[-15,52],[5,7]],[[3807,4190],[32,-26],[58,18],[24,26],[21,9],[23,-25
 ],[21,19],[6,29],[-38,36],[-4,20],[-43,16],[-33,-19],[-30,2],[-15,-10]],[[3829,4285],[3,33]],[[3832,4318],[-23,22],[12,32],[31,33],[12,29]],[[3864,4434],[6,10]],[[3870,4444],[0,1]],[[3870,4445],[9,9]],[[3879,4454],[18,14],[52,100],[-10,37],[3,36],[32,49],[21,-14],[15,14],[37,4],[3,78],[28,29],[-2,21]],[[4076,4822],[30,12]],[[4106,4834],[18,-7],[59,14],[21,17]],[[4204,4858],[31,13],[35,-3]],[[4270,4868],[1,-16],[35,-32],[9,-32],[25,-17],[24,33],[22,8],[35,31],[25,6],[34,-15]],[[4480,4834],[29,-3],[21,11],[15,-13],[32,8],[2,-16],[33,-57],[13,5],[30,-23],[51,-72],[36,33],[11,21],[14,0],[35,26],[15,-12],[26,8],[28,-40],[31,3],[11,39],[48,-31],[20,-45],[33,-5],[51,56],[11,21],[49,62],[59,14],[21,27],[18,-13],[12,-28],[20,-11],[12,-62],[26,21],[14,23],[19,-17],[31,10],[23,-11],[2,-60],[-18,-27],[10,-29],[-7,-16],[4,-42],[18,-29],[-6,-15],[4,-73],[10,-7],[-2,-34],[7,-27],[-6,-51],[-26,-17],[-58,9],[-6,16],[-29,11],[-3,-95],[24,-41],[5,-66]],[[4369,4666],[-52,-53],[-9,-30],[-22,-13],[-4,-16
 ],[-49,-60],[-48,-68],[-27,-18],[-33,-47],[19,-5],[7,-18],[42,-2],[18,27],[28,19],[17,45],[62,59],[12,4],[36,41],[51,40],[11,16],[30,15],[24,-6],[-1,49],[-11,20],[-27,-4],[-28,19],[-46,-14]],[[8781,4495],[2,32],[-11,29],[16,49],[-15,29],[-25,20],[4,20],[-27,100],[36,15],[8,-7],[29,32],[-5,20],[13,22],[38,41],[3,51],[23,56],[46,9],[15,29],[7,53],[29,-8],[11,15],[30,6],[9,48],[17,25],[-12,13],[7,22],[16,2],[10,42],[27,32]],[[9082,5292],[19,-38],[31,18],[7,21],[38,-3],[14,20],[23,-15],[18,17],[40,23],[2,19],[22,39],[36,-7],[19,13],[34,-2],[2,96],[-16,22],[-5,30],[17,33],[6,69],[10,19],[-2,61],[56,-12],[54,-27],[16,-13],[12,27],[32,5],[0,26],[-25,35],[5,61],[41,20],[2,53],[10,42],[21,52],[4,36],[19,15],[38,-7],[25,46],[12,6],[21,-17],[10,-30],[23,-38],[34,-36],[-10,-78],[18,-20],[61,-22],[29,-17],[17,-31],[30,-13],[-9,-27],[8,-35],[-5,-57],[-15,-19],[-5,-79],[-23,-54],[11,-18],[4,-40],[-4,-55],[9,-67],[-16,-36],[7,-29],[-16,-8],[-5,-28],[6,-23],[-8,-13],[3,-41],[-19,-65],[-20,-19],[-20,
 -5],[-5,-38],[-10,-6],[27,-30],[19,-50],[7,-68],[-5,-32],[-13,3],[-50,-63],[-29,-42],[19,-18],[7,-27],[18,-23],[-5,-50],[-27,-19],[-22,-85],[-21,-10],[22,-78],[2,-82],[19,-44],[6,-47],[16,-8],[24,18],[52,8],[6,10],[38,-40],[50,-75],[18,-9],[-1,-22],[-15,-31],[8,-41],[-8,-24],[10,-14],[-28,-137],[10,-24],[-15,-48],[2,-28],[-28,-12],[-13,-51],[-37,31],[-43,69],[-21,-13],[-23,-27],[-33,28],[-10,-2],[-38,27],[-25,-1],[-8,-33],[-22,-33],[-29,43],[-30,-27],[-41,24],[4,37],[-16,27],[-6,29],[-19,6],[-23,28],[-32,-34],[-18,15],[-14,77],[16,57],[21,49],[-41,81],[-3,41],[-39,-39],[-16,-56],[-21,18],[-28,10],[-2,15],[-23,-12],[-45,-43],[-18,-4],[-59,-53],[-20,1],[-37,23]],[[9121,4094],[-17,31],[-2,34],[-39,10],[-27,-8]],[[9036,4161],[-11,-3],[6,43],[-40,45],[-45,40]],[[8946,4286],[-10,4]],[[8936,4290],[-35,26],[-54,65],[-55,47],[5,34],[-16,33]],[[7680,3045],[22,15],[36,67],[11,0],[41,29],[29,-27],[13,-93],[-4,-22],[17,-48],[-3,-19],[14,-30],[44,-33],[31,55],[2,41],[13,16],[35,4],[19,41],[19,-9]
 ],[[8019,3032],[10,-20],[39,1],[25,-7],[21,44],[34,4],[1,36],[23,11],[8,26],[58,68],[27,-11],[28,63],[8,37],[-14,19],[-2,44],[13,84],[-11,17],[3,36],[-15,10],[10,32],[-11,21],[-46,1],[-11,19],[4,35],[-10,11],[10,40],[-16,47],[17,14],[35,-5],[22,40],[28,36],[32,-7],[29,32],[41,8],[6,10],[63,20],[30,26],[-13,81],[10,36],[34,-1],[19,33],[24,6],[-1,35],[20,58],[11,-11],[23,19],[-27,111],[-28,45],[12,48],[-5,34],[25,72]],[[8612,4440],[7,-13],[26,1],[30,20],[17,37],[48,20],[10,-12],[31,2]],[[9121,4094],[-8,-24],[6,-25],[-8,-41],[10,-18],[-2,-34],[-10,-27],[-38,-14],[16,-40],[-26,-34],[-11,-51],[-24,-30],[-23,-5],[-7,-33],[21,-24],[4,-50],[-5,-46],[-20,-18],[16,-51],[-8,-42],[7,-27],[-9,-40],[20,-31],[3,-57],[-14,-17],[-16,-54],[8,-20]],[[9003,3241],[2,-50],[-20,-23],[-22,13],[-6,-74],[-5,-12],[-62,-62],[-14,-22],[-5,-54],[-8,-1],[-19,-47],[-22,-2]],[[8822,2907],[-14,4],[-41,-24],[-7,-35],[-13,-10],[-5,20],[-14,0],[-23,52],[-53,-45],[-7,-21],[-28,-31],[-7,12],[-74,-23],[-9,-29],[-21,-29],[
 -21,-8],[-16,-23],[-39,-18],[-16,-30],[-36,24],[-14,28],[-27,30],[-17,-8],[-30,-50],[12,-40],[-18,-28],[-2,-30],[18,-7],[-2,-48],[-15,-21],[-6,-67],[-30,-13],[-28,12],[-31,46],[-24,-30],[-35,-27],[0,-11],[-34,-21],[-35,6],[-18,33],[-28,8],[-14,-12],[-31,6],[-42,39],[-3,16],[-22,-21],[-37,48],[-38,76],[-16,45],[-6,73],[-22,31],[-11,37],[-25,9],[-16,18],[-31,16],[-7,47],[17,28],[-18,116],[-12,18]],[[3164,4419],[-24,-10],[-15,-29],[-27,22],[-2,-14],[-29,-12],[1,-22],[-25,-30],[5,-21],[-14,-56],[-16,18],[-26,-24],[-19,20]],[[2973,4261],[-9,24],[11,18],[-1,47],[-19,0],[-14,33],[-35,-2],[6,68],[-47,21],[-47,4],[-22,36],[-4,31],[3,41],[14,37],[-1,71],[-29,61],[32,56],[-7,48],[11,25],[9,53],[22,33],[0,60],[19,11],[6,19],[-17,39],[-36,33],[-13,26],[22,17],[3,26],[25,0],[14,-13],[-16,-17],[8,-16]],[[2861,5151],[15,5],[10,-16],[26,20],[22,45],[-2,33],[-13,34],[2,56],[-11,13],[-49,22],[-32,-10],[-36,11],[-20,-3],[-18,-19],[-27,19],[-13,20],[-39,16],[-2,-12],[-43,26],[-16,-30]],[[2615,5381],[-11
 ,23],[-27,4],[-10,-17],[-18,7],[25,17],[20,27],[-1,38]],[[2593,5480],[0,1]],[[2593,5481],[-4,24],[16,34],[-18,45],[14,28],[-7,30],[8,40],[-25,12],[-9,24]],[[2568,5718],[24,1],[18,14],[1,21],[31,37],[13,42],[-12,19]],[[2643,5852],[15,22]],[[2658,5874],[12,15],[48,-88],[-10,-28],[22,-25],[24,24],[7,20],[-2,42],[16,-3],[5,57],[15,26],[36,-1],[0,16],[35,13],[15,32],[15,8],[13,-19],[22,19],[19,3],[24,20],[21,4]],[[2995,6009],[0,-1]],[[2995,6008],[14,-15],[22,9],[15,27],[-3,19],[30,9],[24,-9],[3,14]],[[3100,6062],[22,18],[10,30],[-5,38],[20,-6],[3,75],[-23,1],[-10,25],[6,31]],[[3123,6274],[55,26],[16,33],[-30,86],[-1,25],[70,44],[26,28]],[[3259,6516],[10,-30],[20,-12],[14,33],[30,-85],[15,-19],[-6,-12],[7,-35],[43,-54],[6,-31]],[[3398,6271],[-16,-9],[-19,40],[-5,-31],[-12,-3],[-10,-28],[2,-48],[-22,-33],[7,-12],[-11,-29],[-6,-52],[27,-57],[10,-1],[2,-66],[-27,-49]],[[3318,5893],[15,-5],[-5,-28]],[[3328,5860],[0,2]],[[3328,5862],[-7,-15],[2,-41],[-7,-24],[19,5],[17,26],[14,59],[13,-3],[-1,
 -30],[20,-10],[20,25],[16,-23]],[[3434,5831],[22,-11],[24,-36],[30,15],[25,31],[17,-22],[16,-4],[15,15],[6,-17]],[[3589,5802],[21,-13]],[[3610,5789],[0,-1]],[[3610,5788],[-7,-43],[1,-47],[50,63],[19,-22],[27,8],[1,-36]],[[3701,5711],[2,-47],[8,-29],[-18,-78],[18,-32]],[[3711,5525],[-2,-61],[17,-5],[0,-27],[12,-6]],[[3738,5426],[8,9],[20,-47],[3,-44],[-25,-20],[-26,-34],[22,-63],[-10,-5],[10,-26],[1,-42],[8,-30],[-28,-7],[0,-40]],[[3721,5077],[-65,-25],[-18,-15]],[[3638,5037],[-15,-21],[-28,-1],[0,-32],[-25,-52],[-41,-9],[-26,16]],[[3503,4938],[-34,-36],[-19,-10],[-10,18]],[[3440,4910],[-2,-34],[-30,18],[-7,39],[-28,-18],[13,-61],[-28,13],[-13,25],[-13,-10],[-20,8],[0,16],[-34,-7],[-16,13],[-46,-17],[-19,-31],[37,-79],[-16,-38],[-34,-7],[-24,-44],[3,-19],[29,-55],[6,-57],[-15,-34],[-20,-22],[-16,-37],[21,-17],[-4,-36]],[[2644,5540],[1,0]],[[2645,5540],[9,4],[0,44],[-39,-27],[4,-43],[25,22]],[[8612,4440],[-15,5],[-30,37],[-23,-23],[-15,-35],[-27,-36],[-28,41],[-34,-30],[-66,-42],[-34,
 27],[-17,1],[-1,22],[-17,41],[-1,37],[-24,-15]],[[8280,4470],[-1,34],[-21,-4],[-20,-30],[23,-59],[-13,-36]],[[8248,4375],[-7,-6],[-1,38],[-11,45],[-8,-12],[-11,19]],[[8210,4459],[0,1]],[[8210,4460],[-10,26],[-3,52],[-15,32],[-34,45],[-16,32]],[[8132,4647],[18,16],[16,38],[39,-1],[2,18],[27,22],[12,39],[1,29],[25,29],[-20,34],[22,40],[32,34],[11,47],[33,18],[16,38],[39,25],[23,34],[5,30],[-5,43],[-27,23],[17,24],[10,35],[-23,28],[-21,-3],[0,18],[-22,31],[-17,8],[-24,-29],[-56,-44],[-22,-7],[-21,33],[-50,19],[-24,28],[-28,-13]],[[8120,5331],[-48,-8],[-21,4],[-15,40]],[[8036,5367],[8,21],[22,18],[20,56],[-22,117],[-23,36],[-35,-3],[-13,40],[-7,-18],[14,-35],[-31,-30],[-20,35],[16,24],[6,34],[-3,26],[-16,21]],[[7952,5709],[-7,23],[8,20],[12,88],[16,16],[-5,22],[-35,24],[-7,20],[11,46],[0,78],[49,65],[21,16],[-29,8],[-2,19],[22,32],[23,-3],[0,82]],[[8029,6265],[16,37],[35,-2],[49,22],[1,-16],[36,-32],[21,8],[0,-29],[25,-22],[31,2],[29,-10],[9,-22],[43,12],[39,0],[16,-33],[22,-13],[11,-24
 ],[40,-21],[16,-26],[48,13],[15,34],[37,-7],[11,-21],[-21,-24],[5,-30],[36,-27],[9,-60],[-17,-18],[-1,-27],[-18,-33],[0,-32],[-8,-21],[16,-26],[-3,-117],[50,-20],[22,-26],[10,7],[25,-39],[32,-23],[19,-4],[31,20],[9,-17],[33,18],[10,-48],[48,-33],[35,12],[19,-28],[35,-73],[24,-24],[-3,-56],[20,-18],[35,7],[28,-1],[12,-16],[1,-36],[10,-10]],[[4470,1375],[-11,-54],[-1,-42],[-15,-35],[3,-58],[25,-88],[-24,-29],[-27,-44],[13,-33],[-15,-29],[4,-32],[-26,-1],[-27,-82],[-28,17],[-45,-18],[-29,7],[-28,-9],[-54,6],[-33,-93],[-31,-22],[-6,-14],[8,-41],[-14,-33],[4,-41],[-14,-7],[-6,-54],[21,-49],[-15,-38],[-16,-14],[-15,22],[-46,3],[-35,26],[-50,-49],[-30,51],[-16,7],[-24,41],[-48,18],[-12,-44],[-16,-18],[-1,-22],[-32,-3],[-20,28],[-12,30],[5,66],[-16,26],[-49,17],[-10,43],[-30,53],[-20,1],[-36,-31],[-43,11],[-24,-14],[-53,8],[-25,83]],[[3425,798],[28,42],[2,15],[30,15],[0,48],[17,69],[6,47]],[[3508,1034],[17,6],[27,-40],[42,27],[5,13],[27,6],[32,27],[-2,37],[14,23],[16,53],[0,29],[10,13],[24,
 59],[1,32],[23,57],[-13,43]],[[3731,1419],[9,35],[14,6]],[[3754,1460],[0,1]],[[3754,1461],[39,16],[19,19],[-21,39],[4,29],[-14,14],[10,38],[-5,52],[10,23],[0,49],[-16,22],[6,26],[5,67],[35,20],[4,71],[17,35]],[[3847,1981],[30,-13],[27,21],[2,53],[14,7],[-5,38],[25,15],[19,-5],[39,61],[2,12],[46,40],[-6,37],[-22,10],[-11,32],[8,20],[-14,15],[12,9],[15,79],[23,14]],[[4051,2426],[26,8]],[[4077,2434],[32,13],[7,22]],[[4116,2469],[-3,-22]],[[4113,2447],[-20,-17],[-6,-25],[47,-17],[49,4],[8,-29],[28,5],[-1,-42],[15,-30],[13,10],[18,-19],[-5,-30],[23,-64],[16,26],[48,-21],[-1,-40],[8,-37],[-11,-35],[2,-84],[7,-18],[-1,-53],[16,-37],[12,-10],[-11,-30],[13,-60],[0,-58],[34,-30],[-12,-11],[-6,-36],[7,-20],[3,-64],[12,-27],[-1,-37],[10,-10],[6,-50],[37,-76]],[[4028,3271],[-28,-27],[-13,-28],[-61,-42],[-25,-33],[-20,-44],[-27,-18],[-12,-20],[-68,-70],[-20,-5],[-14,-32],[-24,5]],[[3716,2957],[0,1]],[[3716,2958],[-30,43],[-126,81],[-23,21],[-9,-26],[-30,-24],[2,-34],[-25,-34],[3,-30],[-9,-21],[-4
 2,29],[-34,-24]],[[3393,2939],[-17,4]],[[3376,2943],[-38,70],[-23,16],[-16,24],[-58,49],[10,18],[-18,51],[6,44],[-13,51],[6,58],[-5,40],[18,2],[37,25],[7,33],[19,27],[-32,18]],[[3276,3469],[-27,41],[-31,16],[-6,19],[-35,5],[-6,12],[-24,-12],[-17,14],[12,25],[-22,20],[-6,20],[16,55],[20,14],[15,26],[-2,27],[-21,29],[6,15],[-48,74],[-5,99],[-8,-1]],[[3087,3967],[-12,12],[5,74],[-20,35],[6,26],[-28,-1],[-7,34],[-24,-6],[-37,-38],[-11,5],[24,34],[-10,23]],[[2973,4165],[-17,-1],[17,97]],[[3164,4419],[32,-1],[28,-13],[32,19],[22,-17],[45,-14],[8,-36],[84,-22],[-1,-22],[35,-5],[16,-27],[53,-3],[35,50],[-6,22],[6,52],[-3,43],[-22,49]],[[3528,4494],[1,0]],[[3529,4494],[18,14]],[[3547,4508],[23,-15],[8,-46],[35,-38],[8,-31],[59,-23],[3,-30],[33,-26],[-3,-37],[45,-32],[10,-17],[33,-10],[6,-13]],[[402,3633],[-39,-103],[-23,14],[-2,-13],[-39,39],[-10,17],[-19,-11],[-18,6],[-36,62]],[[216,3644],[-103,160],[28,37],[10,30],[79,99],[40,28],[2,22],[38,39],[18,41],[10,-2],[52,77],[3,15],[73,98],[12,40
 ],[28,42],[35,17],[42,41],[58,36],[25,24],[19,41],[26,5],[-4,32],[30,1],[20,41],[-8,22],[16,25],[65,29],[35,41],[-3,20],[31,36],[-1,24],[15,50],[-52,66],[-8,54],[23,17],[-3,42],[9,43],[39,93]],[[915,5170],[13,-17],[35,-7],[105,61],[22,38],[32,31],[16,4],[63,51],[26,-3],[36,26],[28,-2],[42,87],[2,21],[50,51],[118,77]],[[1503,5588],[6,-25],[-14,-77],[-2,-49],[7,-3],[45,-55],[-5,-52],[3,-29],[-17,-51],[18,17],[35,-8]],[[1579,5256],[-3,-23],[-16,-29],[-17,-8],[-23,-36],[-33,-24],[-20,-45],[-40,-41],[-24,-40],[-41,-26],[-50,-58],[-4,-47],[15,-11],[9,-33],[22,-7],[91,71],[70,46],[15,-14],[19,5],[7,-17],[47,27]],[[1603,4946],[26,-43],[12,13],[7,-18],[-19,-28],[15,-14]],[[1644,4856],[27,-42]],[[1671,4814],[-42,-95],[-6,-24]],[[1623,4695],[0,-9]],[[1623,4686],[0,-1]],[[1623,4685],[0,1]],[[1623,4685],[-2,-7]],[[1621,4678],[-3,-5]],[[1618,4673],[-2,0]],[[1618,4673],[-2,-1]],[[1616,4672],[0,1]],[[1616,4672],[-1,-16]],[[1615,4656],[-9,-29],[-40,-54]],[[1566,4573],[-5,-9]],[[1561,4564],[0,-1]],[[
 1561,4563],[-1,-5]],[[1560,4558],[-9,21],[-12,-31],[-19,-14],[4,-30],[-13,-11]],[[1511,4493],[-18,0],[-21,-18],[-22,25],[5,42]],[[1455,4542],[-7,-4]],[[1448,4538],[-10,-5]],[[1438,4533],[-1,0]],[[1438,4533],[-1,0]],[[1437,4533],[-2,-1]],[[1435,4532],[-5,-4]],[[1430,4528],[0,1]],[[1430,4529],[-2,-4]],[[1428,4525],[-3,-3]],[[1425,4522],[0,-1]],[[1425,4521],[-1,-4]],[[1424,4517],[0,-1]],[[1424,4516],[-1,-2]],[[1423,4514],[-11,-29],[-22,-27],[-16,7],[4,40],[-25,37],[-24,72],[-21,-14]],[[1308,4600],[-4,-96],[-16,-31]],[[1288,4473],[-12,-1],[-10,-39],[2,-24],[18,-6]],[[1286,4403],[0,1]],[[1286,4404],[0,-1]],[[1286,4404],[1,0]],[[1287,4404],[10,-6]],[[1297,4398],[0,-1]],[[1297,4397],[0,1]],[[1297,4397],[-11,-44]],[[1286,4353],[-2,0]],[[1284,4353],[-1,22],[-19,-1],[-30,-21]],[[1234,4353],[-2,1]],[[1232,4354],[-3,1]],[[1229,4355],[-1,1]],[[1228,4356],[0,-1]],[[1228,4355],[-1,0]],[[1227,4355],[-1,0]],[[1226,4355],[-22,-4]],[[1204,4351],[-2,6]],[[1202,4357],[-8,-11]],[[1194,4346],[3,-10]],[[11
 97,4336],[1,-9]],[[1198,4327],[0,-1]],[[1198,4326],[-9,-16],[5,-27],[-10,-63],[-25,-13]],[[1159,4207],[-3,6]],[[1156,4213],[-18,21],[-30,-5],[0,122],[-23,11],[-2,-15],[-31,-4]],[[1052,4343],[-17,-42],[-20,-7],[-22,-41],[-17,10]],[[976,4263],[-13,11]],[[963,4274],[-7,-2]],[[956,4272],[-3,0]],[[953,4272],[0,-1]],[[953,4271],[-12,-23],[-31,15],[-33,-45],[-27,-26],[-85,79],[-68,-34],[-21,33],[-17,-14],[-5,-65],[3,-37],[-8,-28],[5,-42],[-28,-21],[-25,-58],[20,-11],[-32,-48],[-53,-69],[10,-19],[-20,-41],[-10,1],[-31,-42],[-14,-62],[-31,-18],[-38,-63]],[[8019,3032],[14,27],[-8,63],[-14,42],[6,26],[-5,41],[-24,69],[-18,-6],[-45,20],[-21,88],[-30,20],[-39,2],[-16,14],[22,31],[1,28],[-16,20],[-15,44],[-37,-1],[-14,15],[-7,31],[11,11],[3,114],[15,25],[-13,25],[1,37],[-16,45],[-2,40],[12,39],[-10,47],[17,46],[0,24],[-12,43],[5,50],[-5,39],[-20,18],[-31,79],[-9,54],[-24,29],[12,22],[19,-1],[24,25],[30,9],[-27,64],[29,30],[-11,21],[-24,-1],[50,44],[5,32],[-14,38],[15,94]],[[7783,4748],[45,7],[13,
 43],[-9,29],[21,2],[14,-15],[18,-49],[36,-25],[13,55],[29,51]],[[7963,4846],[18,-57],[-13,-81],[16,-1],[23,-25],[28,22],[34,12],[52,86],[9,-30],[7,27],[32,23],[4,-45],[-25,-51],[-33,-53],[7,-27],[10,1]],[[4076,4822],[-43,54],[5,8],[-27,28],[-1,21],[-43,-21],[-23,7],[-75,-19],[-18,27]],[[3851,4927],[-25,58],[-4,33],[-24,5],[-22,35],[-25,-4]],[[3751,5054],[-15,22],[-15,1]],[[3259,6516],[22,39],[-2,14],[23,65],[14,14],[-20,54],[5,6]],[[3301,6708],[26,18],[21,-20],[30,39],[13,2],[14,-28],[12,8],[16,-28],[9,-57],[14,26],[34,1],[19,17],[13,-16],[30,-5],[10,8],[12,-24]],[[3574,6649],[16,13]],[[3590,6662],[15,-24],[-15,-16],[7,-22],[-13,-15],[3,-25],[11,4],[38,-29],[25,10],[10,24],[30,6]],[[3701,6575],[18,-28],[7,-37],[27,-47]],[[3753,6463],[7,-22],[16,-7]],[[3776,6434],[17,-11],[-8,-32],[-11,-10],[5,-42],[11,30],[11,-7],[31,16],[13,-38],[19,33],[27,22],[33,9],[2,-19],[16,3],[-5,-59],[-13,-8],[1,-51]],[[3925,6270],[0,-1]],[[3925,6269],[14,-22],[-25,-35],[33,-44],[15,18],[41,-4],[37,-9],[15,
 -26],[22,-10]],[[4077,6137],[13,-28],[14,-1],[4,-33],[24,-31],[-2,-17],[17,-33],[-8,-22],[11,-37],[52,20],[17,-30],[39,15]],[[4258,5940],[14,-19],[-18,-59],[10,-48],[-19,-25],[2,-39],[-23,-30],[-6,-66],[-22,-19],[-2,-26],[-19,-43],[-33,8],[-52,-43],[-15,-56],[28,-20],[6,-38],[-31,-82],[-27,-20],[1,-60],[16,-10],[12,-29],[-4,-67],[22,-67],[41,-30],[61,-55],[55,-74],[15,-55]],[[3226,639],[-22,-17],[-17,-35],[8,-50],[-9,-9],[-29,6],[-4,-14],[-27,-5],[-23,-57],[-30,-40],[-22,-18],[-24,13],[-26,-64],[-16,-9],[-38,37],[-11,-4],[-11,37],[-29,23],[-27,-21],[-33,4],[-3,24],[-33,3],[-17,24],[-20,-27],[-20,-79],[-13,-4],[-34,-59],[-12,23],[-24,-14],[-28,11],[-28,-16],[-1,-25],[-22,-19],[-20,-49],[6,-36],[-23,-24],[-34,23],[-30,41],[4,28],[-22,12],[-44,-32],[-2,-17],[-37,-50],[-38,0],[-9,17],[-9,59],[5,8],[-31,41],[-18,55],[-22,27],[0,47],[-25,30],[-21,37],[-6,45],[-13,34],[7,46],[-3,37],[-36,18],[-29,53],[4,22],[27,18],[0,19]],[[2162,767],[51,30],[-14,40],[14,31],[-21,29],[10,42],[0,36],[55,47
 ],[9,31],[37,46],[3,30],[51,53],[-7,96],[12,25],[-36,5],[6,9]],[[2332,1317],[1,0]],[[2333,1317],[-1,0]],[[2332,1317],[1,0]],[[2333,1317],[28,21],[38,19],[40,37],[18,43],[33,11],[15,-13],[42,8],[14,-6],[8,19],[21,6],[7,17],[23,5],[52,-24],[21,-43],[22,-21],[10,-35],[24,-13]],[[2749,1348],[16,-13],[6,-23],[24,-19],[23,-36],[21,9],[16,-26],[14,-5],[6,-45],[14,-15],[31,-10]],[[2920,1165],[-4,-39],[7,-33],[14,-32],[15,-6],[-6,-39],[16,-28],[-8,-45],[21,-26],[21,-4],[11,-23],[17,-58],[30,-23],[12,18],[31,-12],[3,-33],[13,14],[31,-5],[6,24],[27,-29],[20,-75],[11,-14],[18,-58]],[[7282,3440],[0,59],[-25,14],[5,37],[-10,21],[-49,-35],[-42,-5],[-4,-18],[-49,-43],[-18,11],[-95,-9],[-174,-143]],[[6821,3329],[-11,9],[-29,-19],[-17,2],[-19,20],[-2,37],[-10,28]],[[7480,4782],[27,11],[21,36],[40,-3],[-31,124],[51,54],[12,-13],[50,50],[30,-59],[17,-12],[43,19]],[[7740,4989],[-6,-18],[16,-74],[-22,-30],[21,-52],[15,-7],[19,-60]],[[7680,3045],[-5,17],[12,117],[-4,63],[1,48],[13,26],[-8,55],[-29,-4],[-2
 ,24],[26,2],[4,122],[-64,-58],[-21,-46],[0,-64],[-24,-46],[-36,11],[-17,18],[-13,45],[-16,6],[-23,52],[11,50],[-25,27],[-17,-27],[-36,-4],[-4,11],[-60,-13],[-12,-15],[-49,-22]],[[5253,3157],[-40,-1],[-24,-25],[-8,-27],[-60,-85],[-23,-6],[-18,9],[-20,-42],[0,-16],[-23,-30],[40,-30],[8,8],[18,-51],[-10,-84],[-29,-16],[-38,-52],[-23,15],[-27,-32],[11,-45],[-13,-15],[7,-14],[-30,-6],[0,-21],[-29,-1],[-29,-32],[3,-40],[-22,-32],[-7,-53],[-14,-16]],[[4853,2417],[-16,26],[-11,58],[-21,68],[-28,28],[7,37],[-2,48],[-31,19],[-23,35],[-1,27],[-14,31],[-29,4],[-40,-30],[-21,4],[-2,69],[-15,27],[-20,16],[10,23],[-34,40],[9,40],[24,34],[2,20],[-16,40],[-65,90],[-19,-17],[-34,60],[-14,39],[-19,22],[-36,-8],[-30,-51]],[[4364,3216],[-44,15],[-16,-6]],[[4304,3225],[-5,36],[-12,5],[-40,46],[-17,46],[0,18]],[[5303,4170],[18,-3],[8,-22],[-4,-86],[3,-66],[-14,-66],[-14,-16],[5,-25],[-9,-53],[9,-42],[16,-32],[15,-55],[3,-46],[11,-38],[43,-38],[23,-11],[12,11],[31,-39]],[[5459,3543],[-37,-84],[-20,-17],[-1
 9,-63],[-19,8],[-36,-23],[-41,-1],[-18,10],[5,-40],[-19,-56],[15,-38],[-16,-13],[-7,-29],[6,-40]],[[3376,2943],[-48,-17],[-12,-46],[12,-18],[30,-16],[19,-25]],[[3377,2821],[-32,-25],[-8,-35],[-24,-13],[-45,6],[-11,-28],[-40,9],[-2,45],[-10,22],[-14,-9],[-8,-27],[-17,-10]],[[3166,2756],[-18,32],[-10,-5],[-37,18],[-13,-23],[-25,-2],[-37,-30],[-2,11],[-48,-59],[-11,-23],[-33,-35]],[[2932,2640],[-11,-14],[-69,-32],[-18,-3],[-19,45],[1,33],[10,24],[-4,58],[-27,-44],[-19,3],[-63,-44],[-5,-65],[4,-40],[-17,-31],[-20,-18],[-31,-5],[-24,14]],[[2620,2521],[3,96],[-9,46],[26,21],[-9,16],[-22,-16],[-14,30],[-11,60],[-26,-3]],[[2558,2771],[2,30],[22,78],[12,80],[-25,69],[-14,18],[6,36],[41,-7],[22,15],[20,61],[-6,23],[5,37],[-14,56],[-1,47],[26,6],[-8,34],[20,11],[16,66],[2,58],[-11,97],[-17,28],[0,37]],[[2656,3651],[26,13],[22,25],[22,61],[32,54],[37,-26],[23,12],[9,39],[18,14],[-12,43],[7,91],[-14,16],[4,75]],[[2830,4068],[16,1],[20,25],[-20,65],[55,4],[25,-51],[3,-31],[11,44],[33,40]],[[5441,
 2117],[-39,16],[-10,30],[12,32],[18,18],[-15,56],[-35,64],[-15,51],[29,31],[6,78],[23,9],[4,30],[22,36],[-6,10],[2,56],[-6,32],[19,40],[-7,31],[-2,62],[-12,32],[22,48],[-17,33],[10,48],[-23,39],[5,45],[-7,28],[18,41],[-9,40]],[[5428,3153],[13,25],[37,22],[0,19],[30,17],[26,0],[34,40],[30,-36],[23,21],[21,39],[-1,43],[6,20],[35,7],[15,36],[38,6],[80,-47],[31,-41],[17,-8],[24,8],[39,-34],[46,-7],[11,-48],[12,-25],[-12,-30],[-3,-40],[7,-22],[30,-28],[10,-28],[25,-7],[12,-113]],[[6064,2942],[-20,-56],[-6,-36],[12,-56],[-12,-31],[-28,-48],[-12,-8],[3,-24],[-42,-35],[-4,-62],[-20,-27],[-4,-27],[20,-25],[1,-21],[41,-31],[17,0],[40,-38],[15,-44],[33,-32],[-1,-22],[27,-20],[24,-49],[-7,-45],[15,-61],[26,-6],[17,-33],[-5,-38],[12,-44],[-21,-62],[0,-69],[-24,3],[-22,-38],[-32,-1],[-10,37],[-24,20],[2,15],[-61,-3],[-20,6],[1,21],[-14,8],[-9,55],[-46,20],[-12,23],[-21,-3],[-9,15],[-21,-13],[-15,11],[-18,33],[-19,16],[-6,59],[-11,11],[-51,22],[-9,-6],[-56,33],[-30,4],[-25,-32],[-34,-5],[-32,-17],
 [-20,4],[-12,-29],[-44,-9],[-40,-35]],[[6333,1286],[-11,0],[-31,36],[-45,72],[-20,19],[-13,-33],[-39,-5],[-36,33],[-24,12],[40,70],[35,47],[52,62],[52,17],[66,53],[-21,-3],[-5,30],[16,38],[-9,16],[-12,-13],[-29,70],[-16,4],[-16,-25],[-56,-30],[8,-32],[-2,-65],[-36,-26],[-33,22],[-14,25],[-75,-38],[-29,-61],[-16,-66],[-43,-108],[-19,4],[-15,41],[-21,-9],[-28,19],[-22,53],[-83,-10],[-6,56],[-38,52],[16,30],[2,33],[-30,5],[-10,29],[-12,-5],[-13,16],[-7,60],[-14,34],[-22,12],[-1,28],[-27,27],[-13,32],[-11,74],[-23,16],[-26,-2],[-41,38],[-34,5],[-20,12],[-12,60]],[[6064,2942],[27,-3],[17,-33],[27,-6],[21,-17],[23,-4],[21,-20]],[[6200,2859],[25,-3],[6,-20],[32,-27],[5,-58],[28,-17],[23,-60],[20,-8],[-5,-62],[-24,-35],[-4,-18],[22,-30],[34,0],[24,-34],[6,-43],[33,13]],[[6425,2457],[27,-22],[-12,-94],[0,-35],[17,-25],[3,-73],[26,-19]],[[6486,2189],[4,-15],[-19,-59],[15,-18],[35,-16]],[[6521,2081],[9,-25],[-10,-42],[0,-45],[-14,-62],[4,-15],[-7,-91],[1,-44],[-25,-27],[3,-22],[31,-11],[8,-17]
 ,[3,-42]],[[6524,1638],[-56,3],[-35,7],[-13,-73],[-35,-83],[-10,-56],[-14,-9],[6,-30],[-7,-24],[3,-42],[-23,-46],[-7,1]],[[2903,6942],[-16,-22],[9,-58],[23,-21],[-25,-27],[-27,6],[-57,-18],[-21,-32],[-3,21],[-46,-29],[-4,-15],[-25,-7]],[[2711,6740],[-2,2]],[[2709,6742],[-24,-9],[-71,-88],[-10,-22],[-26,-6],[-19,-26],[22,-18],[-37,-44],[-22,4],[-44,-37],[-8,-25],[-29,-30],[-1,-30],[10,-18]],[[2450,6393],[-36,-48],[14,-16]],[[2428,6329],[4,-11]],[[2432,6318],[-45,-44],[-11,-39],[-49,-33]],[[2327,6202],[-10,33]],[[2317,6235],[0,1]],[[2317,6236],[-5,17]],[[2312,6253],[-9,30],[23,29],[0,21],[-25,53],[-41,18],[-38,47],[-26,-28],[-11,44]],[[2185,6467],[17,38],[20,24],[-26,12],[-6,-14],[-40,1],[-42,-34],[-91,-24],[-29,-18],[-13,19],[-32,-44],[-45,-36],[-64,-57]],[[1834,6334],[11,89],[20,29],[19,115],[-37,100],[-23,73]],[[1824,6740],[24,42],[16,-100],[9,-20],[50,34],[24,36],[30,24],[18,30],[6,44],[26,17],[8,-34],[33,4],[13,-34],[20,9],[20,52],[5,32],[60,12],[15,33],[15,56],[24,69],[24,20],[-
 4,34],[8,25],[44,24],[12,-12],[8,-42],[17,0],[15,31],[19,-7],[36,16],[26,-10],[37,23],[-15,31],[-14,9],[7,51],[10,21],[41,24],[2,81],[-14,11]],[[2499,7376],[70,14],[32,-7],[3,-28]],[[2604,7355],[10,5],[39,-9],[22,-15],[44,10],[35,-17],[61,19],[27,13],[53,76]],[[2895,7437],[1,0]],[[2896,7437],[54,20],[29,28],[13,-8]],[[2992,7477],[46,-4],[37,-28],[42,8],[24,-4]],[[3141,7449],[14,-4]],[[3155,7445],[6,-2]],[[3161,7443],[1,0]],[[3162,7443],[1,1]],[[3163,7444],[35,-2]],[[3198,7442],[10,-12]],[[3208,7430],[20,-9]],[[3228,7421],[11,-1],[77,72],[46,18],[16,13]],[[3378,7523],[-21,-31],[-3,-51],[-18,-21],[-2,-25],[-13,-14],[-27,-2],[-56,-30],[-21,-20],[-16,-26],[-20,-60],[-9,-12],[-55,-8],[-54,-54],[10,-47]],[[3073,7122],[-29,-19],[-26,-31],[-36,-22],[-40,-45],[-11,7],[-37,-19],[9,-51]],[[7172,5549],[9,54],[-6,38],[-26,23],[-7,25],[0,51],[19,11],[-5,44],[7,51],[-6,35],[3,50],[8,29],[-18,58],[1,29],[-14,42],[-37,46],[-42,7],[-47,-47],[-11,15],[-21,-11],[-22,16],[-41,44],[33,42],[34,14],[29,47]
 ,[18,56],[-3,98],[-7,41],[5,132]],[[7025,6589],[-3,80],[47,33],[21,-1]],[[7090,6701],[29,1],[12,17],[39,20],[29,-6],[43,19],[30,-5],[28,6],[12,-33],[20,-7]],[[7332,6713],[44,-5]],[[7376,6708],[10,-15],[1,-33],[11,-9],[58,14],[10,-24],[16,0],[22,-63]],[[7504,6578],[13,-38],[-20,-38],[-21,-8],[-22,22],[-12,-9],[34,-50],[30,-75],[19,11],[15,-16],[26,-65],[17,17],[17,-3]],[[7600,6326],[42,6],[22,-8]],[[7664,6324],[-4,-16],[9,-59]],[[7669,6249],[13,-32],[62,-137],[8,-45],[18,-40],[62,-117],[-49,-22],[-13,-21],[3,-66],[-30,-10],[-18,-68],[-21,-25],[-1,-26],[-18,-50],[2,-25],[22,-16],[-27,-31],[-18,-33],[6,-43],[-7,-28],[-26,-8]],[[7637,5406],[3,-21],[-16,-38],[-36,58],[-52,35],[-23,-1],[-41,27],[-46,-4],[-50,22],[-49,-6],[-17,23],[-38,5],[-13,-11],[-30,7],[-14,-18],[-25,30],[-18,35]],[[5628,5859],[-29,72],[24,46],[-24,61],[-66,27],[-15,-32]],[[5518,6033],[-28,14],[-38,67],[-32,47],[-11,4]],[[5409,6165],[0,1]],[[5409,6166],[23,34],[21,8]],[[5453,6208],[-5,62],[9,50],[46,81]],[[5503,6401],[
 31,-24],[42,12],[7,11],[42,-2],[8,-64],[54,29],[13,25],[26,4],[9,15],[57,-7],[17,13],[2,19],[33,79],[23,4],[3,24],[20,22],[11,58]],[[5901,6619],[16,-6]],[[5917,6613],[20,-4],[13,-23],[8,-65],[-20,-49],[-1,-32],[8,-44],[39,-17],[2,-24],[32,-10],[15,-87],[22,1],[14,23],[11,55],[18,-12],[75,-3],[22,20]],[[6195,6342],[15,-2]],[[6210,6340],[22,-2],[33,-18],[13,-23],[36,-6],[13,14],[23,-4]],[[6350,6301],[-16,-30],[23,-28],[-3,-45],[-15,-31],[3,-36],[-9,-18]],[[6333,6113],[-13,-34],[40,-34],[13,4]],[[6373,6049],[35,-17],[4,-43],[10,-26],[32,-38],[4,-23],[20,-32],[-19,-12],[31,-76],[22,-20],[36,-20],[-19,-21],[-2,-30],[-14,-50],[16,-63],[-17,-1],[-32,-20],[-39,-35],[-28,-36],[-16,-3],[-17,-27],[-19,-3],[-34,-44],[-22,3],[1,-15],[-19,-32],[-12,28],[3,45],[-4,68],[-26,-31],[-19,59],[4,57],[-8,26],[-36,28],[-32,-30],[-10,-25],[-31,11],[-8,33],[-20,-5],[-64,-36],[-36,-52],[-7,-17],[-23,-6],[-18,27],[-6,29],[6,31],[-15,61],[-54,-17],[-54,25],[-37,2],[-11,13],[-43,-3],[-3,83],[-6,34],[3,59],[-12,
 16],[-33,16],[-47,-35]],[[2656,3651],[-1,1]],[[2655,3652],[-21,-20],[-43,-85],[-17,44],[-19,24],[-21,-41],[-56,-58],[-28,2],[-19,-71],[-2,-23],[-22,-27],[-8,-22],[-29,-19],[-22,-40],[-52,10],[-13,-13],[-13,14],[-65,-77],[-39,-72],[-4,-54],[-59,-49],[-21,-4],[20,54],[-5,22],[-25,41],[6,71]],[[2078,3259],[14,38],[10,46],[-1,48],[27,30],[-10,50],[5,50],[9,12],[-9,22],[23,59],[-35,39],[-30,2],[7,35],[33,67],[-38,34],[-45,120],[-23,-15],[-24,79]],[[1991,3975],[14,-2],[6,45]],[[2011,4018],[0,37],[-14,44],[4,18]],[[2001,4117],[9,52],[13,-3],[19,28],[27,6],[14,-32],[20,-1],[50,34],[5,47]],[[2158,4248],[14,28],[44,36]],[[2216,4312],[16,42],[29,-8],[26,51],[15,3],[6,34],[20,10],[11,-16],[23,15],[20,50],[17,-29],[44,-5],[27,6],[57,-39],[8,-25],[24,-7]],[[2559,4394],[21,-9]],[[2580,4385],[33,-19],[10,36],[36,35],[32,-107],[-12,-28],[0,-30],[24,-45],[22,-31],[26,-6],[15,42],[17,5],[30,-58],[28,-34],[-35,-55],[13,-27],[11,5]],[[7025,1781],[-14,3],[-43,53],[-8,36],[-27,59],[-75,69],[-18,95],[-11,-
 9],[-8,22],[11,10],[2,112],[-35,79]],[[6799,2310],[-9,21],[-13,64],[16,23],[30,78],[-1,19],[-23,56],[12,23],[-7,23],[5,34],[29,28],[14,1],[12,75],[2,46],[-20,79]],[[6846,2880],[19,57],[-13,25],[29,33],[-5,31],[-23,64],[-11,64],[11,27],[7,60],[-24,52],[1,22],[-16,14]],[[7282,3440],[-20,-69],[8,-21],[-8,-48],[2,-34],[9,-7],[-17,-42],[-17,-17],[-36,-19],[4,-68],[52,-74],[11,7],[11,-24],[5,-65],[-14,-33],[21,-44],[-21,-65],[19,-77],[31,-12],[9,-60],[-15,-28],[2,-31],[13,-21],[-9,-50],[-21,-17],[-9,-26],[8,-64],[-29,-41],[-7,-33],[-21,-21],[1,-29],[-16,-27],[3,-23],[-8,-36],[2,-84],[-6,-34],[-27,5],[-31,-23],[4,-26],[-7,-48],[-11,-18],[-26,-14],[-17,-74],[8,-34],[-7,-38],[-30,-52],[-25,12],[-25,-12]],[[7090,6701],[11,54],[-13,13],[8,32],[19,15],[13,28]],[[7128,6843],[-14,6],[-9,38],[-39,-27],[-14,22],[-29,13],[-55,10],[-40,-29],[-47,-8],[-13,51],[-16,37],[-24,94],[8,22],[-12,20],[-2,53],[-35,20],[0,28],[-29,16],[-19,27]],[[6739,7236],[-38,44]],[[6701,7280],[-21,31],[9,35]],[[6689,7346],[
 0,1]],[[6689,7347],[10,20],[-1,29],[-22,0],[-25,16],[-16,43],[-24,6],[-18,28],[-1,24],[-20,39],[-17,7]],[[6555,7559],[-17,37],[3,57],[-14,9],[3,38],[-16,34],[-16,-4],[-21,91],[-18,20]],[[6459,7841],[22,26],[9,28],[20,-3],[19,68],[-9,27],[11,32],[27,4],[3,48],[-1,48],[21,9],[-3,15],[28,-7]],[[6606,8136],[4,3]],[[6610,8139],[20,39],[12,-23],[12,14],[10,-15],[21,39],[16,-5]],[[6701,8188],[20,-55],[28,-9],[-4,-24],[20,-21],[-14,-11],[4,-34],[9,6]],[[6764,8040],[56,-9],[-9,-27],[33,10],[14,-20],[19,2],[13,-20],[19,3],[5,-20]],[[6914,7959],[3,-9]],[[6917,7950],[5,-6]],[[6922,7944],[19,-1],[-1,-34],[8,-11],[45,1],[-5,-16],[18,-73],[-3,-7]],[[7003,7803],[0,-1]],[[7003,7802],[7,-10]],[[7010,7792],[1,-1]],[[7011,7791],[10,-45]],[[7021,7746],[-9,-13],[16,-16]],[[7028,7717],[17,-42],[15,8]],[[7060,7683],[11,7]],[[7071,7690],[1,0]],[[7072,7690],[17,-5]],[[7089,7685],[15,-33]],[[7104,7652],[1,-3]],[[7105,7649],[1,-13],[-49,-48],[17,-69],[-4,-30],[18,-41],[-14,-49],[-19,-21],[1,-23]],[[7056,7355],
 [52,-48],[33,3],[22,-13],[38,35],[24,-22],[30,-39],[24,11]],[[7279,7282],[0,-21],[24,-38],[55,11]],[[7358,7234],[18,-25],[28,-2],[41,-47],[44,19]],[[7489,7179],[-2,-26],[-24,-35],[10,-76],[9,-6],[-9,-40]],[[7473,6996],[-28,-30],[-9,-36],[-28,2],[-26,-16],[-45,-59],[0,-23],[-19,-8],[-10,-76],[24,-37]],[[5428,3153],[-18,19],[-18,47],[-18,3],[-67,-31],[-35,-36],[-19,2]],[[5459,3543],[12,24],[52,14],[24,20],[8,19],[-17,74],[18,50],[-1,50],[23,37],[18,10],[37,-28],[41,17],[18,-34],[21,-18],[45,9],[10,17],[23,-6],[9,-16],[4,-41],[23,-7],[34,24],[9,26],[42,29]],[[6153,3761],[-14,-7],[13,-30],[-16,-80],[-1,-26],[-16,-27],[7,-20],[-10,-26],[28,-42],[33,27],[19,0],[12,-19],[20,5],[88,-60],[22,-35],[1,-50],[-8,-18],[19,-40],[-13,-29],[22,-85],[85,-162],[6,-21],[38,-62],[4,-43],[22,-42],[13,-2],[10,-53],[7,2]],[[6544,2816],[30,-23],[-13,-67],[-58,-95],[-26,-38],[-23,-73],[-19,-15],[-10,-48]],[[2287,1868],[-26,1],[-48,-49],[-23,-13],[-28,72],[-20,21],[-10,79],[-10,18],[0,37],[-31,64],[-2,37],[-2
 0,27]],[[2069,2162],[-33,63],[-7,62],[-23,41],[-33,36],[-10,92],[0,47],[-5,30],[-18,35],[-15,9],[-27,-5],[-19,15],[-29,75],[12,41],[-3,56],[-24,30],[-36,67]],[[1799,2856],[33,0],[7,-40],[10,10],[-17,29],[32,11],[18,-11],[29,9],[24,-7],[15,24],[12,43]],[[1962,2924],[18,3],[11,22],[60,67],[14,25],[11,-4],[36,27],[33,7],[26,26]],[[2171,3097],[4,-13],[-22,-35],[4,-56],[38,2],[24,14],[52,2],[11,-11],[9,-40],[3,-60],[22,37],[22,25],[49,-29],[14,-25],[27,-101],[3,-28],[32,12],[60,-15],[17,-24],[18,19]],[[2620,2521],[-47,-82]],[[2573,2439],[-28,-47],[2,-43],[17,-30],[-24,-32],[4,-61],[-24,-12],[-39,-77],[-12,-1],[-12,-50],[-17,-21],[-28,-9]],[[2412,2056],[-14,-4],[-7,-35],[2,-29],[-24,-46],[-52,-63],[-28,-13]],[[2289,1866],[-2,2]],[[4706,2394],[-45,-51],[-18,-59],[-17,-5],[-19,-41],[-26,-26],[-10,-28],[15,-34],[52,-22],[3,-43],[9,-26],[11,1],[9,-31],[34,-18],[11,-74],[18,-42],[4,-60],[29,-47],[-1,-25],[-17,-17],[-15,-40],[-3,-45],[12,-45],[-19,-51],[-46,-12],[-26,-30],[-1,-60],[-13,-30],[-6
 0,-32],[-20,3],[-44,-24],[-43,-5]],[[4116,2469],[-4,100]],[[4112,2569],[13,9],[-2,42],[29,18],[7,20],[-5,42],[28,23],[8,50],[-14,37],[8,101],[-7,28],[-34,37]],[[4143,2976],[28,28],[5,18],[56,74],[30,45],[21,63],[21,21]],[[4364,3216],[69,-43],[57,-70],[18,-11],[31,-45],[-20,-43],[-8,-50],[-42,-43],[-21,-32],[-35,-35],[-24,-65],[4,-28],[-17,-92],[3,-50],[11,-45],[25,-32],[6,20],[24,31],[7,27],[31,-31],[59,-19],[19,-23],[4,-19],[16,-6],[14,15],[25,-74],[10,6],[50,-22],[26,-43]],[[4258,5940],[0,61],[41,53]],[[4299,6054],[40,3],[26,-16],[37,-7],[15,11],[11,28],[16,14],[-38,32],[2,33],[14,-3],[14,51],[14,-7]],[[4450,6193],[7,1]],[[4457,6194],[43,15]],[[4500,6209],[20,62],[-13,32],[25,18],[16,-22]],[[4548,6299],[14,-11],[7,-90]],[[4569,6198],[-5,-19],[37,11],[11,-35],[10,10],[8,-25],[37,-12]],[[4667,6128],[38,-20],[-17,-50],[0,-18],[-33,-75],[8,-25],[30,-20],[-7,-74],[12,-85],[20,-5],[16,-30]],[[4734,5726],[-27,-31],[8,-38],[26,-51],[-2,-11],[-63,-75],[-29,-66],[-22,-81],[-11,6],[2,67],[-3
 1,18],[-20,-30],[-7,-34],[-29,-19],[-6,-40],[11,-70],[-13,-34],[-2,-42],[-12,0],[-1,-27],[-30,-47],[-7,-38],[10,-36],[40,-105],[-1,-28],[-19,-19],[2,-32],[-21,-29]],[[3508,1034],[-14,62],[11,34],[-22,15],[-23,30],[-3,34],[-39,44],[8,25],[-17,57],[-16,22],[-8,28],[-27,39],[-4,31],[-13,21],[-37,95],[-17,19],[15,14],[-9,13],[5,43],[-10,37],[9,11],[0,46],[10,56],[21,32],[-11,50],[-19,6],[-22,-17],[-40,65],[-15,43],[-26,7],[-38,37],[-13,57],[-62,-28]],[[3082,2062],[-20,82]],[[3062,2144],[-12,23],[27,47],[4,52],[6,5],[8,80],[11,38],[24,55],[6,50],[-2,39],[-21,69],[-33,55],[-3,12],[31,31],[23,35],[35,21]],[[3377,2821],[7,-22],[22,-16],[27,14],[-4,-21],[-16,-22],[2,-29],[-26,-15],[-1,-53],[6,-17],[23,-6],[-5,-32],[12,-23],[-14,-31],[2,-21],[-23,-8],[-7,-26],[-16,3]],[[3366,2496],[22,-59],[0,-87],[15,4],[5,-26],[10,2],[17,-79],[33,11],[47,-76],[5,-31],[14,-25],[41,-20],[5,-27],[25,-27],[3,-22]],[[3608,2034],[12,-62]],[[3620,1972],[-4,-11],[5,-109],[-13,-75],[12,-18],[-4,-19],[30,-43],[-3,-41
 ],[-20,-32],[17,-38],[6,-49],[18,-19],[21,-57],[29,-18],[17,-24]],[[3425,798],[-30,-10],[-28,2],[-20,-49],[11,-75],[-19,-32],[-7,10],[-28,4],[-11,21],[-19,-16],[-23,18],[-7,-27],[-18,-5]],[[2920,1165],[-4,58],[29,59],[-19,81],[8,24],[-14,78],[-23,56],[15,23],[15,111],[24,36],[1,67],[-33,69],[-13,8]],[[2906,1835],[-6,12],[33,1],[9,9],[-6,38],[29,50],[26,15],[46,42],[8,-21],[15,43],[22,38]],[[717,3226],[-10,17]],[[707,3243],[-10,4],[-6,42],[-27,-1],[-8,-13],[-17,49],[-38,62]],[[601,3386],[10,6],[-35,11],[-12,-18]],[[564,3385],[-5,0]],[[559,3385],[0,-1]],[[559,3384],[7,-18],[-22,-20],[-18,17],[-33,-32],[20,60],[-22,26],[8,11],[-14,19],[21,23],[0,26],[-21,13],[15,37],[-37,53],[-15,1],[-28,33],[-18,0]],[[1156,4213],[-13,-33],[-20,-22],[0,-21],[-13,-2],[-9,-42],[-31,25],[-3,-14],[-26,12],[-6,-31],[-12,-6],[0,-59],[17,-16],[-10,-28],[16,-81],[12,-17]],[[1058,3878],[-7,-25],[2,-75]],[[1053,3778],[-6,-40],[11,-30]],[[1058,3708],[-3,-17],[16,-33],[15,0],[7,-21]],[[1093,3637],[14,-15],[4,-47],
 [-11,-32]],[[1100,3543],[-7,-50],[-13,-59]],[[1080,3434],[-29,32],[-40,14],[-18,-20],[-15,-43],[-15,-5],[-12,-49],[-29,-8],[-17,-25],[-3,-39],[-15,3],[-11,-23],[-62,-25],[-47,-49],[-23,4],[-27,25]],[[6846,2880],[-33,2],[-26,25],[-34,5],[-31,20],[-41,2],[-30,-40],[-24,8],[-9,-32],[23,-20],[8,-33],[-7,-13],[-20,6],[-27,25],[0,37],[-36,9],[-21,-33],[6,-32]],[[2643,5852],[-15,13],[2,24],[-13,40],[-16,-10],[-11,12],[-10,-23],[-100,-78],[-9,-1],[-134,-48],[-78,4],[-39,15]],[[2220,5800],[-2,8]],[[2218,5808],[-30,121]],[[2188,5929],[18,59],[-1,64],[11,29],[34,39],[27,8],[26,30]],[[2303,6158],[10,-19],[34,3],[25,19],[25,32],[4,-7]],[[2401,6186],[2,-9]],[[2403,6177],[3,-5],[-45,-44],[10,-26],[30,-2],[59,37],[35,14],[16,21],[16,57],[10,-15],[42,101]],[[2579,6315],[24,-34],[31,27],[6,52],[12,-8],[29,33],[-2,-25],[16,26],[8,45],[36,5],[40,24],[13,19],[-7,16],[23,19],[18,-30],[26,-16],[24,21],[3,37],[25,20],[-25,55],[7,52],[10,10],[30,-1],[-9,34],[23,5],[23,-19],[23,30]],[[2986,6712],[10,-10],[31
 ,17],[21,-4],[14,15],[4,31],[31,24],[-2,32],[17,10],[11,-26],[14,24],[-2,27],[60,7]],[[3195,6859],[-8,-26],[19,-69],[12,5],[25,-14],[-16,-22],[6,-12],[-31,-45],[-25,-16],[-30,26],[-31,-30],[-1,-33],[-21,-5],[-19,-36],[35,-66],[-19,9],[-10,-12],[-56,-11]],[[3025,6502],[-1,0]],[[3024,6502],[-20,-2],[-8,33],[-36,-25],[-1,-25],[27,-81],[0,-21],[18,-18],[49,17],[19,20],[5,-11],[25,16],[8,-32],[-9,-24]],[[3101,6349],[2,-31]],[[3103,6318],[1,0]],[[3104,6318],[19,-44]],[[4077,6137],[-9,38],[18,38],[-6,4],[13,46],[-1,40],[11,47],[-4,29],[-14,16],[2,61],[-14,10],[-3,40],[8,17],[32,23],[11,22],[0,44],[-18,31]],[[4103,6643],[0,1]],[[4103,6644],[-15,52],[7,55]],[[4095,6751],[9,27]],[[4104,6778],[-22,52]],[[4082,6830],[-30,43],[0,32],[-24,54],[-5,36],[-18,30]],[[4005,7025],[-2,0]],[[4003,7025],[-1,1]],[[4002,7026],[3,59]],[[4005,7085],[-2,0]],[[4005,7085],[1,3]],[[4006,7088],[31,-15],[31,25],[67,30],[29,4],[26,-31],[26,-9],[63,91],[-28,82],[14,34],[39,-12],[30,8],[19,28],[21,-35],[1,-26],[26,-49]
 ,[0,-12]],[[4401,7201],[0,-11]],[[4401,7190],[-2,-39]],[[4399,7151],[1,-15]],[[4400,7136],[-4,-20],[7,-38],[28,-3],[18,-33],[5,-34],[15,-5],[18,-25],[-10,-40],[12,-9],[-12,-15],[-5,-47],[-25,-4],[-2,-70]],[[4445,6793],[14,8],[29,-14],[3,-45],[11,-3],[-2,-36],[-24,-11],[-8,-29],[-31,-29],[-10,-52],[-24,-35],[26,-42],[18,-7],[-4,-32],[12,-22],[26,-18],[14,9],[21,-13],[30,-37],[-9,-17],[18,-31],[-7,-38]],[[3716,2957],[5,-35],[-25,-67],[-13,-16],[2,-23],[24,-7],[15,-52],[-9,-20],[18,-55],[13,4],[25,32],[13,-21],[48,10],[5,-49],[-5,-47],[-11,-47],[1,-35],[-17,-47],[2,-48],[-2,-81],[2,-41],[-13,-64],[-8,-5],[10,-70],[16,-23],[10,-49],[-15,-40],[-9,-4],[3,-28],[30,-9],[16,-39]],[[2477,7528],[-8,51],[-35,9],[1,-26],[-64,-36],[5,-18]],[[2376,7508],[7,-14],[-30,-15],[-55,9],[-16,33],[-22,-23],[-28,17],[0,26],[-20,15]],[[2212,7556],[26,-10],[24,40],[-8,4],[20,44],[-27,19],[6,19],[-5,50],[-16,15],[-19,-5],[-1,32],[-32,5],[-8,12],[-43,-47],[-31,-1],[-18,-17],[-70,-10],[-22,4],[-20,-17],[-48,23],
 [-15,-4],[-27,-31],[-10,27],[12,48],[-2,27],[27,36],[37,31],[-6,50],[12,4],[10,49],[43,-3],[7,47],[-3,90],[57,21],[9,45],[25,13],[33,2],[13,22],[-10,12],[8,54],[-20,-4],[3,22],[-14,28],[3,94],[28,24],[55,23],[26,-35],[17,5],[18,-17],[17,1],[40,-34],[35,34],[41,-2],[31,37],[28,-4],[30,-28],[15,-28],[18,-6],[36,7],[36,16],[7,-14],[-26,-12],[-31,-105],[2,-37],[-20,-89],[50,-21],[8,-18],[24,-3],[36,23],[23,-4],[13,-27],[0,-24],[15,-10],[-1,-28]],[[2683,8020],[-25,-26],[4,-24],[-28,-31],[4,-51],[11,-43],[-22,-21],[-18,-43],[-5,-38],[-23,-20],[-20,-69],[-21,-18],[-29,-60],[-34,-48]],[[3590,6662],[-2,51],[18,35],[30,0],[10,72],[-15,9],[8,32],[-28,51],[-33,4],[9,25],[-12,40],[5,21],[-20,23],[10,10],[-7,22],[-33,-18],[-11,13]],[[3519,7052],[-22,47],[-34,37],[4,43],[-9,61],[-30,50]],[[3428,7290],[80,26],[67,3],[50,35],[21,2],[15,25]],[[3661,7381],[8,-18],[27,-20],[27,-64],[7,13],[21,-35],[-1,-16],[18,-35],[27,-11],[27,6],[18,43],[21,5],[3,-31],[23,-27],[30,58],[13,1],[4,-23],[17,-9],[23,21]],
 [[3974,7239],[12,-32],[-10,-38],[13,-56]],[[3989,7113],[0,-1]],[[3989,7112],[14,-27]],[[3651,6721],[-10,-49],[34,-4],[10,47],[-24,21],[-10,-15]],[[3829,4285],[-24,16],[-10,55],[-40,67],[-44,23],[-5,-4],[-35,29],[-11,31],[-24,18],[-41,51],[-6,23],[-26,21],[-16,-70],[0,-37]],[[717,3226],[-15,5],[-22,-14],[-39,-7],[-17,-21],[-15,-38],[-30,-28],[-3,-21],[-27,-50],[-36,-36],[-2,-41],[-18,-38],[1,-44],[-16,-27],[-38,6],[-27,-32],[-1,-20],[-27,-33],[-12,-37],[-23,-32],[-17,-45],[-28,13],[-6,24],[-24,0],[-15,22],[-13,-10],[-5,-38],[33,-28],[17,-5],[-3,-24],[23,-25],[-2,-46],[-20,-71],[-15,-16],[-15,-42],[-26,-46],[-38,23],[-29,29],[-33,59],[3,25],[29,59],[-4,26],[28,23],[21,42],[0,24],[26,51],[-20,42],[-1,20],[-24,-5],[-33,58],[-50,57],[-15,-3],[-18,50],[-76,39],[24,63],[0,16],[26,43],[-2,33],[-23,32],[7,19],[-9,41],[55,77],[38,143],[58,106],[12,-17],[23,46],[-12,13],[19,29]],[[229,2625],[10,-13],[8,32],[22,-6],[-20,28],[-20,-41]],[[2499,7376],[-12,7],[-8,-40],[-25,21],[3,19],[-23,-19],[-21
 ,-3],[-3,24],[32,25],[16,49],[-8,8],[27,61]],[[2683,8020],[21,17],[34,13],[25,38],[27,-5],[20,26],[55,6]],[[2865,8115],[-2,-40],[30,-12],[3,-16],[31,-39],[5,-19],[41,-5]],[[2973,7984],[18,-8],[11,-47],[15,1],[7,-32],[32,-11],[7,-51],[-10,-20],[49,-6],[8,7]],[[3110,7817],[57,-53],[31,5],[23,-8],[30,12],[51,0],[-3,-39],[38,-21],[4,-20],[-10,-30],[5,-14],[29,-12]],[[3365,7637],[-6,-21],[-33,-33],[-15,-59],[7,-8],[60,7]],[[4400,7136],[29,-17]],[[4429,7119],[2,7],[49,11],[24,12],[-14,44],[22,-3]],[[4512,7190],[10,0],[39,42]],[[4561,7232],[23,-13],[16,-40],[7,-39],[34,-15],[26,28]],[[4667,7153],[24,3],[51,20],[12,11],[11,-15],[-8,-51],[-45,-5],[14,-18],[-5,-16],[13,-21],[18,-5]],[[4752,7056],[5,-28],[21,3],[19,19],[25,-1],[-4,52],[9,55],[27,26],[6,33]],[[4860,7215],[5,-46],[-17,-19],[7,-28],[-3,-75],[13,-62],[-8,-10],[9,-38],[5,-78],[15,-82],[4,-55],[33,-19],[9,-56],[-22,-64],[-29,-15],[19,-32],[-7,-79],[-12,-67],[9,-12],[-22,-14],[8,-31]],[[4876,6333],[-18,-18],[-1,-24],[-20,-2],[-6,-19]
 ],[[4831,6270],[-30,-16],[-7,-18],[-25,-8],[-12,-63],[-45,-19],[-32,5]],[[4680,6151],[-13,-23]],[[1962,2924],[-7,49],[-18,56],[-19,0],[-3,28],[-17,29],[-26,-7],[-40,43],[-28,-3],[-19,52],[-39,20],[-9,36],[-25,8],[-23,-3],[-24,16]],[[1665,3248],[-1,61],[24,6],[-3,61],[21,41],[4,26],[15,5]],[[1725,3448],[12,1],[5,-34],[20,-44],[17,-17],[31,2],[9,35],[38,63],[31,34]],[[1888,3488],[-3,-64],[12,29],[21,-6],[34,-24],[25,-33],[32,7],[48,-56],[6,-62],[15,-20]],[[6326,8606],[-16,-7],[-25,16],[-30,-1],[-34,11]],[[6221,8625],[-2,33],[-17,33]],[[6202,8691],[0,1]],[[6202,8692],[-10,49],[22,7],[27,33]],[[6241,8781],[-25,8],[-1,30],[-17,10],[-32,-17],[-20,7],[-5,58],[-97,46]],[[6044,8923],[-31,-3],[1,39],[-13,13],[-7,46],[13,5],[-1,40],[24,-20],[10,8],[30,-16],[36,-32],[-5,-25],[32,-11],[5,64],[18,14],[-1,55],[11,13]],[[6166,9113],[20,47],[-1,22]],[[6185,9182],[-1,0]],[[6184,9182],[0,15],[-25,16]],[[6159,9213],[-24,12],[-2,65],[-35,0],[-6,-52],[-20,-32],[-17,6],[-47,-59],[-10,18]],[[5998,9171],[-1
 8,-6],[-22,9],[-10,-10],[-13,16],[-12,-12],[-19,25],[-27,14],[-19,41],[-3,38]],[[5855,9286],[-4,31],[-17,14],[0,40]],[[5834,9371],[0,11]],[[5834,9382],[21,15],[25,39],[38,-29],[22,7]],[[5940,9414],[23,11]],[[5963,9425],[52,-9],[30,-19],[44,-50],[26,-7]],[[6115,9340],[14,16],[27,-1],[33,-15],[22,-29],[3,-21],[31,-20],[-15,-34],[23,-19],[9,25]],[[6262,9242],[16,-14],[28,4],[23,-44],[27,-2],[29,26],[10,-9],[20,31],[25,0],[63,40],[3,24],[12,-1],[9,23],[66,19],[17,16],[12,-13],[26,13],[14,-10]],[[6662,9345],[-18,-10],[16,-31],[-3,-52],[-19,6],[2,-29]],[[6640,9229],[4,-12]],[[6644,9217],[1,-27]],[[6645,9190],[-5,-43]],[[6640,9147],[-3,-5]],[[6637,9142],[-2,-5]],[[6635,9137],[-20,-57]],[[6615,9080],[19,-54],[-2,-22],[-28,-21],[-15,-77],[12,9],[15,-13],[-4,-47]],[[6612,8855],[-14,-11],[-2,-64],[-8,-4]],[[6588,8776],[-1,-1]],[[6587,8775],[-10,-4],[7,-27],[-16,-46]],[[6568,8698],[21,-10]],[[6589,8688],[13,-26]],[[6602,8662],[-1,-8]],[[6601,8654],[0,-6]],[[6601,8648],[-40,-19]],[[6561,8629],[-
 2,11],[-42,-33],[-11,-24]],[[6506,8583],[14,-46],[-31,2],[-18,-23],[-32,14],[-21,-20],[-38,21],[-4,17],[3,69],[-10,51],[-40,-40],[-3,-22]],[[6524,1638],[-24,-8],[3,-16],[25,-23],[21,-1],[7,-19],[20,15],[27,-8],[-2,-38],[40,-40],[6,43],[31,32],[25,-22],[87,-11],[12,45],[18,12],[25,-67]],[[6845,1532],[-12,-14],[24,-98],[15,-45],[1,-21],[-24,-56],[1,-40],[-11,-23],[-30,-10],[-25,7],[-48,-48],[-25,-15],[1,-27],[-18,-38],[-4,-38],[34,-65],[-39,-55],[-57,-34],[-32,28],[-35,-16],[-8,-43],[23,-30],[0,-50],[-19,-67],[4,-45],[20,-8],[-37,-20],[-3,-31],[-22,-59],[-23,-43],[-14,-10],[-38,53],[16,84],[-1,32],[-16,62],[32,113],[-15,22],[-20,-14],[-9,-29],[6,-54],[-26,-37],[10,-31],[-26,-20],[-16,11],[8,39],[-11,18],[-21,-27],[-36,50],[-2,22],[-26,31],[-31,-1],[-11,14],[-49,4],[-13,-13],[14,96],[34,73],[26,15],[19,46],[3,37],[14,10],[-17,14],[14,24],[22,-14],[23,67],[-6,71]],[[4143,2976],[-36,-41],[-17,-1],[-44,-53],[-6,-21],[21,-45],[5,-71],[-14,-71],[30,-54],[11,-35],[19,-15]],[[7740,4989],[-2,2
 7],[-14,27],[13,36],[-19,19],[-1,55],[6,19],[-15,38],[20,44]],[[7728,5254],[13,28],[63,68],[17,79],[60,-51],[14,-21],[13,-46],[17,-21]],[[7925,5290],[-1,0]],[[7924,5290],[0,4]],[[7924,5294],[7,10]],[[7931,5304],[1,0]],[[7932,5304],[7,11]],[[7939,5315],[52,39]],[[7991,5354],[25,-12]],[[8016,5342],[20,25]],[[2559,4394],[30,39],[5,24],[20,18],[-5,35],[2,43],[8,15]],[[2619,4568],[-5,16]],[[2614,4584],[-12,-5]],[[2602,4579],[-13,31],[-35,59]],[[2554,4669],[1,18],[-12,26],[9,48],[15,2],[7,34],[-16,14],[6,36],[-39,-11],[-4,26],[10,21]],[[2531,4883],[2,61],[-29,82],[-17,4],[-29,28],[-6,18],[1,56]],[[2453,5132],[41,21],[15,46],[38,68],[-3,22],[18,17]],[[2562,5306],[12,-9],[41,84]],[[2162,767],[-22,33],[-5,52],[-12,18],[-10,-11],[-37,32],[-6,72],[-42,55],[-33,105]],[[1995,1123],[36,61],[5,33],[22,45],[38,25],[16,57],[7,-5],[32,45],[31,24],[19,47],[11,68],[17,17],[2,20],[30,-57],[9,-32],[10,26],[-1,81],[37,83],[-15,26],[-4,34],[7,26],[2,52],[-17,67]],[[2289,1866],[-2,2]],[[2412,2056],[18,-46],
 [43,-85],[14,-1],[24,-24],[9,-22],[18,2],[31,-25],[40,-17],[8,13],[7,-46],[-1,-44],[17,-7],[11,20],[31,13],[1,-49],[12,1],[14,-43],[33,-35],[38,-14],[5,-79],[-10,-24],[3,-36],[-9,-43],[-24,-21],[8,-82],[-4,-14]],[[7025,6589],[-94,23],[-27,14],[-45,3],[-106,-18],[-40,57],[-97,152],[-7,5]],[[6609,6825],[-16,22],[-40,27],[-21,-25],[-19,4],[-12,101],[18,-6],[12,93],[-36,-3],[-31,9],[-206,-55],[-29,-1],[-43,29]],[[6186,7020],[-18,28]],[[6168,7048],[-30,95],[15,30]],[[6153,7173],[15,15]],[[6168,7188],[17,8]],[[6185,7196],[23,11],[24,-22],[30,22],[3,-24],[15,-14],[31,21]],[[6311,7190],[0,23],[30,6]],[[6341,7219],[20,6]],[[6361,7225],[27,14],[1,-12],[61,32],[18,46],[-8,12],[15,20],[-21,48]],[[6454,7385],[-4,19]],[[6450,7404],[19,9],[21,62],[13,14],[31,8],[21,62]],[[1755,1534],[-25,2],[-37,-15],[-18,37],[-19,-5],[-18,90],[3,49],[27,44],[21,48],[-19,117],[31,79],[10,15],[-1,45],[22,10],[15,34],[5,35],[28,19],[19,72],[-2,37],[13,37],[-13,47],[-10,11],[-21,-7],[-24,43],[-16,13],[-5,50],[-41,44]
 ,[-16,-3],[-8,66],[-27,-2],[-13,61],[-10,12],[-8,42],[3,29],[20,27],[24,1],[34,59],[-9,37],[8,41],[12,-18],[44,-25],[38,13],[20,-16],[10,21],[-3,26]],[[2069,2162],[-18,-72],[10,-3],[-19,-57],[-3,-50],[-12,-9],[-20,-62],[-19,-10],[-10,-51],[18,-77],[1,-35],[-26,-12],[-35,-55],[-16,-15],[-30,-12],[-37,-49],[-3,-18],[-35,-7],[-28,13],[-32,-47]],[[6369,7972],[0,1]],[[6369,7973],[-16,-5],[-24,35]],[[6329,8003],[-53,-2],[-22,26],[27,12],[9,29],[-36,-4],[-1,28],[-15,-6],[-7,25],[3,30],[-9,20],[-17,-1],[-18,-43],[-30,29],[-16,-36]],[[6144,8110],[-16,19]],[[6128,8129],[-7,27],[-20,1],[9,56],[-31,14],[-38,39],[-4,30],[-14,-32],[-31,6],[-2,-24],[-12,14],[-25,-3],[2,-23]],[[5955,8234],[-8,-35],[-21,8],[5,35],[-11,13]],[[5920,8255],[4,32]],[[5924,8287],[-8,1]],[[5916,8288],[-35,-1]],[[5881,8287],[-27,-35]],[[5854,8252],[-17,7],[-26,34],[-5,74]],[[5806,8367],[0,1]],[[5806,8368],[18,30],[-6,39],[-48,23],[2,27],[-13,-10],[-27,40],[12,21],[-28,27],[-14,-2],[7,22]],[[5709,8585],[6,40]],[[5715,8625],[
 19,11],[28,-47],[18,37]],[[5780,8626],[10,15]],[[5790,8641],[15,20],[-13,63],[4,21],[14,-5]],[[5810,8740],[9,23],[30,-8],[15,-50],[17,14]],[[5881,8719],[12,41]],[[5893,8760],[17,19],[-1,21]],[[5909,8800],[18,27],[-1,31],[18,-17]],[[5944,8841],[24,-20]],[[5968,8821],[1,-1]],[[5969,8820],[14,14],[17,-24],[18,21],[23,-28]],[[6041,8803],[15,-9]],[[6056,8794],[-10,40],[5,25],[-7,64]],[[6326,8606],[2,-6]],[[6328,8600],[22,-15],[-3,-101],[-8,-18],[1,-61],[9,-19],[-26,-14],[-4,-32]],[[6319,8340],[-1,0]],[[6318,8340],[1,-28],[17,-4],[11,-48],[30,-60]],[[6377,8200],[-14,-17],[19,-39],[47,-4],[-9,-20]],[[6420,8120],[-38,12],[-6,-19],[12,-10],[1,-79],[-20,-51]],[[6369,7973],[0,-1]],[[9003,3241],[32,-8],[7,-54],[13,-20],[22,15],[14,-15],[0,-22],[24,9],[22,-5],[17,35],[17,-10],[6,13],[29,16],[34,-34],[9,-58],[26,15],[15,-41],[-12,-15],[7,-70],[-18,-28],[-31,4],[-32,-44],[-2,-29],[7,-55],[-23,-20],[-24,-36],[3,-32],[-10,-53],[13,-25],[19,-70],[50,-48],[0,-24],[33,-26],[9,-23],[-6,-16],[20,-19],[-1
 ,-35],[26,-48],[7,-55],[-53,-79],[-10,-46],[-30,-27],[-21,-9],[-33,8],[-12,14],[-35,-7],[-19,-15],[-20,-40],[-24,31],[-37,28],[20,30],[0,27],[15,38],[-17,96],[-24,13],[-37,38],[-45,13],[-27,17],[-11,57],[20,28],[-12,30],[9,29],[-48,47],[12,53],[24,45],[-6,51],[-21,3],[-48,51],[-19,43],[6,30]],[[2573,2439],[22,17],[16,-6],[16,-29],[112,16],[43,-12],[21,6],[34,-53],[20,-9],[9,-23],[-1,-76],[-18,-40],[-12,-78],[-10,-13],[-9,-49],[10,-97],[-15,-25],[2,-18],[24,-57],[43,32],[12,-31],[-17,-15],[-11,-49],[19,-5],[23,10]],[[1460,3801],[-15,-1],[-41,60],[-19,9],[-25,38]],[[1360,3907],[-13,-39]],[[1347,3868],[-20,-25]],[[1327,3843],[7,-5]],[[1334,3838],[13,-48],[-18,-29]],[[1329,3761],[-5,-5]],[[1324,3756],[0,1]],[[1324,3757],[-15,-11],[-2,24],[-23,21]],[[1284,3791],[-27,15],[-4,42],[-27,10],[-19,23],[-21,-21],[-5,-29]],[[1181,3831],[0,-1]],[[1181,3830],[-7,-15]],[[1174,3815],[-2,5]],[[1172,3820],[-5,0]],[[1167,3820],[-1,-5]],[[1166,3815],[-12,-51],[-13,3],[-26,-16],[0,-22],[-27,-19]],[[1088,
 3710],[-1,-1]],[[1087,3709],[-29,-1]],[[1560,4558],[20,-29],[10,-44],[34,43],[0,19],[16,28]],[[1640,4575],[6,2]],[[1646,4577],[15,-1]],[[1661,4576],[-12,-39],[10,-12],[30,7]],[[1689,4532],[-51,-96],[1,-20],[16,-15],[15,21],[15,-21]],[[1685,4401],[0,-22]],[[1685,4379],[-4,-3]],[[1681,4376],[-13,-28]],[[1668,4348],[-13,-19]],[[1655,4329],[-29,28],[-5,-46],[-11,-15]],[[1610,4296],[-10,-13]],[[1600,4283],[-41,-7],[-1,-17],[28,-44],[-6,-36],[6,-28],[-11,-9]],[[1575,4142],[-9,-1],[-23,-47]],[[1543,4094],[-10,-37],[-3,-57],[-20,-42],[-23,-21]],[[1487,3937],[-5,-6]],[[1482,3931],[0,-1]],[[1482,3931],[0,-1]],[[1482,3930],[-2,-5]],[[1480,3925],[-1,-5]],[[1479,3920],[0,-19]],[[1479,3901],[-11,-36]],[[1468,3865],[-8,-64]],[[6759,8451],[23,33],[8,28]],[[6790,8512],[-8,49],[-59,17]],[[6723,8578],[-42,11]],[[6681,8589],[-3,8]],[[6678,8597],[-1,0]],[[6677,8597],[1,0]],[[6678,8597],[-1,0]],[[6677,8597],[-30,-10],[-33,-47],[-13,36],[0,34],[-10,6],[10,32]],[[6615,9080],[6,2]],[[6621,9082],[42,13]],[[6
 663,9095],[12,4]],[[6675,9099],[8,-12]],[[6683,9087],[-1,-1]],[[6682,9086],[0,-1]],[[6682,9085],[-12,-34],[9,-20],[29,11],[76,0]],[[6784,9042],[5,-6]],[[6789,9036],[-1,0]],[[6788,9036],[-1,-11]],[[6787,9025],[10,-12],[-4,-32]],[[6793,8981],[-2,-30],[24,0],[-6,-35],[8,-7]],[[6817,8909],[27,-11],[20,20],[27,-1],[8,23],[27,-13],[5,16],[20,-11],[23,87],[26,-31],[6,10]],[[7006,8998],[21,-43],[58,-13],[1,-33],[15,-39],[11,5],[5,-30],[29,0],[9,13]],[[7155,8858],[0,-1]],[[7155,8857],[2,-13]],[[7157,8844],[0,-1]],[[7157,8843],[0,-2]],[[7157,8841],[1,0]],[[7158,8841],[-10,-18],[3,-66],[-22,-8],[-7,-49],[16,-37],[-9,-16],[46,4],[15,-17],[4,-26],[12,9],[19,-9]],[[7225,8608],[-24,-13],[-5,-34],[-26,-16],[12,-19],[40,0],[26,46],[21,-28],[-8,-62],[20,15],[5,-16],[-8,-55],[-37,-48],[-40,28],[-4,-18],[-36,-27],[-35,6],[-5,22],[-18,3]],[[7103,8392],[-26,17],[-16,-4],[-13,-23]],[[7048,8382],[-12,37],[6,12]],[[7042,8431],[-23,-2],[-23,20],[-14,-9],[-3,30],[-9,-13],[-22,32]],[[6948,8489],[-4,14],[-22,-8
 4],[-29,-17],[-35,-3]],[[6858,8399],[-19,-22]],[[6839,8377],[-13,21],[-28,5],[-22,-9]],[[6776,8394],[-17,57]],[[4831,6270],[6,-17],[48,-24],[40,-47],[-23,-31],[3,-44],[30,9],[20,20],[39,13],[43,-35],[-2,-21],[12,-46],[13,39],[12,9],[27,-20],[17,20],[54,21],[-17,29],[4,37],[13,5],[-15,44],[-20,22],[-46,9],[-12,-10]],[[5077,6252],[-1,0]],[[5076,6252],[-6,11],[-38,-33],[-14,27]],[[5018,6257],[46,65],[17,10],[19,41],[16,19],[6,44],[-6,24],[41,39],[29,17],[24,-2],[24,10],[17,18],[8,48],[13,21]],[[5272,6611],[15,16]],[[5287,6627],[10,-37],[2,-50],[22,1],[35,32],[16,0],[12,-81]],[[5384,6492],[56,66],[31,-62],[-1,-69]],[[5470,6427],[-38,30],[-2,26],[-25,-3],[-21,12]],[[5384,6492],[-31,-14]],[[5353,6478],[-2,-2]],[[5351,6476],[-2,-2]],[[5349,6474],[-4,-14]],[[5345,6460],[-30,-18],[-31,-52],[2,-40],[-7,-30],[-41,-47],[4,-46],[20,-9],[69,31],[13,-8]],[[5344,6241],[0,-1]],[[5344,6240],[65,-74]],[[5518,6033],[1,-46],[-9,-41],[-19,-18],[-60,-29],[-12,5]],[[5419,5904],[1,64],[-92,38]],[[5328,6006]
 ,[-49,-10],[-50,11]],[[5229,6007],[-35,11],[-75,-157],[-35,52],[-16,-8],[-38,0],[-13,-18],[-24,17],[-28,0],[-22,-19],[-26,-43],[-14,29],[-22,4],[-22,-60],[26,-43],[-59,-27],[-36,23],[-56,-42]],[[2216,4312],[-44,48],[-10,51],[-14,-2],[-15,64],[20,24],[-21,62],[-10,-5],[-34,48],[-15,106],[8,68]],[[2081,4776],[27,45],[8,26],[39,27],[-12,52],[29,36]],[[2172,4962],[9,3]],[[2181,4965],[4,37],[31,19],[2,18],[22,9],[8,46],[-6,13],[9,40]],[[2251,5147],[18,-13]],[[2269,5134],[22,-30],[30,36],[17,-31],[40,35],[14,-5],[27,-59]],[[2419,5080],[1,0]],[[2419,5080],[1,0]],[[2420,5080],[1,2]],[[2421,5082],[2,4]],[[2423,5086],[30,46]],[[7489,7179],[18,35],[19,17],[17,-1],[25,19],[33,49],[43,57],[24,60]],[[7668,7415],[19,-20],[21,-5],[29,-34],[36,-5]],[[7773,7351],[0,-35],[-20,-94],[-33,-96],[-10,-66],[-22,-80],[-6,-81],[11,-79],[26,-82],[13,-29],[13,-60],[19,-142],[-9,-72],[-10,-20],[-42,-55],[-39,-36]],[[2032,4847],[-19,-39],[-18,4],[-24,-40],[0,-28],[-25,-49],[-13,14],[-12,-40],[25,-18]],[[1946,4651
 ],[22,15],[24,-46],[-14,-46],[4,-8],[-42,-78],[-30,-24],[-23,-42],[-12,-59],[-20,-20],[-17,-33],[-10,12],[-13,-23],[4,-25],[16,-15],[-17,-42],[1,-32],[-12,8],[-13,-24],[-27,19],[-7,19],[-26,-15],[-23,-55],[-23,10],[-18,-14],[11,-11],[-15,-53],[14,-64],[-4,-34],[5,-31],[-5,-44],[-8,-4]],[[1668,3892],[-7,-10]],[[1661,3882],[0,-6]],[[1661,3876],[0,-1]],[[1661,3875],[0,-3]],[[1661,3872],[0,-3]],[[1661,3869],[-45,-11],[8,22],[-15,15],[-28,-33]],[[1581,3862],[0,-23]],[[1581,3839],[-1,0]],[[1580,3839],[-20,-20],[-4,30]],[[1556,3849],[-5,-4]],[[1551,3845],[-16,-11]],[[1535,3834],[-17,-24]],[[1518,3810],[-19,-10],[-19,27],[-2,38],[-10,0]],[[1689,4532],[25,31],[35,7],[25,-29]],[[1774,4541],[40,-24],[14,21],[-4,23],[36,84],[-11,30],[-31,39]],[[1818,4714],[-16,35]],[[1802,4749],[0,1]],[[1802,4750],[-16,24],[0,-21],[-17,-40],[-34,-55]],[[1735,4658],[-28,-74]],[[1707,4584],[-31,-14],[-15,6]],[[1640,4575],[4,61]],[[1644,4636],[-29,20]],[[1671,4814],[15,13],[33,-42]],[[1719,4785],[0,-1]],[[1719,478
 4],[13,-22],[19,10],[14,31],[7,-12],[15,27],[22,19],[13,-37],[33,-22]],[[1855,4778],[33,4],[30,33],[8,-20],[14,24],[8,62],[13,9],[10,38],[-23,19]],[[1948,4947],[-21,-34],[-14,12],[13,35],[-13,64],[14,71],[21,44],[23,26],[-26,45]],[[1945,5210],[-13,19],[-37,-23],[-10,19],[40,22],[5,-12],[20,21],[-22,47],[-10,-10],[-33,41]],[[1885,5334],[3,60],[58,40],[6,-5]],[[1952,5429],[1,-4]],[[1953,5425],[4,-6]],[[1957,5419],[11,-16]],[[1968,5403],[-3,-17]],[[1965,5386],[-2,-22]],[[1963,5364],[2,0]],[[1965,5364],[12,-2]],[[1977,5362],[1,1]],[[1978,5363],[20,-37]],[[1998,5326],[18,-35]],[[2016,5291],[0,-1]],[[2016,5290],[33,-65],[10,10],[-10,26]],[[2049,5261],[-16,46],[36,28],[33,-70],[-21,-38],[2,-39],[-6,-33],[9,-29],[16,-12],[-6,-44],[15,-15],[-19,-49],[-22,6],[-21,26],[-20,-65],[22,-64],[-24,-47],[5,-15]],[[6486,2189],[15,1],[1,29],[38,35],[24,3],[15,31],[21,13],[31,0],[5,68],[12,13],[3,-67],[12,-27],[26,-18],[-8,-55],[2,-28],[15,-43],[44,-39],[38,19],[2,37],[11,23],[7,45],[-1,81]],[[7025,1781
 ],[-5,-37],[-29,-22],[-22,-27],[-29,-93],[-19,0],[-29,-40],[-47,-30]],[[7095,5422],[25,50],[3,21],[29,13],[20,43]],[[7637,5406],[21,-17],[41,-90],[12,16],[17,-61]],[[1824,6740],[-7,-1]],[[1817,6739],[-35,9],[-5,21],[53,45],[9,26],[14,1],[-1,26],[15,48],[60,71],[8,19],[23,12],[25,49],[19,5],[5,31],[29,30],[-21,49],[12,39],[1,43],[-25,85],[18,25],[60,2],[0,19],[46,-2],[15,29],[10,-2],[20,70],[-14,48],[54,19]],[[7669,6249],[15,24],[8,-35],[12,36],[19,-11],[32,19],[6,14],[50,27],[32,-37],[2,-35],[15,-9],[34,25],[13,-2],[48,47],[42,-45],[32,-2]],[[1995,1123],[-14,0],[-18,27],[8,39],[-30,7],[-42,-79],[-24,-6],[-10,-30],[-31,19],[-14,24],[20,92],[25,25],[-7,22],[7,32],[-20,52],[30,68],[-5,26],[15,51],[-20,7],[-20,-12],[-11,12],[-39,2],[-28,9],[-12,24]],[[6350,6301],[1,25],[-14,17],[-29,73],[-1,26],[-24,37],[2,17],[-36,33],[11,36],[-13,36],[-15,-6],[-8,24],[19,13],[3,20],[-21,2],[-19,25],[-5,37],[-22,17],[-3,36],[-24,18],[-14,26]],[[6138,6813],[15,29],[-5,67],[16,28],[-5,19],[27,64]],[[6609
 ,6825],[-29,-57],[-36,-93],[-16,-37],[4,-33],[-9,-44],[19,-32],[-8,-33],[3,-23],[-24,-19],[-13,-45],[50,-29],[-33,-47],[1,-28],[-16,-27],[-10,-45],[-1,-34],[-25,-32],[-34,-28],[-29,7],[-18,-13],[7,-50],[-24,-19],[5,-15]],[[5823,8048],[-41,31],[-17,20],[-17,-10],[-6,-25],[15,-76],[-21,-13],[-25,2],[-5,-13]],[[5706,7964],[-17,9]],[[5689,7973],[-1,0]],[[5688,7973],[-54,26],[1,43],[-23,-22],[-20,25],[6,25],[-4,25]],[[5594,8095],[8,20],[-30,65],[-2,37],[20,60],[-26,41],[1,20]],[[5565,8338],[-10,43],[-25,18],[-12,32],[-14,-15],[-11,28],[-36,-2],[-19,-12],[-12,46],[17,13],[10,59],[-7,49],[12,23]],[[5458,8620],[-3,28],[11,10],[-24,42],[-38,25],[-2,17],[-26,-20],[-8,12],[27,34]],[[5395,8768],[-10,36]],[[5385,8804],[30,30],[18,-4],[19,20],[-14,34],[-16,-14],[-32,-5],[-14,20],[2,22],[-11,48],[16,0],[31,43],[2,23],[31,-3],[34,16],[-3,32],[17,-2],[0,52],[53,-13],[0,-23],[42,-9],[12,-38],[14,1],[8,-30],[-14,-6],[-7,-52]],[[5603,8946],[-16,-26],[-20,-10],[-25,-28],[-5,-25],[15,-17],[-11,-16],[26,-
 6],[-6,-17]],[[5561,8801],[12,-35],[3,-36],[20,-19],[18,49]],[[5614,8760],[24,-16],[0,-22],[19,3],[18,-22],[13,-57],[27,-21]],[[5854,8252],[13,-37],[-17,-20]],[[5850,8195],[-21,-22],[0,-32]],[[5829,8141],[-11,-28],[5,-65]],[[4860,7215],[2,10]],[[4862,7225],[11,64],[27,-4]],[[4900,7285],[8,42],[19,28]],[[4927,7355],[13,5]],[[4940,7360],[6,-24],[20,6],[37,-21],[29,-39],[-6,-12]],[[5026,7270],[0,-1]],[[5026,7269],[-6,-15],[15,-69],[9,1],[17,-43],[16,-142],[13,-5],[9,-33],[2,-47],[19,-50],[2,-57],[12,-21],[8,-43],[25,-39],[8,-53],[45,-31],[52,-11]],[[5018,6257],[-19,-5],[-18,26],[-26,-38],[-13,22],[-9,-13],[-20,7],[7,22],[-36,31],[-8,24]],[[6168,7188],[-30,3],[-25,45],[-1,27],[-40,36],[-44,-14],[-16,23],[5,15],[-23,29],[11,20]],[[6005,7372],[-26,40],[14,17],[19,3],[1,31],[-25,27],[24,58]],[[6012,7548],[15,27],[37,13],[-10,11]],[[6054,7599],[0,-2]],[[6054,7599],[-1,-2]],[[6053,7597],[1,0]],[[6053,7597],[-9,18]],[[6044,7615],[1,11]],[[6045,7626],[9,29],[-16,32],[8,11]],[[6046,7698],[31,22
 ],[41,-55],[47,-18]],[[6165,7647],[16,-8],[23,11]],[[6204,7650],[-11,24]],[[6193,7674],[1,18],[17,-9]],[[6211,7683],[44,47]],[[6255,7730],[13,40]],[[6268,7770],[5,7]],[[6273,7777],[6,-7]],[[6279,7770],[21,-30],[28,-23]],[[6328,7717],[22,10]],[[6350,7727],[20,-5],[23,-25]],[[6393,7697],[-4,52],[19,5],[12,29]],[[6420,7783],[11,7]],[[6431,7790],[28,51]],[[1991,3975],[-6,-5]],[[1985,3970],[-3,-2]],[[1982,3968],[-34,16],[-25,-16],[-18,6],[-17,37],[-26,12],[-19,-28],[4,-15],[-12,-34],[-18,1],[-32,-49],[-18,-55],[0,-13]],[[1767,3830],[-1,-28]],[[1766,3802],[0,-1]],[[1766,3801],[-16,-35],[-26,14],[-5,27],[-16,12],[-2,-37],[-20,-1],[-16,-18]],[[1665,3763],[9,86],[-6,43]],[[2032,4847],[25,-16],[4,-25],[20,-30]],[[5614,8760],[11,63],[17,18],[-7,26],[3,35],[34,29],[3,47]],[[5675,8978],[16,26],[4,31],[-17,49],[-5,84],[13,13],[9,34],[15,-13],[0,-37],[-21,-11],[8,-17],[28,8],[11,18],[10,53],[-21,34],[-27,24],[-3,23]],[[5695,9297],[15,49],[16,-16],[14,21],[-5,62],[43,14],[42,-41]],[[5820,9386],[14,
 -4]],[[915,5170],[12,197],[-15,53],[-41,95],[-16,47],[32,26],[30,44],[39,89],[20,33]],[[976,5754],[14,-35],[26,-44],[22,-5],[50,-34],[28,13],[32,-1],[40,16],[46,1],[47,42],[33,6],[5,-13],[55,73],[14,-11],[37,34],[14,-1],[92,-98],[15,12]],[[1546,5709],[-10,-26],[35,-55],[-68,-16],[0,-24]],[[6046,7698],[-13,49],[8,22],[-10,31],[-50,60],[-9,27],[12,-2],[2,32]],[[5986,7917],[0,2]],[[5986,7919],[-8,5]],[[5978,7924],[-34,6]],[[5944,7930],[-21,24]],[[5923,7954],[-16,24],[-17,5],[-13,26]],[[5877,8009],[-9,-8],[-12,23],[-19,6]],[[5837,8030],[-6,7]],[[5831,8037],[-8,11]],[[6369,7972],[27,-11]],[[6396,7961],[0,-1]],[[6396,7960],[14,-4],[27,-41],[18,-17],[-3,-40],[7,-17]],[[2251,5147],[-11,22]],[[2240,5169],[12,23]],[[2252,5192],[16,40],[18,26],[-4,21],[-16,16],[1,21],[40,51],[-13,6]],[[2294,5373],[20,5]],[[2314,5378],[13,-23],[33,40],[-20,14]],[[2340,5409],[-8,7]],[[2332,5416],[6,10],[-21,38]],[[2317,5464],[-54,116]],[[2263,5580],[4,31],[-9,87],[13,57],[-27,33],[-24,11]],[[2220,5799],[0,1]],[[
 2391,5437],[6,-37],[34,35],[0,59],[-45,-17],[5,-40]],[[7753,8338],[-8,-21],[14,-34],[-25,-15]],[[7734,8268],[-26,-13],[-8,-19],[-48,-32]],[[7652,8204],[-7,-3]],[[7645,8201],[-19,-1],[-41,-43]],[[7585,8157],[-1,2]],[[7584,8159],[-17,14],[-21,0],[-2,-102],[-14,-34],[-52,-35],[-22,0],[-7,16],[-32,16]],[[7417,8034],[-39,-30],[-7,6],[-33,-20]],[[7338,7990],[-33,3]],[[7305,7993],[-48,-28],[-11,4]],[[7246,7969],[-7,1]],[[7239,7970],[-69,22],[-69,-18]],[[7101,7974],[-20,6],[-15,24],[-5,43],[6,8]],[[7067,8055],[0,1]],[[7067,8056],[-6,42],[6,17],[-13,33],[3,33],[17,7],[4,29],[37,-24],[9,57],[-14,25],[10,37],[-18,44],[1,36]],[[7225,8608],[23,17]],[[7248,8625],[20,-20],[-1,27],[22,23]],[[7289,8655],[1,0]],[[7290,8655],[1,-5]],[[7291,8650],[27,-9]],[[7318,8641],[9,13],[-1,-34]],[[7326,8620],[1,0]],[[7327,8620],[36,-41]],[[7363,8579],[-5,-6]],[[7358,8573],[0,-1]],[[7358,8572],[-1,1]],[[7357,8573],[1,0]],[[7357,8573],[0,1]],[[7357,8574],[-1,0]],[[7356,8574],[-21,-60],[30,-12],[1,12],[40,-13],[-2,-
 50],[-14,-26],[15,0]],[[7405,8425],[-4,-36],[17,12],[28,-15]],[[7446,8386],[18,4]],[[7464,8390],[26,-17]],[[7490,8373],[-13,-33],[-7,-42],[11,-35]],[[7481,8263],[18,-7]],[[7499,8256],[34,-2],[11,-51]],[[7544,8203],[19,11]],[[7563,8214],[6,11],[43,18]],[[7612,8243],[31,6],[21,25],[19,-10],[4,24],[40,37],[10,16],[16,-3]],[[4709,8901],[-6,-27]],[[4703,8874],[6,-21],[19,-13],[-5,-16],[16,-15],[13,-57]],[[4752,8752],[-19,-44],[12,-69]],[[4745,8639],[-1,-1]],[[4744,8638],[0,1]],[[4744,8639],[13,-16],[-6,-26],[-38,-13],[-21,-26],[-26,-16],[-39,3]],[[4627,8545],[0,-1]],[[4627,8544],[-4,-24],[-18,-5],[-34,12],[-31,-35],[-18,-81],[10,-53],[33,-26]],[[4565,8332],[37,-33],[14,-28],[4,-48],[-10,-10],[-46,-4]],[[4564,8209],[-26,45],[-34,-3],[-15,7],[-35,-4],[-32,-21],[4,-72],[5,-4]],[[4431,8157],[1,0]],[[4432,8157],[-5,-55],[-15,0],[-9,-25],[-71,-13]],[[4332,8064],[-15,101],[-13,16],[2,25],[-17,27],[-26,-36]],[[4263,8197],[2,19],[-19,24],[-20,-9],[14,117]],[[4240,8348],[6,31],[18,34],[25,9],[1,13
 ],[32,66],[-4,22]],[[4318,8523],[2,18],[-18,0],[-29,29],[-18,-3],[2,51],[14,9],[8,84]],[[4279,8711],[23,-9],[51,7],[39,-28],[56,15],[36,40],[24,16],[33,-36],[16,2],[23,34],[4,56],[10,27],[17,15],[43,-2],[7,30],[23,33],[25,-10]],[[4879,7939],[-21,20],[-17,32],[12,9],[29,60]],[[4882,8060],[6,-13],[19,15]],[[4907,8062],[13,19],[-10,8],[3,37],[19,48],[-15,35],[-21,18],[-32,-1],[9,18],[4,42],[-20,40],[18,5],[17,35],[-12,62],[-7,114],[-14,47],[-2,36],[8,15]],[[4865,8640],[25,31],[49,3],[5,-47],[14,-25],[-9,-42],[17,-34],[21,-16],[8,-23],[71,-21],[28,20],[18,-6],[4,17],[29,-8]],[[5145,8489],[14,-2]],[[5159,8487],[-7,-39],[11,-58],[2,-51],[22,4],[5,-52],[-17,-4],[12,-56],[14,0],[13,-27]],[[5214,8204],[-7,-26],[6,-69]],[[5213,8109],[-1,0]],[[5212,8109],[-18,-25],[27,-10],[10,-40],[-24,-50],[8,-20],[-49,-21],[9,-17],[27,7],[9,-23],[31,-7]],[[5242,7903],[-3,-68],[13,-51]],[[5252,7784],[-32,43],[-7,-14],[-34,7],[-8,25],[-27,-38],[-4,7]],[[5140,7814],[-34,4],[-9,17],[-30,-31],[-25,12],[4,31],[-3
 ,51],[-14,2],[-24,39],[-16,44],[-11,-5]],[[4978,7978],[-29,-39],[-25,17],[-45,-17]],[[5594,8095],[-28,11]],[[5566,8106],[-7,-9],[-32,9],[-2,-9],[-31,2]],[[5494,8099],[-19,14],[-37,-19],[13,-36],[-31,-21]],[[5420,8037],[-35,-6],[-25,38],[-109,53],[-38,-13]],[[5159,8487],[29,5],[14,25],[1,45],[12,20],[13,-18],[5,32],[18,9],[8,43]],[[5259,8648],[4,9]],[[5263,8657],[19,14],[-6,40],[9,56],[15,13]],[[5300,8780],[31,-1],[38,26],[16,-1]],[[4591,7984],[-12,57],[-33,19],[-39,10],[0,29]],[[4507,8099],[-4,25],[28,11],[-1,29],[18,2],[1,35],[15,8]],[[4752,8752],[23,-24],[37,6],[4,-68],[16,0],[33,-26]],[[4882,8060],[0,15]],[[4882,8075],[-30,-35],[-11,19],[-20,-15],[-51,17],[-7,29],[-17,13],[-4,31],[-16,5],[-6,-44],[2,-67],[-11,-24],[-78,-27],[-42,7]],[[6701,8188],[18,17],[-18,10],[-16,25],[-12,2]],[[6673,8242],[-33,17],[7,21]],[[6647,8280],[-3,24],[-47,27],[1,38],[-12,6],[15,23],[3,23],[17,-8],[23,11],[27,28],[18,-19]],[[6689,8433],[12,-22],[20,18]],[[6721,8429],[38,22]],[[7101,7974],[-1,-11]],[[7
 100,7963],[-6,-46]],[[7094,7917],[-24,-10],[6,-59],[-27,-54],[-38,-3]],[[976,5754],[25,34],[19,-43],[43,31],[30,6],[81,44],[45,47],[55,-2],[35,31],[29,58],[12,53],[18,36],[36,37],[25,14],[23,-2],[33,54],[19,20],[-19,8],[-22,26],[-23,40],[20,15],[18,46],[-13,16],[33,35],[22,15],[21,-10]],[[1541,6363],[40,4],[20,-14],[20,-64],[14,-11]],[[1635,6278],[15,-16],[-5,-86],[-29,-65],[-12,-10]],[[1604,6101],[-31,-34],[3,-15],[84,-70],[11,-5]],[[1671,5977],[-5,-19],[-35,-57],[-5,7],[-28,-35],[35,-93],[-87,-71]],[[3974,7239],[7,5]],[[3981,7244],[11,9],[23,43],[2,27],[21,56],[13,60],[32,35],[33,-2],[20,42],[-4,38],[26,63],[24,-29],[64,-7],[1,-77],[63,32],[20,21],[12,27],[22,10]],[[4364,7592],[14,23],[-8,30],[18,23]],[[4388,7668],[38,0],[16,-18],[22,-7],[-11,-28],[3,-45]],[[4456,7570],[-21,2],[-6,-38],[-17,-33],[10,-34],[18,-5],[-8,-54],[11,-4]],[[4443,7404],[20,3],[9,-14],[15,10],[28,-37],[13,-37],[26,16],[11,-78],[-4,-35]],[[4003,7787],[10,32],[-10,62],[-29,49],[3,96],[-22,5],[-16,24],[-24,-13]
 ,[-23,4],[-13,31],[-2,32],[-13,30]],[[3864,8139],[7,58],[-12,51],[3,49],[20,35],[5,54]],[[3887,8386],[20,21],[23,-2],[57,110],[0,76],[29,-6],[14,13],[11,-10],[16,-55],[11,-14],[15,17],[-1,-48],[19,-24],[22,-11],[12,-50],[12,-20],[0,-37],[62,-17],[31,19]],[[4263,8197],[3,-18],[-25,-42],[8,-58],[26,-50],[-23,-27],[-28,-14],[-4,-29],[-21,-23]],[[4199,7936],[-39,-25],[-20,11],[-24,32],[-15,-6],[-31,-53],[18,-29]],[[4088,7866],[3,-7]],[[4091,7859],[2,-19],[-25,-17],[-12,4],[-53,-40]],[[3428,7290],[-20,-14],[-47,-5],[-39,-12],[-36,-63],[-51,-29],[-20,0],[-34,18],[-57,-24],[-22,-24],[-29,-15]],[[3378,7523],[28,16],[2,18]],[[3408,7557],[27,39],[40,23],[20,22]],[[3495,7641],[60,41],[13,22],[2,45]],[[3570,7749],[130,27],[56,-19],[14,-54],[19,-41],[26,-33],[27,-2],[5,-19],[43,-3]],[[3890,7605],[2,-14],[-43,-39],[-47,-13],[-14,-47],[-47,-52],[-17,5],[-10,-33],[-15,-3],[-9,-22],[-29,-6]],[[4940,7360],[-10,53]],[[4930,7413],[36,10],[12,-23],[11,5],[-5,38]],[[4984,7443],[9,5]],[[4993,7448],[1,0]],
 [[4994,7448],[11,22],[-8,42],[10,7],[-11,33]],[[4996,7552],[-22,43],[25,9],[15,21]],[[5014,7625],[16,9],[5,24],[22,-19],[16,5],[1,-41],[24,-23],[24,-50],[27,15]],[[5149,7545],[23,31],[22,-31],[0,-28],[15,-10],[-1,-31]],[[5208,7476],[4,-3

<TRUNCATED>

[17/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ne-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ne-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ne-municipalities.json
deleted file mode 100644
index 64a84bf..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ne-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":6402,"properties":{"name":"Bevaix"},"arcs":[[[-90,-80,97,-26,-25]]]},{"type":"MultiPolygon","id":6404,"properties":{"name":"Boudry"},"arcs":[[[-30,78,79,80,-8,81,-64,82]]]},{"type":"MultiPolygon","id":6405,"properties":{"name":"Brot-Dessous"},"arcs":[[[-82,-7,-84,-65]]]},{"type":"MultiPolygon","id":6407,"properties":{"name":"Corcelles-Cormondrèche"},"arcs":[[[-112,-67,-15,122]]]},{"type":"MultiPolygon","id":6408,"properties":{"name":"Cortaillod"},"arcs":[[[-29,-28,-27,-98,-79]]]},{"type":"MultiPolygon","id":6409,"properties":{"name":"Fresens"},"arcs":[[[127,-119,-117,-127]]]},{"type":"MultiPolygon","id":6410,"properties":{"name":"Gorgier"},"arcs":[[[85,86,87,88,-9,-81,89,-24]]]},{"type":"MultiPolygon","id":6411,"properties":{"name":"Montalchez"},"arcs":[[[118,119,-88,-118]]]},{"type":"MultiPolygon","id":6412,"properties":{"name":"Peseux"},"arcs":[[[-113,-123,-14,-12
 5,-72]]]},{"type":"MultiPolygon","id":6413,"properties":{"name":"Rochefort"},"arcs":[[[63,64,65,-55,-16,66,67]]]},{"type":"MultiPolygon","id":6414,"properties":{"name":"Saint-Aubin-Sauges"},"arcs":[[[115,116,117,-87,-86,-23,-22]]]},{"type":"MultiPolygon","id":6415,"properties":{"name":"Vaumarcus"},"arcs":[[[125,126,-116,-21]]]},{"type":"MultiPolygon","id":6416,"properties":{"name":"Milvignes"},"arcs":[[[-31,-83,-68,111,112,-71]]]},{"type":"MultiPolygon","id":6421,"properties":{"name":"La Chaux-de-Fonds"},"arcs":[[[42,43,44,45,-18]]]},{"type":"MultiPolygon","id":6422,"properties":{"name":"Les Planchettes"},"arcs":[[[94,-45,-60,95]]]},{"type":"MultiPolygon","id":6423,"properties":{"name":"La Sagne"},"arcs":[[[52,53,-43,-17,54,55]]]},{"type":"MultiPolygon","id":6431,"properties":{"name":"Les Brenets"},"arcs":[[[96,-96,-59,-58]]]},{"type":"MultiPolygon","id":6432,"properties":{"name":"La Brévine"},"arcs":[[[46,47,48,49,-4]]]},{"type":"MultiPolygon","id":6433,"properties":{"name":"Brot-
 Plamboz"},"arcs":[[[-70,-56,-66,83,-6]]]},{"type":"MultiPolygon","id":6434,"properties":{"name":"Le Cerneux-Péquignot"},"arcs":[[[84,-63,-78,-48]]]},{"type":"MultiPolygon","id":6435,"properties":{"name":"La Chaux-du-Milieu"},"arcs":[[[77,-62,-69,-49]]]},{"type":"MultiPolygon","id":6436,"properties":{"name":"Le Locle"},"arcs":[[[56,57,58,59,-44,-54,60,61,62]]]},{"type":"MultiPolygon","id":6437,"properties":{"name":"Les Ponts-de-Martel"},"arcs":[[[-50,68,-61,-53,69,-5]]]},{"type":"MultiPolygon","id":6451,"properties":{"name":"Cornaux"},"arcs":[[[-121,-110,-114,123]]]},{"type":"MultiPolygon","id":6452,"properties":{"name":"Cressier (NE)"},"arcs":[[[113,-109,-75,-107,-100,114]]]},{"type":"MultiPolygon","id":6453,"properties":{"name":"Enges"},"arcs":[[[106,-74,-11,-93,-101]]]},{"type":"MultiPolygon","id":6454,"properties":{"name":"Hauterive (NE)"},"arcs":[[[-37,-36,-77,-108]]]},{"type":"MultiPolygon","id":6455,"properties":{"name":"Le Landeron"},"arcs":[[[98,99,100,-92,101,102,103,104,1
 05]]]},{"type":"MultiPolygon","id":6456,"properties":{"name":"Lignières"},"arcs":[[[91,92,-20,93]]]},{"type":"MultiPolygon","id":6458,"properties":{"name":"Neuchâtel"},"arcs":[[[-35,33,-34,-33,-32,70,71,72,-12,73,74,75,76]]]},{"type":"MultiPolygon","id":6459,"properties":{"name":"Saint-Blaise"},"arcs":[[[-38,107,-76,108,109,110]]]},{"type":"MultiPolygon","id":6461,"properties":{"name":"La Tène"},"arcs":[[[-39,-111,120,121]],[[-41,129]]]},{"type":"MultiPolygon","id":6485,"properties":{"name":"Valangin"},"arcs":[[[124,-13,-73]]]},{"type":"MultiPolygon","id":6487,"properties":{"name":"Val-de-Ruz"},"arcs":[[[10,11,12,13,14,15,16,17,18,19]]]},{"type":"MultiPolygon","id":6504,"properties":{"name":"La Côte-aux-Fées"},"arcs":[[[-52,-1,90]]]},{"type":"MultiPolygon","id":6511,"properties":{"name":"Les Verrières"},"arcs":[[[50,-2,51]]]},{"type":"MultiPolygon","id":6512,"properties":{"name":"Val-de-Travers"},"arcs":[[[0,1,2,3,4,5,6,7,8,9]]]},{"type":"MultiPolygon","id":9150,"properties":{
 "name":"Bielersee (NE)"},"arcs":[[[-106,-105,-104,-103,128]]]},{"type":"MultiPolygon","id":9155,"properties":{"name":"Lac de Neuchâtel (NE)"},"arcs":[[[20,21,22,23,24,25,26,27,28,29,30,31,32,33,-34,34,35,36,37,38,39,40,41]]]}]}},"arcs":[[[1429,371],[-108,112],[-67,104],[-51,73],[-65,67],[-27,46],[-64,136],[-87,205]],[[960,1114],[141,366],[2,106],[126,51],[-32,132],[-39,-19],[-16,66],[-3,53],[-47,2],[-37,9],[-5,128],[-12,69],[-9,168],[-3,151],[24,56],[31,14],[-34,268],[-34,-29],[-22,-33],[-26,-14],[-35,100],[8,16],[-8,31],[-8,-11],[-31,71],[-26,39],[0,30],[17,40],[16,12],[-24,60],[-28,-24],[-7,15],[14,84],[16,-23],[29,24],[-19,21],[-48,101],[4,17],[-15,31],[-12,-13],[-43,39],[-9,-9],[-28,48],[-19,-36],[-66,68],[-42,62],[-34,-80]],[[567,3371],[32,81],[79,156],[112,171],[30,38]],[[820,3817],[41,-99],[44,-124],[61,-93],[28,-57],[89,-119],[162,-38],[250,-153],[79,-53],[22,-23],[23,5],[60,49],[89,52],[50,8],[11,-7],[154,-13],[150,44],[125,57],[308,6],[59,38],[58,64],[39,55],[166,103],[22
 3,38],[37,-82],[98,123],[52,49],[98,130],[24,41],[99,119]],[[3519,3937],[15,-68],[79,-2],[185,121],[75,94],[83,-6],[340,-335]],[[4296,3741],[59,-17],[114,-139],[14,-21],[111,-108],[27,30],[54,28],[23,18]],[[4698,3532],[-74,-160],[45,-60]],[[4669,3312],[88,-122],[56,-114],[42,-50]],[[4855,3026],[-51,-4],[-123,-39],[-69,9],[-216,-70],[-30,-27],[-8,-31],[12,-38],[25,-40],[0,-14]],[[4395,2772],[-79,-40],[-119,-72],[-279,-163],[-82,-47],[-67,-50],[-174,-107],[-210,-201],[-13,-24],[-104,-82],[-5,-14],[-23,-130],[-98,-190],[-138,-266],[-49,-92],[-190,11],[-123,-70],[-122,-94],[-25,-2],[-55,26],[-88,0],[-196,-118],[-67,-50],[-171,-153],[-34,-7],[-12,-16],[-22,5],[-44,-10],[-44,-45],[-44,-74],[-17,-18],[-94,-53],[-20,0],[-56,-93],[-55,-111],[-30,-40],[-17,-11]],[[8869,7739],[-68,-227],[-54,-97],[-56,-150],[-35,-133],[-25,-50],[-29,-28],[-55,-128],[-53,-84],[-27,-76]],[[8467,6766],[-24,-42],[-87,-290],[-37,-161],[-54,-200],[-65,-148],[-80,-132],[-127,-55],[-91,-64],[-50,-55],[-45,-57],[-52,-5
 7],[-41,-70],[-50,-55],[-72,-69],[-122,-126],[-78,-58],[-56,-72]],[[7336,5055],[-7,49],[30,131],[29,74],[-37,64],[-49,33],[-24,57],[21,35],[11,35],[18,30],[-9,21],[26,26],[2,45],[-28,30],[-22,51],[-35,-159],[-28,-104],[13,-69],[-15,-42],[-71,59],[-58,-17],[-59,-25],[-35,-47],[-130,-65],[-14,-33],[10,-16],[13,-61],[-18,-31],[-14,-62],[4,-25],[-43,-92],[29,-9]],[[6846,4938],[-88,-51],[-13,-38]],[[6745,4849],[-35,-57],[-46,-41],[-30,-32],[-32,-11],[-61,-38],[-85,-44],[1,-29],[-38,-48],[22,-73],[0,-22],[-39,10],[-26,-28],[-4,10],[-22,-25],[-45,4],[-7,11]],[[6298,4436],[-18,71],[-26,-21],[-17,0],[-17,18],[-18,-5],[-14,34],[-18,9],[-12,36],[-24,13],[-44,50],[-73,73],[-26,-7],[-35,31],[20,41],[-13,12],[-52,17],[10,25],[-32,29],[-73,82],[-30,79],[-25,32],[-19,5],[-29,32],[-78,55],[-2,33],[-15,4],[-9,-27],[-63,54]],[[5546,5211],[10,23],[75,130],[116,172],[68,124],[28,60],[35,148],[16,23],[14,53],[31,47],[36,101],[49,113],[12,38],[49,97],[18,56],[50,80],[78,144],[23,59],[38,86],[36,107]],[[63
 28,6872],[94,126],[71,178],[61,83],[91,196]],[[6645,7455],[126,94],[50,46],[31,13],[87,62],[61,55],[-4,5],[86,80],[31,23],[171,137],[106,67],[35,42],[54,40],[78,87],[48,108],[65,-91],[35,-32],[45,31],[9,-18],[52,45],[61,41],[74,28],[32,0],[26,14],[56,17],[89,19],[62,4],[67,28],[12,-8],[26,13],[106,26],[87,27],[39,21],[93,41],[58,71],[1,17],[45,10],[22,12],[0,18],[25,24],[38,-14],[5,-18],[46,7],[34,16],[49,-3],[54,7],[45,0],[45,87],[38,13],[109,-29],[26,-57],[-33,-36],[-83,-116],[-15,-5],[-57,-122],[-26,-41],[-37,-71]],[[9030,8290],[-13,-14],[-26,-88],[-42,-90],[-25,-175],[-55,-184]],[[4910,692],[5,65],[12,56],[65,95],[2,28]],[[4994,936],[3,27],[19,50]],[[5016,1013],[4,-1],[24,68],[9,54],[21,63],[43,56],[-9,8],[18,18],[-2,21],[34,37],[43,-8],[5,-30],[12,7],[5,40],[20,12],[13,-12],[9,31],[32,38],[28,84],[4,29]],[[5329,1528],[48,55],[18,39],[15,13],[8,59],[14,34],[34,24],[42,39],[41,84],[25,25],[66,135],[26,64]],[[5666,2099],[24,28],[45,29],[32,13],[11,-10],[25,14],[1,22],[61,101],[22,
 32],[24,16],[6,-26],[21,-10]],[[5938,2308],[-6,48],[65,20],[19,28],[12,0],[40,60],[37,-4],[61,-47],[19,30],[9,77],[-2,28],[14,87]],[[6206,2635],[16,57],[29,50],[16,10],[51,77]],[[6318,2829],[6,6]],[[6324,2835],[18,-9],[28,13],[23,-3],[-2,-17],[37,19],[-13,19],[24,29],[18,-5],[25,17],[28,-12],[27,42],[58,44],[4,12],[49,20],[38,35]],[[6686,3039],[7,20],[-9,61],[13,51],[19,93],[-8,5],[11,56],[19,47]],[[6738,3372],[7,106],[-22,107],[9,20],[10,62],[-19,63],[16,81],[-10,17],[27,21],[6,-17],[65,58],[13,50],[12,-4],[26,37],[-16,16],[21,36],[35,6],[32,23],[22,-3],[70,40],[9,16]],[[7051,4107],[12,-35],[67,30],[5,30],[51,19],[14,-9],[52,16],[32,31],[54,84],[8,29],[64,52],[45,43],[24,-14],[20,19],[3,32],[38,0],[21,-38],[31,3],[42,39],[5,-11],[24,21],[0,-17],[22,-2],[29,25]],[[7714,4454],[32,46],[49,34],[77,33],[51,50],[7,15],[46,-3],[15,11],[12,37],[25,31],[-13,63],[17,23],[73,75],[3,-4]],[[8108,4865],[0,-1]],[[8108,4865],[43,47],[24,16],[28,0]],[[8203,4928],[39,48],[38,20],[13,39],[48,43]],[[8
 341,5078],[24,15]],[[8365,5093],[53,-38],[11,-21],[22,11],[22,36],[30,8],[52,-76]],[[8555,5013],[21,-40],[-2,-22],[20,-19],[-9,-26],[15,-14],[7,20],[34,-2],[28,-22],[26,-2],[6,-31],[47,-38],[26,-2],[32,-16],[8,23],[22,-11],[-6,27],[17,33],[24,-1],[5,-14],[28,28],[16,-12],[21,16],[24,-8],[2,-55],[23,-5],[42,76],[19,23]],[[9051,4919],[204,-764]],[[9255,4155],[-24,-26],[-11,13],[-6,-23]],[[9214,4119],[-64,29],[-319,122],[-139,57],[-71,-65],[-1057,-1000],[-497,-861],[-466,-495],[-324,-437],[-624,-848],[-371,-497],[-372,568]],[[6328,6872],[-99,144],[-173,421],[-61,-80],[-89,-93],[-9,16],[-47,-49],[8,-17],[-62,-66],[6,-37],[-20,-11],[-64,-2],[-32,-26],[-42,-45],[-67,-18],[10,-19],[-4,-24],[-32,-2],[-33,-33],[-23,-56],[-78,-148]],[[5417,6727],[-28,27],[3,79],[16,57],[-17,7],[14,61],[-11,43],[-13,4],[-28,50],[-25,-4],[-29,60],[-25,-10],[-25,14],[7,30],[-16,31],[-31,-18],[-19,79],[-10,9],[-11,48],[-51,142],[18,25],[-51,87],[12,25],[-10,10]],[[5087,7583],[20,59],[43,35],[-27,48],[18,25],[12,-
 19],[101,106],[32,14],[-4,12],[142,195],[23,19],[54,20],[-1,16],[43,16],[87,93],[62,26],[11,107],[-7,173],[-61,81],[-34,66],[-44,43],[-37,75]],[[5520,8793],[31,22],[43,45],[31,-7],[43,12],[63,43],[13,36],[7,81],[14,32],[18,5],[64,-10],[31,20],[43,102],[39,50],[48,30],[20,34],[25,82],[22,31],[28,-9],[42,45],[58,49],[43,45],[-2,55],[15,49],[13,14],[31,9],[43,28],[25,3],[27,23],[26,81],[60,84],[8,31],[34,48],[6,41],[44,2],[43,-115],[81,-227],[23,-50],[13,-62],[120,-300],[18,-71],[53,-116],[17,-61],[43,-90],[-86,-505],[-37,-213],[-55,-65],[-86,-108],[-53,-333],[-25,-228]],[[820,3817],[66,74],[76,108],[24,26],[123,-268],[43,32],[43,24],[53,54],[156,84],[38,-7],[25,14],[101,32],[40,4],[69,41],[171,94],[76,35],[46,15],[33,0],[30,28],[52,34],[71,27],[43,39],[1,17],[45,22],[73,72],[40,48],[39,29],[39,37]],[[2436,4532],[236,-166],[139,-124],[11,21],[-5,56],[44,51],[38,12],[-6,55],[202,134],[253,239]],[[3348,4810],[30,-63],[-11,-11],[43,-93],[-16,-12],[30,-251],[155,-367]],[[3579,4013],[-60,-7
 6]],[[447,919],[15,204],[14,264],[-14,51],[-85,281],[-91,197],[-152,337],[-37,64],[-50,67],[-47,228],[20,6],[57,46],[21,6],[44,43],[71,60],[48,62],[30,50],[31,34],[3,22],[24,21],[39,64],[39,53],[16,71],[13,32],[46,67],[19,60],[46,62]],[[960,1114],[-174,-61],[-174,-72],[-165,-62]],[[5321,5358],[-88,62],[-80,62],[-67,46],[-110,93],[-82,63]],[[4894,5684],[15,6],[-36,86],[43,36],[3,17],[29,27],[4,-11],[29,27],[42,59],[62,64],[49,28],[31,30],[2,26],[22,53],[34,67],[9,50],[31,-6],[20,69],[27,-8],[11,57],[30,53],[5,21],[25,222],[20,45],[24,9],[-8,16]],[[5546,5211],[-4,2]],[[5542,5213],[-37,21],[-40,15],[-41,32],[-26,34],[-8,-10],[-20,28],[-8,-5],[-41,30]],[[4083,6024],[41,60],[65,111],[46,20],[41,97],[118,97],[6,27]],[[4400,6436],[12,6],[-4,56],[-43,2],[23,59],[1,26],[31,9],[47,42],[0,28]],[[4467,6664],[48,49],[44,58],[56,96],[5,29],[34,16],[9,36],[17,-17],[10,34],[41,46],[66,107],[22,57],[11,-24],[22,12],[-11,45],[-22,11],[79,118],[58,31],[12,29],[4,38],[36,24],[19,30],[34,81]],[[5061,757
 0],[15,-13],[11,26]],[[4894,5684],[-107,-167]],[[4787,5517],[-75,132],[-128,133],[-105,23],[-97,-10],[-111,-5]],[[4271,5790],[-50,66],[-19,36],[-18,3],[-53,75],[-48,54]],[[5942,3853],[-17,-25],[-18,11],[-47,-63],[-47,-49],[-4,6],[-27,-42],[-4,-26],[-30,-35],[-20,-10],[-42,25],[-42,-15],[-23,-45],[-66,16],[-50,25],[-23,22],[-62,-9],[0,-25],[-34,-15],[-19,13]],[[5367,3612],[-31,160],[-53,203]],[[5283,3975],[-111,278],[-131,303],[1,5],[58,42],[34,51],[10,-17],[47,71],[41,74],[35,-42],[13,23],[51,53],[-6,10],[24,46],[13,7],[5,-26],[18,-3],[-10,37],[39,85],[38,60],[14,8],[39,61],[7,43],[30,69]],[[6298,4436],[21,-173]],[[6319,4263],[12,-66],[15,-37],[2,-34],[-12,-59],[-43,-19],[-47,-12],[-23,39],[-35,-13],[-50,-10],[-74,-31],[-73,-72],[-65,-71],[16,-25]],[[3579,4013],[22,38],[80,105],[28,28],[60,114],[126,76],[144,68],[168,157],[57,49],[85,121],[96,209],[31,127],[62,92],[79,142],[58,72],[112,106]],[[5321,5358],[-42,-25],[-103,-151],[-119,-111],[-32,-56],[-12,-82],[-18,-28],[-50,-9],[-19,-
 16],[-11,-64],[-13,-27],[-35,-22],[-12,-33],[-38,-18],[-32,-56],[-21,1],[-15,-30],[4,-36],[-12,-11],[8,-27],[-64,-122],[-7,-36],[-20,1],[-21,23],[-22,-40],[-12,-2],[7,-38],[-50,-41],[-5,-28],[-37,-56],[-42,-19],[-16,-40],[-37,-16],[-34,-44],[-32,-28],[-8,-23],[28,-41],[-8,-60],[-22,-77],[-51,-129]],[[7051,4107],[-10,47],[-10,86]],[[7031,4240],[93,46],[-17,76],[-4,40],[14,49],[-6,88],[11,61],[-20,60],[-7,37],[9,61],[-28,36],[46,33],[6,81]],[[7128,4908],[72,-5],[34,72],[26,15],[76,65]],[[8467,6766],[19,-63],[43,-212],[11,-114]],[[8540,6377],[-8,-6]],[[8532,6371],[-17,-13],[-46,-102],[-26,-37],[-34,-71],[-35,-45],[-21,12],[-4,-44],[-11,-36],[-50,-90],[-24,-21],[-28,-79],[-48,-79],[-48,-47],[-2,-55],[-20,-26]],[[8118,5638],[-103,-137],[-14,-5],[100,-178],[20,-86],[2,-58],[17,-52],[20,-49],[37,-108],[-11,-12],[17,-25]],[[3348,4810],[13,14],[232,140],[39,17],[33,28],[181,138],[202,97],[-18,69],[168,166],[104,39],[90,28],[156,60],[-101,57],[-77,40],[-99,87]],[[6686,3039],[-29,88],[-21,24],
 [-208,98],[-14,-7],[-62,36],[-34,-3],[-28,-27],[-61,-83],[-22,-6],[3,-20],[-20,-7],[-26,-34],[-37,-6],[-24,-29],[-65,-118]],[[6038,2945],[-36,-7],[-17,-32],[-81,44],[4,12],[-78,20],[-39,-19],[-13,-36],[-18,-25],[-55,3],[-20,13],[-13,-48],[-97,-21],[-14,4],[-56,41],[-48,43],[-25,35],[-22,15],[-42,59],[4,44],[-14,52],[-5,60],[-11,-16],[-23,14],[-10,-29],[-30,-21],[-31,-32],[-37,-5],[-16,-21],[-14,-44]],[[5181,3048],[-69,-15],[-24,-36],[-35,-31],[-46,-60],[-73,-34],[-39,-3],[-59,15],[22,99],[-3,43]],[[4669,3312],[65,-6],[49,-34],[12,-43],[46,-39],[17,-8],[26,16],[25,56],[26,34],[42,7],[52,20],[27,30],[12,32],[31,11],[69,84],[48,6],[78,46],[22,4],[14,-16],[26,13],[12,34],[-11,35],[10,18]],[[5942,3853],[29,-17],[28,-46],[39,-25],[16,5],[30,-25],[2,-27],[-20,9],[-12,-16],[38,-79],[-7,-6],[33,-89],[23,-15],[5,-20],[57,79],[29,-25],[30,-84],[19,15],[26,-16],[8,11],[20,-18],[45,45],[7,-18],[24,1],[26,-31],[25,22],[8,40],[30,-32],[22,-42],[64,90],[46,-63],[13,-32],[51,-37],[0,-21],[42,-14]],[
 [5283,3975],[-47,-29],[-76,-27],[-66,-62],[-30,-19],[-52,-53],[-35,-44],[-47,-32],[-51,-14],[-50,-72],[-28,-9],[-46,-49],[-22,-6],[-35,-27]],[[2436,4532],[26,28],[47,18],[57,4],[0,-25],[63,-3],[10,-20],[56,0],[31,-12],[35,11],[17,14],[61,3],[52,56],[17,9],[80,81],[58,32],[33,23],[105,147],[88,212],[17,59],[18,100],[82,243],[61,114],[47,65],[77,68],[51,52],[68,51],[47,48],[47,20],[50,31],[62,24],[32,0],[95,-19],[20,9],[37,49]],[[5329,1528],[-33,41],[2,25],[-27,32],[-14,-49],[-18,-20]],[[5239,1557],[-10,-18],[-20,11],[-29,45],[-6,25],[-25,24],[-21,73],[-55,140],[-41,112],[-46,111],[-3,35],[-56,64],[-29,72],[-80,153],[-24,56],[-63,122],[-90,163],[-40,-50],[-59,-47],[-11,6],[-4,-26],[-15,8],[-39,-32],[-33,9]],[[4440,2613],[-2,1]],[[4438,2614],[-28,21],[-22,50],[0,47],[7,40]],[[5181,3048],[25,-92],[13,-34],[14,-64],[25,-68],[40,-50],[9,-21],[43,-40],[16,-36],[57,-65],[-205,-254],[66,-80],[53,-28],[121,-80],[84,48],[11,-27],[19,-12],[14,12],[80,-58]],[[1429,371],[-35,-25],[-30,-42],[-138,
 -53],[-152,-75],[-51,-28],[-219,-110],[-73,-38],[-173,20],[-64,22],[-16,95],[-81,18],[44,655],[6,109]],[[9839,7139],[-36,43],[-28,14],[-9,22],[-26,0],[-40,-57],[-33,-3],[-139,-133],[-43,53],[-40,36],[-53,55],[-132,158],[-40,57]],[[9220,7384],[-124,160],[-153,202],[-74,-7]],[[9030,8290],[78,-270],[107,97],[74,70],[9,-20],[64,-61],[58,-47],[91,-123],[28,-46],[93,-4],[56,-37],[133,-68],[168,-335],[3,-131],[-134,-151],[-19,-25]],[[4657,7634],[44,13],[70,53],[25,63],[5,42],[18,68],[2,54],[-17,38],[-61,112],[-21,115],[8,60],[28,10],[32,-13],[29,7],[42,57],[50,99],[27,12],[35,58],[31,18],[79,75],[57,33],[63,12],[44,-11],[24,7],[18,18],[16,35],[23,25],[39,10],[153,89]],[[5061,7570],[-83,47],[-55,40],[-263,-33],[-3,10]],[[4400,6436],[-38,13],[-74,35],[-19,27],[-14,53],[-23,64],[-12,-9],[-42,41],[-48,-12],[-18,19],[-15,33],[1,51],[-11,-13],[-28,61],[-25,-4],[-3,-24],[-19,72],[-36,61],[6,27],[23,44],[30,-3],[38,18],[37,7],[25,38],[24,88],[33,6],[14,15],[-20,56],[3,22],[31,48],[1,41],[-13,13],[
 -40,12],[-12,14],[-9,35],[18,18],[72,22],[-2,25],[12,20],[21,-8],[25,46],[26,15],[-3,25],[16,32],[46,30],[73,10],[17,16],[17,42],[23,24],[51,-71],[22,-5],[76,8]],[[6038,2945],[52,-11],[-36,-43],[27,-45],[-12,-17],[26,-64],[2,-22],[40,-18],[14,-31],[12,-50],[18,8],[25,-17]],[[9833,6351],[-33,-36],[-42,-28],[-42,-62],[-47,-53],[-25,-18],[-64,-11],[-104,-34]],[[9476,6109],[-43,143],[-10,93],[38,9],[-55,96],[-11,33],[46,22],[-10,73],[-17,-6],[-3,24],[-27,-3],[-17,35],[-24,68],[-79,60],[-40,-1],[-54,128],[-34,7],[-21,14]],[[9115,6904],[-23,52],[-26,13],[-14,20],[-1,97],[25,11],[24,-5],[3,46],[76,189],[41,57]],[[9839,7139],[47,-70],[10,-38],[0,-40],[-9,-74],[1,-56],[7,-24],[30,6],[6,-10],[-21,-39],[8,-23],[14,5],[44,-71],[23,-80]],[[9999,6625],[-15,10],[-48,-2],[-47,-36]],[[9889,6597],[-2,-1]],[[9887,6596],[-26,-20]],[[9861,6576],[-16,11],[-26,-10],[5,-30],[-47,-53],[-10,-32],[7,-20],[37,-57],[14,18],[15,-25],[-7,-27]],[[9115,6904],[-31,-33],[-32,-46],[-19,-14],[-8,14],[-25,-62],[-2,-44],
 [-18,3],[-2,-44],[10,-10],[1,-33],[-9,-27],[19,-29],[3,-55],[-9,-17],[-66,-82],[-50,-40],[-15,-33],[-71,16],[-47,73],[-4,38],[17,114],[-60,40],[-21,23],[-36,-61],[-24,-78],[-76,-140]],[[8365,5093],[-14,90],[-23,61],[-3,72],[14,19],[-16,16],[3,17],[-77,87],[-131,183]],[[8532,6371],[11,-70],[19,-56],[28,-46],[55,-38],[-2,-6],[82,-55],[25,17],[79,14],[33,-26]],[[8862,6105],[-53,-39],[-77,-80],[4,-80],[-20,-32],[-23,-85],[0,-58],[-9,-59],[-31,-47],[-16,-45],[32,-74],[37,-1],[46,-66],[27,20],[24,-24],[11,-26]],[[8814,5409],[35,-81],[-48,-68],[-10,14],[-49,-72],[-33,38],[-55,-38],[-56,25],[-9,-75],[-17,-91],[0,-26],[-17,-22]],[[6319,4263],[40,3],[52,-7],[15,-25],[54,-58],[3,-21],[36,-23],[50,-44],[14,-23],[19,41],[25,-16],[5,23],[22,-11],[43,13],[28,20],[43,48],[61,16],[75,33]],[[6904,4232],[5,-38],[74,12],[48,34]],[[9230,5835],[-8,8],[5,82],[-5,1],[-73,82],[-53,85],[-39,-20],[-20,0],[-11,35],[-26,32],[-59,-1],[-26,-26],[-53,-8]],[[9476,6109],[-35,-23],[-175,-188],[-36,-63]],[[4994,936],[
 -34,4],[-20,14],[-8,27],[-33,0],[-49,34]],[[4850,1015],[19,50],[-27,20],[11,22],[-10,10],[69,158],[28,76],[-15,11],[26,44],[15,47],[-52,35]],[[4914,1488],[17,10],[-7,23],[43,25],[-19,20],[3,21],[-32,86],[-26,58],[-19,24],[-61,46],[-18,26],[15,13],[7,31],[-36,63],[-43,88],[-26,83],[-41,70],[-231,438]],[[4914,1488],[-61,-3],[-39,-45],[-21,12],[-19,-10],[-17,-69],[-37,22],[-18,18],[-28,-27]],[[4674,1386],[7,79],[-127,137],[-77,90],[-85,109],[-66,24],[17,176],[-2,132],[53,315],[44,166]],[[8814,5409],[35,50],[27,-38],[40,58],[5,-8],[23,61],[-21,21],[37,46],[-3,12],[31,55],[42,39],[34,15],[24,-67],[10,-64],[-2,-124],[18,31],[54,3]],[[9168,5499],[5,-177],[-3,-59],[-20,-104],[-15,-58],[-29,-61],[-64,-104],[9,-17]],[[6745,4849],[11,4],[28,-44],[32,-35],[33,-65],[24,-35],[-17,-39],[5,-26],[-21,-22],[33,-187],[31,-131],[0,-37]],[[9230,5835],[-49,-100],[-15,-78],[2,-158]],[[7128,4908],[-89,73],[-82,-8],[-111,-35]],[[4910,692],[-55,5],[-19,17],[-152,22],[-9,7],[-83,-91],[-19,-38],[-12,15],[16,63
 ],[7,47],[28,28],[14,34],[8,50],[26,98],[7,13],[9,100],[12,43],[-11,29]],[[4677,1134],[39,-11],[-4,-21],[28,-39],[34,-8],[5,-37],[23,-7],[15,12],[33,-8]],[[4677,1134],[-30,7],[27,245]],[[9999,6625],[-3,-9],[-142,-236],[-21,-29]],[[9255,4155],[15,-59],[-56,23]]],"transform":{"scale":[0.06816007536776152,-0.04800480048004801],"translate":[139.23370319887636,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/nw-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/nw-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/nw-municipalities.json
deleted file mode 100644
index c341676..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/nw-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":1501,"properties":{"name":"Beckenried"},"arcs":[[[-3,4,5,6,7,8,9]]]},{"type":"MultiPolygon","id":1502,"properties":{"name":"Buochs"},"arcs":[[[-24,29,-12,-6]]]},{"type":"MultiPolygon","id":1503,"properties":{"name":"Dallenwil"},"arcs":[[[24,25,26,-22,-1]]]},{"type":"MultiPolygon","id":1504,"properties":{"name":"Emmetten"},"arcs":[[[-9,10]]]},{"type":"MultiPolygon","id":1505,"properties":{"name":"Ennetbürgen"},"arcs":[[[11,12,13,14,-7]]]},{"type":"MultiPolygon","id":1506,"properties":{"name":"Ennetmoos"},"arcs":[[[27,-20,28,-26]]]},{"type":"MultiPolygon","id":1507,"properties":{"name":"Hergiswil (NW)"},"arcs":[[[20,-17]]]},{"type":"MultiPolygon","id":1508,"properties":{"name":"Oberdorf (NW)"},"arcs":[[[21,22,23,-5,-2]]]},{"type":"MultiPolygon","id":1509,"properties":{"name":"Stans"},"arcs":[[[-29,-19,-13,-30,-23,-27]]]},{"type":"MultiPolygon","id":1510,"properties":{
 "name":"Stansstad"},"arcs":[[[15,16,17,-14,18,19]]]},{"type":"MultiPolygon","id":1511,"properties":{"name":"Wolfenschiessen"},"arcs":[[[0,1,2,3]]]}]}},"arcs":[[[3395,4754],[25,15],[96,-15],[187,28],[73,102],[127,155],[40,38],[50,59],[30,69],[103,45],[58,32],[26,65],[51,30],[149,104],[47,-25],[22,-34],[29,-14],[125,116],[78,-10],[18,22],[-18,6],[9,26],[-12,29],[68,0],[29,-17],[30,-2],[45,-19],[37,10],[56,-12],[4,101],[-5,106],[10,65],[-7,68],[8,59],[25,56],[27,75],[8,63],[-25,85],[2,37],[-36,54],[-55,50],[-12,44]],[[4917,6420],[62,-20],[47,0],[59,-11],[88,16],[76,-14],[70,-1],[52,-30],[34,-5],[36,-20],[8,8],[47,-12],[45,-25],[47,-17],[43,-37],[18,-34],[8,-46],[33,-33],[90,-40],[37,-29],[47,-19],[23,15],[15,-15],[103,-39],[16,-13],[31,8],[48,-14],[69,23],[76,-28],[48,19],[23,45],[40,39],[71,-2],[34,22]],[[6461,6111],[37,-3],[42,-99],[60,-37],[32,-28],[65,-109],[37,-75],[-2,-82],[63,-36],[29,-47],[31,-98],[7,-39],[77,-67]],[[6939,5391],[-26,-82],[-37,-35],[-15,-29],[-23,-8],[-23,-45],[
 -40,-44],[11,-28],[22,-18],[52,-16],[42,1],[81,13],[56,3],[74,-90],[6,-26],[29,-5],[5,-19],[67,-24],[-21,-33],[-8,-46],[44,-65],[9,-25],[53,-38],[-7,-23],[16,-62],[62,-146],[-76,-63],[-14,-1],[-66,-64],[-46,-61],[-110,-32],[-20,-36],[2,-75],[17,-40],[56,-73],[12,-26],[2,-68],[33,-44],[-35,-103],[-25,-59],[-2,-46],[8,-39],[-40,-55],[37,-59],[-3,-46],[53,-68],[0,-60],[-45,3],[-52,20],[-73,-4],[-25,-16],[-23,13],[-39,-5],[-119,-27],[-54,-25],[-39,-8],[-120,13],[-171,-34],[-11,-13],[-68,1],[-52,18],[-67,-23],[-25,-45],[-77,-32],[-6,-12],[-61,-11],[-19,-14],[-66,15],[-30,27],[-123,19],[-40,1],[-36,15],[-23,47],[3,37],[44,61],[-15,25],[-21,69],[5,56],[-28,68],[9,62],[-17,16],[-21,44],[-49,47],[-26,14],[-31,78],[-4,32],[-22,52],[-40,-59],[-17,-7],[-40,17],[-55,-60],[-41,-37],[3,-34],[-122,-55],[-51,7],[-31,17],[-95,-93],[-42,-61],[-14,-38],[-41,-62],[-58,-30],[-65,-22],[-33,-53],[4,-18],[-57,-43],[-83,85],[-80,-127],[-100,-223],[-23,23],[-3,39],[26,100],[17,48],[-5,94],[-15,45],[6,56],[63,
 124],[26,61],[38,34],[11,21],[61,11],[67,77],[-83,81],[0,39],[-44,53],[13,47],[35,19],[-25,15],[-10,48],[-18,18],[-147,20],[-41,-3],[-20,-13],[-41,-51],[-29,-47],[-25,-97],[4,-70],[-27,-18],[-120,3],[-9,-73],[-15,-46],[-54,-74],[76,-122],[65,-6],[47,4],[47,-7],[35,12],[8,-92],[-6,-29],[5,-151],[-7,-44],[-66,-77],[15,-57],[15,-27],[-12,-43],[36,-52],[5,-160],[16,-96],[22,-45],[-25,-73],[7,-52],[22,-28],[8,-40],[18,-36],[46,-44],[17,-68],[17,-21],[9,-39],[34,-26],[-11,-47],[16,-45],[-5,-12],[23,-45],[-15,-43],[11,-16],[-33,-41],[-24,-53],[12,-57],[-9,-24],[-43,-60],[60,16],[51,-11],[70,-76],[47,-7],[24,-20],[61,-9],[81,-35],[20,-77],[6,-52],[-15,-30],[-24,-78],[-55,-77],[-12,-44],[80,-29],[41,-35],[43,-65],[170,-200],[43,-12],[100,19],[31,-23],[52,-65],[27,-11],[35,-60],[36,-33],[99,-34],[103,1],[61,-21],[64,-9],[3,-104],[27,-38],[26,-11],[45,-61],[24,-82],[18,-7],[16,-36],[8,-108],[31,-31],[1,-109],[-277,154],[-599,-283],[-116,252],[-73,8],[-21,20],[-26,-6],[-32,9],[-98,62],[-35,73],
 [-32,38],[-31,23],[0,39],[-44,52],[-68,21],[-57,40],[-61,36],[-41,-3],[-12,-12],[7,48],[-58,35],[-18,30],[-63,42],[-31,30],[-59,40],[-61,31],[-73,14],[-33,-1],[-33,18],[-27,34],[-55,16],[-54,26],[-44,68],[-59,39],[-35,8],[-39,97],[26,35],[-19,50],[-55,1],[-60,33],[-26,52],[-44,57],[-32,31],[-51,29],[-18,31],[-35,28],[-9,54],[-60,46],[-47,16],[-46,33],[3,33],[-73,71],[-24,53],[16,41],[-41,16],[-4,34],[25,45],[28,13],[47,64],[62,29],[30,-1],[21,19],[71,32],[36,37],[41,28],[6,87],[-10,60],[26,26],[3,51],[-48,26],[-57,-4],[7,168],[-44,133],[-54,41],[-6,59],[-13,44],[-4,45],[-13,41],[11,56],[63,132],[4,42],[-22,47],[20,119],[104,185],[-10,33],[7,49],[-5,69],[-20,72],[16,19],[-23,45],[-43,9],[-11,42],[-23,17],[-32,53],[-8,54],[19,57],[-35,79],[-15,74],[35,32],[19,35],[76,95],[-14,87],[14,72],[19,33],[109,133]],[[6461,6111],[-8,103],[11,64],[22,5],[62,-21],[70,-35],[63,-26],[4,11],[-34,98],[-26,35],[-22,4],[-40,40],[-22,94],[-41,11],[-49,0],[-52,31],[-41,60],[-37,21],[-51,-25],[-47,5],[-13
 6,96],[-19,24],[4,127],[-25,5],[-3,107],[-58,1],[-64,79]],[[5922,7025],[17,24],[35,83],[39,63],[25,20],[47,104],[26,6],[91,120],[30,74],[25,24],[-18,23],[3,29],[53,38],[-3,19],[31,51],[28,97],[42,100],[10,48],[-5,67],[47,81],[74,466]],[[6519,8562],[405,33]],[[6924,8595],[884,-305],[634,145]],[[8442,8435],[172,-434],[16,-32],[4,-39],[20,-37],[-15,-27],[-57,-43],[-63,-24],[-41,-26],[-83,-69],[-79,-15],[-65,-37],[-26,-22],[-44,33],[8,17],[-46,-17],[-62,-37],[9,-12],[-59,-11],[-70,-6],[-45,7],[-33,15],[-34,-4],[20,-68],[8,-115],[-51,-64],[-214,-74],[-11,-78],[8,-53],[-30,-25],[-81,-27],[-4,-10],[26,-103],[9,-65],[38,-101],[47,-34],[-30,-108],[-54,-70],[-39,-80],[7,-20],[-16,-66],[172,-18],[22,-64],[-11,-78],[-17,-46],[5,-73],[-6,-46],[37,-178]],[[7684,5951],[-140,1],[-30,-53],[-8,-139],[-19,-82],[-51,-69],[-23,-59],[-112,-48],[-72,-10],[-9,-12],[-85,-32],[-99,-51],[-33,17],[-64,-23]],[[8442,8435],[655,0],[788,437],[94,-254],[20,-30],[-47,-83],[-13,-39],[-24,-14],[-37,-58],[-29,-68],[-27
 ,-43],[-39,-38],[-31,-12],[-104,-59],[25,-108],[-24,-61],[-19,-26],[-33,-102],[-31,-10],[-17,-47],[-57,-31],[-41,-9],[6,-80],[29,-53],[-8,-27],[-4,-109],[6,-102],[-4,-13],[0,-90],[50,-157],[-43,-78],[36,-9],[-24,-41],[8,-23],[-9,-55],[-14,-11],[8,-56],[66,9],[18,-23],[-10,-18],[-72,-29],[-6,35],[-36,-35],[-128,1],[-25,-28],[-127,32],[-23,-5],[24,-27],[30,-91],[19,-29],[30,8],[15,-42],[-21,-59],[1,-32],[15,-5],[-85,-112],[-15,-31],[7,-43],[-51,-28],[-31,-31],[-69,-26],[-41,-7],[-33,-27],[-43,-4],[-77,-56],[-63,5],[-14,-16],[-110,-7],[-38,-17],[-29,5],[-77,-3],[-9,-65],[-18,-49],[-78,-41],[-20,-43],[-37,-4],[-86,-49],[-53,-41],[-53,-19],[-34,-1],[-86,-33],[-23,8],[-29,49],[-34,28],[-48,88],[-60,-36],[-43,0],[-23,26],[-71,-7]],[[6519,8562],[-632,9],[-256,-129],[-116,-95],[-22,37],[-31,3],[-192,-46],[-510,-251]],[[4760,8090],[8,42],[16,174],[-39,63],[-49,56],[-18,32]],[[4678,8457],[-12,75],[38,50],[35,60],[40,113],[-70,151],[-96,-2],[-132,16],[-116,79],[65,47],[32,15],[107,21],[69,26],[
 47,25]],[[4685,9133],[65,20],[69,32],[108,22],[57,33],[32,-9],[50,-29],[71,-5],[36,9],[26,-10],[45,19],[118,-36],[15,8],[35,-25],[52,-21],[34,-3],[65,10],[123,-9],[31,-6],[100,7],[39,27],[-19,25],[6,19],[-6,94],[26,603],[857,-225],[298,-79],[-19,-515],[-75,-494]],[[2555,7710],[53,217],[-31,55],[-8,45],[-19,36],[-58,71],[6,72]],[[2498,8206],[87,-14],[44,21],[86,-13],[64,1],[58,31],[40,10],[71,-7],[50,14],[55,48],[27,39],[18,-9],[76,-4],[-2,15],[85,404]],[[3257,8742],[939,1257],[429,-85],[33,-596],[-14,-30],[-41,-33],[4,-33],[78,-89]],[[4678,8457],[-32,6],[-141,-30],[-50,-5],[-30,-17],[-74,-18],[-57,-27],[-73,-43],[-51,-15],[-19,-31],[-92,-49],[-51,-40],[-50,-29],[-82,-11],[-24,-26],[-70,-24],[-21,-21],[-7,-54],[-39,-62],[-53,23],[-18,34],[-63,-34],[-78,-30],[-2,-38],[-28,-66],[-3,-43]],[[3470,7807],[-89,-19],[-53,-34],[-42,-3],[-88,-27],[-18,53],[-55,39],[-76,112],[-329,-181],[-165,-37]],[[2498,8206],[-78,38],[-47,11],[-39,19],[-20,-10],[-89,3],[-78,-23],[-52,9],[-15,-23],[-59,-23],[
 -95,-10],[-37,12],[-31,-14],[-32,6],[-41,-7],[-24,30],[-151,27],[-26,29],[-59,23],[-84,10],[-51,-21],[-83,-1],[-29,12],[-33,-23],[-24,37],[0,27],[-22,27],[-124,-36],[-62,24],[-36,-24],[-131,-134],[-40,-19],[-31,-29],[-53,-30],[-93,-29],[-47,5],[-82,29],[-65,-6],[-38,-41],[-29,-6],[-35,20],[-28,-24],[-86,68],[-27,5],[-51,30],[-33,59],[-38,29],[-5,25],[-37,25],[-28,76],[80,84],[6,37],[61,89],[10,41],[27,25],[-1,20],[50,55],[39,92],[2,24],[84,-1],[73,-21],[51,-37],[63,30],[45,-59],[24,-63],[55,-65],[53,-45],[124,58],[-2,32],[55,77],[86,67],[32,42],[5,37],[14,17],[87,52],[45,36],[153,78],[37,-9],[30,11],[57,-4],[41,-23],[47,6],[20,-8],[118,23],[27,-26],[28,-43],[39,-22],[67,-25],[81,-14],[63,-4],[9,20],[50,37],[43,-4],[41,14],[-5,30],[28,48],[19,4],[41,-17],[45,21],[55,-7],[75,12],[55,-11],[3,-10],[49,13],[71,-3],[59,7],[201,56],[442,-420]],[[4917,6420],[8,58],[23,54],[5,43],[-8,115],[-128,-14],[-41,0],[-79,-18],[-70,18],[-150,4],[-61,28],[-47,-23],[-53,-42],[-36,-9]],[[4280,6634],[-19,
 31],[-8,50],[4,99],[-12,88],[-25,40],[-2,50],[-20,22],[-1,39],[15,59],[-18,31],[31,70],[8,-4],[27,60],[15,12],[-36,14],[22,26],[67,30],[17,36],[-4,26],[18,36],[70,98],[26,-11],[64,126],[122,93],[99,40]],[[4740,7795],[16,-1],[224,91],[66,36],[190,-285],[67,-106],[94,-131],[34,-29],[2,-22],[75,-72],[27,-66],[2,-47],[47,-66],[37,-37],[38,15],[51,-29],[35,-41],[61,-9],[116,29]],[[3395,4754],[11,27],[0,141],[6,30],[-5,49],[8,37],[-7,55],[-29,99],[-15,31],[-3,38],[-12,18],[23,129],[75,61],[34,39],[41,114],[2,39],[21,98],[-50,103],[-68,37],[-27,-2],[55,106],[-8,107],[14,76],[16,27],[-43,89],[-47,36]],[[3387,6338],[41,8],[161,74]],[[3589,6420],[61,9],[49,-6],[49,24],[85,16],[59,53],[121,43],[42,-13],[68,9],[24,25],[55,-2],[33,10],[36,25],[9,21]],[[3387,6338],[-99,-53],[-182,-46],[-122,-58],[-177,-26],[-51,-23],[-53,36],[-19,3],[-93,-44],[-24,37],[-96,40],[-14,17],[-92,64],[-26,35],[8,23],[-28,20],[-84,31],[-23,21],[-46,7],[-102,38],[-35,29],[-41,18],[8,38],[21,29],[6,31],[19,16],[8,38],[45,
 97],[77,74],[24,49],[35,46],[8,38],[41,53],[47,42],[36,21],[23,30],[65,41],[10,17],[124,85],[-45,43],[-61,97],[76,318]],[[3470,7807],[48,-201],[89,-27],[57,-25],[-1,-98],[11,-128],[-28,-69],[-22,-76],[8,-134],[-12,-31],[12,-57],[4,-76],[-12,-76],[-23,-232],[-12,-157]],[[4740,7795],[20,295]]],"transform":{"scale":[0.047226885433900134,-0.048004800480048],"translate":[243.88918627321624,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ow-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ow-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ow-municipalities.json
deleted file mode 100644
index e86f67a..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ow-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":1401,"properties":{"name":"Alpnach"},"arcs":[[[-4,-12,14]]]},{"type":"MultiPolygon","id":1402,"properties":{"name":"Engelberg"},"arcs":[[[12]]]},{"type":"MultiPolygon","id":1403,"properties":{"name":"Giswil"},"arcs":[[[5,6,7,8]]]},{"type":"MultiPolygon","id":1404,"properties":{"name":"Kerns"},"arcs":[[[0,1,2,3,4]]]},{"type":"MultiPolygon","id":1405,"properties":{"name":"Lungern"},"arcs":[[[-6,-14,-1,15]]]},{"type":"MultiPolygon","id":1406,"properties":{"name":"Sachseln"},"arcs":[[[13,-9,-10,-2]]]},{"type":"MultiPolygon","id":1407,"properties":{"name":"Sarnen"},"arcs":[[[9,-8,10,11,-3]]]}]}},"arcs":[[[4259,709],[-15,16],[-7,51],[5,35],[-2,53],[-24,57],[-20,20],[0,33],[-25,75],[-31,26],[-7,48],[-11,2],[-11,43],[22,50]],[[4133,1218],[37,3],[22,-8],[67,3],[33,39],[19,2],[40,48],[35,30],[27,14],[35,7],[62,49],[18,22],[25,52],[-1,54],[6,70],[-9,72],[12,73],[0,48],[15,3],[5
 8,-32],[7,29],[19,14],[24,74],[40,11],[10,32],[5,66],[13,11],[7,44],[44,33],[24,-9],[22,39],[27,15],[21,47],[5,40],[12,25],[-1,42],[33,16],[21,0],[23,19],[37,10],[54,-11],[32,19],[21,76],[24,57],[4,75],[16,100],[8,25],[-9,45],[10,60],[14,32],[4,50],[-8,25],[-5,76],[2,44],[9,28],[-5,40],[19,35],[7,47],[24,23],[-8,19],[17,68],[-12,37],[6,32],[-25,125],[19,23],[2,62],[12,12],[-4,36],[10,25],[-5,21],[24,36],[2,22],[32,44],[14,9],[34,106],[11,47],[36,99],[37,73],[6,42],[18,35],[9,61],[-7,29],[5,59],[-9,39],[-29,14],[-13,43],[-21,7],[-5,50],[-39,48],[2,17],[-36,18],[-18,30],[-28,3],[0,29],[-18,14],[-21,39],[-6,39],[-20,14],[-17,49],[-43,39],[-47,-3],[-42,13],[-25,35],[-20,10],[-54,69],[0,17],[-29,44],[-5,49],[14,56],[-13,46],[7,24],[-5,64],[15,39],[4,49],[22,38],[-46,78],[-1,79],[7,54],[26,66],[-6,79],[4,39],[-32,32],[-4,27],[-46,17],[-21,28],[-25,10],[-25,-13],[-32,-1],[-36,18],[-26,1],[-7,19],[19,22],[1,58],[-7,31]],[[4725,5979],[-31,76],[9,32],[-35,3],[19,54],[-2,42],[12,44],[23,22],[3
 6,75],[-3,28],[-30,-17],[-1,-21],[-34,-36],[-25,40],[-40,-7],[2,34],[19,59],[-5,4],[29,66],[22,33],[34,28],[24,59],[32,42],[19,39],[30,104],[32,69],[-22,-13],[-48,17],[-24,63],[0,19],[29,57],[40,33],[14,-32],[24,20],[16,32],[-8,16],[18,53],[25,28],[9,56],[49,112],[16,51],[28,34],[13,33]],[[5040,7430],[1,51],[26,66],[19,20],[17,-3],[14,17],[1,30],[25,62],[19,27],[13,35],[31,32],[13,69],[34,51],[11,74]],[[5264,7961],[33,-19],[25,-32],[32,-13],[47,-29],[35,-8],[17,-23],[66,-33],[21,-22],[0,-45],[97,-109],[58,-31],[31,-51],[72,48],[15,-4],[39,-39],[41,27],[78,9],[56,17],[95,64],[138,49],[77,59],[35,-39],[10,-20],[23,-77],[-18,-50],[-4,-62],[-7,-17],[10,-29],[5,-47],[-13,-64],[-7,-7],[-25,-70],[21,2],[52,-40],[37,-113],[-15,-107],[-1,-43],[-32,-124],[-25,-42],[-59,-68],[-11,-91],[4,-21],[-10,-29],[10,-20],[1,-41],[12,-34],[5,-49],[16,-59],[5,-75],[-5,-26],[4,-53],[-4,-33],[0,-153],[-18,-54],[-47,-69],[-40,-78],[-7,-81],[-6,-8],[12,-96],[-33,-63],[-26,-40],[-15,-40],[-25,-34],[9,-81],[27,
 -85],[-13,-63],[6,-59],[24,-58],[18,-20],[8,-46],[33,-9],[18,-49],[-13,-20],[9,-28],[11,-127],[-5,-54],[5,-37],[-78,-201],[-15,-129],[17,-51],[-2,-48],[-50,-144],[-9,-61],[12,-45],[1,-49],[10,-48],[6,-65],[24,-17],[17,-27],[34,-146],[-5,-184],[42,6],[21,-6],[16,-23],[-1,-56],[-22,-28],[9,-67],[0,-55],[-5,-40],[-32,-30],[-27,-40],[-25,-11],[-45,-45],[-23,0],[-49,-38],[-27,-38],[-7,-25],[-22,-13],[-2,-21],[-17,-30],[3,-36],[32,-19],[-12,-44],[18,-58],[55,-77],[-2,-35],[35,-38],[37,-17],[45,-51],[8,-58],[26,-32],[13,-33],[40,-32],[24,-33],[34,-64],[20,-56],[46,-34],[41,-3],[16,-55],[-20,-39],[8,-40],[15,-34],[6,-32],[27,-6],[46,-45],[33,-72],[83,-47],[22,-37],[26,-21],[24,2],[47,-11],[55,-39],[68,-75],[50,-47],[14,-32],[44,-38],[-4,-54],[-27,-15],[-6,-24],[-78,-44],[7,-42],[-11,-26],[-50,-33],[-28,-38],[-71,-18],[-22,6],[-110,-30],[-164,-30],[-197,-40],[-40,-31],[-9,-18],[-9,-44],[-46,-26],[-43,-51],[0,-29],[-21,-26],[-107,-99],[-105,-144],[-93,-82],[-100,-138],[-5,-44],[-97,-96],[-54,
 -30],[-26,38],[-10,-11],[-20,-78],[-23,-32],[-21,-14],[-40,-44],[-38,-17],[-18,-38],[-73,-76],[-12,-34],[-47,-35],[-16,-26],[-54,50],[-19,-6],[-61,8],[-38,29],[-11,-16],[-20,11],[-111,-34],[-6,51],[-48,74],[4,22],[-50,83],[-37,50],[-57,118],[-15,21],[-49,24],[-29,-1],[-21,24],[-51,38],[-88,46],[-26,30],[-36,-2],[-83,59],[-2,12],[-55,18]],[[3732,2647],[-16,-21],[-11,8],[-99,-48],[-56,-18],[-36,-26],[-65,-35],[-55,-2],[-31,4],[-29,17],[9,34],[-34,19],[-5,21],[-23,22],[-41,13],[-32,29],[-3,20],[-36,48],[-39,24],[-6,12],[-58,48],[-23,38],[-44,41],[-24,-10],[-11,-19],[-45,11],[-8,-12],[-41,-10],[-23,-27],[-35,17],[-10,-20],[-16,25],[-2,-36],[-23,32],[-4,39],[-66,-8],[-21,7],[-7,-13],[-46,-20],[-61,-15],[-11,-10],[-32,23],[-35,-43],[-81,-40],[-57,-74],[-131,-198],[-79,-205],[2,-25],[-11,-41],[0,-35],[-46,-123],[-27,-93],[-31,-16],[-47,-9],[-70,-18],[-83,-37],[-113,-70],[-51,8],[-21,-18],[-30,6],[-81,2],[-66,21],[-38,-8],[-26,19],[-54,22],[-58,-22],[-28,-22],[-29,-73],[-37,-36],[-62,-71],[
 -16,-36],[-36,-37],[-28,-115]],[[1043,1462],[-29,-4],[-64,-31],[-65,1],[-46,-20],[-70,-24],[-35,2],[-30,13],[-40,42],[-65,40],[-10,21],[-39,-41],[-50,-25],[-29,3],[-80,-40],[-103,90],[-103,-7],[-72,-54],[52,51],[9,28],[25,26],[52,80],[4,16],[54,59],[12,56],[4,55],[-6,44],[-31,35],[8,28],[-14,32],[9,22],[66,88],[3,-20],[46,43],[7,52],[62,9],[12,135],[-6,47],[6,42],[-48,131],[-69,165],[-17,65],[-38,82],[-14,49],[-15,26],[-14,59],[-20,33],[-25,62],[-25,78],[-22,26],[-73,140],[-7,19],[21,41],[-1,56],[-25,19],[-32,61],[-17,47],[-20,30],[-24,60],[27,119],[13,38],[10,58],[2,42],[21,80],[49,31],[37,9],[20,45],[21,21],[8,33],[45,53],[38,36],[-1,41],[21,32],[16,58],[27,52],[-11,11],[-13,81],[-11,21],[24,47],[-21,18],[29,10],[15,42],[54,-31],[14,41],[22,-9],[26,3],[16,39],[4,52],[11,39],[18,32],[-25,95],[1,60],[-9,16],[4,31],[38,19],[22,27],[23,50],[-4,73],[-13,19],[12,13],[16,48],[25,49],[-13,36],[-19,104],[8,29]],[[599,5418],[52,-21],[8,12],[46,2],[33,-15],[36,-55],[4,-49],[35,-14],[23,35],[
 52,36],[17,23],[35,5],[82,-44],[70,-87],[29,-22],[45,-50],[39,13],[26,41],[80,27],[24,1],[71,32],[100,146],[10,57],[12,35],[43,3],[18,-16],[13,6],[69,5],[8,15],[100,74],[16,38],[82,178],[19,-7],[3,28],[44,-6],[10,-29],[-3,-42],[18,-13],[28,-61],[27,-22],[28,-47],[8,-38],[49,-70],[36,-29],[16,-30],[4,-38],[67,-61],[63,-29],[39,15],[18,-25],[38,-15],[42,-50],[23,-18],[30,-38],[0,-19],[19,-63],[28,-10],[5,-42],[15,-18],[16,9],[56,-13],[29,6],[34,-22],[27,3],[25,-26],[65,-48],[202,-315],[32,-43],[89,-88],[96,-80]],[[3222,4435],[-121,-364],[31,-9],[1,-36],[32,-59],[-5,-30],[52,-84],[35,-97],[38,-9],[44,-82],[18,-10],[41,-63],[25,-23],[12,-30],[16,6],[0,-22],[17,-64],[19,-14],[9,-32],[-11,-33],[20,-42],[16,-5],[55,-46],[24,-35],[10,-43],[-13,-37],[33,-40],[9,-42],[-8,-24],[20,-42],[14,-13],[29,-68],[32,-117],[25,-29],[7,-41],[-5,-54],[-11,-55]],[[4725,5979],[-35,17],[-66,-55],[-51,-37],[-5,-16],[-86,-109],[-38,-44],[-22,-43],[-1,-30],[-48,-36],[-48,22],[-7,-36],[-35,-26],[-137,47],[-38,-2
 41],[-115,-162],[-427,-414],[-73,-100],[-76,-291],[-195,10]],[[599,5418],[-6,25],[-3,95],[15,-3],[4,59],[-36,19],[-11,39],[-9,78],[-20,51],[-13,88],[40,58],[17,72],[3,219],[43,32],[27,29],[62,4],[42,11],[36,21],[62,57],[21,52],[15,89],[40,85],[-7,80],[24,31],[3,18],[43,87],[51,13],[50,40],[19,33],[1,40],[78,-59],[49,-67],[30,-11],[40,14],[50,-32],[50,-5],[-8,-88],[-18,-58],[2,-33],[-9,-32],[-15,-94],[5,-45],[0,-84],[19,-100],[7,-55],[58,-76],[22,-19],[30,47],[19,85],[24,59],[22,79],[10,58],[14,48],[23,109],[18,13],[4,29],[27,45],[23,53],[7,70],[33,79],[16,20],[24,64],[24,46],[-2,11],[46,65],[5,28],[24,76],[53,104],[18,20],[17,67],[35,56],[27,-6],[49,30],[37,74],[4,26],[54,73],[37,21],[29,37],[28,51],[32,10],[47,47],[51,87],[46,25],[13,-2]],[[2440,7900],[62,-58],[26,-6],[92,-35],[-10,-85],[3,-56],[13,-51],[28,-47],[28,-28],[8,-50],[-6,-26],[32,-10],[25,30],[31,-8],[19,10],[52,2],[26,8],[49,45],[43,8],[33,14],[25,-17],[21,12],[32,-17],[33,22],[35,-11],[45,14],[21,-11],[49,4],[28,34],[
 32,3],[28,60],[19,28],[28,18],[34,-5],[44,23],[54,-2],[32,25],[34,5],[28,-19],[22,2],[18,18],[28,6],[35,49],[13,0],[30,-37],[43,-4],[24,26],[74,-13],[50,-42],[25,-33],[-3,-62],[22,-102],[30,-42],[76,-4],[17,-16],[-53,-85],[45,-10],[15,11],[36,8],[41,-15],[69,-52],[16,26],[31,22],[22,-6],[24,23],[-1,20],[32,25],[25,74],[32,33],[26,53],[6,32],[42,55],[13,4],[7,-43],[56,5],[15,-19],[26,3],[28,-29],[29,4],[23,-39],[92,-64],[14,2],[79,-33],[9,-20],[77,-48],[22,38],[22,-14]],[[8772,509],[-9,19],[9,58],[-49,55],[7,21],[4,57],[10,23],[-12,69],[-54,-18],[-42,0],[-22,41],[-26,8],[-33,43],[-63,21],[-107,-18],[-44,-11],[-42,-25],[-2,-31],[-28,-18],[-32,16],[-17,-6],[-22,25],[1,34],[-18,39],[-33,32],[-58,33],[-49,1],[-22,-30],[-24,-10],[1,-14],[-41,-72],[-25,-19],[-41,-68],[-48,-22],[-16,-27],[-18,-6],[-23,-38],[-39,-45],[-68,-26],[-25,-18],[-28,265],[458,311],[213,-171],[-2,123],[-24,31],[-5,119],[-12,39],[-14,6],[-19,90],[-34,68],[-20,12],[-21,41],[-3,36],[5,46],[-5,30],[-48,12],[-47,22],[-79,
 -1],[-76,39],[-27,34],[-26,66],[-22,13],[-21,29],[-20,43],[-23,23],[-76,-19],[-33,12],[-130,219],[-33,71],[-31,37],[-61,32],[7,50],[44,83],[18,86],[10,31],[-7,31],[3,27],[-9,70],[-68,53],[-46,10],[-19,21],[-36,8],[-33,44],[-10,26],[-49,25],[-46,-17],[11,33],[22,32],[7,35],[-11,52],[45,105],[-9,17],[11,54],[-16,41],[4,16],[-13,48],[9,48],[-22,22],[-10,46],[-17,37],[-10,66],[-36,50],[-14,37],[-6,46],[-16,30],[-6,55],[19,80],[-18,49],[-10,96],[-2,164],[-3,20],[-26,47],[8,56],[-12,31],[-11,62],[46,74],[10,60],[-5,163],[5,32],[-6,101],[-27,-13],[-35,9],[-37,-5],[-50,6],[-55,124],[-1,8],[40,82],[11,50],[8,81],[64,0],[17,-8],[30,23],[-1,84],[14,84],[12,35],[37,73],[24,27],[32,6],[112,-23],[14,-20],[7,-52],[21,-17],[-28,-21],[-10,-51],[34,-58],[0,-42],[63,-89],[-53,-85],[-46,-10],[-7,-24],[-29,-36],[-20,-69],[-49,-134],[-4,-61],[11,-51],[3,-102],[-12,-52],[-20,-111],[2,-42],[18,-25],[76,244],[62,139],[64,-93],[33,42],[32,83],[50,24],[45,33],[31,69],[10,40],[33,68],[72,101],[23,-18],[41,-9],
 [93,60],[-4,39],[32,39],[43,66],[31,-18],[13,7],[29,64],[18,-57],[16,-93],[11,-27],[19,-16],[39,-50],[16,-49],[13,-18],[-7,-67],[21,-74],[-3,-62],[16,-75],[11,-26],[-19,-52],[-14,-15],[-3,-41],[17,-51],[29,-16],[31,-3],[93,-21],[23,-29],[51,-16],[14,15],[48,13],[4,12],[41,31],[17,3],[20,50],[51,25],[41,-20],[51,-1],[31,27],[19,0],[89,25],[93,-15],[30,11],[41,27],[58,19],[25,-2],[15,14],[23,2],[17,-13],[20,17],[55,5],[9,-12],[84,-20],[23,4],[39,-9],[37,22],[5,30],[35,55],[40,14],[50,-80],[55,-11],[14,-8],[24,-42],[42,-26],[35,-14],[39,-2],[27,-10],[40,9],[29,26],[30,10],[14,-27],[0,-38],[24,-40],[16,-7],[39,-73],[10,-66],[15,-29],[30,-27],[16,-29],[33,-23],[-29,-27],[7,-93],[-30,-71],[-39,-46],[-39,-36],[-30,-6],[-48,-33],[-72,-38],[-55,-42],[-16,-41],[-31,-8],[-17,-60],[-6,-40],[-32,-61],[0,-45],[-11,-22],[-8,-58],[-41,-96],[-3,-54],[10,-39],[1,-140],[-7,-60],[7,-21],[-9,-40],[-44,-64],[3,-57],[-33,-84],[-34,-29],[3,-47],[54,-55],[-1,-28],[56,-87],[2,-48],[-12,-42],[16,-44],[-3,-44]
 ,[-27,-64],[-71,-85],[-50,-24],[-86,-66],[-48,1],[-126,47],[34,-80],[-23,-9],[47,-35],[30,0],[67,-79],[-1,-15],[28,-2],[21,14],[40,48],[34,19],[16,-3],[71,56],[4,-51],[15,-108],[1,-40],[-29,-55],[-28,-39],[-19,-73],[5,-38],[46,-52],[10,-21],[54,-56],[24,-66],[16,-67],[32,-53],[31,-26],[7,-22],[64,-369],[-59,-63],[-47,-10],[-43,-17],[-33,-55],[-60,-35],[-27,8],[-60,-25],[-6,-14],[-37,-9],[-73,7],[-7,25],[-32,32],[-54,16],[-39,-2],[-38,-44],[-53,21],[-91,-82],[-3,-33],[-19,-23],[-16,2],[-15,-25],[-67,-44],[-46,-50]],[[4133,1218],[-65,44],[-44,57],[-42,43],[-21,35],[-18,67],[-16,29],[-45,58],[0,47],[-21,37],[-20,-9],[-28,-52],[-47,19],[-55,-15],[-38,11],[-4,12],[-37,-4],[-14,-28],[-19,7],[10,55],[-2,42],[14,59],[-7,13],[25,106],[8,3],[28,63],[14,57],[-5,45],[-14,23],[7,38],[5,76],[37,70],[9,104],[15,11],[5,62],[16,37],[-7,53],[3,90],[-17,27],[-11,37]],[[2440,7900],[12,15],[20,55],[18,38],[18,-3],[41,31],[41,60],[18,46],[2,33],[-38,108],[-31,68],[-19,-7],[-159,284],[-53,128],[7,129],[-2
 3,22],[5,23],[-12,26],[12,22],[52,35],[39,16],[15,23],[-18,23],[40,36],[6,18],[26,-22],[19,15],[44,72],[73,85],[25,3],[37,23],[25,2],[75,59],[16,1],[22,25],[21,2],[39,55],[30,13],[84,-8],[18,34],[97,109],[165,-132],[104,-51],[69,-24],[127,31],[108,38],[47,29],[87,18],[52,-10],[71,-6],[22,8],[41,35],[5,58],[11,37],[-18,43],[21,26],[28,-22],[22,7],[29,45],[49,6],[63,-31],[42,-8],[26,21],[40,13],[48,42],[16,23],[30,21],[67,89],[47,72],[15,11],[47,-27],[95,40],[17,-30],[6,-47],[12,-22],[26,25],[22,-14],[44,6],[20,-5],[38,24],[65,-11],[45,-25],[21,-32],[83,-17],[11,-16],[21,3],[21,-33],[26,9],[30,-6],[20,14],[29,-13],[42,11],[30,0],[47,25],[11,25],[39,-10],[34,9],[26,16],[68,-3],[16,11],[28,-21],[57,-21],[39,-33],[-5,-78],[49,-81],[18,-85],[24,-60],[-100,-586],[46,-105],[36,-48],[-29,-26],[-65,-67],[-9,-18],[-49,-44],[-21,-37],[-25,-19],[-30,-36],[-36,-68],[-7,-42],[-34,-63],[-12,-41],[-43,-53],[-21,-40],[-6,-31],[-23,-63],[-6,-41],[-15,-18],[-5,-34],[-16,-31],[-6,-42]],[[4259,709],[-108
 ,-338],[-8,-11],[-68,-28],[-25,4],[-27,-9],[-24,20],[-83,-7],[-22,-12],[-34,18],[-24,90],[-30,7],[-35,42],[-92,74],[-26,32],[-16,38],[-19,5],[-28,59],[-31,4],[-73,-8],[-18,-18],[-65,-10],[-65,-38],[-68,20],[-73,82],[-44,-29],[-41,-47],[-251,-143],[-32,-35],[-11,-22],[-27,8],[-64,45],[-25,-61],[-25,-4],[-12,-23],[-16,-1],[-24,-92],[-21,25],[6,-26],[-34,-30],[-31,-5],[0,-24],[-23,-5],[3,-27],[-63,-30],[-25,-21],[-35,-3],[-67,-47],[-16,-21],[-41,-75],[-123,157],[-34,25],[-25,27],[0,22],[-23,26],[-6,30],[-42,54],[-98,119],[-53,67],[-143,150],[-75,25],[-82,65],[-23,41],[-74,16],[-68,-40],[-35,3],[-63,36],[-10,28],[-10,77],[-41,92],[-45,23],[-41,62],[-42,101],[-63,80],[-1,55],[-16,49],[1,40]]],"transform":{"scale":[0.06740123473655772,-0.04800480048004801],"translate":[143.02752693457967,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/sg-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/sg-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/sg-municipalities.json
deleted file mode 100644
index 92745ff..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/sg-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":3201,"properties":{"name":"Häggenschwil"},"arcs":[[[-122,207,-191,208,209,210,211,-178,-177]],[[258]],[[-257,259]]]},{"type":"MultiPolygon","id":3202,"properties":{"name":"Muolen"},"arcs":[[[189,190]]]},{"type":"MultiPolygon","id":3203,"properties":{"name":"St. Gallen"},"arcs":[[[95,96,97,98,99,100,101]]]},{"type":"MultiPolygon","id":3204,"properties":{"name":"Wittenbach"},"arcs":[[[-176,-123,176,177,178,179,180,181,182,183,-98]],[[-211,-210,255,256,257]]]},{"type":"MultiPolygon","id":3211,"properties":{"name":"Berg (SG)"},"arcs":[[[-183,-182,249,-236,-192]],[[253,-180]]]},{"type":"MultiPolygon","id":3212,"properties":{"name":"Eggersriet"},"arcs":[[[-101,204,205,206]]]},{"type":"MultiPolygon","id":3213,"properties":{"name":"Goldach"},"arcs":[[[-195,239,240,-74,241,-219,-217]]]},{"type":"MultiPolygon","id":3214,"properties":{"name":"Mörschwil"},"arcs":[[[-184,191,19
 2,193,194,195,-99]]]},{"type":"MultiPolygon","id":3215,"properties":{"name":"Rorschach"},"arcs":[[[-242,-73,-220]]]},{"type":"MultiPolygon","id":3216,"properties":{"name":"Rorschacherberg"},"arcs":[[[-218,218,219,-72,-197,220,-206]]]},{"type":"MultiPolygon","id":3217,"properties":{"name":"Steinach"},"arcs":[[[235,236,-76,237,238,-193]]]},{"type":"MultiPolygon","id":3218,"properties":{"name":"Tübach"},"arcs":[[[-239,252,-240,-194]]]},{"type":"MultiPolygon","id":3219,"properties":{"name":"Untereggen"},"arcs":[[[-100,-196,216,217,-205]]]},{"type":"MultiPolygon","id":3231,"properties":{"name":"Au (SG)"},"arcs":[[[242,-229,-234,243,-222,244]]]},{"type":"MultiPolygon","id":3232,"properties":{"name":"Balgach"},"arcs":[[[-108,225,226,227,228,229,-186]]]},{"type":"MultiPolygon","id":3233,"properties":{"name":"Berneck"},"arcs":[[[-228,232,233]]]},{"type":"MultiPolygon","id":3234,"properties":{"name":"Diepoldsau"},"arcs":[[[-109,185,186,187]]]},{"type":"MultiPolygon","id":3235,"properties":{"
 name":"Rheineck"},"arcs":[[[-224,250,-199,251]]]},{"type":"MultiPolygon","id":3236,"properties":{"name":"St. Margrethen"},"arcs":[[[221,222,223,224]]]},{"type":"MultiPolygon","id":3237,"properties":{"name":"Thal"},"arcs":[[[196,-71,197,198,199]]]},{"type":"MultiPolygon","id":3238,"properties":{"name":"Widnau"},"arcs":[[[-187,-230,-243,248]]]},{"type":"MultiPolygon","id":3251,"properties":{"name":"Altstätten"},"arcs":[[[126,127,-105,128]],[[212,-112,-203,213,-88]]]},{"type":"MultiPolygon","id":3252,"properties":{"name":"Eichberg"},"arcs":[[[-129,-104,234]]]},{"type":"MultiPolygon","id":3253,"properties":{"name":"Marbach (SG)"},"arcs":[[[-128,247,-246,-106]]]},{"type":"MultiPolygon","id":3254,"properties":{"name":"Oberriet (SG)"},"arcs":[[[102,103,104,105,106,107,108,109,110,111]]]},{"type":"MultiPolygon","id":3255,"properties":{"name":"Rebstein"},"arcs":[[[245,246,-226,-107]]]},{"type":"MultiPolygon","id":3256,"properties":{"name":"Rüthi (SG)"},"arcs":[[[-111,201,202]]]},{"type":"M
 ultiPolygon","id":3271,"properties":{"name":"Buchs (SG)"},"arcs":[[[-139,-90,160,-130,-38]]]},{"type":"MultiPolygon","id":3272,"properties":{"name":"Gams"},"arcs":[[[-19,-91,138,-37]]]},{"type":"MultiPolygon","id":3273,"properties":{"name":"Grabs"},"arcs":[[[-20,36,37,38,39]]]},{"type":"MultiPolygon","id":3274,"properties":{"name":"Sennwald"},"arcs":[[[-18,86,87,88,89,90]]]},{"type":"MultiPolygon","id":3275,"properties":{"name":"Sevelen"},"arcs":[[[-65,-39,129,130,-84]]]},{"type":"MultiPolygon","id":3276,"properties":{"name":"Wartau"},"arcs":[[[-66,83,84,85,-2,-25]]]},{"type":"MultiPolygon","id":3291,"properties":{"name":"Bad Ragaz"},"arcs":[[[-6,-116,137,-9]]]},{"type":"MultiPolygon","id":3292,"properties":{"name":"Flums"},"arcs":[[[22,23,24,-1,25]]]},{"type":"MultiPolygon","id":3293,"properties":{"name":"Mels"},"arcs":[[[0,1,2,3,4,5,6,7]]]},{"type":"MultiPolygon","id":3294,"properties":{"name":"Pfäfers"},"arcs":[[[-7,8,9]]]},{"type":"MultiPolygon","id":3295,"properties":{"name":"
 Quarten"},"arcs":[[[26,-22,27,-23,28]]]},{"type":"MultiPolygon","id":3296,"properties":{"name":"Sargans"},"arcs":[[[-86,200,-3]]]},{"type":"MultiPolygon","id":3297,"properties":{"name":"Vilters-Wangs"},"arcs":[[[-5,114,115]]]},{"type":"MultiPolygon","id":3298,"properties":{"name":"Walenstadt"},"arcs":[[[-28,-21,-40,64,65,-24]]]},{"type":"MultiPolygon","id":3311,"properties":{"name":"Amden"},"arcs":[[[66,67,68,-11,-16,-27]]]},{"type":"MultiPolygon","id":3312,"properties":{"name":"Benken (SG)"},"arcs":[[[155,-148,-93,156]]]},{"type":"MultiPolygon","id":3313,"properties":{"name":"Kaltbrunn"},"arcs":[[[147,148,-113,-78,-94]]]},{"type":"MultiPolygon","id":3315,"properties":{"name":"Schänis"},"arcs":[[[91,92,93,-77,-69,94]]]},{"type":"MultiPolygon","id":3316,"properties":{"name":"Weesen"},"arcs":[[[231,-95,-68]]]},{"type":"MultiPolygon","id":3338,"properties":{"name":"Schmerikon"},"arcs":[[[230,-117,-30,-216]]]},{"type":"MultiPolygon","id":3339,"properties":{"name":"Uznach"},"arcs":[[[21
 4,215,-36,-114,-149,-156]]]},{"type":"MultiPolygon","id":3340,"properties":{"name":"Rapperswil-Jona"},"arcs":[[[-31,116,117]]]},{"type":"MultiPolygon","id":3341,"properties":{"name":"Gommiswald"},"arcs":[[[112,113,-35,-43,-79]]]},{"type":"MultiPolygon","id":3342,"properties":{"name":"Eschenbach (SG)"},"arcs":[[[29,30,31,32,33,34,35]]]},{"type":"MultiPolygon","id":3352,"properties":{"name":"Ebnat-Kappel"},"arcs":[[[76,77,78,-42,-41,79,-12]]]},{"type":"MultiPolygon","id":3359,"properties":{"name":"Wildhaus-Alt St. Johann"},"arcs":[[[15,-15,16,17,18,19,20,21]]]},{"type":"MultiPolygon","id":3360,"properties":{"name":"Nesslau"},"arcs":[[[10,11,12,13,14]]]},{"type":"MultiPolygon","id":3372,"properties":{"name":"Hemberg"},"arcs":[[[-80,-49,-64,146,-13]]]},{"type":"MultiPolygon","id":3374,"properties":{"name":"Lichtensteig"},"arcs":[[[-46,-141,-174]]]},{"type":"MultiPolygon","id":3375,"properties":{"name":"Oberhelfenschwil"},"arcs":[[[-47,173,-140,-55,-54]]]},{"type":"MultiPolygon","id":337
 8,"properties":{"name":"Neckertal"},"arcs":[[[-48,53,54,55,56,57,58,59,60,61,62,63]]]},{"type":"MultiPolygon","id":3379,"properties":{"name":"Wattwil"},"arcs":[[[40,41,42,-34,43,44,45,46,47,48]]]},{"type":"MultiPolygon","id":3392,"properties":{"name":"Kirchberg (SG)"},"arcs":[[[80,81,82,-51]]]},{"type":"MultiPolygon","id":3393,"properties":{"name":"Lütisburg"},"arcs":[[[-142,-52,-83,165,166,167,-57]]]},{"type":"MultiPolygon","id":3394,"properties":{"name":"Mosnang"},"arcs":[[[-33,49,50,51,52,-44]]]},{"type":"MultiPolygon","id":3395,"properties":{"name":"Bütschwil-Ganterschwil"},"arcs":[[[139,140,-45,-53,141,-56]]]},{"type":"MultiPolygon","id":3401,"properties":{"name":"Degersheim"},"arcs":[[[-60,-59,-58,-168,-169,171,172]],[[-62,254]]]},{"type":"MultiPolygon","id":3402,"properties":{"name":"Flawil"},"arcs":[[[-172,-171,-155,-133,184]]]},{"type":"MultiPolygon","id":3405,"properties":{"name":"Jonschwil"},"arcs":[[[-82,188,-145,-164,-170,-166]]]},{"type":"MultiPolygon","id":3407,"pro
 perties":{"name":"Oberuzwil"},"arcs":[[[168,-167,169,-163,-150,170]]]},{"type":"MultiPolygon","id":3408,"properties":{"name":"Uzwil"},"arcs":[[[162,163,-144,164,-151]]]},{"type":"MultiPolygon","id":3422,"properties":{"name":"Niederbüren"},"arcs":[[[-154,-160,161,-120,-135]]]},{"type":"MultiPolygon","id":3423,"properties":{"name":"Niederhelfenschwil"},"arcs":[[[-153,157,158,159]]]},{"type":"MultiPolygon","id":3424,"properties":{"name":"Oberbüren"},"arcs":[[[149,150,151,152,153,-134,154]]]},{"type":"MultiPolygon","id":3426,"properties":{"name":"Zuzwil (SG)"},"arcs":[[[-165,-143,203,-158,-152]]]},{"type":"MultiPolygon","id":3427,"properties":{"name":"Wil (SG)"},"arcs":[[[142,143,144,145]]]},{"type":"MultiPolygon","id":3441,"properties":{"name":"Andwil (SG)"},"arcs":[[[-136,-126,-175]]]},{"type":"MultiPolygon","id":3442,"properties":{"name":"Gaiserwald"},"arcs":[[[-137,174,-125,-124,175,-97]]]},{"type":"MultiPolygon","id":3443,"properties":{"name":"Gossau (SG)"},"arcs":[[[131,132,133,
 134,-119,135,136,-96]]]},{"type":"MultiPolygon","id":3444,"properties":{"name":"Waldkirch"},"arcs":[[[118,119,120,121,122,123,124,125]]]},{"type":"MultiPolygon","id":9328,"properties":{"name":"Bodensee (SG)"},"arcs":[[[69,70,71,72,73,74,75]]]}]}},"arcs":[[[5279,1839],[44,28],[38,36],[63,25],[46,-10],[61,5],[78,-9],[28,73],[62,30],[57,15],[58,1],[24,37],[0,32],[19,79],[-45,108],[27,74],[41,43],[15,46],[-4,25],[29,44],[111,71],[19,28],[41,22],[37,5],[80,-1],[60,-57],[40,2],[43,34],[30,72],[49,49],[3,14],[103,48],[56,74],[19,-14],[71,18],[39,30],[30,-3],[33,24],[33,2],[37,-12],[46,19],[119,128]],[[7019,3074],[17,-32],[101,32],[69,-45],[13,-34],[46,-49],[8,-24],[44,-42],[32,-44]],[[7349,2836],[-74,-33],[-32,1],[-19,-24],[4,-67],[63,-45],[-6,-6],[74,-51],[35,-61],[41,-8],[-20,-17],[38,-32],[108,15],[56,-34],[30,20],[78,19],[0,74],[46,-10],[18,65],[38,2],[-2,-26],[28,-35],[44,33]],[[7897,2616],[96,-129]],[[7993,2487],[-126,-84],[-23,10],[-57,-34],[-11,15],[-35,-45],[-59,41],[-25,27],[-3,-
 19],[-47,12],[6,19],[-38,-1],[-79,14],[-53,30],[-26,-33],[-28,14],[-77,-18],[-37,-39],[1,-23],[-39,-64],[-50,-66],[-32,61],[-24,-6],[-24,28],[-34,10],[-39,-12],[-31,-52],[-48,-98],[2,-30],[-21,-32],[-54,-12],[-13,-34],[-46,-25],[-25,-53],[-26,-27],[-4,-51],[34,-65],[-8,-42],[20,-50],[41,-36],[27,-10],[64,-53],[28,-69],[59,-52],[-18,-88]],[[7015,1445],[18,-18],[7,-40]],[[7040,1387],[-17,-25],[-5,-51],[-26,-28],[-39,-16],[-20,-28],[-38,16],[-22,-20],[-51,-24],[-33,-69],[13,-15],[0,-44],[-28,-52],[-42,1],[-41,-35],[-85,18],[-42,30],[-59,-37],[-59,11],[-87,-10],[-91,34],[-9,18],[-111,20],[-24,24],[-56,-47],[-59,21],[-15,-30],[-58,-30],[-23,-27],[-51,-21],[-40,16],[-94,-29],[-28,-31],[-35,-18],[-66,-59],[-23,-44],[-91,-34],[-42,5],[-83,-25]],[[5360,752],[-16,35],[-14,78],[-16,15],[-113,53],[6,21],[-41,59],[8,39],[-7,105],[91,30],[15,34],[-41,101],[13,82],[29,64],[-5,52],[-29,28],[-4,23],[32,69],[-14,77],[22,36],[26,9],[-2,39],[-21,38]],[[7040,1387],[63,-48],[59,-18],[22,-20],[175,23],[19
 ,-26],[38,10],[-32,51],[-1,40],[-44,69],[55,-16],[42,-1],[-63,94],[115,38],[39,-23],[52,28],[70,-11],[59,10],[54,21],[45,59],[69,12],[15,28],[32,-7],[7,25],[54,22],[14,41],[23,-1],[38,-52],[3,16],[37,25],[23,49],[34,27],[49,-29],[43,5],[22,-13],[80,-5],[19,5],[11,-27],[-37,-27],[21,-21],[50,-22],[28,-27],[28,1],[60,-33],[1,-57],[36,-31],[-37,-21],[-37,-5],[-28,-50]],[[8465,1495],[-53,-33],[-17,-45],[17,-33],[-12,-22],[17,-106],[-38,-24],[-111,-14],[-14,-7],[-17,-65],[-31,2],[-17,-67],[-33,-49],[6,-21],[-37,-18],[11,-21],[-83,-36],[-6,-76],[-27,-39],[-33,-27],[-12,-57],[-16,-23],[11,-73],[110,-48],[-64,-61],[-77,-29],[-36,-36],[-13,-40],[-44,-23],[9,-53],[25,-71],[-21,-63],[-20,-20],[-21,7],[-68,1],[-47,-9],[22,-72],[-18,-63],[-19,-35],[-41,-26],[-99,84],[-32,14],[-53,70],[-60,14],[-34,31],[-65,27],[-46,5],[-23,17],[-101,15],[-67,-6],[-59,19],[-82,45],[-65,13],[-56,-5],[-103,4],[-27,-13],[-50,6],[-176,28],[-34,-20],[-52,55],[-110,-7],[-83,-19],[-49,10],[-59,50],[-32,15],[-96,-7],[-85
 ,21],[-42,-1],[-42,-29],[-75,31],[-37,0],[-44,-13],[-70,-52],[-115,76],[-38,70],[-65,44],[11,51],[17,28],[-15,38],[26,43]],[[4975,4529],[-119,-53],[-70,-27],[-59,41],[-1,17],[-98,21],[-49,2],[-40,18],[-21,-11],[-23,14],[-36,-15],[-49,35],[-39,4],[-26,-13],[-92,13],[-107,-47],[-86,-31],[-7,17],[-86,-20],[-10,6],[-88,-29],[-50,0],[-48,84]],[[3771,4555],[32,5],[67,48],[28,9],[24,43],[31,29],[-13,38],[15,21],[-5,36],[14,33],[49,37],[11,33],[46,33],[16,55],[-2,40],[-17,30],[-20,-21],[10,38],[-41,8],[-15,20],[17,31],[10,83],[-26,15],[0,20],[74,27],[-10,16],[-4,52],[45,42],[38,11],[38,100],[43,7],[-2,57],[25,30],[-2,18],[30,36],[22,-2],[23,24],[4,28],[25,22],[-27,27],[82,19],[75,26],[0,16],[44,18],[0,21],[-24,35],[12,47]],[[4513,5916],[15,-7],[79,6],[0,22],[29,15],[23,-24],[35,-13]],[[4694,5915],[26,-9],[91,-58],[124,-61],[37,-7],[29,-19],[100,-11],[69,22],[45,-5],[59,-34],[72,33],[7,24],[66,29],[36,-2],[15,19],[62,-47],[-45,-15],[61,-10],[42,11],[66,-78],[39,2],[47,-43],[84,37],[40,-2],[1
 2,-24],[-12,-40],[30,-29],[46,-16],[51,-62],[58,-12]],[[6051,5508],[-68,-76],[1,-20],[-34,-21],[-9,-31],[6,-41],[-67,-1],[-40,-21],[4,-30],[-20,-35],[-79,-49],[-48,1],[-30,15],[-51,-20],[-19,-37],[-99,-16],[-27,-20],[-68,-21],[-89,-16],[16,-36],[-51,-11],[-38,-65],[2,-48],[-32,-24],[-37,-59],[-13,-35],[38,-2],[19,-52],[-56,-46],[-40,3],[-16,-21],[-33,26],[-28,-16],[0,-35],[33,-23],[3,-17],[-36,15],[-21,-49],[19,-7],[-23,-46],[-45,8]],[[4902,3979],[10,92],[38,69],[-11,22],[-31,2],[-22,28],[32,44],[-9,15],[114,66],[39,56],[34,27],[-32,-8],[-38,15],[-9,42],[-30,34],[-12,46]],[[6051,5508],[37,24],[61,17],[97,-7],[28,6],[4,-22],[26,-21],[64,-30],[108,-1],[48,-10],[11,-19],[94,-52],[20,-25],[34,-8],[41,-30],[87,33],[75,19],[64,6]],[[6950,5388],[-19,-40],[17,-37]],[[6948,5311],[-40,-47],[-94,-58],[32,-141],[24,-80],[-16,-33],[55,17],[-25,-26],[2,-25],[-26,-38],[11,-32],[-26,9],[-20,-51],[-19,-16]],[[6806,4790],[-23,11],[-59,-43],[-22,-50],[-17,-9],[-13,-42],[-33,5],[-103,-2],[-74,-17],[-16
 ,-23],[-49,-7],[-70,-46],[-20,-29],[-33,-3],[-60,-41],[-51,-59],[3,-61],[-98,-25],[-8,-33],[12,-26],[-37,-107],[-13,-56],[34,-19],[45,-64],[55,-11],[-15,-17]],[[6141,4016],[-100,19],[4,18],[-28,44],[-18,0],[-24,37],[-78,0],[-25,-19],[-37,1],[-13,15],[-38,-9],[-24,12],[-67,-2],[-51,-9],[-45,-23],[-23,10],[-61,-13],[-38,-17],[-40,-4],[-8,13],[-65,-14],[-56,19],[-38,-11],[-14,-23],[-70,-9],[-57,-21],[-19,1]],[[5108,4031],[-64,-48],[-88,-12],[-16,16],[-38,-8]],[[4944,2316],[-21,79],[-4,74],[-38,29],[-9,31],[20,21],[33,4],[44,47],[-18,41],[27,90],[36,5],[52,44],[35,6],[22,23],[93,12],[104,44],[51,-16],[106,64],[3,40],[56,84],[2,34],[92,75],[2,64],[77,39],[0,29],[19,5],[28,46],[-12,36],[68,41],[47,4]],[[5859,3411],[49,-16],[29,-34],[53,8],[40,-4],[16,13],[52,1],[36,27],[43,-2],[22,-19],[35,-4],[-11,15],[60,-31],[47,-37],[72,10],[14,15],[71,-15],[28,1],[25,-31],[59,-40],[62,-51],[43,-57],[45,19],[19,48],[12,-8],[6,50],[35,42]],[[6821,3311],[16,-27],[44,-23],[28,-32],[11,-34],[26,2],[3,-49]
 ,[75,-67],[-5,-7]],[[5279,1839],[-39,48],[-29,74],[2,91],[-46,79],[-26,19],[-5,35],[-68,23],[-28,38],[-33,22],[-40,41],[-23,7]],[[4563,3651],[0,130],[19,42],[-31,66],[21,25],[60,14],[40,0],[118,55],[112,-4]],[[5108,4031],[51,-47],[-11,-65],[55,-41],[26,10],[8,-54],[33,-59],[18,-124],[480,0],[-16,-115],[101,-33],[19,-16],[-15,-29],[2,-47]],[[4944,2316],[-50,-6],[-78,42],[-52,-16],[-33,6],[-110,-61],[-128,-80],[-24,4],[-39,37],[-64,-33],[-46,3],[-16,18],[-73,36],[-12,-10],[-220,131],[128,87],[45,36],[61,15],[11,13],[71,14],[18,-6],[43,46],[26,1],[98,86],[16,21],[17,69],[21,18],[34,67],[19,54],[-16,5],[0,54],[-26,117],[15,68],[-31,55],[-17,55],[5,71],[23,53],[-9,18],[17,38],[-11,33],[-3,59],[9,117]],[[1826,5253],[-143,-27],[-10,-28],[-70,16],[-35,-8],[-21,-22],[-86,-8],[-59,-21]],[[1402,5155],[-23,49],[-45,-6],[5,30],[-110,34],[-19,29],[-117,37],[-114,22],[-63,-27],[-15,42],[-49,21]],[[852,5386],[7,25],[33,10],[-4,65],[53,2],[162,23],[61,12],[16,12],[70,11],[35,17],[5,-35],[136,39],[89
 ,31],[7,18],[48,-17],[45,41],[5,40],[35,19],[-5,27],[30,1],[17,32],[-42,33],[75,56],[5,72],[-29,25],[-23,-37],[-28,5],[9,28],[-18,37],[-47,41],[-31,16],[80,27],[26,19],[25,-6],[41,20],[1,34],[33,31],[50,115],[89,33],[30,-8],[91,20],[30,60],[36,47],[44,78]],[[2144,6505],[31,1],[58,-24],[46,-56],[5,-21],[47,-29],[5,-74],[32,-42],[54,-38],[91,-27],[43,1]],[[2556,6196],[11,-22],[63,-72],[0,-26],[55,-12],[77,-36],[-1,-22],[31,0],[85,19],[11,-37],[-10,-60],[-32,-18],[-1,-19],[-42,-46],[-6,-68],[19,-38]],[[2816,5739],[-76,9],[-86,-4],[-66,-26],[-19,-16],[-77,-14],[-49,22],[-23,-36],[-33,-22],[-17,-30],[-72,-37],[-44,-34],[33,-43],[35,-15],[-29,-31],[-53,-7],[-51,-42],[-33,-7],[-37,-62]],[[2119,5344],[-71,-28],[-45,-3],[-89,-26],[-14,-23],[-74,-11]],[[6806,4790],[11,-15],[60,-10],[89,-5],[21,-14],[46,23],[46,3],[25,-12],[56,21],[23,0],[13,-30],[107,-11],[45,15],[101,22],[323,38],[52,-9]],[[7824,4806],[4,-35],[-24,-44],[-50,-150],[-13,-23],[-31,-97],[12,-16],[-11,-35],[-19,1],[-10,-50],[-51,
 -65],[-20,6],[-69,-17],[-72,-33],[-87,-53],[-1,-29],[-36,7],[-95,-35],[-41,-3],[-102,-67],[-132,-32],[-19,-19],[16,-20],[-28,-62],[1,-37]],[[6946,3898],[-13,-67],[-32,-30]],[[6901,3801],[-70,1],[-23,16],[-10,37],[-20,19],[-79,-2],[-61,-26],[-42,11],[-59,-17],[-55,2],[-53,18],[-25,43],[17,55],[-43,41],[-38,7],[-113,9],[-41,-12],[-45,13]],[[4067,5995],[-40,-26],[-14,22],[-36,0],[-18,15],[-67,-17],[-3,19],[-63,-19],[12,-39],[-100,-11],[-43,2],[-66,-39],[-54,-3],[-33,23],[-37,-7],[33,-18],[23,-43],[-34,-11],[-23,-74],[-74,-49]],[[3430,5720],[24,-26],[-58,-42],[-69,-10],[-55,-23],[3,-73],[-28,-39],[-61,-16]],[[3186,5491],[-41,46],[-65,22],[-42,36],[-26,5],[-65,40],[-34,3],[-11,44],[-30,-5],[-22,32],[-34,25]],[[2556,6196],[60,62],[42,20],[22,63],[44,34],[-33,145],[28,6],[0,30],[26,-19],[68,43],[4,24],[-23,-4],[-44,21],[-3,18],[33,27],[66,18],[58,84],[-47,-2],[-16,22],[28,14]],[[2869,6802],[75,-6],[11,-26],[-42,-70],[-46,-18],[44,-33],[14,-43],[38,11],[-2,-16],[33,-15],[16,13],[4,36],[33,-
 3],[65,25],[36,22],[25,0],[61,26],[8,25]],[[3242,6730],[0,-51],[11,-43],[28,-16],[-33,-21],[65,-47],[34,20],[48,3],[35,-41],[13,-39],[-38,-39],[24,-18],[60,56],[21,8],[75,0],[16,-20],[40,5],[16,32]],[[3657,6519],[-2,14],[69,-12]],[[3724,6521],[8,-30],[49,-34],[38,-16],[17,12],[62,-30],[46,3],[-15,-45],[29,-14],[-36,-16],[3,-40],[42,-27],[14,-26],[23,-2]],[[4004,6256],[-21,-18],[22,-72],[32,-34],[-10,-40],[23,-23],[30,-58],[-13,-16]],[[2144,6505],[-47,48],[-14,42],[-28,22],[-7,32],[4,49],[20,40],[1,41],[-71,27],[9,23],[-9,71],[11,18],[-31,76],[-30,5],[-21,20],[-47,1],[-33,-11],[-12,58],[-39,46],[-17,49],[-28,44],[-14,67],[-37,44],[-33,0],[-19,17],[14,34],[101,41],[35,60],[5,24],[47,-17],[56,8],[-2,46],[27,40],[31,-2]],[[1966,7568],[17,-86],[32,-26],[-12,-48],[35,-12],[-9,-13],[71,-37],[39,-11],[12,14],[30,-14],[66,-6],[18,34],[50,15],[35,80],[18,-13],[27,41],[39,15],[12,-14],[49,-3],[-2,16],[53,-5],[-32,-32],[23,-3],[-10,-33],[29,-15],[13,-25],[66,13],[9,-17],[50,-5],[18,35],[23,5],[
 -6,26],[25,-4],[87,26],[26,-29],[21,-2],[18,28],[-9,22],[52,65],[88,36]],[[3037,7586],[3,-17],[-28,-44],[-35,2],[35,-34]],[[3012,7493],[-45,-17],[-2,-27],[-35,-19],[11,-30],[24,-13],[-12,-68],[17,-79],[32,-19],[12,-41],[-44,-37],[-8,-19],[38,-57],[-6,-45],[-28,5],[-24,-15],[-17,-32],[-37,0],[-29,-19],[-13,-53],[-47,-5],[-11,-20],[42,-68],[34,3],[5,-16]],[[3724,6521],[44,27],[-1,92],[-34,14]],[[3733,6654],[-17,0],[-14,32],[-28,-7],[-23,27],[18,68],[52,48],[47,-17],[30,16],[-10,15],[28,35],[76,-62],[51,-6],[-41,62],[-15,59],[-23,16],[-66,-4],[-17,30],[12,65],[-32,45],[53,16],[-35,51],[-36,4],[-38,25],[18,23],[-31,0],[-28,59],[21,17],[-35,1]],[[3650,7272],[21,52],[45,28],[19,44]],[[3735,7396],[33,1],[-19,20],[8,39],[18,9],[-31,20],[-12,65],[28,52],[17,-5],[37,31],[19,1],[91,-57],[21,-25],[33,12],[37,42],[15,34]],[[4030,7635],[53,7]],[[4083,7642],[45,-5],[0,-37],[-12,-6],[-3,-40],[57,-52],[73,14],[25,-6],[5,22],[55,-24],[70,-5],[-25,-40],[35,-54],[-5,-42],[48,-78],[-12,-6],[26,-40],[-16
 ,-22]],[[4449,7221],[39,-33]],[[4488,7188],[39,-52],[16,-81]],[[4543,7055],[-33,-1],[10,-15],[-29,-11],[34,-14],[8,-31],[46,-13]],[[4579,6970],[45,-35],[23,-41],[19,-12],[4,-37],[52,30],[28,-9],[23,19],[54,10],[25,16],[27,-11],[21,-43],[49,-48],[33,-61],[-5,-19],[-140,-72],[-120,-81]],[[4717,6576],[-133,-64],[-77,8],[-34,-18],[-32,16],[-43,-55],[-61,-3],[-3,-25],[-45,32],[-28,-29],[-49,-19],[-16,-40],[-18,11],[-27,-48],[-74,-62],[-48,-24],[-25,0]],[[6901,3801],[30,-11],[7,-36],[65,-129],[28,-5],[11,-33],[37,-18],[10,-62]],[[7089,3507],[-57,-58],[-42,-49],[-57,-21],[-61,-3],[-86,60],[-84,-25],[21,-29],[32,-16],[3,-33],[40,-3],[23,-19]],[[4563,3651],[-487,67],[-136,44],[-235,6]],[[3705,3768],[-89,68],[-24,119],[12,81],[-7,41],[11,58],[21,39]],[[3629,4174],[26,47],[12,53],[1,59],[11,5],[-1,51],[19,71],[24,50],[50,45]],[[7244,9391],[354,299],[371,309],[141,-149],[198,-14],[212,27],[141,-481],[-2,-86]],[[8659,9296],[-59,34],[-7,-11],[41,-27],[-11,-14],[-30,38],[-18,-26],[9,-39],[-92,-70]
 ,[-31,-96],[-35,-31],[-114,-40]],[[8312,9014],[-69,0],[-147,-16]],[[8096,8998],[-61,-3],[-84,-21],[-82,22],[-49,2],[-49,18]],[[7771,9016],[-17,8],[-46,60],[-6,56]],[[7702,9140],[-74,41],[-20,31],[-52,31],[-68,11],[-106,53]],[[7382,9307],[15,15],[-43,69],[-110,0]],[[3771,4555],[-18,66],[-30,27],[2,19],[-40,40],[-20,43]],[[3665,4750],[8,19],[-18,42],[-30,14],[2,35],[-26,29],[-6,25],[-35,12]],[[3560,4926],[-1,41],[16,18],[-28,24],[27,60],[-4,32],[-39,30],[11,67],[-13,2],[0,39],[-12,46],[-33,7],[-23,29],[-122,24],[2,36],[-18,30],[4,20],[-43,1],[-97,45],[-1,14]],[[4067,5995],[40,-28],[30,-54],[51,14],[99,13],[65,-9],[31,14],[75,7],[30,16],[23,-16],[2,-36]],[[1966,7568],[31,103],[14,17],[-42,75],[25,20],[23,73],[61,27],[17,-15],[62,-1],[34,137],[16,37],[-46,29],[18,23],[-14,40],[-29,7],[78,3],[-2,9],[65,26],[-16,42],[54,-14],[56,6],[21,15],[23,-27],[26,26],[49,25],[9,52],[28,21],[52,-65],[59,7],[14,31],[44,-31],[-30,-31],[42,18],[10,22],[-6,48],[54,-17],[24,41],[27,20],[64,-24],[-15,25],[
 29,-15]],[[2895,8353],[0,-18],[56,-62],[44,-79],[36,12],[34,-36],[48,7],[27,-11],[-14,-72],[94,-51],[4,-30],[-37,-20],[-39,6],[25,-98]],[[3173,7901],[8,-22],[-69,-88],[47,-61],[-61,-47],[12,-23],[-40,-28],[-42,-17],[9,-29]],[[7089,3507],[140,39],[45,44],[8,-8],[92,-12],[60,2],[38,31],[37,45],[47,-17],[60,-8],[34,12],[39,-34],[5,-37],[25,20],[137,-39],[15,-9],[39,14],[100,-44],[74,33],[34,3],[201,62]],[[8319,3604],[32,-141],[10,-80],[-1,-53],[-45,-141],[-29,-33],[-227,-169],[-181,-100],[-25,-15]],[[7853,2872],[-17,17],[-76,-31],[-26,39],[-41,0],[-46,-18],[-16,15],[-60,-28],[-38,-4],[-11,17],[-45,-4],[-42,14],[-47,-12],[-39,-41]],[[6950,5388],[24,11],[66,85],[55,40],[47,17],[84,-6],[40,32],[51,25],[40,0],[20,33],[27,6],[86,73],[16,29],[23,8],[55,41],[71,40],[23,37],[32,16],[51,45],[24,38],[4,28],[35,36],[12,37],[36,23]],[[7872,6082],[40,-20],[58,-41],[106,-13],[70,-50],[18,7],[47,-51],[84,-31],[37,8],[77,3]],[[8409,5894],[-2,-113],[-101,-268],[-25,-51],[-147,-232],[-33,-74],[-19,-132]
 ,[-98,-200]],[[7984,4824],[-53,25],[6,18],[-84,29]],[[7853,4896],[84,168],[-154,10],[2,19],[-105,-4],[2,17],[-64,-6],[-58,15],[-72,-14],[-44,50],[0,22],[-57,61],[-94,53],[-53,2],[-72,47],[-19,-13],[-35,21],[-91,28],[-22,-6],[-53,-55]],[[3204,3717],[-36,-3],[-35,24],[-26,29],[-112,83],[-37,36],[-501,443]],[[2457,4329],[66,9],[114,62],[31,61],[-30,29],[93,130],[35,79]],[[2766,4699],[17,28],[21,-6],[46,63],[41,-55],[34,39],[12,31],[32,17],[20,-6],[95,107],[16,-24],[26,12],[120,-57],[15,-42],[34,-53],[37,-29],[42,-48],[26,-45],[48,-41],[-10,-13],[25,-37],[36,20],[-1,15],[68,28],[47,8],[13,22],[8,78],[31,39]],[[3629,4174],[-25,32],[-33,-29],[-48,-28],[-24,-45],[-46,-38],[-27,10],[-38,-51],[5,-28],[-61,-26],[-88,-108],[-48,-45],[59,-53],[-78,-37],[27,-11]],[[5653,7722],[28,30],[-16,27],[-37,24],[-3,52],[27,39],[36,-5],[-7,67],[-15,86],[64,50],[47,0]],[[5777,8092],[26,-10],[-19,-43],[-32,-31],[60,-31],[71,41],[27,-3],[93,26],[25,22],[38,13],[36,43],[50,11],[4,23],[29,-13],[28,23],[53,15],[
 55,31],[35,58],[39,10],[2,48],[-34,42],[13,34],[-8,22],[42,8],[-3,20]],[[6407,8451],[65,-14],[0,21],[-25,27],[80,31],[41,-30],[5,27],[-21,12],[12,20],[55,29],[12,-33],[-4,-37],[87,33],[15,-14],[11,-51],[-26,-16],[26,-28],[35,-11],[36,140],[43,-6],[7,16]],[[6861,8567],[39,0],[29,-13],[60,12],[43,-38],[29,46],[62,8],[8,-14],[46,-21]],[[7177,8547],[1,-44],[23,-42],[-32,-46],[15,-17]],[[7184,8398],[21,-64],[41,-25]],[[7246,8309],[-2,-34],[-25,-38],[28,-44],[5,-28],[-18,-88],[-36,-7],[14,-44],[20,-18],[-27,-38],[-16,10],[-15,-26],[24,-11],[-37,-32],[-60,-25],[-115,-30],[-32,-28],[-48,-16],[-70,-11],[-59,5],[-26,20],[-9,28],[-23,15],[-100,17],[-9,10],[-76,4],[-29,-14],[-34,-34],[-70,-19],[-15,-21],[-43,20],[-32,-16],[-107,-38],[-46,2],[-35,-16],[-74,31],[-49,-12],[-49,-37],[-134,-26],[-63,-22],[-27,1],[-74,23]],[[8003,6426],[-41,68],[4,57],[39,29],[-3,23],[20,11],[27,141],[10,23],[-7,47],[14,13],[-4,51]],[[8062,6889],[70,23],[28,-19],[33,5],[4,-22],[43,37],[43,7],[23,-14]],[[8306,6906],[-
 20,-19],[46,-22],[-2,-22],[39,-14],[56,-61],[17,10],[20,-28],[27,12],[10,-20],[28,18],[22,38],[77,81],[-34,83],[68,21],[-6,50],[123,-6],[-16,44],[22,17],[140,59],[27,22],[23,63],[58,60],[52,80]],[[9083,7372],[51,85],[44,-16],[17,24]],[[9195,7465],[61,78]],[[9256,7543],[135,176]],[[9391,7719],[9,-15],[-25,-149],[59,-16],[9,15],[32,-8],[-12,-19],[106,-27],[-66,-83],[-61,-66]],[[9442,7351],[-212,-222],[-55,-75],[-11,-26],[-44,-154],[-59,-230],[-13,-27],[-57,-80],[-26,-22],[-168,-99]],[[8797,6416],[-38,18],[-60,5],[-22,15],[-65,3],[-33,-25],[-36,-6],[-182,10],[-14,-6],[-110,29],[-68,37],[-52,-34],[-36,-2],[-19,-25]],[[8062,6435],[-18,25],[-41,-34]],[[3560,4926],[-27,-28],[-28,43],[-66,-34],[-18,8],[-108,-21],[-94,65],[-23,65],[-38,33],[-74,23],[-48,-28],[-29,-1],[-63,-69],[-20,10],[-29,-21],[-65,68],[-5,34],[27,11],[17,51],[-16,39],[-52,35],[-49,-6],[-77,-34],[33,-85],[-35,-1],[-59,19],[-21,20],[-49,3],[-85,32],[-30,-16]],[[2429,5141],[-61,40],[-21,51],[-56,16],[-51,-19],[-23,25],[-52,-
 10],[25,19],[-21,29],[17,43],[-67,9]],[[7993,2487],[77,-97]],[[8070,2390],[-105,-115],[-67,50],[-29,3],[-42,-29],[26,-15],[-54,-65],[23,-33],[28,-4],[-83,-71],[-35,-46],[-45,-82],[-73,-101],[-49,-77],[-31,-12],[-57,14],[-47,-84],[-10,-106],[7,-42],[-70,0],[-215,-41],[-44,-58],[-83,-31]],[[1402,5155],[-12,-26],[33,-170]],[[1423,4959],[-809,-123],[-64,-5],[-67,2],[-110,23],[-52,20],[-101,61],[-67,65],[-152,278],[9,52],[30,-6],[15,35],[23,7],[0,27],[68,16],[147,47],[58,11],[94,-29],[37,-35],[78,1],[0,25],[84,33],[7,-61],[31,-34],[18,10],[61,-14],[47,14],[5,-13],[39,20]],[[5281,8504],[-64,23],[-1,37],[-47,2],[-78,-13],[-18,-18]],[[5073,8535],[-42,9],[0,29],[-28,36],[28,56],[-10,15],[26,39],[-21,17],[-4,42],[-36,10],[3,37],[-28,22],[31,57],[-28,24],[4,24]],[[4968,8952],[9,12],[35,-23],[42,3],[30,-65],[47,-19],[31,9],[89,-7],[33,10],[28,24],[62,29],[66,14],[6,28],[25,27],[65,-11],[10,-34],[97,-16],[29,-22],[64,34],[46,40],[6,33],[68,32],[41,63],[23,5]],[[5920,9118],[8,-26],[-19,-33],[19,-
 23],[51,21],[33,-44],[36,-1],[57,-45],[76,9],[-1,-35],[35,-42],[40,5],[-17,39],[26,10]],[[6264,8953],[21,-97],[28,2],[24,41],[21,15],[41,-16],[8,-26],[-21,-20],[7,-23],[40,-23],[-3,-63],[-19,-27],[48,-26],[23,-36],[-23,-24],[-83,-1],[-11,-40]],[[6365,8589],[-52,6],[-39,-7],[-47,-49],[-42,-17],[-32,22]],[[6153,8544],[-31,17],[-91,-17],[-18,-33],[-30,13],[-19,-23],[-30,1],[8,-46],[-56,-7],[11,-14],[-10,-38],[-24,11],[-39,-16],[43,-50],[-8,-19],[-40,12],[-12,-67],[-24,3],[-8,-33],[23,-20],[-56,4],[-31,-10],[-6,16],[-33,1]],[[5672,8229],[14,40],[56,22],[10,31],[-43,19],[10,43],[-64,49],[-30,-3],[-16,33],[-35,7],[4,49],[-54,38],[11,18],[-29,10],[-68,-5],[8,-20],[-41,-59],[-31,-27],[-44,26],[-16,-14],[-33,18]],[[8049,7143],[-8,3],[-34,133],[23,68],[-25,17],[19,33],[48,39],[-22,13],[0,87],[19,100],[-11,12],[29,34],[22,59],[98,24],[14,9],[121,16],[80,29],[75,10],[26,-21],[-22,-53],[19,5],[50,-31],[38,19],[29,32]],[[8637,7780],[61,-43],[-10,-34],[28,-6],[55,-55],[52,-7],[-40,-48],[46,3],[47,
 -17],[84,-70],[10,-18],[74,-31],[39,-82]],[[8306,6906],[5,12],[35,-21],[53,27],[10,-17],[86,26],[-22,41],[-13,62],[-39,38],[-13,-7],[-39,21],[-37,-15],[-22,14],[38,42],[42,8],[55,-8],[0,50],[-74,42],[-31,29],[-27,0],[-103,-36],[-54,-32],[-32,-43],[-37,-23],[-38,27]],[[6946,3898],[86,27],[39,0],[40,24],[77,30],[31,0],[35,26],[96,28],[82,-17],[32,50],[24,-3],[47,48],[-3,15],[45,10],[32,-13],[55,2],[53,59],[43,17],[30,-7],[-21,-66],[-36,-44],[29,-59],[47,10],[110,11],[69,-10],[46,4],[112,31]],[[8146,4071],[55,-66],[17,-36],[47,-141],[54,-224]],[[5653,7722],[-98,12],[-28,10],[-43,-7],[-5,19],[-83,21],[-28,-26],[-53,27],[-83,-39],[-14,30],[-65,-7],[-45,-28],[-21,10],[-80,-44],[-30,9],[-26,-12],[-4,26]],[[4947,7723],[-31,29],[-52,-14],[-16,23],[-46,11],[-26,40],[4,54],[-17,46],[-18,15]],[[4745,7927],[57,53],[-47,43],[-5,67],[16,-6],[12,55],[-37,25],[-1,56],[-35,15],[29,44],[-24,3],[17,50],[68,1],[16,19],[-28,46],[51,41]],[[4834,8439],[16,-23],[66,-9],[28,-30],[63,-16],[19,7],[18,80],[-1,4
 7],[30,40]],[[5281,8504],[-35,-25],[22,-41],[-27,-41],[7,-21],[43,-42],[-37,-39],[67,-17],[42,-44],[24,-8],[23,-30],[115,11],[7,-26],[36,-17],[18,41],[23,11],[12,-28],[48,39]],[[5669,8227],[-12,-62],[60,-29],[35,15],[32,-21],[-7,-38]],[[8070,2390],[172,-216],[28,-46],[26,-86],[14,-25],[120,-151],[286,-305],[-38,-30],[-84,-3],[-73,-12],[-10,-16],[-46,-5]],[[7853,4896],[-19,-38],[-10,-52]],[[3650,7272],[-23,-9],[-35,10],[2,22],[-25,3],[-5,27],[-26,14],[-26,-46],[-25,-24],[-3,-43],[26,-18],[23,-52],[-70,-31],[-38,-30],[-43,-8],[-3,-15],[42,-1],[0,-26],[-98,-4],[-3,-23],[27,-15],[-6,-20],[-38,2],[8,-43],[-18,-28],[11,-46],[-12,-47],[12,-30],[43,13],[41,-18],[8,-34],[-40,-5],[-5,-13]],[[3351,6734],[-66,24],[-43,-28]],[[3012,7493],[39,-27],[47,22],[0,-14],[50,3],[43,39],[-9,46],[33,37],[15,-20],[18,9],[5,41],[23,-25],[55,8],[1,-38],[15,-19],[-19,-23],[53,2],[35,-34],[31,-10],[14,21],[35,-31],[52,-19],[46,10],[19,-21],[-14,-25],[42,-30],[37,-9],[45,24],[12,-14]],[[3299,8948],[59,-13],[10,-
 21],[-18,-50],[-30,-24],[-74,-20],[-59,-6],[-35,-30],[-36,-3],[-83,-24],[-35,-30],[28,-1],[68,-54],[33,-43],[35,-16],[27,-40]],[[3189,8573],[-87,-38],[-41,-36],[-35,-53]],[[3026,8446],[-38,-46]],[[2988,8400],[-53,25],[-40,8],[-3,29],[-42,32],[-114,19],[-148,46],[-18,39],[48,26],[-27,38],[13,33],[-34,17],[-101,24],[-110,40],[42,44],[-37,6],[-1,59],[-60,20],[51,38],[38,48],[-15,13],[24,33],[56,3],[33,-26],[45,10],[23,18],[25,-21],[19,26],[54,25],[14,-8],[19,27],[49,38],[24,-43],[81,-18],[3,-24],[30,-2],[21,-34],[36,12],[-5,30],[35,14],[7,19],[24,-23],[51,13],[44,31],[18,-20],[59,40],[30,6],[28,-47],[3,-38],[40,-47],[18,-50],[14,0]],[[4717,6576],[38,-17],[16,-96],[38,-65],[6,-30],[-20,-63],[21,-43],[68,-77],[10,-21],[-30,-27],[8,-21],[-35,-38],[-22,-40],[-43,-17],[-73,-72],[-5,-34]],[[2766,4699],[-45,-8],[-13,28],[16,29],[-30,25],[-23,-20],[-38,48],[-35,-2],[-16,-17],[-41,-6],[8,18],[-115,40],[-31,26],[-32,-25],[-63,9],[-146,42]],[[2162,4886],[-25,34],[142,82],[29,-26],[56,55],[-21,25]
 ,[16,21],[40,-16],[16,10],[14,70]],[[4373,8156],[-49,16],[-33,24],[-6,21],[-19,-17],[-28,28],[-32,-18],[-27,5],[23,23],[-34,-6],[-17,15],[-23,-27],[-15,20],[28,30],[-38,-6],[-3,37],[-33,-8],[23,25],[-57,-7]],[[4033,8311],[-6,32],[15,28],[-29,50],[-21,117],[5,13],[-42,-6],[-133,-4],[-120,31],[-21,18],[-19,63],[-32,22]],[[3630,8675],[2,12]],[[3632,8687],[23,-17],[16,15],[26,-23],[2,-23],[101,-11],[60,16],[8,-17],[80,-28],[23,-16],[49,28],[-39,63],[20,79],[40,-2],[35,14],[44,-32],[31,-2],[-5,-25],[21,-40],[25,-9],[41,36],[20,-15],[51,44],[13,-12]],[[4317,8710],[-14,-37],[57,-73],[-5,-27],[52,-44],[1,-21],[31,-14],[30,-32],[-1,-44],[33,-9],[23,14],[58,-10],[25,-33],[89,35],[14,-13],[45,4],[22,17],[1,61],[54,-27],[2,-18]],[[4745,7927],[-35,5],[-16,-23],[-25,28],[-6,-23],[-33,16],[-28,33],[-49,-2],[-7,38],[-31,27],[18,10],[-31,14],[4,30],[-32,0],[-15,16],[31,26],[-17,14],[-37,-9],[-18,23],[-45,6]],[[2057,4925],[30,-57],[75,18]],[[2457,4329],[-28,26],[-9,-10],[-98,47],[14,19],[-94,50],[-10
 1,27],[-77,-15],[-7,-30],[-26,5],[-6,-26],[-97,5],[-23,139],[-35,159],[89,-20],[38,191],[60,29]],[[3632,8687],[32,58],[71,46],[23,1],[31,33],[-14,33],[30,16],[-28,86],[-39,21]],[[3738,8981],[86,20],[58,-19],[73,42],[55,7],[52,24],[27,74],[25,42],[-26,27],[1,19],[39,31],[18,31],[19,-8],[7,-34],[12,41],[32,-9],[-30,-75],[67,-43],[29,-7],[0,33],[40,6],[23,-89],[67,27],[53,-27],[-2,-34],[41,25],[24,-23],[14,9],[86,-12],[26,11],[-37,-38],[16,-62],[23,-9],[-9,-27]],[[4647,8934],[-25,-41],[-34,-9],[-102,-68],[-12,-18],[-61,-38],[-54,-19],[-42,-31]],[[7984,4824],[-25,-100],[-18,-106],[-1,-53],[61,-236],[32,-72],[77,-144],[36,-42]],[[4647,8934],[49,-18],[0,22],[56,52],[17,-7],[56,20],[35,-16],[12,12],[41,-14],[-1,-32],[56,-1]],[[4033,8311],[-69,-21],[-18,-63],[7,-46],[114,-17],[-10,-68],[-51,-6],[-11,21],[-21,-8],[-89,24],[17,29],[-60,13],[0,19],[-26,-4],[-50,31],[-27,50],[-25,13],[-4,-20],[-55,-15],[-7,20],[-51,10],[-64,-14],[-57,-2]],[[3476,8257],[6,13],[-38,22],[-84,6],[-11,23],[-42,11],[
 -1,22],[-50,25],[5,16],[-60,21],[-21,35],[-26,-14],[-20,-32],[-18,15],[-27,-17],[-30,53],[-33,-10]],[[3189,8573],[307,54],[64,23],[34,30],[36,-5]],[[3173,7901],[37,-13],[36,2],[-26,29],[37,30],[19,-35],[60,0],[23,-16],[39,1],[26,31],[47,-24],[0,-30],[35,11],[-45,-77],[71,-7],[83,33],[42,0],[12,-22]],[[3669,7814],[26,-27],[49,-4],[64,10],[13,-33],[43,-28],[63,28]],[[3927,7760],[35,-20],[-23,-10],[10,-24],[34,-18],[22,-36],[25,-17]],[[4070,7872],[-60,-49],[-55,0],[-34,14],[6,-77]],[[3669,7814],[9,4],[-18,46],[22,44],[-39,-24],[-39,18],[39,13],[-7,14],[-42,11],[-29,30],[28,64],[-22,35],[-33,11],[28,39],[-68,22],[-40,-7],[-1,22],[-45,-22],[9,46],[40,39],[15,38]],[[4373,8156],[6,-53],[-42,-9],[-5,-44],[-23,10],[-28,-11],[-32,-35],[-30,6],[-22,-21],[-32,-67],[-95,-60]],[[4070,7872],[55,17],[24,-40],[44,13],[46,-39],[37,-11],[58,12],[37,-4],[0,-31],[-26,-40],[42,-16],[31,9],[4,-27],[56,-13],[-23,-15],[-21,-51],[80,-19],[28,31],[21,-35],[102,1],[54,-17],[52,-31],[26,-2],[-2,-44]],[[4795,752
 0],[2,-23],[36,-74],[-23,-17],[15,-53],[-26,-4],[-24,-50],[-39,-27],[11,-20],[-41,-52],[-126,-26],[-31,11],[-61,3]],[[3657,6519],[-77,37],[-33,64],[-48,8],[30,35],[-61,0],[0,25],[-75,25],[-42,21]],[[5669,8227],[3,2]],[[6365,8589],[28,-43],[34,7],[-34,-56],[14,-46]],[[6264,8953],[10,27]],[[6274,8980],[48,39],[-21,26],[25,26],[-23,14],[72,-8],[53,-40],[14,13]],[[6442,9050],[20,-11],[56,10]],[[6518,9049],[-14,-19],[17,-25],[-25,-16],[14,-12],[-25,-17],[11,-15],[83,27],[55,-7],[-4,-32],[74,-10],[-9,-18],[41,-10],[-16,17],[8,23]],[[6728,8935],[23,-19],[44,-12],[-9,40],[33,2]],[[6819,8946],[3,-5]],[[6822,8941],[29,-34],[78,-1],[27,15]],[[6956,8921],[11,-57],[-37,-36],[-42,-25],[-5,-54],[-29,-73],[23,-71],[-16,-38]],[[4947,7723],[-22,-14],[21,-16],[5,-112],[-39,-24],[-28,11],[-43,-3],[-46,-45]],[[9391,7719],[10,17],[-63,54],[105,77]],[[9443,7867],[29,-31],[17,9],[42,-32],[-40,-46],[-4,-24],[110,-44],[40,81],[12,38],[27,-12],[9,38],[30,-8],[19,92]],[[9734,7928],[31,-2],[54,-85],[31,-26],[10
 7,-43],[33,-31],[9,-33],[-8,-122],[-31,-56],[-86,-95],[-42,-26],[-55,-21],[-72,-13],[-92,0],[-82,-11],[-68,-28],[-21,15]],[[2895,8353],[52,1],[-22,36],[42,-6],[21,16]],[[5869,9381],[-6,14],[-56,10],[-98,77],[-14,-24],[8,-26],[-37,-4],[-17,-44],[-28,6],[-38,-22],[-5,-22],[-58,13],[0,-13],[-61,-17],[-2,10],[-83,8],[-23,11],[-12,33],[-27,11],[21,24],[16,-15],[42,27],[30,-19],[2,-22],[27,-3],[-12,57],[37,11],[0,26],[23,32],[-30,31],[127,36],[21,-2],[9,26],[59,-5],[15,35],[55,-9],[60,-52],[10,25],[-17,55],[49,18],[-16,23],[36,22],[43,-9],[23,-26],[52,-12],[10,19],[101,-8],[7,35],[13,-73],[-13,-23],[25,-11],[4,-25],[30,-23],[97,-19],[45,3],[-5,-46],[-25,-23],[-37,7],[-50,-54],[31,-8],[-26,-48],[-21,3],[-11,-27],[-47,6]],[[6122,9361],[-15,24],[12,45],[-25,3],[-17,-18],[-35,-82],[-8,-57],[-69,34],[-1,22],[-46,18],[-31,30],[-18,1]],[[6956,8921],[7,38],[70,39],[78,51]],[[7111,9049],[39,-25],[33,17],[82,-5],[56,28]],[[7321,9064],[31,-26],[-10,-38],[54,-21],[19,12],[-9,-61],[-35,-24],[12,-30],[
 51,-13]],[[7434,8863],[2,-17],[-39,-37],[-45,-12],[-23,-22],[11,-13]],[[7340,8762],[-35,-20],[4,-28],[-27,-17],[18,-12],[-25,-27],[6,-23],[-52,-20],[-52,-68]],[[8345,8832],[-9,62],[-27,28],[20,5],[1,43],[-18,44]],[[8659,9296],[11,-41],[47,-56],[122,-80]],[[8839,9119],[-10,-37],[26,-17],[-9,-21],[71,-36],[-62,-55],[-31,-60],[11,-21],[-16,-41],[25,-11],[7,-50]],[[8851,8770],[-115,7],[-33,-9],[-82,25],[-28,-15],[-45,5],[-41,-21],[-10,20],[18,18],[-6,30],[-28,-3],[-25,25],[-35,-17],[-21,7],[-55,-10]],[[7853,2872],[-19,-21],[-6,-52],[51,-144],[18,-39]],[[8797,6416],[-91,-76],[-24,-30],[-42,-159],[-53,-94],[-32,-29]],[[8555,6028],[-13,13],[-45,-19],[-8,10],[-63,-32],[-149,27],[24,43],[-7,49],[38,87],[-51,26],[-3,16],[-39,12],[-24,39],[-89,43],[-12,49],[-41,22],[-11,22]],[[3299,8948],[9,9],[69,8],[7,25],[61,-18],[30,8],[33,-12],[40,8],[39,-69],[33,1],[63,30],[-6,29],[61,14]],[[7184,8398],[63,-1],[85,30],[31,34],[80,18],[26,16],[29,-12],[54,36],[66,1],[85,22],[31,-9],[47,29],[-8,20]],[[7773
 ,8582],[26,-6],[19,18],[51,13],[11,-24],[39,11],[23,-16],[36,79],[197,99],[7,22],[35,22],[93,-7]],[[8310,8793],[-42,-59],[22,-32],[2,-40],[37,-44],[-33,6],[-38,-36],[-71,-2],[-43,-33],[-67,-4],[-53,-57],[-96,-49],[-89,-15],[-77,-38],[-28,7],[-26,-12],[-56,2],[-26,-10],[-38,-38],[-96,-38],[-38,-10],[-1,-21],[-28,-8],[-26,27],[-49,19],[-29,-12],[-45,17],[-30,-4]],[[5920,9118],[-20,48],[6,48],[-31,47],[-44,-5],[-37,-34],[-21,-2],[9,80],[-16,9],[25,55],[56,-9],[22,26]],[[6122,9361],[-10,-2],[-20,-68],[19,-20],[20,35],[22,8],[55,-25],[108,-14],[1,38],[66,-7],[71,-34],[48,7],[25,-17],[-3,-64],[-46,-14],[-15,-25]],[[6463,9159],[-72,41],[-57,-33],[0,-22]],[[6334,9145],[-46,4],[28,-17],[99,-17],[43,-35]],[[6458,9080],[-16,-30]],[[7872,6082],[40,79],[-10,35],[26,60],[12,90],[-20,15],[26,31],[57,34]],[[8555,6028],[-115,-80],[-31,-54]],[[2057,4925],[-16,32],[-33,30],[-51,5]],[[1957,4992],[0,38],[14,1],[5,43],[-36,43],[-40,-12],[12,30],[-18,7],[32,41],[-61,12],[-18,16],[7,29],[-28,13]],[[7340,87
 62],[57,-10],[56,21],[24,-36],[42,37],[56,8],[75,-34],[5,-18],[23,15],[48,-13]],[[7726,8732],[24,-65],[36,-31],[-8,-22],[-28,-5],[23,-27]],[[7726,8732],[-1,23],[29,9],[-7,20],[15,84],[17,34]],[[7779,8902],[49,-7],[25,-16],[27,8],[1,-24],[27,-9],[126,29],[20,13],[12,60],[23,5],[7,37]],[[8345,8832],[-35,-39]],[[9709,8493],[-21,15],[-50,-28],[-56,-13],[-90,-10],[-25,-13]],[[9467,8444],[14,36],[-16,31],[-74,27],[-32,22],[-87,11],[-101,54],[-86,57],[-15,32],[-73,-22],[-2,27]],[[8995,8719],[21,17],[33,62]],[[9049,8798],[23,-25],[50,-15],[47,24],[20,98],[38,10],[26,-22],[51,-89],[49,-61],[25,-17],[49,-9],[207,-8],[109,-20],[41,-18],[17,-23],[-14,-54],[-78,-76]],[[9256,7543],[-106,98],[57,36],[-70,96],[24,10],[-23,32],[-22,-13],[-36,50],[12,6],[-25,34],[-19,-4],[-23,28],[-29,6],[6,25],[-23,-1],[-31,27]],[[8948,7973],[6,14],[78,30],[68,0],[66,38],[28,3]],[[9194,8058],[91,-4],[106,2],[36,-16]],[[9427,8040],[6,-47],[-70,-44],[36,-14]],[[9399,7935],[52,-62],[-8,-6]],[[1957,4992],[-125,-19],[-15
 4,24],[-255,-38]],[[3705,3768],[-66,-21],[-37,1],[-52,23],[-92,-22],[-254,-32]],[[9194,8058],[-40,29],[-63,14],[14,14],[-97,50],[11,11],[-15,43],[107,57],[105,40],[12,25],[50,14],[55,53],[94,22]],[[9427,8430],[25,-82],[19,-5],[-36,-44],[27,-8],[20,-35],[-12,-26],[-18,4],[-7,-27],[30,-7],[-19,-61],[-38,-26],[23,-37],[-17,-3],[3,-33]],[[8062,6889],[-3,203],[-10,51]],[[7111,9049],[-13,40],[-52,38],[2,11],[-45,21],[1,19],[70,10],[6,30],[-16,5]],[[7064,9223],[41,79],[49,29],[22,28],[68,32]],[[7382,9307],[-14,-51],[27,-14],[-25,-51],[15,-21]],[[7385,9170],[-17,-38],[6,-21],[-42,-22],[-11,-25]],[[7434,8863],[43,42],[23,75],[32,55],[28,20]],[[7560,9055],[142,85]],[[7771,9016],[-19,-39],[-22,-16],[4,-30],[26,2],[19,-31]],[[9722,8103],[-121,-10],[-1,13],[-70,6],[-43,-77],[14,-15],[-35,-66],[-48,-5],[-19,-14]],[[9427,8430],[40,14]],[[9709,8493],[-52,-51],[-19,-43],[8,-66],[41,-88],[22,-63],[13,-79]],[[9195,7465],[-9,20],[-134,62],[-12,43],[22,13],[-22,26],[30,19],[-12,33],[-69,58],[-26,-11],[-
 87,38],[-31,21],[-20,37],[-34,-1],[-19,20]],[[8772,7843],[6,20],[37,13],[24,23],[36,2],[-23,21],[96,51]],[[8637,7780],[14,-1],[53,41],[34,-4],[34,27]],[[9722,8103],[13,-114],[-1,-61]],[[6819,8946],[22,43],[-6,25],[14,37],[-21,17],[31,16],[37,80],[0,23],[34,-9],[44,62],[44,9],[46,-26]],[[8995,8719],[-91,36],[-53,15]],[[8839,9119],[49,-34],[32,-42],[129,-245]],[[7385,9170],[50,-7],[-8,-24],[72,-8],[38,-16],[37,-2],[-14,-15],[0,-43]],[[6518,9049],[22,27],[66,5],[-14,-28],[19,-7],[48,-43],[40,-5],[33,-43],[-4,-20]],[[4543,7055],[43,12],[59,51],[30,-29],[-33,-16],[-26,-60],[-37,-43]],[[6463,9159],[-1,-11]],[[6462,9148],[-10,-19],[27,-28]],[[6479,9101],[-21,-21]],[[6289,9436],[32,3],[27,-20],[-11,-35],[-40,17],[-8,35]],[[6462,9148],[51,-23],[-34,-24]]],"transform":{"scale":[0.04223292269282255,-0.048004800480048],"translate":[268.8565029972337,490]}}


[27/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/bl-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/bl-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/bl-municipalities.json
deleted file mode 100644
index 5509c84..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/bl-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":2761,"properties":{"name":"Aesch (BL)"},"arcs":[[[139,140,-139,141,142,143]]]},{"type":"MultiPolygon","id":2762,"properties":{"name":"Allschwil"},"arcs":[[[99,100,101,102,103,104]]]},{"type":"MultiPolygon","id":2763,"properties":{"name":"Arlesheim"},"arcs":[[[-161,-150,-10,170]]]},{"type":"MultiPolygon","id":2764,"properties":{"name":"Biel-Benken"},"arcs":[[[219,-127,-137]]]},{"type":"MultiPolygon","id":2765,"properties":{"name":"Binningen"},"arcs":[[[-129,-104,214,215]]]},{"type":"MultiPolygon","id":2766,"properties":{"name":"Birsfelden"},"arcs":[[[-13,240]]]},{"type":"MultiPolygon","id":2767,"properties":{"name":"Bottmingen"},"arcs":[[[-130,-216,237,-159]]]},{"type":"MultiPolygon","id":2768,"properties":{"name":"Ettingen"},"arcs":[[[-158,182,-135,-141,183]]]},{"type":"MultiPolygon","id":2769,"properties":{"name":"Münchenstein"},"arcs":[[[147,148,-11,149]]]},{"type
 ":"MultiPolygon","id":2770,"properties":{"name":"Muttenz"},"arcs":[[[8,9,10,11,12,13,14]]]},{"type":"MultiPolygon","id":2771,"properties":{"name":"Oberwil (BL)"},"arcs":[[[125,126,127,-105,128,129,130]]]},{"type":"MultiPolygon","id":2772,"properties":{"name":"Pfeffingen"},"arcs":[[[205,206,-184,-140,-195]]]},{"type":"MultiPolygon","id":2773,"properties":{"name":"Reinach (BL)"},"arcs":[[[-142,-138,-131,158,159,-148,160,161]]]},{"type":"MultiPolygon","id":2774,"properties":{"name":"Schönenbuch"},"arcs":[[[251,101,-102,-101]]]},{"type":"MultiPolygon","id":2775,"properties":{"name":"Therwil"},"arcs":[[[134,135,136,-126,137,138]]]},{"type":"MultiPolygon","id":2781,"properties":{"name":"Blauen"},"arcs":[[[153,154,155,156,157]]]},{"type":"MultiPolygon","id":2782,"properties":{"name":"Brislach"},"arcs":[[[76,-28,77,78,79,80]]]},{"type":"MultiPolygon","id":2783,"properties":{"name":"Burg im Leimental"},"arcs":[[[-53,239]]]},{"type":"MultiPolygon","id":2784,"properties":{"name":"Dittingen"},
 "arcs":[[[-55,176,-156,177,-26]]]},{"type":"MultiPolygon","id":2785,"properties":{"name":"Duggingen"},"arcs":[[[193,194,-144,195]]]},{"type":"MultiPolygon","id":2786,"properties":{"name":"Grellingen"},"arcs":[[[230,-80,-227,-206,-194]]]},{"type":"MultiPolygon","id":2787,"properties":{"name":"Laufen"},"arcs":[[[-23,24,25,26,27,28,29]]]},{"type":"MultiPolygon","id":2788,"properties":{"name":"Liesberg"},"arcs":[[[20,21,22,23]]]},{"type":"MultiPolygon","id":2789,"properties":{"name":"Nenzlingen"},"arcs":[[[-79,-213,-154,-207,226]]]},{"type":"MultiPolygon","id":2790,"properties":{"name":"Roggenburg"},"arcs":[[[178]]]},{"type":"MultiPolygon","id":2791,"properties":{"name":"Röschenz"},"arcs":[[[-22,51,52,53,54,-25]]]},{"type":"MultiPolygon","id":2792,"properties":{"name":"Wahlen"},"arcs":[[[-29,-77,199]]]},{"type":"MultiPolygon","id":2793,"properties":{"name":"Zwingen"},"arcs":[[[-27,-178,-155,212,-78]]]},{"type":"MultiPolygon","id":2821,"properties":{"name":"Arisdorf"},"arcs":[[[-6,55,56
 ,57,58,59,60]]]},{"type":"MultiPolygon","id":2822,"properties":{"name":"Augst"},"arcs":[[[-211,-49,249,250]]]},{"type":"MultiPolygon","id":2823,"properties":{"name":"Bubendorf"},"arcs":[[[39,40,41,42,-1,43,44,45,46]]]},{"type":"MultiPolygon","id":2824,"properties":{"name":"Frenkendorf"},"arcs":[[[-51,-210,-4,213]]]},{"type":"MultiPolygon","id":2825,"properties":{"name":"Füllinsdorf"},"arcs":[[[-5,209,-50,210,211,-56]]]},{"type":"MultiPolygon","id":2826,"properties":{"name":"Giebenach"},"arcs":[[[-212,-251,252,-57]]]},{"type":"MultiPolygon","id":2827,"properties":{"name":"Hersberg"},"arcs":[[[-7,-61,248,-247,-94,-197]],[[-59,253]]]},{"type":"MultiPolygon","id":2828,"properties":{"name":"Lausen"},"arcs":[[[-44,-8,196,-93,197,198]]]},{"type":"MultiPolygon","id":2829,"properties":{"name":"Liestal"},"arcs":[[[0,1,2,3,4,5,6,7]]]},{"type":"MultiPolygon","id":2830,"properties":{"name":"Lupsingen"},"arcs":[[[236,-228,-42,-133]]]},{"type":"MultiPolygon","id":2831,"properties":{"name":"Pratte
 ln"},"arcs":[[[-15,47,48,49,50]]]},{"type":"MultiPolygon","id":2832,"properties":{"name":"Ramlinsburg"},"arcs":[[[-45,-199,-236,-173,-190]]]},{"type":"MultiPolygon","id":2833,"properties":{"name":"Seltisberg"},"arcs":[[[227,228,-2,-43]]]},{"type":"MultiPolygon","id":2834,"properties":{"name":"Ziefen"},"arcs":[[[131,132,-41,133,-86]]]},{"type":"MultiPolygon","id":2841,"properties":{"name":"Anwil"},"arcs":[[[-152,-39,223]]]},{"type":"MultiPolygon","id":2842,"properties":{"name":"Böckten"},"arcs":[[[-98,-239,-65,242]]]},{"type":"MultiPolygon","id":2843,"properties":{"name":"Buckten"},"arcs":[[[-117,245,-234,-244,-221]]]},{"type":"MultiPolygon","id":2844,"properties":{"name":"Buus"},"arcs":[[[105,106,107,108,109,110,111]]]},{"type":"MultiPolygon","id":2845,"properties":{"name":"Diepflingen"},"arcs":[[[-245,-63,-232]]]},{"type":"MultiPolygon","id":2846,"properties":{"name":"Gelterkinden"},"arcs":[[[61,62,63,64,65,66,67,68,69]]]},{"type":"MultiPolygon","id":2847,"properties":{"name":"Hä
 felfingen"},"arcs":[[[-118,220,221,-202,-120,222]]]},{"type":"MultiPolygon","id":2848,"properties":{"name":"Hemmiken"},"arcs":[[[-170,-112,229,-37]]]},{"type":"MultiPolygon","id":2849,"properties":{"name":"Itingen"},"arcs":[[[235,-198,-92,-174]]]},{"type":"MultiPolygon","id":2850,"properties":{"name":"Känerkinden"},"arcs":[[[-75,-235,-246,-116]]]},{"type":"MultiPolygon","id":2851,"properties":{"name":"Kilchberg (BL)"},"arcs":[[[-122,-205,-242,-192]]]},{"type":"MultiPolygon","id":2852,"properties":{"name":"Läufelfingen"},"arcs":[[[-33,-76,115,116,117,118]]]},{"type":"MultiPolygon","id":2853,"properties":{"name":"Maisprach"},"arcs":[[[-166,200,-110]]]},{"type":"MultiPolygon","id":2854,"properties":{"name":"Nusshof"},"arcs":[[[246,247,-164,-95]]]},{"type":"MultiPolygon","id":2855,"properties":{"name":"Oltingen"},"arcs":[[[-124,150,151,152]]]},{"type":"MultiPolygon","id":2856,"properties":{"name":"Ormalingen"},"arcs":[[[166,167,-67,168,-106,169,-36]]]},{"type":"MultiPolygon","id":2857
 ,"properties":{"name":"Rickenbach (BL)"},"arcs":[[[-66,238,-97,-163,-108,-107,-169]]]},{"type":"MultiPolygon","id":2858,"properties":{"name":"Rothenfluh"},"arcs":[[[34,35,36,37,38]]]},{"type":"MultiPolygon","id":2859,"properties":{"name":"Rümlingen"},"arcs":[[[243,-233,-70,-203,-222]]]},{"type":"MultiPolygon","id":2860,"properties":{"name":"Rünenberg"},"arcs":[[[201,202,-69,203,204,-121]]]},{"type":"MultiPolygon","id":2861,"properties":{"name":"Sissach"},"arcs":[[[90,91,92,93,94,95,96,97,98]]]},{"type":"MultiPolygon","id":2862,"properties":{"name":"Tecknau"},"arcs":[[[241,-204,-68,-168,-193]]]},{"type":"MultiPolygon","id":2863,"properties":{"name":"Tenniken"},"arcs":[[[-191,-176,207,208,-73]]]},{"type":"MultiPolygon","id":2864,"properties":{"name":"Thürnen"},"arcs":[[[-175,-99,-243,-64,244,-208]]]},{"type":"MultiPolygon","id":2865,"properties":{"name":"Wenslingen"},"arcs":[[[-123,191,192,-167,-35,-151]]]},{"type":"MultiPolygon","id":2866,"properties":{"name":"Wintersingen"},"arcs
 ":[[[162,-96,163,164,165,-109]]]},{"type":"MultiPolygon","id":2867,"properties":{"name":"Wittinsburg"},"arcs":[[[-209,231,-62,232,233,234,-74]]]},{"type":"MultiPolygon","id":2868,"properties":{"name":"Zeglingen"},"arcs":[[[119,120,121,122,123,124]]]},{"type":"MultiPolygon","id":2869,"properties":{"name":"Zunzgen"},"arcs":[[[171,172,173,-91,174,175]]]},{"type":"MultiPolygon","id":2881,"properties":{"name":"Arboldswil"},"arcs":[[[-226,-87,-134,-40,-218]]]},{"type":"MultiPolygon","id":2882,"properties":{"name":"Bennwil"},"arcs":[[[-18,179,180,181,-71,-31]]]},{"type":"MultiPolygon","id":2883,"properties":{"name":"Bretzwil"},"arcs":[[[144,-84,145]]]},{"type":"MultiPolygon","id":2884,"properties":{"name":"Diegten"},"arcs":[[[70,71,72,73,74,75,-32]]]},{"type":"MultiPolygon","id":2885,"properties":{"name":"Eptingen"},"arcs":[[[-19,30,31,32,33]]]},{"type":"MultiPolygon","id":2886,"properties":{"name":"Hölstein"},"arcs":[[[-182,187,188,189,-172,190,-72]]]},{"type":"MultiPolygon","id":2887,"p
 roperties":{"name":"Lampenberg"},"arcs":[[[-219,-46,-189]]]},{"type":"MultiPolygon","id":2888,"properties":{"name":"Langenbruck"},"arcs":[[[15,16,17,18,19]]]},{"type":"MultiPolygon","id":2889,"properties":{"name":"Lauwil"},"arcs":[[[-146,-83,146]]]},{"type":"MultiPolygon","id":2890,"properties":{"name":"Liedertswil"},"arcs":[[[-89,-225,-185,-114]]]},{"type":"MultiPolygon","id":2891,"properties":{"name":"Niederdorf"},"arcs":[[[-187,216,217,-47,218,-188,-181]]]},{"type":"MultiPolygon","id":2892,"properties":{"name":"Oberdorf (BL)"},"arcs":[[[-17,-115,184,185,186,-180]]]},{"type":"MultiPolygon","id":2893,"properties":{"name":"Reigoldswil"},"arcs":[[[81,82,83,84,85,86,87,88,89]]]},{"type":"MultiPolygon","id":2894,"properties":{"name":"Titterten"},"arcs":[[[-186,224,-88,225,-217]]]},{"type":"MultiPolygon","id":2895,"properties":{"name":"Waldenburg"},"arcs":[[[112,-90,113,114,-16]]]}]}},"arcs":[[[6682,5529],[-24,2],[-44,36],[-39,13],[-45,49],[-75,62]],[[6455,5691],[-12,33],[-157,134],[-81
 ,-15],[-97,-22],[-71,-9]],[[6037,5812],[-30,139],[-44,155],[-43,78],[-42,121],[-57,51],[-80,-10],[-110,58],[-110,94],[-83,-23],[-29,42]],[[5409,6517],[31,45],[3,39],[28,11],[16,53],[27,40],[5,18],[25,30],[-13,71],[-22,-20],[-34,24],[15,24],[-4,45],[15,6],[39,55],[17,4],[7,42],[12,17],[-1,-28],[19,3],[60,-8],[63,70],[34,105],[64,-67],[12,7],[30,-7],[76,-33],[22,-31],[40,-22],[60,-13],[13,36],[86,43],[2,-9],[80,40]],[[6236,7107],[29,43],[-1,25],[42,1],[-2,29],[94,9],[4,-41],[10,-39],[16,-17],[26,-7],[11,-24],[10,4],[29,34],[20,0],[42,-56],[24,3],[10,25],[47,149],[18,40],[6,33]],[[6671,7318],[45,-27],[24,-61],[13,-70],[4,-42],[-1,-95],[7,-66],[35,8],[8,-13],[26,-110],[19,-50],[32,-33],[19,-2],[36,17],[29,-7],[10,-24],[27,7]],[[7004,6750],[5,-37],[-17,-52],[36,-38],[32,-47],[27,26],[40,59],[27,7],[-14,-35],[4,-14],[19,-7],[-13,-54],[4,-18],[13,-5],[12,-45],[26,-9],[-35,-37]],[[7170,6444],[-74,35],[-19,73],[-15,6],[-16,25],[-46,-6],[-41,-129],[-22,-39],[-10,-73],[-12,-21],[-30,-2],[-25,-
 18],[-14,55],[-20,7],[-31,-71],[-16,-45],[-16,-17],[-49,-27],[6,60],[14,44],[-6,5],[-14,-41],[-6,-61],[10,-21],[-4,-29],[-22,-68],[-9,18],[-30,-72],[2,-24],[-16,-41],[-17,-77],[16,-91],[23,-34],[20,-45],[32,-16],[22,-34],[3,-54],[-16,-34],[-18,-16],[-22,-37]],[[5349,7020],[-50,-36],[-20,10],[-17,-9],[-18,-31],[-19,-4],[-76,34],[-18,-12],[-24,-54]],[[5107,6918],[-27,100],[-13,87],[-14,21]],[[5053,7126],[-9,75],[-10,45],[2,98],[-3,52],[-37,65],[-18,44],[-28,39],[-32,103],[-38,93],[-36,56],[-23,24],[-21,-4],[-13,33],[2,111],[-18,53],[-40,31],[-12,1],[-31,34],[-33,90],[0,46],[5,142],[-9,51],[-2,54],[11,453]],[[4660,8915],[3,117]],[[4663,9032],[77,-75],[17,58],[-9,50],[17,33],[19,92],[5,63],[17,102],[3,43],[66,-15],[46,14],[82,47],[14,-1]],[[5017,9443],[11,-49],[27,-74],[26,-40],[30,-23],[68,-34],[37,-22],[22,-28],[36,-76],[19,-62],[19,-45],[10,-74],[15,-74],[29,-57],[50,-65],[38,-52],[35,-13]],[[5489,8655],[-30,-162],[-16,-78],[-9,-73],[-7,-138],[-6,-56],[0,-173],[4,-128],[-3,-63],[1,-5
 1],[12,-61],[4,-35],[11,-41],[16,-39],[7,-86],[-28,-13],[-19,-21],[-20,-143],[-23,-57],[-15,-95],[-1,-56],[-18,-66]],[[6347,1274],[107,2],[44,30],[81,-16],[134,51],[105,-12],[17,49],[81,126],[110,125],[53,100]],[[7079,1729],[51,-9]],[[7130,1720],[57,7],[4,-8],[45,1],[10,11],[54,17],[7,-11]],[[7307,1737],[19,4],[10,-49],[0,-41],[20,-38],[28,-28],[46,-33],[33,-47],[25,-8],[0,-22],[-13,-26],[-30,-40],[11,-34],[-16,-6],[2,-42],[18,-40],[24,-29],[19,-56],[15,-3],[33,-63],[11,-53]],[[7562,1083],[-14,4],[-51,-59],[-70,-234],[-20,-103],[-21,-164],[6,-146],[-14,-157],[-15,-150],[2,-21],[-131,-53],[0,45],[-45,29],[-42,-18],[-33,0],[-35,13],[-36,-3],[-40,-27],[-26,4],[5,113],[-45,56],[-37,-4],[-155,21],[-43,51],[-47,81],[-89,157],[-42,105],[-95,250],[-49,235],[-33,166]],[[797,3350],[20,-1],[47,-17],[31,-18],[74,21],[11,12],[29,-18],[33,-7],[35,-20],[6,7],[28,-15],[16,1],[40,-28],[30,-16],[49,-8],[49,-23],[42,6],[53,-17],[52,8],[58,-1],[40,87],[39,14],[18,21],[9,27],[60,-15],[20,-11],[33,-30],[
 32,-17],[23,-3],[46,28],[42,2],[59,46]],[[1921,3365],[28,-18],[75,-42],[33,20]],[[2057,3325],[10,-6],[24,-83],[-6,-64],[1,-93],[-5,-49],[22,-115],[13,-43],[3,-46],[-4,-53]],[[2115,2773],[-33,5],[-14,17],[-7,58],[-9,37],[-18,17],[-39,-15],[-35,7],[-7,-25],[2,-30],[18,-46],[0,-20],[-11,-53],[-24,-20],[-29,11],[-21,24],[-21,81],[-18,-7],[-11,-46],[-15,-35],[10,-35],[-8,-59],[27,-81],[-14,-54],[17,-184],[-3,-46],[7,-40],[-25,-23],[-46,-105],[0,-42],[-20,-81],[2,-64],[-9,-40],[-58,-65],[-137,6],[-78,14],[-131,32],[73,187],[-40,170],[-3,35],[6,173],[14,26],[-5,17],[-28,22],[-37,-3],[-21,13],[-46,2],[-15,10],[-19,28],[-42,38],[-36,2],[-19,102],[-5,43],[-23,128],[-11,19],[-55,-20],[-48,0],[-16,52],[-24,141],[-25,132],[-8,89],[-72,19],[-23,15],[-32,44]],[[2057,3325],[39,-3],[68,-37],[26,13],[35,54],[47,65],[31,32],[68,82],[14,-59],[19,-49],[26,-45],[23,-13],[6,-24],[18,-9],[10,-18],[21,-5],[-6,86],[6,9],[-14,61],[-21,157],[6,114],[29,2],[-1,187],[4,48],[-11,30],[8,19]],[[2508,4022],[1,-9],[3
 6,-31],[75,-37],[69,2],[70,-2],[56,-6],[19,-27],[21,-47],[57,17],[7,-7]],[[2919,3875],[29,-21],[160,-80]],[[3108,3774],[-86,-85],[-62,-68],[-10,-22],[29,-54],[50,-79],[23,-27],[19,-49],[25,-45]],[[3096,3345],[-45,-65],[-61,-104],[-55,-104],[-50,-89],[-15,-11],[-38,-46],[-65,-64],[-37,-74],[-24,-82],[-17,-80],[3,-101],[-42,-90],[-34,-48],[-34,-83],[14,-83],[18,-77],[11,-72]],[[2625,2072],[-62,44],[-54,54],[-2,64],[-19,13],[-39,-20],[-15,37],[-14,5],[-13,38],[-3,37],[-12,29],[4,35],[-7,52],[0,64],[-8,28],[6,22],[-2,57],[7,19],[-2,123],[-53,-30],[-42,-2],[-20,13],[-71,73],[-22,7],[-10,-20],[-9,-49],[-25,-11],[-23,19]],[[7307,1737],[12,96],[-3,96],[20,15],[-11,38],[-11,108],[-23,93],[8,41],[-4,50],[5,33]],[[7300,2307],[37,-1],[21,-16],[34,-7],[55,60],[16,12],[83,18],[16,14],[11,-9],[18,13],[21,-13],[17,3],[55,107],[11,27],[6,85],[16,-17],[15,16],[4,-13],[14,23],[123,-54],[54,-35],[96,-119],[19,10],[30,28]],[[8072,2439],[16,-10],[-4,-55],[43,-196],[12,-98],[-2,-46],[4,-47],[13,-52],[-4,-
 38],[-15,-47],[-2,-27],[-18,-71],[-32,-140]],[[8083,1612],[-40,-65],[-8,-60],[-24,-63],[-19,-108],[-16,-49],[-32,-56],[-49,-25],[-29,-23],[-30,-4],[-27,-26],[-37,-18],[-116,-14],[-27,8],[-20,-22],[-47,-4]],[[9379,5010],[-2,36],[-20,23],[-30,56],[-29,33],[-48,41],[-54,83],[-26,82],[-24,5],[-40,-3],[-47,7],[-8,-8],[15,-62],[-5,-13],[-36,42],[-18,41],[-22,97],[-41,34],[-16,2]],[[8928,5506],[-31,76],[-19,101],[-16,165],[-5,89],[10,124],[54,36],[8,32],[17,122]],[[8946,6251],[38,165],[30,61],[15,55],[66,-9]],[[9095,6523],[108,-2],[35,-42],[26,-7],[38,-47],[97,-6],[40,36],[20,-54],[26,10],[32,-9],[14,-28],[143,98],[48,62],[7,18],[15,-1],[13,-21],[-18,-83],[-21,-79],[4,-140],[4,-33],[-3,-57],[-7,1],[-4,-90],[-15,-74],[-10,-185],[-11,-40],[-8,-70],[-5,-86],[-10,-43],[-2,-34]],[[9651,5517],[-18,-27],[-5,-46],[-19,27],[-52,-58],[-7,13],[-50,-53],[-17,-57],[-6,-40],[3,-66],[-5,-53],[-6,7],[-31,-18],[-26,-68],[-33,-68]],[[6341,3660],[-11,10],[-21,59],[-54,60],[-4,102],[-8,19]],[[6243,3910],[0,95
 ],[6,43],[-2,35],[8,125],[-6,51],[9,31],[-11,47],[-4,54],[-27,91],[-41,93],[9,34],[-21,21],[-75,101],[1,15],[-43,42],[-8,44]],[[6038,4832],[95,169]],[[6133,5001],[65,134],[87,175],[25,63],[0,73],[36,83],[34,57],[19,83],[56,22]],[[6682,5529],[22,-9],[28,-44],[16,-175],[74,-88]],[[6822,5213],[-16,-47],[0,-23],[9,-62],[-16,-77],[-12,-35],[-30,-47],[-3,-22],[9,-82],[8,-18],[47,-43],[4,-118],[-33,-66]],[[6789,4573],[-99,-155],[-57,-72],[44,-44],[-13,-56],[-18,-49],[-12,-72],[-20,-105],[-20,-51],[-22,-30],[-54,-115],[-12,-71]],[[6506,3753],[-7,15],[-3,44],[-6,5],[3,65],[9,31],[4,45],[-16,31],[-18,5],[-36,-5],[-6,-26],[-38,-53],[-15,-101],[-18,-18],[-24,-73],[6,-58]],[[5489,8655],[44,-35],[75,-20],[64,-2]],[[5672,8598],[0,-48],[85,-5],[64,19],[115,74],[93,59],[2,-5],[67,28],[-4,-42],[10,-9],[29,-100],[-13,-36],[3,-58],[37,-71],[3,-21],[-4,-74],[15,-58],[8,-57],[17,-27]],[[6199,8167],[4,-18],[-11,-76],[-22,-34],[-4,-33]],[[6166,8006],[-17,-78],[-14,-24],[6,-64],[-8,-35],[-25,-21],[5,-34],[-
 2,-44],[-43,-47],[-44,-37],[-32,-51],[-31,-38],[-42,-28],[-27,-30],[-24,-38],[-25,-67],[-13,11],[-7,-46],[-16,8],[-91,-106],[-10,1],[-24,-24],[-20,-7],[-72,14],[-58,48],[-23,-9],[-45,4],[-8,-67],[-13,-14],[-27,-75],[-26,-48],[-41,-40]],[[1921,3365],[14,26],[2,29],[29,91],[-1,78],[23,142],[45,120],[15,109],[-9,53],[-23,36],[-19,49],[-5,63],[-16,57],[0,42],[-6,29],[-35,105],[-42,63],[-41,89],[-15,52],[-37,52],[-6,-7],[-12,39],[9,11],[-3,28],[-20,52]],[[1768,4773],[29,29],[86,80],[41,29],[81,-3],[29,-5]],[[2034,4903],[28,1],[93,97]],[[2155,5001],[26,-9],[40,-44],[34,15],[22,-9],[48,7],[60,-17],[23,-45],[7,-102],[9,-34],[44,-106],[8,-57],[-13,-158],[4,-106],[-33,-65],[-12,-61],[5,-81],[9,-35],[68,-60],[4,-12]],[[6671,7318],[-31,39],[-63,14],[-13,40],[-9,48],[18,175],[-36,108],[-15,38],[29,22],[53,96],[-2,86]],[[6602,7984],[12,16],[-10,58],[-6,68],[18,4],[4,46],[21,24],[-3,37],[9,36]],[[6647,8273],[26,23],[29,11],[40,-19],[44,33],[10,-25],[25,-8],[34,3],[18,-29],[18,8],[34,-17],[15,-21],
 [39,-26],[29,-4],[33,-26],[73,-45],[16,-18],[24,-10],[25,-40],[16,1],[32,20],[25,-22],[14,-29],[23,-24],[-2,-44],[7,-79],[-39,-95],[0,-25],[19,-86],[3,-45],[-3,-160],[14,-91]],[[7288,7384],[29,-71]],[[7317,7313],[7,-18],[-5,-37]],[[7319,7258],[-43,6],[-101,-148],[-54,-128],[-52,-130],[-39,-55],[-16,-50],[-10,-3]],[[8261,4470],[-31,67],[-33,64]],[[8197,4601],[28,16],[58,74],[7,45],[-9,14],[-27,9],[-28,-3],[-18,33],[2,46],[-44,69],[-20,82],[-40,52]],[[8106,5038],[-11,106],[3,69],[9,53]],[[8107,5266],[38,83],[2,47],[-26,204],[-40,274],[15,90],[-21,40],[-9,61],[-23,54],[-12,44]],[[8031,6163],[76,20],[291,66]],[[8398,6249],[-22,-86],[35,-90],[-10,-111],[48,-146],[66,-140],[28,-36],[36,-25],[42,-45],[23,-11],[65,-11],[16,-95],[34,-91]],[[8759,5362],[-25,-25],[-78,-114],[4,-98],[-18,-95],[-5,-46],[46,-123]],[[8683,4861],[-6,-64],[-25,-41],[-25,34],[-12,-63],[-38,-121],[-30,-113],[-28,-82],[-10,-69],[-27,-74],[-16,-2],[-81,14]],[[8385,4280],[-27,22],[-19,25],[-11,37],[-39,37],[-28,69]],[[73
 00,2307],[18,95],[16,9],[50,40],[15,31],[6,45],[-6,140],[17,99],[8,24],[-3,98],[6,29],[1,82],[-17,44],[0,44],[-30,11],[-22,23],[12,56],[-15,51],[-39,108]],[[7317,3336],[3,8],[-28,53],[-13,98],[-2,65],[10,6],[-11,64],[-3,85],[-11,37],[7,73],[18,66]],[[7287,3891],[26,3],[21,13],[18,-5],[4,28],[45,-25],[-3,-34],[56,-20],[20,11],[49,59],[4,18],[13,-6],[10,13],[36,26],[12,-34],[14,7],[10,25],[21,-51],[42,-88],[34,-59],[17,-13],[45,-10],[4,-31],[17,20],[82,37],[15,29],[17,-19]],[[7916,3785],[-15,-59],[-10,-17],[-1,-38]],[[7890,3671],[-3,-171],[-1,-261],[-12,-200],[-11,-98],[3,-63],[6,0]],[[7872,2878],[93,-121],[23,-60],[45,-125],[39,-133]],[[3153,3251],[-23,70],[-19,-14],[-15,38]],[[3108,3774],[30,57],[55,94],[81,149],[58,63],[79,52],[76,131],[32,73],[-3,14],[-44,58],[1,16],[-16,37],[22,73],[12,67],[22,9]],[[3513,4667],[24,-1],[34,18],[24,0],[54,-47],[12,-20],[15,-46],[20,-17],[34,-7],[21,-33],[14,-46],[31,-22],[15,-39],[13,-18]],[[3824,4389],[3,-28]],[[3827,4361],[-6,-15],[7,-35],[4,-58]
 ,[-6,-29],[-1,-74],[8,-75],[-4,-44],[-11,-59],[1,-31],[-13,-64],[3,-49],[9,-28],[3,-39],[-3,-45],[14,-19],[6,-53],[23,-46],[28,-23],[18,17],[28,-25],[12,-24],[38,-53],[9,-61],[17,-50],[-59,-25],[-169,-33],[-107,21],[-46,16],[-81,3],[-127,-13],[-131,-33],[-138,-64]],[[5896,1513],[-201,-51]],[[5695,1462],[2,71],[-3,105],[-14,265],[21,114],[-42,152],[-2,156],[-3,104],[-26,26],[-54,41],[-74,41],[-137,141]],[[5363,2678],[27,47],[19,48],[17,16],[2,17],[-15,22],[-4,25],[0,112],[-5,25],[-26,16],[-3,39],[-21,33],[-7,31],[-40,64]],[[5307,3173],[16,4],[153,225]],[[5476,3402],[54,-53],[32,75],[49,-10],[74,11],[23,0],[30,-13],[83,-98],[30,-20]],[[5851,3294],[0,-62],[-25,-83],[-3,-20]],[[5823,3129],[6,-112],[10,-68],[17,-43],[63,-123],[55,-129],[6,-155],[17,-75]],[[5997,2424],[21,-54],[27,-50],[19,-44],[13,-166],[-12,-90],[7,-49],[-4,-57],[1,-48],[13,-64]],[[6082,1802],[-35,8],[-22,-11],[-13,13],[-32,0],[-45,-59],[-47,-86],[-18,-85],[0,-17],[26,-52]],[[7686,5118],[-19,22],[4,22],[-49,30],[10,46],
 [-37,26],[2,13],[-60,16],[0,24],[-20,2],[-8,28],[-3,-41],[-11,14],[-36,-9],[-35,0],[-13,15],[-9,-15],[-13,21],[-33,-32],[-37,-14],[-14,-35],[-12,-55],[-19,-61],[-13,-80],[-35,-59]],[[7226,4996],[28,198],[17,130],[12,41],[33,-52],[7,7],[11,137],[22,68],[66,103],[5,44],[-31,14],[-4,26],[9,36],[-31,61],[11,-2],[-41,66],[6,24],[20,-6],[0,70],[15,0],[-11,34],[-21,23],[-33,25],[-12,-10],[1,-21],[-51,12],[-6,-14],[-27,50],[-12,-12],[-22,17],[-10,24],[5,109],[-11,18],[-23,-49],[-21,-59],[-3,-35],[-37,23]],[[7087,6096],[10,49],[16,47],[60,116],[29,34],[20,56]],[[7222,6398],[26,-4],[3,15],[19,-19],[10,35],[50,-9],[-7,53]],[[7323,6469],[44,90],[46,77],[81,-6],[45,37],[6,-4]],[[7545,6663],[29,-32],[15,-27],[6,-41],[61,-32],[33,-53],[53,-74],[53,-38],[42,-7],[37,17],[44,5],[44,21],[6,-31]],[[7968,6371],[21,-93],[5,-60]],[[7994,6218],[-23,-22],[-47,-6],[-27,-62],[-12,-55],[-27,-58],[17,-83],[6,-107],[-11,-83],[-12,-60],[-20,-186]],[[7838,5496],[-32,-157],[-40,-90],[-43,-35],[-37,-96]],[[3228,8338
 ],[5,58],[-5,40],[-18,72],[-28,48],[-19,49],[-18,-30],[-19,-15],[-51,89],[-28,37],[-27,-29],[-29,-50]],[[2991,8607],[-35,55],[-38,77],[16,26],[-19,41],[-29,35],[7,107],[10,14],[-27,82],[-55,-11],[-12,25]],[[2809,9058],[-1,0]],[[2808,9058],[19,53],[14,18],[35,14],[13,35],[26,-59],[47,24],[44,16],[33,41],[53,105],[-6,10],[55,88],[-11,25],[40,58],[54,62],[91,56],[46,113],[14,-32],[54,102],[48,85],[44,41],[77,86],[52,-77],[13,-29],[18,-63],[27,-60],[46,-87],[0,-8],[-23,-93],[-29,-142],[-39,28],[-44,-355]],[[3619,9113],[-24,-30],[-20,-45],[-10,-9],[-22,-89],[-10,-32],[-2,-24],[-11,-39],[2,-59],[5,-15],[-13,-30],[-4,-31],[-19,-54]],[[3491,8656],[-12,-57],[6,-29],[-7,-28],[-16,-9],[-18,-35],[-54,-32],[5,-15],[-35,-67],[-52,69],[-20,-35],[-60,-80]],[[8556,6883],[-14,-20],[-50,-131],[-12,-53]],[[8480,6679],[-35,12],[-48,25],[-31,32]],[[8366,6748],[-7,-13],[-30,10],[-19,-5],[-25,19],[11,39],[-20,27],[-25,2],[1,22],[-23,19],[-10,24],[5,29],[-21,7],[-33,63]],[[8170,6991],[6,60],[-12,0],[-6,54],
 [4,43],[-6,29],[-11,1],[1,50],[-14,68],[-3,151],[-37,16]],[[8092,7463],[10,139],[52,-18],[3,170],[21,-14],[14,8],[-5,19],[54,68],[46,37],[64,9],[33,22],[25,49],[2,62],[-15,49],[10,110],[-3,61],[20,-10],[17,4]],[[8440,8228],[10,-18],[6,-47],[-7,-124],[87,1],[31,115],[39,45],[22,8],[20,-19],[-7,-43],[-4,-73],[-9,-20],[-3,-89],[6,-64],[-1,-104],[4,-27],[37,31],[26,-79],[30,-81],[39,-78],[39,-26],[83,-36],[30,-32],[6,-19],[7,-69],[0,-76],[9,11],[4,-27]],[[8944,7288],[12,-83],[-63,-54],[-25,-33],[-85,-21],[-23,-23],[-16,-36],[-57,-68],[-43,-60],[-88,-27]],[[6347,1274],[-17,88],[-18,2],[-132,55],[-70,33],[-22,0],[-21,13],[-58,23],[-36,9],[-52,22],[-25,-6]],[[6082,1802],[26,-1],[43,-34],[26,11],[-3,21],[-17,31],[-1,18],[14,12],[1,34],[40,11],[1,13],[-13,60],[-11,27],[23,8],[19,19],[30,4],[21,17],[41,15],[3,8]],[[6325,2076],[56,1],[31,-10],[91,-2],[19,82],[-10,12],[5,28],[-13,6],[8,24],[18,-14],[43,-3],[28,-19],[18,28],[24,-14],[3,37],[17,-4],[0,-20],[11,-12],[-3,-40],[6,-19],[20,-12],[23,-
 4],[54,-21],[48,-37],[30,-29],[54,-32],[21,11],[19,-14],[45,-51],[14,-53],[-7,-69],[-10,-34],[91,-63]],[[7872,2878],[62,17],[80,-26],[15,-22],[0,27],[-13,44]],[[8016,2918],[15,56],[230,70],[112,60],[8,32]],[[8381,3136],[66,-66],[74,-55],[106,-92],[39,-51],[23,-23],[24,-11]],[[8713,2838],[-33,-21],[-37,-163],[-52,-36],[-45,-57],[45,-188],[25,-51],[49,12],[7,-14],[4,-43],[32,-42],[6,-32],[-6,-43],[-8,-17],[5,-46],[8,-21],[-13,-44],[-43,43],[-33,-33],[-56,-68],[-29,-42],[-15,11],[-71,18],[-16,-5],[-35,-33],[3,-39],[-20,-21],[-138,-64],[-15,-44],[-26,-28],[-67,-39],[-46,-49],[-10,-27]],[[8850,3085],[3,24],[-49,113],[-56,147]],[[8748,3369],[42,-15],[37,28],[-25,57],[14,107],[21,88]],[[8837,3634],[11,-8],[23,-37],[23,-20],[15,3],[50,-22],[2,20],[-12,75],[12,55],[16,-15],[-4,22],[28,3],[-7,37],[18,-5],[33,-35],[18,28],[6,48],[24,6],[25,-28],[2,43],[11,18],[20,-29],[42,72]],[[9193,3865],[33,-2],[8,-26],[26,-32]],[[9260,3805],[21,-148],[45,11],[53,-8],[71,49],[26,12],[49,6],[23,-17],[14,-22]
 ,[58,-63],[19,-29],[34,-74],[16,-58],[-22,-67]],[[9667,3397],[-57,-53],[-17,-36],[-15,-16],[14,-50],[15,-113],[-48,-98],[-16,-26],[-43,-33],[-33,-42],[-24,-14],[-18,-21],[-14,-36],[-50,15],[-18,-20],[-96,-71],[-44,-42],[-19,-39],[-18,14],[-32,43],[-20,43],[-23,73],[-30,-20],[-16,-55],[-32,39],[-54,91],[-83,149],[-26,6]],[[4045,7497],[-34,2],[-21,-13],[-11,-22],[-23,-1],[-131,-26],[-53,-34],[-27,-7],[-32,0],[-118,22],[-64,-3],[-32,-21],[-15,2],[-11,-25],[-22,8],[3,-28],[-30,-10],[-14,10],[-6,-14],[-40,30],[-4,10],[-44,-6]],[[3316,7371],[-1,64],[-5,81],[9,42],[-7,53],[-9,159],[-63,14],[-16,25],[-35,38],[-47,9],[-26,-27]],[[3116,7829],[-1,99],[-4,48],[19,52],[46,85],[18,90],[34,135]],[[3491,8656],[69,-111],[40,-77],[-8,-27],[77,-63]],[[3669,8378],[-8,-39],[34,-36],[26,-12],[-19,-89],[12,-9],[25,6],[-3,-19],[21,-23],[-15,-42],[19,-22],[30,-58],[-11,-17],[46,-93],[0,-17],[23,-40],[6,12],[34,-21],[18,-24],[-12,-16],[2,-22],[22,-66],[46,-61],[22,-21],[4,12],[29,-30]],[[4020,7631],[36,-35],
 [-6,-25],[-5,-74]],[[5476,3402],[93,109],[50,338],[27,155]],[[5646,4004],[57,203],[55,140],[107,222],[29,59],[16,58],[76,103],[52,43]],[[6243,3910],[-25,-58],[-12,-72],[-28,-73],[-23,-15],[-22,-28],[-86,-9],[-18,-8],[-31,-79],[-56,-108],[-28,1],[-17,-75],[-7,-57],[-39,-35]],[[3772,6505],[-39,16],[-46,-11],[-46,14],[-30,19],[-74,77],[5,24],[-65,42],[-9,-43],[-21,-7],[-20,-45],[-24,-2],[-22,-21],[-20,-6],[-5,-34],[-16,3],[-5,-29],[-15,-12]],[[3320,6490],[-12,8],[6,151],[-2,106],[-57,-4],[2,97],[-3,101],[-11,87]],[[3243,7036],[13,2],[-4,72],[2,134],[8,-2],[2,61],[35,1],[4,65],[13,2]],[[4045,7497],[67,7],[26,-7],[16,-16],[37,-8],[10,-62],[-26,-50],[-10,-30],[6,-43],[-8,-47],[3,-22],[-11,-4],[-19,-31],[-22,-7],[12,-27],[-38,-28],[-7,-21],[-27,-41],[3,-22],[-40,-10],[-7,-46],[-48,2],[-4,-31],[-31,2],[-37,-75],[8,-95],[-8,-18],[-90,-275]],[[3800,6492],[-28,13]],[[4359,5526],[-80,-97],[-15,16],[-6,-16],[-15,5],[4,16],[-21,13],[-14,-13],[-24,16],[-19,35],[-96,7],[-42,36],[-20,1],[-31,49],[-3
 8,40],[-81,-4],[-23,15],[-2,-14],[-22,4],[-3,29],[-21,-8],[-22,14],[-88,32]],[[3680,5702],[-5,61],[9,113],[15,174],[-3,3],[3,58],[15,-11],[58,405]],[[3800,6492],[37,-44],[110,-145],[76,61],[8,26],[64,-41],[12,69],[67,-28],[31,22],[14,-1],[1,55],[24,8],[49,0],[0,49],[7,13],[29,-7],[19,-15],[-1,69],[28,-2],[4,29],[21,-5],[3,20],[17,-1],[9,14]],[[4429,6638],[10,-124],[13,-81],[-11,-81],[-22,-29],[-11,-25],[-6,-37],[0,-38],[11,-85],[-2,-65],[30,-15],[-12,-63],[-45,-148]],[[4384,5847],[-25,-321]],[[4974,1868],[-79,11],[-18,-5],[-36,101],[-6,78],[6,30],[47,20],[15,13],[-8,69],[-20,340],[-2,97],[-5,124],[-19,252],[-18,177],[109,0],[281,-39],[62,31],[24,6]],[[5363,2678],[-3,-136],[11,-7],[-18,-92],[-38,-75],[-19,-26],[-1,-72],[6,-18],[-12,-26],[0,-30],[-17,-36],[29,-13],[23,-44],[-11,-67],[-51,-72],[-46,-44],[-73,-8],[-95,-55],[-20,-3],[-54,14]],[[5695,1462],[-136,-31],[-71,-29],[-128,-38],[-166,-43],[-85,-17],[-47,-8],[-48,-15],[-12,140],[-3,71],[-7,59],[5,97],[-18,57],[-2,45],[-14,22],[10
 ,48],[1,48]],[[4432,7339],[-60,68],[27,117],[20,38],[1,27],[-36,6],[2,132],[-36,8],[1,22],[-38,13],[0,20],[-44,16],[-2,26],[-28,9],[-30,-21],[-27,-4],[13,92],[-7,46],[36,14],[6,39]],[[4230,8007],[109,268],[46,175],[-2,22],[15,0],[1,42],[6,11],[50,179],[16,27],[4,-19],[14,11],[-6,23],[21,34],[8,25],[3,56],[12,32],[46,33],[21,34],[21,-20],[45,-25]],[[5053,7126],[-29,43],[-45,49],[-60,98],[-19,-12],[-65,12],[-29,14],[-15,64],[-12,20],[-28,11],[-18,18],[-27,8],[-11,12],[-54,38],[-59,21],[-83,58],[-67,-241]],[[9260,3805],[20,77],[26,28],[-14,51],[46,33],[-13,58],[11,22],[30,33],[-10,30],[26,18],[23,5],[-31,27],[35,25],[-25,57],[26,9],[-5,57],[7,8],[-25,101],[37,29],[-12,66],[-42,67],[34,131],[-32,7],[3,43],[-7,186],[11,37]],[[9379,5010],[26,1],[20,20],[22,-36],[17,-13],[5,-44],[18,-71],[-4,-15],[7,-37],[-10,-17],[16,-12],[16,-77],[2,-27],[16,1],[18,-30],[14,-55],[8,0],[-6,69],[63,36],[132,-18]],[[9759,4685],[21,-140],[62,-319],[-13,-12],[-17,-36],[90,-227],[79,-153],[18,-55],[-21,-28],[-
 32,-30],[-26,-32],[-7,-18],[6,-25],[-38,-69],[27,-29],[-15,-47],[-15,17],[-26,6],[-22,14],[-41,-9],[-31,-32],[-13,3],[-9,-48],[-32,-3],[-37,-16]],[[3601,5407],[-20,-11],[-55,-11],[-39,-15],[4,-11],[-28,-34],[4,-41],[-13,-19],[12,-37],[19,-23],[6,-88],[-16,-42],[-5,-49],[-10,-14],[-1,-39],[6,-27],[-2,-65],[7,-38]],[[3470,4843],[-43,-41],[-44,-86],[-64,-40],[-112,-54],[-154,-55],[-53,-26],[-49,31],[-85,95],[-34,53]],[[2832,4720],[-29,74],[-54,179],[-52,112],[-36,128],[-28,52],[-23,4],[-108,-13]],[[2502,5256],[34,31],[89,48],[92,31],[75,-24],[35,-19],[72,-2],[20,12],[61,72],[39,21],[163,0],[43,8]],[[3225,5434],[109,13],[24,19],[13,-6],[38,11],[41,35],[51,32],[20,7],[37,-5],[42,-30],[3,-39],[-2,-64]],[[4020,7631],[19,65],[30,-24],[19,255],[13,118],[54,11]],[[4155,8056],[11,-33],[64,-16]],[[4432,7339],[-8,-31],[-7,-289],[3,-78],[-7,-28],[4,-104],[23,-13],[-11,-73],[0,-38]],[[4429,6685],[0,-47]],[[8170,6991],[-10,-102],[-9,-41],[-20,-44],[-14,-82],[-23,4],[-12,-49],[-7,-6],[-24,-126],[6,-
 2],[-30,-57],[-34,-56],[-25,-59]],[[7545,6663],[19,23],[58,112],[-7,166],[-28,68],[-21,16]],[[7566,7048],[15,47],[24,53],[38,96],[36,144],[14,5],[46,74],[45,85],[34,17],[-5,29],[84,200],[52,32]],[[7949,7830],[-3,-89],[28,-15],[-7,-32],[17,-28],[-12,-51],[0,-21],[-11,-31],[17,-16],[6,-26],[27,-30],[81,-28]],[[8928,5506],[10,-141],[17,0],[14,-42],[1,-52],[-8,-19],[23,-42],[-14,-41],[37,-24],[15,-3],[-11,-22],[-22,-14],[5,-54],[-29,10],[-25,-10],[-28,-63],[-38,-16]],[[8875,4973],[-20,55],[-7,38],[-33,63],[-10,55],[-16,55],[-5,53],[-25,70]],[[8398,6249],[20,114],[18,57],[8,109],[17,58],[19,92]],[[8556,6883],[79,-90],[47,-35],[28,-63],[33,-102],[33,-252],[42,-36],[33,-8],[39,1],[25,-16],[31,-31]],[[5107,6918],[-31,-122],[19,0],[5,-37],[23,-6],[16,-16],[14,21],[29,-33],[-47,-66],[-30,-21],[43,-13],[42,-26],[-35,-44],[-42,-29],[-21,-23],[-37,-18],[-45,37],[-36,-105],[-18,-24],[-75,57],[-57,18],[-38,0],[-8,-6],[-38,26],[-18,23],[-30,55],[-57,35],[-60,61],[-28,16],[-15,-2],[-17,-25],[-10,14]
 ,[-30,-5],[-22,19],[-24,6]],[[7258,4000],[-9,11],[3,51],[-7,48],[-15,28],[-29,21],[-18,48],[11,14],[-12,66],[-7,70],[10,16],[-10,30],[8,38],[-44,77],[-13,35],[-35,34],[-7,28],[-1,42],[9,49]],[[7092,4706],[5,61],[9,44],[-4,44],[-15,36],[25,24],[33,52]],[[7145,4967],[64,-32],[17,61]],[[7686,5118],[65,-99],[34,-93],[18,-32],[35,-76],[26,-48],[28,-32],[-5,-21],[6,-31],[-2,-36],[14,-40]],[[7905,4610],[-14,-27],[-12,32],[-3,41],[-61,-17],[-22,-16],[-19,30],[-24,0],[-2,-19],[-44,-9],[-31,10],[-7,18],[-22,-41],[-12,78],[-14,-82],[-2,-34],[-21,-26],[-1,-37],[-12,-14],[-24,-5],[-21,-58],[-34,-46],[-30,-23],[-6,-35],[-14,-20],[-25,-75],[20,-31],[-22,-53],[-27,-43],[-16,-2],[-5,-53],[-13,-3],[-23,19],[-2,-11],[-25,27],[-22,-40],[-35,-45]],[[2155,5001],[65,60],[25,49],[43,25],[93,42],[58,3],[63,76]],[[2832,4720],[9,-135],[44,-123],[77,-161],[-7,-63],[-13,-16],[14,-56],[-13,-16],[-5,-56],[6,-11],[-13,-45],[2,-53],[-8,-17],[10,-18],[-16,-75]],[[797,3350],[-32,0],[-36,-13],[-56,8],[-87,34],[-60,18]
 ,[-22,-8],[9,71],[1,70],[-41,26],[-29,41],[-21,45],[-42,27],[-17,62],[-39,31],[3,13],[-31,32],[-7,31],[-1,33],[-37,30],[-3,62],[-7,22],[9,30],[-19,29],[-29,-7],[-4,20],[-90,6],[-48,55],[-46,28],[-9,54],[3,31],[-7,7],[-1,40],[30,66],[15,65],[-14,88],[14,37],[38,41],[11,-20],[27,-15],[51,-5],[37,13],[22,-35],[20,-71],[45,-55],[12,-5],[-4,-29],[5,-31],[13,5],[23,-33],[30,0],[21,-11],[34,-36],[19,1],[25,-21],[24,23],[26,2],[53,-27],[17,8],[29,-19],[48,26],[31,-7],[15,-24],[26,12],[22,-3],[5,-20],[20,6],[7,-13],[48,-31],[33,-15],[25,-38],[0,-67],[-10,-37],[-39,-56],[-3,-61],[0,-101],[-7,-120],[-30,-141],[-17,-128],[-1,-46]],[[7130,1720],[4,106],[-32,62],[-36,109],[-4,81],[-20,49],[-20,10],[-27,53],[-6,38],[-8,15],[0,37],[-11,121],[-34,108],[9,106]],[[6945,2615],[6,73],[13,58],[-1,25],[14,212],[4,110],[0,187]],[[6981,3280],[44,19],[19,-71],[15,-29],[47,-55],[29,53],[7,32],[35,50],[44,-27],[37,-11],[28,-39],[20,1],[11,66],[-7,41],[7,26]],[[3225,5434],[-6,59],[-18,187],[-19,213],[-7,103],[2
 6,179],[18,17],[45,-2],[18,107],[31,139],[7,54]],[[3680,5702],[1,-36],[12,-26],[3,-42],[-47,-121],[-17,-31],[-31,-39]],[[6325,2076],[-15,15],[-36,-4],[0,45],[-9,51],[72,-5],[10,47],[35,86],[14,69],[-25,102],[-8,78],[-16,53]],[[6347,2613],[57,111],[35,46],[2,16]],[[6441,2786],[47,-28],[6,-54],[15,1],[3,-22],[26,36],[-18,26],[3,18],[-21,35],[-14,49],[-22,110],[52,7],[43,18],[92,1],[0,-56],[-10,-21],[9,-50],[15,-110],[4,37],[22,-5],[4,33],[51,163],[54,52],[34,38],[42,-48],[71,-24],[-39,-202],[-57,-58],[-25,-47],[17,-25],[22,-12],[18,-55],[42,27],[18,-5]],[[6981,3280],[-19,56],[-4,31],[-10,0],[-36,-58],[-19,-1],[-28,46],[-14,31],[8,21],[-30,17],[-30,41]],[[6799,3464],[3,43],[16,67],[14,44],[25,25],[39,99],[18,35],[20,21],[11,42],[3,38],[14,98],[-30,79],[16,36],[-11,11],[-29,142],[5,31],[-8,-1],[-9,36],[-11,91],[-4,24],[-28,48],[-64,100]],[[6789,4573],[76,49],[-4,29],[12,51],[17,31],[22,1],[13,-17],[-13,-39],[57,-20],[22,20],[16,4],[5,-22],[22,7],[10,41],[48,-2]],[[7258,4000],[25,-30],[8
 ,-62],[-4,-17]],[[9193,3865],[-40,33],[-21,24],[-19,58]],[[9113,3980],[5,153],[40,20],[-17,34],[-22,15],[-19,103],[-31,89],[18,22],[-6,24],[-33,29],[-10,1],[-31,47],[-59,67],[-17,42],[36,-10],[42,6],[37,14],[48,48],[2,21],[-25,10],[-21,-12],[-1,14],[-35,5],[-18,15],[-8,21],[-13,-3],[-17,24],[-20,54],[-33,24],[-13,66],[-17,50]],[[4454,4177],[2,21],[-24,9],[-43,-13],[-20,11],[-28,3],[-17,22],[-19,6],[-18,26],[-14,6],[-10,-14],[-24,-4],[-19,27],[26,68],[30,20],[18,130],[7,65],[-11,-2],[-11,24],[19,43],[28,91],[-19,8],[-6,-53],[-10,6],[-2,46]],[[4289,4723],[-2,47],[-13,63],[5,0],[-12,93],[47,298],[34,74],[6,1],[16,42],[18,27],[-13,55],[-22,42],[14,44],[-8,17]],[[4384,5847],[21,-15],[42,-6],[45,-1],[16,-31],[70,-74],[32,-5],[18,-24],[13,-38],[26,-36],[37,-90],[19,-12],[-29,-62],[-32,19],[-2,-120],[9,-92],[-9,-66],[-13,-59],[-20,-137],[1,-27],[-17,-72],[-6,-60],[-19,-39],[-13,-68],[1,-150],[-19,-101],[14,-86],[-5,-215],[-28,27],[-42,-26],[-40,-4]],[[7170,6444],[32,-19],[20,-27]],[[7087,60
 96],[-12,-91],[6,-87],[14,-5],[-14,-120],[-21,-135],[2,-81],[7,-66],[5,-94],[10,-106],[33,-53]],[[7117,5258],[-50,-24],[-90,-37],[-6,53],[-17,36],[-28,9],[-37,-26],[-31,-37],[-35,3],[-1,-22]],[[3153,3251],[-11,-10],[28,-71],[5,-67],[22,-40],[28,-78],[11,-41],[-2,-62],[-10,-63],[-25,-49],[-40,-114],[-78,-319],[-15,-43],[-28,-89],[-36,19],[-44,31],[-30,5],[-6,11],[-128,-208],[-35,-19],[-49,-4],[-68,30],[-17,2]],[[7949,7830],[0,118],[17,62],[4,138],[-2,121],[6,57],[-8,194],[14,-7],[19,71],[-20,40],[-11,48],[52,23],[38,-4],[38,-17],[53,-50],[26,2],[90,114],[43,-54],[14,-34],[21,0],[37,-132],[17,-78],[30,-67],[0,-38],[13,-109]],[[8748,3369],[-33,129],[-20,89],[-18,108],[-39,89],[-31,58],[-23,36],[-41,82]],[[8543,3960],[-10,22],[-30,13],[-17,27],[-18,42],[12,20],[-56,112],[-39,84]],[[8683,4861],[41,-59],[52,-58],[28,-100],[20,-57],[56,-105],[15,-17],[5,-41],[30,5],[22,-14],[18,2],[23,-39]],[[8993,4378],[21,-62],[32,-52],[-2,-25],[-104,-85],[-27,-20],[-15,19],[-6,-9],[-26,-172],[-33,-130],
 [5,-115],[17,-62],[-18,-31]],[[4289,4723],[-26,-3],[-23,90],[-20,66],[-22,-23],[-25,-12],[-52,-7],[-61,99],[-13,-43],[-6,-46],[-17,-49],[-22,-22],[-37,-63]],[[3965,4710],[-6,10],[6,51],[13,40],[-2,37],[-11,39],[4,68],[-36,11],[-13,52],[-35,42],[-39,-23],[-20,67],[-29,57],[-72,44],[-43,13],[-38,44],[-43,145]],[[7905,4610],[43,-95]],[[7948,4515],[-5,-151],[11,-56],[-11,-85],[0,-34],[7,-9],[-13,-60],[1,-51],[-15,-21],[-2,-55],[-27,-32],[21,-40],[3,-96],[5,-19],[-7,-21]],[[6236,7107],[-8,51],[-1,52],[-10,107],[0,41],[-19,317],[-6,149],[-1,66],[-26,0],[4,84],[-3,32]],[[6199,8167],[10,32],[8,51],[11,35],[26,50],[61,83],[1,-5]],[[6316,8413],[37,-112],[18,-6],[-16,-23],[-3,-38],[12,-114],[14,-47],[50,-47],[11,-50],[16,-27],[-16,-20],[39,-16],[22,60],[38,-54],[14,33],[30,32],[20,0]],[[3470,4843],[6,6],[20,-47],[14,-54],[12,20],[4,-25],[-15,-53],[2,-23]],[[5409,6517],[-24,38],[-26,99],[-20,128],[14,146],[-4,92]],[[3619,9113],[25,3],[87,40],[26,17],[100,-41],[72,-35],[38,-7],[53,2],[91,-85],[-
 28,-144],[7,-55],[-36,-160],[-15,-59],[8,-43],[10,-25]],[[4057,8521],[6,-67],[-6,-58],[-10,-25],[-36,-7],[-14,21],[5,58],[-37,-3],[-24,-28],[-125,13],[-41,12],[0,6],[-39,7],[-2,-27],[-41,19],[-24,-64]],[[6441,2786],[-28,32],[-19,57],[2,79],[-9,69]],[[6387,3023],[-18,136],[25,29],[12,23],[-12,57],[14,136],[22,57],[4,36],[-2,59],[-30,97],[-61,7]],[[6506,3753],[-12,-26],[-12,-120],[-7,-113],[10,-43],[21,-29],[45,35],[138,11],[57,-16],[22,-13],[31,25]],[[3243,7036],[-70,-9],[-56,-16],[-43,-4],[-31,8],[-69,36],[-9,54],[-29,-3],[-9,167],[-19,-4],[-8,102],[5,48],[-15,128],[-23,85],[-31,23],[-31,61],[-13,57],[-35,36],[-28,65],[-19,220],[30,-30],[29,-162],[14,-53],[-4,-36],[33,0],[17,-12],[14,27],[78,79],[37,14],[59,-2],[8,-53],[18,-56],[26,40],[8,-43],[15,-25],[10,11],[14,40]],[[8381,3136],[3,16],[-22,110],[-73,276],[-50,104]],[[8239,3642],[16,78],[52,-28],[24,13],[17,-22],[23,-13],[63,-16],[22,-25],[22,70],[92,112],[1,26],[-14,46],[-20,39],[-4,31],[10,7]],[[8850,3085],[-16,-8],[-36,-36],[-
 30,-8],[0,-23],[12,-32],[-10,-46],[13,-28],[-16,-43],[4,-45],[-26,-21],[-32,43]],[[9651,5517],[65,40],[20,19],[4,-19],[23,23],[2,-8],[24,24],[6,-36],[11,-4],[100,-159],[20,-15],[2,-13],[-14,-68],[-9,-60],[10,-22],[-9,-13],[27,-22],[9,-68],[-24,-37],[14,-34],[-19,-1],[-15,-25],[-22,-73],[-11,4],[-11,-17],[-11,-39],[-26,-44],[-6,-51],[-26,1],[-14,-10],[-12,-105]],[[6347,2613],[-14,-31],[-62,-24],[-17,-27],[-15,-7],[-80,-64],[-49,-52],[-41,-21],[-22,4],[-50,33]],[[5823,3129],[32,36],[66,33],[34,10],[39,-23],[41,-11],[21,-103],[38,4],[62,-19],[21,60],[21,25],[62,-45],[25,-38],[47,-2],[46,-23],[9,-10]],[[3965,4710],[-65,-125],[-13,-42],[-14,-23],[-48,-119],[-1,-12]],[[6133,5001],[-41,54],[-68,61],[-59,78],[-35,16],[-64,-18],[-4,10]],[[5862,5202],[8,27],[0,46],[-8,93],[11,28],[2,40],[7,8],[3,40],[46,87],[11,64],[13,11],[9,46],[22,81],[6,-1],[29,45],[16,-5]],[[8944,7288],[47,-45],[-2,-63],[11,-58],[11,-102],[82,-176],[2,-321]],[[4454,4177],[-22,-1],[-83,-65],[-56,40],[-72,10],[-30,16],[-39
 ,-61],[-73,-121],[-59,6],[-30,63],[12,83],[-38,16],[11,60],[2,50],[-18,21],[-27,60],[-37,-15],[-26,3],[-42,19]],[[7948,4515],[48,36],[54,-5],[18,-17],[19,-3],[2,-57],[29,-15],[21,41],[12,38],[46,68]],[[8261,4470],[-8,-18],[12,-34],[-19,-44],[20,-11],[11,-22],[-10,-17],[-28,-82],[-8,-88],[2,-86],[-29,-14],[-6,59],[-10,2],[-4,-26],[6,-104],[8,-27],[-4,-47],[-18,2],[0,-65],[5,-38],[-8,-58],[-16,-79]],[[8157,3673],[-6,-68],[-13,26],[-8,-32],[-9,9],[-6,-30],[-37,-30]],[[8078,3548],[-102,54],[-86,69]],[[7145,4967],[-6,76],[3,85],[2,84],[-27,46]],[[5646,4004],[-3,80],[31,142],[-15,121],[-41,102],[1,43],[10,48],[-4,65],[24,236],[-2,12],[14,32],[22,69],[56,94],[16,67],[11,27],[27,20],[23,1],[16,22],[25,1],[5,16]],[[4057,8521],[29,18],[3,-91],[41,-9],[0,-35],[16,-15],[6,-38],[2,-59],[-5,-26],[-5,-97],[11,-113]],[[8031,6163],[-22,25],[-15,30]],[[1768,4773],[-23,-24],[-110,-75],[-61,-34],[-31,14],[-40,104],[10,42],[46,133],[-32,36],[16,16],[69,92],[15,32],[-9,101],[-7,50],[23,48],[12,49],[41,-1
 1],[34,19],[30,31],[98,43],[44,27],[5,-133],[17,-88],[99,-249],[20,-93]],[[4663,9032],[7,304],[-9,75],[-15,43],[-44,67],[-13,33],[-4,38],[4,106],[-4,52],[26,20],[80,73],[47,34],[44,9],[40,-9],[43,-31],[39,-49],[37,-77],[26,-70],[29,-91],[34,-116],[-13,0]],[[9113,3980],[-19,4],[-9,60],[-6,76],[-8,14],[-14,106],[-9,34],[-12,10],[-43,94]],[[8107,5266],[-173,156],[-96,74]],[[8239,3642],[-13,2],[-69,29]],[[8106,5038],[-95,-65],[-63,-102],[5,-188],[-5,-168]],[[8016,2918],[-27,62],[10,64],[20,39],[-20,42],[17,-3],[30,41],[36,36],[2,64],[14,14],[-28,100],[-6,74],[5,51],[9,46]],[[7323,6469],[-28,8],[-18,19],[-27,15],[-16,21],[4,43],[-14,27],[-13,-1],[11,48],[-3,49],[12,19],[9,-42],[35,0],[-2,42],[24,9],[-8,36],[18,-3],[-2,43],[-22,57],[-21,-28],[-11,5],[8,36]],[[7259,6872],[30,6],[9,32],[36,58],[6,21],[22,19],[19,-18],[21,1],[-3,-37],[33,27],[-18,70],[-15,4],[10,62],[11,30],[3,-29],[17,-56],[12,30],[32,-51],[43,-10],[39,17]],[[7319,7258],[-3,-15],[14,-14],[6,-26],[-16,-82],[-10,-25],[-3,-60]
 ,[-28,-27],[-5,-57],[-20,-29],[-14,-55],[19,4]],[[5672,8598],[69,-4],[49,4],[49,27],[23,23],[62,85],[73,84],[93,96],[16,-90],[5,-43],[17,-32],[11,-3],[43,23],[12,-14],[2,-27],[12,0],[4,33],[15,-10],[12,41],[21,-18],[6,-43],[10,-6],[7,-39],[1,-40],[20,-23],[22,15],[21,-39],[28,18],[24,-1],[3,-25],[12,-23],[-3,-18]],[[6411,8549],[-16,-20],[-9,-96],[-21,14],[-21,-4],[-28,-30]],[[2991,8607],[-24,-69],[-24,-26],[-1,-14],[-30,-65],[-48,-39],[-41,40],[-44,-28],[-20,29],[-9,48],[16,90],[-28,127],[-25,49],[22,138],[-5,37],[14,1],[16,43],[25,35],[4,22],[20,33]],[[6411,8549],[18,-43],[-1,-32],[35,-83],[23,-24],[26,-10],[52,-37],[33,-15],[0,19],[23,-6],[27,-45]],[[7288,7384],[1,13],[39,-60],[-11,-24]]],"transform":{"scale":[0.0917655852359572,-0.04800480048004801],"translate":[21.217956612831927,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/bs-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/bs-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/bs-municipalities.json
deleted file mode 100644
index de0b127..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/bs-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":2701,"properties":{"name":"Basel"},"arcs":[[[0,1]]]},{"type":"MultiPolygon","id":2702,"properties":{"name":"Bettingen"},"arcs":[[[-4,5]]]},{"type":"MultiPolygon","id":2703,"properties":{"name":"Riehen"},"arcs":[[[-1,2,3,4]]]}]}},"arcs":[[[5025,7355],[178,-252],[-260,-244],[-186,-239],[85,-330],[52,-132],[48,-79],[29,-13],[17,13],[70,116],[55,-90],[-17,-13],[199,-324],[121,98],[101,88],[202,-293],[-110,-494]],[[5609,5167],[-78,18],[-94,6],[-103,-3],[-102,-20],[-214,-94],[-127,-68],[-241,-134],[-118,-57],[11,-96],[5,-96],[-4,-122],[-14,-138],[2,-37],[16,-51],[32,-61],[38,-40],[142,-123],[49,-53],[57,-93],[23,-56],[17,-61],[13,-116],[-13,-353],[-32,-811],[-185,63],[-41,16],[-68,45],[-70,-70],[-50,-29],[-135,-58],[-32,-9],[-40,-30],[-38,-59],[-13,-57],[-10,-117],[-8,-34],[-26,-35],[-37,-18],[-1,-19],[-58,-58],[26,-63],[-65,-28],[-19,51],[-74,-76],[-227,-494],[2,-23],[-29
 ,-6],[3,-22],[-15,-32],[5,-63],[-66,2],[6,-61],[-210,-483],[-285,-420],[-218,-321],[-290,42],[-36,18],[-26,122],[-17,126],[-17,58],[-7,81],[5,93],[14,86],[3,90],[24,70],[-3,116],[-7,48],[-25,103],[-42,13],[-34,37],[-4,29],[6,60],[-187,27],[2,83],[-5,83],[-12,83],[-63,-7],[-68,-43],[-50,70],[-27,60],[-8,61],[23,57],[34,64],[51,145],[64,164],[61,174],[4,40],[-25,40],[-13,40],[19,91],[57,167],[23,91],[31,81],[-418,234],[-36,-17],[-64,18],[-67,-1],[-50,-12],[-25,6],[-173,21],[-331,95],[-254,63],[-202,52],[-127,-48],[-94,-20],[-62,-24],[-103,-32],[-135,-34],[-71,-9],[-47,1],[204,980],[179,-76],[131,391],[109,259],[-2,22],[-214,239],[-124,165],[-83,175],[-56,80],[-236,213],[189,81],[70,271],[77,262],[-208,244],[32,132],[396,295],[216,165],[77,177],[185,-30],[184,-37],[261,-119],[82,39],[178,27],[417,-139],[-19,374],[24,278],[70,395],[89,301],[92,241],[57,169],[297,-112],[380,-162],[458,-330],[-17,-260],[-36,-180],[46,-20],[5,-94],[41,-63],[-32,-246],[214,28],[112,10],[272,-3],[128,-19],[1
 25,-38],[175,-98],[104,84],[128,97],[112,100],[44,31]],[[5025,7355],[33,25],[103,96],[114,118],[114,140],[215,277],[106,133],[54,112],[56,100],[58,96],[228,245],[260,120],[-99,191],[-7,157],[91,105],[97,85],[91,149],[241,-89],[148,-62],[288,-38],[477,-205],[210,-126],[196,-88],[349,-4],[215,11],[23,130],[92,155],[92,128],[118,123],[67,102],[65,17],[104,143],[130,33],[159,-7],[69,-11],[96,29],[166,91],[121,163],[34,-17],[-54,-157],[-76,-100],[-131,-135],[-390,-116],[-77,-75],[-119,-216],[-172,-247],[-158,-109],[-308,-392],[-96,-109],[24,-249],[206,-122],[142,-60],[146,-58],[138,-70],[34,-209]],[[9108,7558],[-36,19],[-100,-91],[-54,-30],[1,-46],[-13,-50],[-39,-96],[-16,-55],[-3,-59],[-17,-78],[-9,-128],[21,-172],[-19,-25],[-44,-6],[-27,-40],[-41,-22],[-66,23],[-153,9],[-75,-43],[-110,-17],[-65,41],[-177,67],[-1,38],[-29,28],[-46,16],[-37,-8],[-23,61],[-145,-54],[-38,-50],[-32,-78],[-29,-24],[65,-133],[-70,-48],[31,-55],[-70,-67],[-19,-29],[-30,26],[-37,-88],[-16,-55],[-59,-120],[-8,-4
 9],[-82,-142],[-47,-157],[-19,-80],[-65,-116],[-75,-119],[-58,-103],[-39,-53],[-57,-55],[19,-40]],[[7050,5205],[-164,-108],[-149,-119],[-127,69],[-32,27],[-145,69],[-202,-3],[-83,89],[-127,150],[-159,84],[-156,-330],[-97,34]],[[9108,7558],[45,-400],[-1,-29],[46,-28],[94,-70],[-2,-126],[-10,-210],[46,-13],[86,-87],[245,-80],[53,-125],[-53,-136],[-128,-233],[-84,-341],[-53,117],[-53,106],[-51,113],[-24,8],[20,259],[-15,88],[-178,-101],[-138,-115],[-48,-66],[-54,-141],[-67,-101],[-76,-128],[-39,-63],[154,-60],[3,-145],[-123,-32],[-83,-4],[-144,33],[-10,156],[3,53],[-120,46],[-34,2],[-55,-21],[-141,-45],[-140,-30],[-95,41],[-251,-75],[-144,-39],[-60,-75],[-82,-90],[-43,-104],[-116,10],[-138,-72]]],"transform":{"scale":[0.05520122623174928,-0.04800480048004801],"translate":[204.02146945436948,490]}}


[02/50] [abbrv] zest-qi4j git commit: ..

Posted by ni...@apache.org.
..


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/c93be181
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/c93be181
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/c93be181

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: c93be181549ac93665bd648103dff653a8890751
Parents: d4076d1
Author: jj <ju...@gmail.com>
Authored: Tue Jan 6 17:11:27 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Tue Jan 6 17:11:27 2015 +0100

----------------------------------------------------------------------
 .../SpatialExceptionConfiguration.java          |   7 +
 .../configuration/SpatialSupportMatrix.java     | 123 ++++++++++++++++++
 .../ElasticSearchSpatialExtensionFinder.java    | 129 +++++++++++++++++++
 .../domain/openstreetmap/model/state/OSM.java   |   7 +
 .../domain/openstreetmap/model/MapEntity.java   |   7 +
 .../domain/openstreetmap/model/TagEntity.java   |   7 +
 .../OpenStreetMapDomainModelAssembler.java      |   7 +
 .../openstreetmap/model/state/Features.java     |   7 +
 .../openstreetmap/model/state/Identifiable.java |   7 +
 .../openstreetmap/model/state/Properties.java   |   7 +
 .../model/test/TestOpenStreetMapModel.java      |  26 ++++
 11 files changed, 334 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
new file mode 100644
index 0000000..40012c7
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
@@ -0,0 +1,7 @@
+package org.qi4j.index.elasticsearch.extensions.spatial.configuration;
+
+/**
+ * Created by jj on 25.12.14.
+ */
+public interface SpatialExceptionConfiguration {
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialSupportMatrix.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialSupportMatrix.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialSupportMatrix.java
new file mode 100644
index 0000000..e805410
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialSupportMatrix.java
@@ -0,0 +1,123 @@
+package org.qi4j.index.elasticsearch.extensions.spatial.configuration;
+
+import com.google.common.collect.HashBasedTable;
+import com.google.common.collect.Table;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.TPolygon;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.query.grammar.ExpressionSpecification;
+import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.ST_Disjoint;
+import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.ST_Intersects;
+import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.ST_WithinV2;
+import org.qi4j.index.elasticsearch.extensions.spatial.mappings.cache.MappingsCache;
+
+import java.lang.reflect.Array;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Created by jj on 22.12.14.
+ */
+public class SpatialSupportMatrix
+{
+
+    private Boolean OrderBy = true;
+    private Class<? extends TGeometry> AnyGeometry = TGeometry.class;
+    public static enum INDEX_MAPPING_POINT_METHOD {AS_GEO_POINT, AS_GEO_SHAPE}
+
+    private static final Table<Class, INDEX_MAPPING_POINT_METHOD, ConfigurationEntry> SPATIAL_SUPPORT_MATRIX = HashBasedTable.create();
+
+
+
+    {
+        // ST_Within
+        supports(ST_WithinV2.class, propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), OrderBy, INDEX_MAPPING_POINT_METHOD.AS_GEO_POINT);
+        supports(ST_WithinV2.class, propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), not(OrderBy), INDEX_MAPPING_POINT_METHOD.AS_GEO_SHAPE);
+
+        // ST_Disjoint
+        supports(not(ST_Disjoint.class), AnyGeometry, AnyGeometry, OrderBy, INDEX_MAPPING_POINT_METHOD.AS_GEO_POINT);
+        supports(ST_Disjoint.class, TGeometry.class, TGeometry.class, not(OrderBy), INDEX_MAPPING_POINT_METHOD.AS_GEO_SHAPE);
+
+        // ST_Intersects
+        supports(not(ST_Intersects.class), AnyGeometry, AnyGeometry, OrderBy, INDEX_MAPPING_POINT_METHOD.AS_GEO_POINT);
+        supports(not(ST_Intersects.class), TGeometry.class, TGeometry.class, not(OrderBy), INDEX_MAPPING_POINT_METHOD.AS_GEO_SHAPE);
+    }
+
+
+
+
+    {
+        supports(ST_WithinV2.class, TPoint.class, not(TPoint.class), OrderBy, INDEX_MAPPING_POINT_METHOD.AS_GEO_SHAPE);
+    }
+
+    private class ConfigurationEntry
+    {
+        private INDEX_MAPPING_POINT_METHOD method;
+        private Boolean orderBy;
+        private List<Class<? extends  TGeometry>> supportedPropertyGeometries = new LinkedList<>();
+        private List<Class<? extends  TGeometry>> supportedFilterGeometries = new LinkedList<>();
+
+        public ConfigurationEntry(Class<? extends  TGeometry>[] geometriesOfProperty, Class<? extends  TGeometry>[] geometriesOfFilter, Boolean orderBy, INDEX_MAPPING_POINT_METHOD method)
+        {
+            this.supportedPropertyGeometries = Arrays.asList(geometriesOfProperty);
+            this.supportedFilterGeometries   = Arrays.asList(geometriesOfFilter);
+            this.orderBy = orderBy;
+            this.method  = method;
+        }
+
+        public boolean isSupported( Class<? extends  TGeometry> geometryOfProperty, Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy)
+        {
+            return false;
+        }
+    }
+
+
+    public boolean isSupported(Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, INDEX_MAPPING_POINT_METHOD method )
+    {
+        if (SPATIAL_SUPPORT_MATRIX.contains(expression, method))
+            return SPATIAL_SUPPORT_MATRIX.get(expression, method).isSupported(geometryOfProperty, geometryOfFilter, orderBy);
+        else
+            return false;
+    }
+
+    private void supports (Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, INDEX_MAPPING_POINT_METHOD method)
+    {
+        supports
+                (
+                 expression,
+                 (Class < ?extends TGeometry >[])Array.newInstance(geometryOfProperty, 1),
+                 (Class<? extends TGeometry>[]) Array.newInstance(geometryOfFilter, 1),
+                 orderBy, method
+                );
+    }
+
+    private void supports (Class expression, Class<? extends  TGeometry>[] geometriesOfProperty,Class<? extends  TGeometry>[] geometriesOfFilter, Boolean orderBy, INDEX_MAPPING_POINT_METHOD method)
+    {
+        SPATIAL_SUPPORT_MATRIX.put(expression, method, new ConfigurationEntry(geometriesOfProperty, geometriesOfFilter,orderBy, method));
+    }
+
+
+
+    private Class not(Class clazz)
+    {
+        return Object.class;
+    }
+
+    private Boolean not(Boolean bool)
+    {
+        return false;
+    }
+
+
+    private Class<? extends  TGeometry>[] filterOf(Class<? extends  TGeometry>... geometryOfFilters)
+    {
+        return geometryOfFilters;
+    }
+
+    private Class<? extends  TGeometry>[] propertyOf(Class<? extends  TGeometry>... geometryOfProperty)
+    {
+        return geometryOfProperty;
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/index/ElasticSearchSpatialExtensionFinder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/index/ElasticSearchSpatialExtensionFinder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/index/ElasticSearchSpatialExtensionFinder.java
new file mode 100644
index 0000000..c1ec059
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/index/ElasticSearchSpatialExtensionFinder.java
@@ -0,0 +1,129 @@
+package org.qi4j.index.elasticsearch.extensions.spatial.index;
+
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.elasticsearch.index.query.*;
+import org.qi4j.api.query.grammar.ComparisonSpecification;
+import org.qi4j.api.query.grammar.ContainsAllSpecification;
+import org.qi4j.api.query.grammar.ContainsSpecification;
+import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
+import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
+import org.qi4j.api.structure.Module;
+import org.qi4j.functional.Specification;
+import org.qi4j.index.elasticsearch.ElasticSearchSupport;
+import org.qi4j.index.elasticsearch.extensions.spatial.functions.convert.ElasticSearchSpatialConvertFinderSupport;
+import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.ElasticSearchSpatialPredicateFinderSupport;
+import org.qi4j.spi.query.EntityFinderException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.elasticsearch.index.query.FilterBuilders.geoShapeFilter;
+
+import org.qi4j.index.elasticsearch.ElasticSearchFinderSupport;
+
+public final class ElasticSearchSpatialExtensionFinder
+{
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(ElasticSearchSpatialExtensionFinder.class);
+
+    private static final Map<Class<?>, SpatialQuerySpecSupport> SPATIAL_QUERY_EXPRESSIONS_CATALOG = new HashMap<>( 2 );
+
+    static
+    {
+        SPATIAL_QUERY_EXPRESSIONS_CATALOG.put(SpatialPredicatesSpecification.class, new ElasticSearchSpatialPredicateFinderSupport());
+        SPATIAL_QUERY_EXPRESSIONS_CATALOG.put(SpatialConvertSpecification.class, new ElasticSearchSpatialConvertFinderSupport());
+    }
+
+
+
+    public interface ModuleHelper {
+        void setModule(Module module, ElasticSearchSupport support);
+    }
+
+    public static interface SpatialQuerySpecSupport extends ModuleHelper
+    {
+        void processSpecification(FilterBuilder filterBuilder, Specification<?> spec, Map<String, Object> variables)  throws EntityFinderException;
+    }
+
+
+
+    public static class SpatialSpecSupport
+                implements  SpatialQuerySpecSupport {
+
+        Module module;
+        ElasticSearchSupport support;
+
+        public void setModule(Module module, ElasticSearchSupport support)
+        {
+            this.module  = module;
+            this.support = support;
+        }
+
+
+        public void processSpecification(FilterBuilder filterBuilder,
+                                              Specification<?> spec,
+                                              Map<String, Object> variables) {
+
+            SpatialQuerySpecSupport spatialQuerySpecSupport = SPATIAL_QUERY_EXPRESSIONS_CATALOG.get(spec.getClass().getSuperclass());
+            spatialQuerySpecSupport.setModule(module, support);
+
+            try {
+                spatialQuerySpecSupport.processSpecification(filterBuilder, spec, variables);
+
+            } catch (Exception _ex) {
+                _ex.printStackTrace();
+            }
+
+
+        }
+
+    }
+
+
+    public static class SpatialTypeSupport
+            implements ElasticSearchFinderSupport.ComplexTypeSupport
+    {
+
+        public FilterBuilder comparison( ComparisonSpecification<?> spec, Map<String, Object> variables )
+        {
+            return null;
+        }
+
+        public FilterBuilder contains( ContainsSpecification<?> spec, Map<String, Object> variables )
+        {
+            return null;
+        }
+
+        public FilterBuilder containsAll( ContainsAllSpecification<?> spec, Map<String, Object> variables )
+        {
+            return null;
+        }
+    }
+
+
+
+
+        private ElasticSearchSpatialExtensionFinder()
+    {
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/OSM.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/OSM.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/OSM.java
new file mode 100644
index 0000000..c249034
--- /dev/null
+++ b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/OSM.java
@@ -0,0 +1,7 @@
+package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
+
+/**
+ * Created by jj on 01.12.14.
+ */
+public interface OSM {
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/MapEntity.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/MapEntity.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/MapEntity.java
new file mode 100644
index 0000000..fe7ddfa
--- /dev/null
+++ b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/MapEntity.java
@@ -0,0 +1,7 @@
+package org.qi4j.sample.spatial.domain.openstreetmap.model;
+
+/**
+ * Created by jj on 28.11.14.
+ */
+public interface MapEntity {
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java
new file mode 100644
index 0000000..1175663
--- /dev/null
+++ b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java
@@ -0,0 +1,7 @@
+package org.qi4j.sample.spatial.domain.openstreetmap.model;
+
+/**
+ * Created by jj on 28.11.14.
+ */
+public class TagEntity {
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java
new file mode 100644
index 0000000..0c5661f
--- /dev/null
+++ b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java
@@ -0,0 +1,7 @@
+package org.qi4j.sample.spatial.domain.openstreetmap.model.assembly;
+
+/**
+ * Created by jj on 28.11.14.
+ */
+public class OpenStreetMapDomainModelAssembler {
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Features.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Features.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Features.java
new file mode 100644
index 0000000..b6c5908
--- /dev/null
+++ b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Features.java
@@ -0,0 +1,7 @@
+package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
+
+/**
+ * Created by jj on 28.11.14.
+ */
+public interface Features {
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Identifiable.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Identifiable.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Identifiable.java
new file mode 100644
index 0000000..763cc9d
--- /dev/null
+++ b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Identifiable.java
@@ -0,0 +1,7 @@
+package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
+
+/**
+ * Created by jj on 28.11.14.
+ */
+public interface Identifiable {
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Properties.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Properties.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Properties.java
new file mode 100644
index 0000000..9dca43d
--- /dev/null
+++ b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Properties.java
@@ -0,0 +1,7 @@
+package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
+
+/**
+ * Created by jj on 28.11.14.
+ */
+public interface Properties {
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/c93be181/samples/spatial/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOpenStreetMapModel.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOpenStreetMapModel.java b/samples/spatial/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOpenStreetMapModel.java
new file mode 100644
index 0000000..c220823
--- /dev/null
+++ b/samples/spatial/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOpenStreetMapModel.java
@@ -0,0 +1,26 @@
+package org.qi4j.sample.spatial.domain.openstreetmap.model.test;
+
+import org.junit.Test;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.sample.spatial.domain.openstreetmap.model.assembly.OpenStreetMapDomainModelAssembler;
+import org.qi4j.test.AbstractQi4jTest;
+
+/**
+ * Created by jj on 28.11.14.
+ */
+public class TestOpenStreetMapModel extends AbstractQi4jTest {
+
+    @Override
+    public void assemble( ModuleAssembly module )
+            throws AssemblyException
+    {
+        new OpenStreetMapDomainModelAssembler().assemble(module);
+    }
+
+    @Test
+    public void foo()
+    {
+        System.out.println("foo");
+    }
+}


[30/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ag-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ag-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ag-municipalities.json
deleted file mode 100644
index 6399191..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ag-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":4001,"properties":{"name":"Aarau"},"arcs":[[[116,117,118,119,120,121,122,123,124]]]},{"type":"MultiPolygon","id":4002,"properties":{"name":"Biberstein"},"arcs":[[[-445,-121,-135,-216,-488]]]},{"type":"MultiPolygon","id":4003,"properties":{"name":"Buchs (AG)"},"arcs":[[[-123,-444,-191]]]},{"type":"MultiPolygon","id":4004,"properties":{"name":"Densbüren"},"arcs":[[[89,90,91,92,93,94]]]},{"type":"MultiPolygon","id":4005,"properties":{"name":"Erlinsbach (AG)"},"arcs":[[[220,221,-132,-119]]]},{"type":"MultiPolygon","id":4006,"properties":{"name":"Gränichen"},"arcs":[[[33,34,35,36,37,38,39,40]]]},{"type":"MultiPolygon","id":4007,"properties":{"name":"Hirschthal"},"arcs":[[[-440,611,-389,-278]]]},{"type":"MultiPolygon","id":4008,"properties":{"name":"Küttigen"},"arcs":[[[-120,131,132,-90,133,134]]]},{"type":"MultiPolygon","id":4009,"properties":{"name":"Muhen"},"arcs":[[
 [388,389,-273,-364,-35,-279]]]},{"type":"MultiPolygon","id":4010,"properties":{"name":"Oberentfelden"},"arcs":[[[363,-272,364,365,-189,-36]]]},{"type":"MultiPolygon","id":4012,"properties":{"name":"Suhr"},"arcs":[[[188,189,-125,-124,190,191,192,-37]]]},{"type":"MultiPolygon","id":4013,"properties":{"name":"Unterentfelden"},"arcs":[[[-366,639,-117,-190]]]},{"type":"MultiPolygon","id":4021,"properties":{"name":"Baden"},"arcs":[[[103,104,105,106,107,108,109,110],[111]],[[-343,-526,-551]]]},{"type":"MultiPolygon","id":4022,"properties":{"name":"Bellikon"},"arcs":[[[-455,534,535,536,537,-298]]]},{"type":"MultiPolygon","id":4023,"properties":{"name":"Bergdietikon"},"arcs":[[[452,453,454,-297,455]]]},{"type":"MultiPolygon","id":4024,"properties":{"name":"Birmenstorf (AG)"},"arcs":[[[337,338,339,340,-106,341,342,343,344]]]},{"type":"MultiPolygon","id":4026,"properties":{"name":"Ennetbaden"},"arcs":[[[-110,-315,-600,-355,-195]]]},{"type":"MultiPolygon","id":4027,"properties":{"name":"Fislisb
 ach"},"arcs":[[[523,524,525,-342,-105,-502,526]]]},{"type":"MultiPolygon","id":4028,"properties":{"name":"Freienwil"},"arcs":[[[-314,-83,-356,599]]]},{"type":"MultiPolygon","id":4029,"properties":{"name":"Gebenstorf"},"arcs":[[[490,-429,-323,491,-107,-341]]]},{"type":"MultiPolygon","id":4030,"properties":{"name":"Killwangen"},"arcs":[[[-301,-591,-500,-258]]]},{"type":"MultiPolygon","id":4031,"properties":{"name":"Künten"},"arcs":[[[545,-450,546,547,-537,548]]]},{"type":"MultiPolygon","id":4032,"properties":{"name":"Mägenwil"},"arcs":[[[-563,613,614,-585,-348]]]},{"type":"MultiPolygon","id":4033,"properties":{"name":"Mellingen"},"arcs":[[[549,-344,550,-525,551,552,553]]]},{"type":"MultiPolygon","id":4034,"properties":{"name":"Neuenhof"},"arcs":[[[499,500,501,-104,-194,-259]]]},{"type":"MultiPolygon","id":4035,"properties":{"name":"Niederrohrdorf"},"arcs":[[[-603,-583,-552,-524,-590]]]},{"type":"MultiPolygon","id":4037,"properties":{"name":"Oberrohrdorf"},"arcs":[[[588,589,-527,-501
 ,590,-300]]]},{"type":"MultiPolygon","id":4038,"properties":{"name":"Obersiggenthal"},"arcs":[[[-109,311,312,-256,-305,-84,313,314]]]},{"type":"MultiPolygon","id":4039,"properties":{"name":"Remetschwil"},"arcs":[[[-538,-548,-584,602,-589,-299]]]},{"type":"MultiPolygon","id":4040,"properties":{"name":"Spreitenbach"},"arcs":[[[296,297,298,299,300,-257,301]]]},{"type":"MultiPolygon","id":4041,"properties":{"name":"Stetten (AG)"},"arcs":[[[581,-553,582,583,-547,-449]]]},{"type":"MultiPolygon","id":4042,"properties":{"name":"Turgi"},"arcs":[[[-108,-492,-322,-312]],[[-112]]]},{"type":"MultiPolygon","id":4044,"properties":{"name":"Untersiggenthal"},"arcs":[[[321,322,323,-177,-250,-313]]]},{"type":"MultiPolygon","id":4045,"properties":{"name":"Wettingen"},"arcs":[[[193,-111,194,195,196,197]]]},{"type":"MultiPolygon","id":4046,"properties":{"name":"Wohlenschwil"},"arcs":[[[584,585,-345,-550,586,-349]]]},{"type":"MultiPolygon","id":4047,"properties":{"name":"Würenlingen"},"arcs":[[[249,-176,
 250,251,252,253,254,255]]]},{"type":"MultiPolygon","id":4048,"properties":{"name":"Würenlos"},"arcs":[[[256,257,258,-198,259]]]},{"type":"MultiPolygon","id":4049,"properties":{"name":"Ehrendingen"},"arcs":[[[-196,354,355,-82,-325,356]]]},{"type":"MultiPolygon","id":4061,"properties":{"name":"Arni (AG)"},"arcs":[[[-486,616,-579,-513,617,618,619]]]},{"type":"MultiPolygon","id":4062,"properties":{"name":"Berikon"},"arcs":[[[503,504,505,506,507,508]]]},{"type":"MultiPolygon","id":4063,"properties":{"name":"Bremgarten (AG)"},"arcs":[[[329,-101,330,331,332,333]]]},{"type":"MultiPolygon","id":4064,"properties":{"name":"Büttikon"},"arcs":[[[-130,-103,-570,641,-317]]]},{"type":"MultiPolygon","id":4065,"properties":{"name":"Dottikon"},"arcs":[[[601,-564,-346,-97,-129]]]},{"type":"MultiPolygon","id":4066,"properties":{"name":"Eggenwil"},"arcs":[[[-332,-636,-549,-536,-652,-557]]]},{"type":"MultiPolygon","id":4067,"properties":{"name":"Fischbach-Göslikon"},"arcs":[[[-100,-451,-546,635,-331]]]
 },{"type":"MultiPolygon","id":4068,"properties":{"name":"Hägglingen"},"arcs":[[[345,346,347,348,349,350,-98]]]},{"type":"MultiPolygon","id":4069,"properties":{"name":"Hermetschwil-Staffeln"},"arcs":[[[620,-472,-571,-334,-556,-578,-575]]]},{"type":"MultiPolygon","id":4071,"properties":{"name":"Jonen"},"arcs":[[[-295,483,484,485,486]]]},{"type":"MultiPolygon","id":4072,"properties":{"name":"Niederwil (AG)"},"arcs":[[[-351,447,448,449,450,-99]]]},{"type":"MultiPolygon","id":4073,"properties":{"name":"Oberlunkhofen"},"arcs":[[[-577,-580,-617,-485]]]},{"type":"MultiPolygon","id":4074,"properties":{"name":"Oberwil-Lieli"},"arcs":[[[509,510,-504,511,512]]]},{"type":"MultiPolygon","id":4075,"properties":{"name":"Rudolfstetten-Friedlisberg"},"arcs":[[[-508,543,-453,544]]]},{"type":"MultiPolygon","id":4076,"properties":{"name":"Sarmenstorf"},"arcs":[[[315,-203,-131,316,317,318,319,320]]]},{"type":"MultiPolygon","id":4077,"properties":{"name":"Tägerig"},"arcs":[[[-350,-587,-554,-582,-448]]]}
 ,{"type":"MultiPolygon","id":4078,"properties":{"name":"Uezwil"},"arcs":[[[-318,-642,-569,-651]]]},{"type":"MultiPolygon","id":4079,"properties":{"name":"Unterlunkhofen"},"arcs":[[[-576,577,-559,-510,578,579]]]},{"type":"MultiPolygon","id":4080,"properties":{"name":"Villmergen"},"arcs":[[[125,126,127,128,-96,129,130]]]},{"type":"MultiPolygon","id":4081,"properties":{"name":"Widen"},"arcs":[[[-507,-506,-558,651,-535,-454,-544]]]},{"type":"MultiPolygon","id":4082,"properties":{"name":"Wohlen (AG)"},"arcs":[[[95,96,97,98,99,100,101,102]]]},{"type":"MultiPolygon","id":4083,"properties":{"name":"Zufikon"},"arcs":[[[555,-333,556,557,-505,-511,558]]]},{"type":"MultiPolygon","id":4084,"properties":{"name":"Islisberg"},"arcs":[[[-619,657]]]},{"type":"MultiPolygon","id":4091,"properties":{"name":"Auenstein"},"arcs":[[[-446,487,-220,488,489,-407]]]},{"type":"MultiPolygon","id":4092,"properties":{"name":"Birr"},"arcs":[[[-411,-521,527,528]]]},{"type":"MultiPolygon","id":4093,"properties":{"name
 ":"Birrhard"},"arcs":[[[636,-528,-520,-629,-338,-586,-615]]]},{"type":"MultiPolygon","id":4094,"properties":{"name":"Bözen"},"arcs":[[[-395,-360,-594,-399]]]},{"type":"MultiPolygon","id":4095,"properties":{"name":"Brugg"},"arcs":[[[425,-52,426,427,-171,-324,428,429,430,431,432]]]},{"type":"MultiPolygon","id":4096,"properties":{"name":"Effingen"},"arcs":[[[-396,398,399,400,-48]]]},{"type":"MultiPolygon","id":4097,"properties":{"name":"Elfingen"},"arcs":[[[593,-359,-54,594,-400]]]},{"type":"MultiPolygon","id":4099,"properties":{"name":"Habsburg"},"arcs":[[[655,-432,-627,-623]]]},{"type":"MultiPolygon","id":4100,"properties":{"name":"Hausen (AG)"},"arcs":[[[-624,626,-431,-541,-540,627,-518]]]},{"type":"MultiPolygon","id":4104,"properties":{"name":"Lupfig"},"arcs":[[[-410,515,516,517,518,519,520]]]},{"type":"MultiPolygon","id":4105,"properties":{"name":"Mandach"},"arcs":[[[-174,-7,-59,-352]]]},{"type":"MultiPolygon","id":4106,"properties":{"name":"Mönthal"},"arcs":[[[-401,-595,-58,-28
 7,-335,-49]]]},{"type":"MultiPolygon","id":4107,"properties":{"name":"Mülligen"},"arcs":[[[628,-519,-628,-539,-339]]]},{"type":"MultiPolygon","id":4109,"properties":{"name":"Oberflachs"},"arcs":[[[-489,-219,-282,-514]]]},{"type":"MultiPolygon","id":4110,"properties":{"name":"Remigen"},"arcs":[[[-50,334,-288,-9,-173,335,336]]]},{"type":"MultiPolygon","id":4111,"properties":{"name":"Riniken"},"arcs":[[[-51,-337,559,-427]]]},{"type":"MultiPolygon","id":4112,"properties":{"name":"Rüfenach"},"arcs":[[[-560,-336,-172,-428]]]},{"type":"MultiPolygon","id":4113,"properties":{"name":"Scherz"},"arcs":[[[621,622,623,-517,624]]]},{"type":"MultiPolygon","id":4114,"properties":{"name":"Schinznach-Bad"},"arcs":[[[-285,-483,-433,-656,-622,-655]]]},{"type":"MultiPolygon","id":4115,"properties":{"name":"Schinznach-Dorf"},"arcs":[[[281,-218,282,-46,283,284,285]]]},{"type":"MultiPolygon","id":4117,"properties":{"name":"Thalheim (AG)"},"arcs":[[[215,-134,-95,216,217,218,219]]]},{"type":"MultiPolygon","
 id":4120,"properties":{"name":"Veltheim (AG)"},"arcs":[[[-490,513,-286,514,-408]]]},{"type":"MultiPolygon","id":4121,"properties":{"name":"Villigen"},"arcs":[[[170,171,172,-8,173,174,175,176]]]},{"type":"MultiPolygon","id":4122,"properties":{"name":"Villnachern"},"arcs":[[[-284,-53,-426,482]]]},{"type":"MultiPolygon","id":4123,"properties":{"name":"Windisch"},"arcs":[[[538,539,540,-430,-491,-340]]]},{"type":"MultiPolygon","id":4124,"properties":{"name":"Bözberg"},"arcs":[[[45,46,47,48,49,50,51,52]]]},{"type":"MultiPolygon","id":4131,"properties":{"name":"Beinwil am See"},"arcs":[[[-424,-244,479,480,481]]]},{"type":"MultiPolygon","id":4132,"properties":{"name":"Birrwil"},"arcs":[[[-243,-465,492,493,-397,-480]]]},{"type":"MultiPolygon","id":4133,"properties":{"name":"Burg (AG)"},"arcs":[[[659,-422,-421]]]},{"type":"MultiPolygon","id":4134,"properties":{"name":"Dürrenäsch"},"arcs":[[[-248,-281,456,457,-458,457,458,-230,459,460,461,462]]]},{"type":"MultiPolygon","id":4135,"properties
 ":{"name":"Gontenschwil"},"arcs":[[[222,223,224,225,226,227]]]},{"type":"MultiPolygon","id":4136,"properties":{"name":"Holziken"},"arcs":[[[-439,-376,-274,-390,-612]]]},{"type":"MultiPolygon","id":4137,"properties":{"name":"Leimbach (AG)"},"arcs":[[[-226,-466,-241]]]},{"type":"MultiPolygon","id":4138,"properties":{"name":"Leutwil"},"arcs":[[[-464,-462,608,-493]]]},{"type":"MultiPolygon","id":4139,"properties":{"name":"Menziken"},"arcs":[[[420,421,422,-239,-238,423,424]]]},{"type":"MultiPolygon","id":4140,"properties":{"name":"Oberkulm"},"arcs":[[[244,245,246,247,248,-224]]]},{"type":"MultiPolygon","id":4141,"properties":{"name":"Reinach (AG)"},"arcs":[[[237,238,239,-227,240,241,242,243]]]},{"type":"MultiPolygon","id":4142,"properties":{"name":"Schlossrued"},"arcs":[[[-291,361,-268,362,-276,-246]]]},{"type":"MultiPolygon","id":4143,"properties":{"name":"Schmiedrued"},"arcs":[[[288,289,290,-245,-223,291]]]},{"type":"MultiPolygon","id":4144,"properties":{"name":"Schöftland"},"arcs":[[
 [-363,-267,-266,-377,438,439,-277]]]},{"type":"MultiPolygon","id":4145,"properties":{"name":"Teufenthal (AG)"},"arcs":[[[-280,-41,-231,-459,-458,457,-458,-457]]]},{"type":"MultiPolygon","id":4146,"properties":{"name":"Unterkulm"},"arcs":[[[275,276,277,278,-34,279,280,-247]]]},{"type":"MultiPolygon","id":4147,"properties":{"name":"Zetzwil"},"arcs":[[[-249,-463,463,464,-242,465,-225]]]},{"type":"MultiPolygon","id":4161,"properties":{"name":"Eiken"},"arcs":[[[378,379,380,381,-30,382,-212]]]},{"type":"MultiPolygon","id":4163,"properties":{"name":"Frick"},"arcs":[[[-206,210,211,212,-28,213,214]]]},{"type":"MultiPolygon","id":4164,"properties":{"name":"Gansingen"},"arcs":[[[286,-57,-1,287]]]},{"type":"MultiPolygon","id":4165,"properties":{"name":"Gipf-Oberfrick"},"arcs":[[[-167,204,205,206,207,208]]]},{"type":"MultiPolygon","id":4166,"properties":{"name":"Herznach"},"arcs":[[[-93,-236,-208,440,-393]]]},{"type":"MultiPolygon","id":4167,"properties":{"name":"Hornussen"},"arcs":[[[357,-214,-
 33,-55,358,359,360]]]},{"type":"MultiPolygon","id":4169,"properties":{"name":"Kaisten"},"arcs":[[[27,28,29,30,31,32]]]},{"type":"MultiPolygon","id":4170,"properties":{"name":"Laufenburg"},"arcs":[[[53,54,-32,55,-2,56,57]]]},{"type":"MultiPolygon","id":4172,"properties":{"name":"Münchwilen (AG)"},"arcs":[[[-532,-645,-653,-380,-386]]]},{"type":"MultiPolygon","id":4173,"properties":{"name":"Oberhof"},"arcs":[[[328,-237,-91,-133,-222]]]},{"type":"MultiPolygon","id":4175,"properties":{"name":"Oeschgen"},"arcs":[[[-213,-383,-29]]]},{"type":"MultiPolygon","id":4176,"properties":{"name":"Schwaderloch"},"arcs":[[[647,-418,-4]]]},{"type":"MultiPolygon","id":4177,"properties":{"name":"Sisseln"},"arcs":[[[652,-644,653,-381]]]},{"type":"MultiPolygon","id":4179,"properties":{"name":"Ueken"},"arcs":[[[-441,-207,-215,-358,-394]]]},{"type":"MultiPolygon","id":4181,"properties":{"name":"Wittnau"},"arcs":[[[165,166,167,168,169]]]},{"type":"MultiPolygon","id":4182,"properties":{"name":"Wölflinswil"},
 "arcs":[[[234,-169,-168,-209,235,-92,236]]]},{"type":"MultiPolygon","id":4183,"properties":{"name":"Zeihen"},"arcs":[[[-94,392,393,-361,394,395,-47,-283,-217]]]},{"type":"MultiPolygon","id":4184,"properties":{"name":"Mettauertal"},"arcs":[[[0,1,2,3,4,5,6,7,8]]]},{"type":"MultiPolygon","id":4191,"properties":{"name":"Ammerswil"},"arcs":[[[-437,-160,-613,-610]]]},{"type":"MultiPolygon","id":4192,"properties":{"name":"Boniswil"},"arcs":[[[-494,-609,-461,645,646,-199]]]},{"type":"MultiPolygon","id":4193,"properties":{"name":"Brunegg"},"arcs":[[[-412,-529,-637,-614,-562]]]},{"type":"MultiPolygon","id":4194,"properties":{"name":"Dintikon"},"arcs":[[[-438,609,610,-127]]]},{"type":"MultiPolygon","id":4195,"properties":{"name":"Egliswil"},"arcs":[[[-234,-161,436,437,-202]]]},{"type":"MultiPolygon","id":4196,"properties":{"name":"Fahrwangen"},"arcs":[[[-481,-398,-321,532,533]]]},{"type":"MultiPolygon","id":4197,"properties":{"name":"Hallwil"},"arcs":[[[-647,-646,-460,-229,-200]]]},{"type":"Mu
 ltiPolygon","id":4198,"properties":{"name":"Hendschiken"},"arcs":[[[-611,612,-159,-561,-602,-128]]]},{"type":"MultiPolygon","id":4199,"properties":{"name":"Holderbank (AG)"},"arcs":[[[-515,654,-625,-516,-409]]]},{"type":"MultiPolygon","id":4200,"properties":{"name":"Hunzenschwil"},"arcs":[[[-38,-193,-443,-434]]]},{"type":"MultiPolygon","id":4201,"properties":{"name":"Lenzburg"},"arcs":[[[152,153,154,155,156,157,158,159,160]]]},{"type":"MultiPolygon","id":4202,"properties":{"name":"Meisterschwanden"},"arcs":[[[396,-204,-316,397]]]},{"type":"MultiPolygon","id":4203,"properties":{"name":"Möriken-Wildegg"},"arcs":[[[405,406,407,408,409,410,411,412,-157,413]]]},{"type":"MultiPolygon","id":4204,"properties":{"name":"Niederlenz"},"arcs":[[[-447,-414,-156]]]},{"type":"MultiPolygon","id":4205,"properties":{"name":"Othmarsingen"},"arcs":[[[560,-158,-413,561,562,-347,563]]]},{"type":"MultiPolygon","id":4206,"properties":{"name":"Rupperswil"},"arcs":[[[441,-435,442,-192,443,-122,444,445,-406,4
 46,-155]]]},{"type":"MultiPolygon","id":4207,"properties":{"name":"Schafisheim"},"arcs":[[[-39,433,434,435,-232]]]},{"type":"MultiPolygon","id":4208,"properties":{"name":"Seengen"},"arcs":[[[198,199,200,201,-126,202,203]]]},{"type":"MultiPolygon","id":4209,"properties":{"name":"Seon"},"arcs":[[[228,229,230,-40,231,232,-153,233,-201]]]},{"type":"MultiPolygon","id":4210,"properties":{"name":"Staufen"},"arcs":[[[-233,-436,-442,-154]]]},{"type":"MultiPolygon","id":4221,"properties":{"name":"Abtwil"},"arcs":[[[596,-10]]]},{"type":"MultiPolygon","id":4222,"properties":{"name":"Aristau"},"arcs":[[[-74,-116,-148,292,293,294,295]]]},{"type":"MultiPolygon","id":4223,"properties":{"name":"Auw"},"arcs":[[[-164,302,-12,303]]]},{"type":"MultiPolygon","id":4224,"properties":{"name":"Beinwil (Freiamt)"},"arcs":[[[161,-71,162,163,164]]]},{"type":"MultiPolygon","id":4226,"properties":{"name":"Besenbüren"},"arcs":[[[-147,-473,-621,-574,-293]]]},{"type":"MultiPolygon","id":4227,"properties":{"name":"B
 ettwil"},"arcs":[[[-533,-320,591,-142,-565,592]]]},{"type":"MultiPolygon","id":4228,"properties":{"name":"Boswil"},"arcs":[[[-115,139,140,141,142,143,-144,144,145,146,147]]]},{"type":"MultiPolygon","id":4229,"properties":{"name":"Bünzen"},"arcs":[[[-146,470,471,472]]]},{"type":"MultiPolygon","id":4230,"properties":{"name":"Buttwil"},"arcs":[[[564,-141,-140,-114,565,566]]]},{"type":"MultiPolygon","id":4231,"properties":{"name":"Dietwil"},"arcs":[[[-16,497,498]]]},{"type":"MultiPolygon","id":4232,"properties":{"name":"Geltwil"},"arcs":[[[625,-566,-113,-72,-162]]]},{"type":"MultiPolygon","id":4233,"properties":{"name":"Kallern"},"arcs":[[[-319,650,-568,-144,-143,-592]]]},{"type":"MultiPolygon","id":4234,"properties":{"name":"Merenschwand"},"arcs":[[[69,70,71,72,73,74]]]},{"type":"MultiPolygon","id":4235,"properties":{"name":"Mühlau"},"arcs":[[[-13,-303,-163,-70,494]]]},{"type":"MultiPolygon","id":4236,"properties":{"name":"Muri (AG)"},"arcs":[[[-73,112,113,114,115]]]},{"type":"MultiP
 olygon","id":4237,"properties":{"name":"Oberrüti"},"arcs":[[[-498,-15,502]]]},{"type":"MultiPolygon","id":4238,"properties":{"name":"Rottenschwil"},"arcs":[[[-294,573,574,575,576,-484]]]},{"type":"MultiPolygon","id":4239,"properties":{"name":"Sins"},"arcs":[[[9,10,11,12,13,14,15,16]]]},{"type":"MultiPolygon","id":4240,"properties":{"name":"Waltenschwil"},"arcs":[[[567,568,569,-102,-330,570,-471,-145,143]]]},{"type":"MultiPolygon","id":4251,"properties":{"name":"Hellikon"},"arcs":[[[-368,386,-311,387,-384]]]},{"type":"MultiPolygon","id":4252,"properties":{"name":"Kaiseraugst"},"arcs":[[[-44,541,542]]]},{"type":"MultiPolygon","id":4253,"properties":{"name":"Magden"},"arcs":[[[182,183,184,185,186,-42,-18,187]]]},{"type":"MultiPolygon","id":4254,"properties":{"name":"Möhlin"},"arcs":[[[17,18,19,20,21,22]]]},{"type":"MultiPolygon","id":4255,"properties":{"name":"Mumpf"},"arcs":[[[-309,-151,-573,629,630,-530]]]},{"type":"MultiPolygon","id":4256,"properties":{"name":"Obermumpf"},"arcs":[
 [[-388,-310,529,530,531,-385]]]},{"type":"MultiPolygon","id":4257,"properties":{"name":"Olsberg"},"arcs":[[[-542,-43,-187,595]],[[-185,660]]]},{"type":"MultiPolygon","id":4258,"properties":{"name":"Rheinfelden"},"arcs":[[[41,42,43,44,-19]]]},{"type":"MultiPolygon","id":4259,"properties":{"name":"Schupfart"},"arcs":[[[-369,383,384,385,-379,-211,-205]]]},{"type":"MultiPolygon","id":4260,"properties":{"name":"Stein (AG)"},"arcs":[[[-531,-631,642,643,644]]]},{"type":"MultiPolygon","id":4261,"properties":{"name":"Wallbach"},"arcs":[[[-150,-21,571,572]]]},{"type":"MultiPolygon","id":4262,"properties":{"name":"Wegenstetten"},"arcs":[[[366,367,368,-166]]]},{"type":"MultiPolygon","id":4263,"properties":{"name":"Zeiningen"},"arcs":[[[148,-22,149,150,151]]]},{"type":"MultiPolygon","id":4264,"properties":{"name":"Zuzgen"},"arcs":[[[307,-152,308,309,310]]]},{"type":"MultiPolygon","id":4271,"properties":{"name":"Aarburg"},"arcs":[[[-137,580,-78]]]},{"type":"MultiPolygon","id":4272,"properties":{"
 name":"Attelwil"},"arcs":[[[656,-262,-605,-468]]]},{"type":"MultiPolygon","id":4273,"properties":{"name":"Bottenwil"},"arcs":[[[521,-181,-378,-264,522]]]},{"type":"MultiPolygon","id":4274,"properties":{"name":"Brittnau"},"arcs":[[[-26,65,66,67,68]]]},{"type":"MultiPolygon","id":4275,"properties":{"name":"Kirchleerau"},"arcs":[[[587,-269,-362,-290]]]},{"type":"MultiPolygon","id":4276,"properties":{"name":"Kölliken"},"arcs":[[[269,270,271,272,273,274]]]},{"type":"MultiPolygon","id":4277,"properties":{"name":"Moosleerau"},"arcs":[[[603,-469,604,-261,-588,-289]]]},{"type":"MultiPolygon","id":4279,"properties":{"name":"Murgenthal"},"arcs":[[[23,24,25,26]]]},{"type":"MultiPolygon","id":4280,"properties":{"name":"Oftringen"},"arcs":[[[75,76,77,78,79,80]]]},{"type":"MultiPolygon","id":4281,"properties":{"name":"Reitnau"},"arcs":[[[466,467,468,469]]]},{"type":"MultiPolygon","id":4282,"properties":{"name":"Rothrist"},"arcs":[[[-24,135,136,-77,137,138]]]},{"type":"MultiPolygon","id":4283,"pro
 perties":{"name":"Safenwil"},"arcs":[[[-179,-80,451,-270,-375]]]},{"type":"MultiPolygon","id":4284,"properties":{"name":"Staffelbach"},"arcs":[[[260,261,262,263,264,265,266,267,268]]]},{"type":"MultiPolygon","id":4285,"properties":{"name":"Strengelbach"},"arcs":[[[-67,-210,-138,-76,-178]]]},{"type":"MultiPolygon","id":4286,"properties":{"name":"Uerkheim"},"arcs":[[[-180,374,-275,375,376,-265,377]]]},{"type":"MultiPolygon","id":4287,"properties":{"name":"Vordemwald"},"arcs":[[[-25,-139,209,-66]]]},{"type":"MultiPolygon","id":4288,"properties":{"name":"Wiliberg"},"arcs":[[[658,-523,-263,-657,-467]]]},{"type":"MultiPolygon","id":4289,"properties":{"name":"Zofingen"},"arcs":[[[-68,177,-81,178,179,180,181]]]},{"type":"MultiPolygon","id":4301,"properties":{"name":"Baldingen"},"arcs":[[[-307,-616,-373,-632,640,-86]]]},{"type":"MultiPolygon","id":4302,"properties":{"name":"Böbikon"},"arcs":[[[-87,-641,-635,-649,-606]]]},{"type":"MultiPolygon","id":4303,"properties":{"name":"Böttstein"},"a
 rcs":[[[-175,351,-65,352,353,-251]]]},{"type":"MultiPolygon","id":4304,"properties":{"name":"Döttingen"},"arcs":[[[-354,390,391,-370,-252]]]},{"type":"MultiPolygon","id":4305,"properties":{"name":"Endingen"},"arcs":[[[304,-255,305,306,-85]]]},{"type":"MultiPolygon","id":4306,"properties":{"name":"Fisibach"},"arcs":[[[473,474,475,476,477,478]]]},{"type":"MultiPolygon","id":4307,"properties":{"name":"Full-Reuenthal"},"arcs":[[[-420,554,-61]]]},{"type":"MultiPolygon","id":4308,"properties":{"name":"Kaiserstuhl"},"arcs":[[[-478,661]]]},{"type":"MultiPolygon","id":4309,"properties":{"name":"Klingnau"},"arcs":[[[-353,-64,401,402,403,404,-391]]]},{"type":"MultiPolygon","id":4310,"properties":{"name":"Koblenz"},"arcs":[[[597,-403,-402,-63,598]]]},{"type":"MultiPolygon","id":4311,"properties":{"name":"Leibstadt"},"arcs":[[[-5,417,418,419,-60]]]},{"type":"MultiPolygon","id":4312,"properties":{"name":"Lengnau (AG)"},"arcs":[[[81,82,83,84,85,86,87,88]]]},{"type":"MultiPolygon","id":4313,"prope
 rties":{"name":"Leuggern"},"arcs":[[[58,-6,59,60,61,62,63,64]]]},{"type":"MultiPolygon","id":4314,"properties":{"name":"Mellikon"},"arcs":[[[648,-634,649,-638,-607]]]},{"type":"MultiPolygon","id":4315,"properties":{"name":"Rekingen (AG)"},"arcs":[[[631,-372,-415,632,633,634]]]},{"type":"MultiPolygon","id":4316,"properties":{"name":"Rietheim"},"arcs":[[[-416,-404,-598,600]]]},{"type":"MultiPolygon","id":4317,"properties":{"name":"Rümikon"},"arcs":[[[-608,637,638,-476]]]},{"type":"MultiPolygon","id":4318,"properties":{"name":"Schneisingen"},"arcs":[[[324,-89,325,326,327]]]},{"type":"MultiPolygon","id":4319,"properties":{"name":"Siglistorf"},"arcs":[[[-327,495,-474,496]]]},{"type":"MultiPolygon","id":4320,"properties":{"name":"Tegerfelden"},"arcs":[[[-253,369,370,371,372,373]]]},{"type":"MultiPolygon","id":4321,"properties":{"name":"Unterendingen"},"arcs":[[[-254,-374,615,-306]]]},{"type":"MultiPolygon","id":4322,"properties":{"name":"Wislikofen"},"arcs":[[[-88,605,606,607,-475,-496,-
 326]]]},{"type":"MultiPolygon","id":4323,"properties":{"name":"Bad Zurzach"},"arcs":[[[414,-371,-392,-405,415,416]]]}]}},"arcs":[[[5971,8093],[-2,42],[-33,22],[-33,36],[6,11],[-43,26],[9,42],[19,7],[-38,77],[-13,63],[-1,39],[-26,-3],[-15,30],[-24,0],[-63,23],[-6,15],[-33,-13],[-4,-22],[-25,1],[-1,20],[-112,1],[-28,18],[-64,11],[-16,21],[-34,15],[-41,45]],[[5350,8620],[-20,43],[-35,28],[-78,-9],[2,7],[-79,46]],[[5140,8735],[25,28],[34,89],[10,67],[4,122],[12,32],[35,62],[46,52],[38,21],[50,8],[50,-1],[82,-10]],[[5526,9205],[32,-35],[24,-6],[41,-45],[30,24],[39,-86],[47,-12],[105,72],[30,57],[47,40],[48,15]],[[5969,9229],[47,13],[42,-48],[26,-1],[-28,-84],[33,-24],[47,-19],[34,-58],[18,-43]],[[6188,8965],[37,-111],[6,-42]],[[6231,8812],[-24,-28],[-36,-90],[-55,-61],[14,-55],[18,-27],[-9,-67],[30,-48],[-11,-59],[30,-30],[-33,-26],[9,-20],[23,18],[35,-26],[38,-13]],[[6260,8280],[3,-36],[-13,-2],[21,-45],[-66,-26]],[[6205,8171],[-101,-15],[-48,-17],[-26,0],[-30,-16],[-29,-30]],[[8734,391
 ],[25,45],[4,43],[-34,30],[91,73],[11,49],[-19,6],[20,75],[22,-7],[6,26],[-20,8],[16,32],[-17,0],[8,68],[-53,-1],[3,73],[-19,3],[12,69],[-62,-13],[-10,18],[-52,-15],[-14,-14],[-36,11],[-43,-3],[-13,-24],[-44,-9],[-43,25]],[[8473,959],[3,43],[-20,-2],[1,49],[-31,49],[-28,29],[-56,126],[3,80]],[[8345,1333],[55,-2],[82,-12],[91,52],[71,-19],[37,6],[27,-12],[5,58],[53,-6],[28,-39],[86,-3],[14,11],[28,-71],[22,-16],[10,30],[-8,39],[35,-1],[-1,34],[54,-3],[6,68],[45,6],[-16,76],[-10,73],[44,-9],[7,28],[-17,62]],[[9093,1683],[60,-10],[84,35]],[[9237,1708],[7,-20],[49,-66],[7,-41],[-7,-86],[17,-88],[9,-85],[41,-101],[-4,-62],[-45,-81],[-15,-94],[1,-29]],[[9297,955],[-33,1],[-32,-38],[-11,-119],[-29,-37],[-50,19],[-8,-18],[-48,-1],[-32,-21],[-2,-32],[-18,-8],[11,-81],[-21,-52],[-9,-52],[-15,-38],[65,1]],[[9065,479],[-11,-47],[24,3],[-13,-49],[9,-2],[4,-53],[-26,1],[-30,-90],[-26,2],[-38,-34],[-7,-30],[12,-13],[31,1],[-31,-59]],[[8963,109],[-115,36],[-31,24],[-26,3],[-22,126],[-11,22],[-20,0]
 ,[-4,71]],[[1604,8150],[-177,32],[-24,-11]],[[1403,8171],[7,78],[19,32],[-2,69],[-26,18],[2,40],[19,26],[12,46],[55,-13],[3,35],[19,-3],[4,40],[62,4],[-10,107],[43,20],[-21,48],[-22,4],[62,26],[-39,78],[45,24],[-41,155],[41,7],[37,23],[-12,62],[-4,73]],[[1656,9170],[41,-19],[73,4],[105,44],[71,55],[41,19],[97,20],[101,-7],[111,7],[62,-14],[49,-25],[61,-61]],[[2468,9193],[-38,-67],[-35,-37],[9,-23],[-21,-19],[-31,-83],[-38,23],[-34,-29],[-22,17],[-54,-74]],[[2204,8901],[-48,-156],[-12,-27],[-13,-69],[-34,-45],[-12,-43],[-34,1],[-104,-47],[-24,-47],[-22,9],[-40,-54],[9,-3],[2,-114],[20,-78],[-31,-47]],[[1861,8181],[-77,-54],[-23,-1],[-48,25],[-61,8],[-48,-9]],[[1877,3092],[27,-13],[45,-40],[17,16],[83,-78],[55,20],[110,-102]],[[2214,2895],[-6,-44],[-18,-5],[-50,-80],[16,-57],[51,-15],[52,-38],[27,-70],[-34,-24],[-52,-20],[-117,-68],[2,-18],[224,-229],[40,-1],[21,-45],[-6,-44],[25,3],[22,19],[59,23]],[[2470,2182],[-7,-67]],[[2463,2115],[-367,-113],[-192,-101],[-138,39],[-13,28],[-31,-1
 ],[-14,-18],[-24,41],[-38,18],[-14,43],[-11,-1],[-37,77],[-16,-12],[2,32],[-33,53],[7,41],[19,27],[-26,28],[40,57],[10,28],[-12,63],[19,12],[-21,36],[-24,8],[21,27],[-19,7],[8,22],[-27,5],[-12,24],[35,19],[58,20],[22,16],[111,132],[27,48],[9,94],[10,29],[36,60],[11,43],[38,46]],[[4443,7755],[-11,-5],[-38,48],[-12,39],[-49,53],[-3,19]],[[4330,7909],[4,26],[-16,68],[-22,16],[-24,54],[-42,15],[-19,-13],[-8,25],[-46,51],[-63,52],[4,14],[-83,-12],[-30,-15],[-34,0]],[[3951,8190],[0,76],[-8,96],[1,63],[7,57],[-3,113]],[[3948,8595],[79,-64],[41,-14],[61,-8],[67,32],[167,32],[95,41]],[[4458,8614],[14,-35],[27,7],[14,-20],[22,9],[33,-26],[28,40],[57,-65],[108,-51],[60,12],[64,-60],[-10,-58],[22,-59],[2,-45],[-14,-48],[23,-50],[20,-22],[-27,3],[-41,-33],[31,-36],[-16,-41],[16,-57],[27,-9],[-2,-17],[30,-68],[27,-18],[-5,-13]],[[4968,7854],[-28,-4],[9,-32],[-29,-18],[17,-36],[-91,-7],[-35,10],[-62,-9],[-57,15],[-38,-59],[5,-41],[-22,-15],[6,-20],[-39,-7],[-38,42],[-22,61],[-42,40],[-59,-19]],[[5
 373,4028],[-25,26],[0,71],[-46,-1],[-44,-22],[-12,-30],[-13,5],[-131,-36],[-42,-34],[11,-27],[-41,-19]],[[5030,3961],[-12,47],[-47,70],[-14,-6],[-27,34],[-46,27],[-9,57],[-24,3],[-25,28]],[[4826,4221],[9,35],[-14,36],[6,46]],[[4827,4338],[53,78],[-2,39],[41,35],[44,4],[17,62],[55,28],[-26,19],[18,59],[-11,20],[20,20],[122,75],[84,74],[160,100]],[[5402,4951],[27,-21],[45,-64],[43,-22],[10,-16]],[[5527,4828],[18,-26],[9,-51],[-26,-64],[-37,-71],[5,-29],[28,-28],[63,7],[50,-6],[5,-16],[66,-39]],[[5708,4505],[-19,-135],[11,-61],[37,-55],[8,-48],[-9,-45],[41,-62],[19,-48]],[[5796,4051],[-101,-20],[-37,0],[-29,-20],[-33,-9],[-53,5],[-92,35],[-30,-8],[10,18],[-18,9],[-17,-39],[-23,6]],[[1403,8171],[-26,-7],[-19,15],[0,25],[-17,27],[-59,21],[-26,0],[-48,22],[-48,-13],[19,-28],[-47,-12],[-44,-50],[-21,-36],[-41,-11],[-40,39]],[[986,8163],[-29,41],[-52,-17],[-16,-46],[-29,37],[-65,10],[-19,32],[-52,-3],[-38,8],[-10,71],[-14,-2]],[[662,8294],[-45,-10],[-19,-15],[7,27],[-31,57],[17,6],[-34,47]]
 ,[[557,8406],[43,47],[146,51],[50,24],[138,22],[62,28],[107,58],[29,68],[35,57],[34,34],[100,78],[24,56],[17,140],[31,104],[30,69],[53,28],[45,-1],[79,-14],[35,-16],[41,-69]],[[5720,6805],[-33,-1],[-40,27],[-15,-54],[-46,-6],[-40,-36],[-40,-23],[-67,-64]],[[5439,6648],[-9,43],[-30,73],[-18,13],[26,50],[-30,28],[-14,41],[-34,45],[-52,30],[-5,12]],[[5273,6983],[62,1],[2,77],[31,40],[0,15],[42,10],[-5,13],[30,11],[9,19],[48,-24],[18,3],[29,39],[-2,19],[23,3],[-11,38],[3,31],[18,5],[20,83],[-5,26],[-24,19],[0,35],[51,18],[-8,26],[19,27],[-24,29],[-4,70],[-16,16],[-14,49]],[[5565,7681],[34,-10],[42,5],[72,-10],[103,20],[33,-9],[49,47]],[[5898,7724],[16,-29],[24,-13],[14,-44],[35,33],[66,-26],[70,26],[61,33],[37,2],[5,-32],[61,11],[-15,-18],[-23,-106],[25,-20],[23,1]],[[6297,7542],[11,-16],[-21,-24],[-69,-19],[-35,-18],[-53,-62],[-18,-54],[-38,-48],[-1,-19],[91,-13],[9,-25],[-18,-20],[-38,-13],[8,-13],[60,-18],[62,1],[41,9],[12,-12],[-26,-47],[5,-13]],[[6279,7118],[-46,-14],[5,-13]],[[623
 8,7091],[-131,-40],[-96,-13],[5,-27],[-54,4],[-7,17],[-31,6],[-34,45],[-88,11],[-24,-46],[-93,-87],[14,-20],[-27,-34],[4,-26],[-15,-16],[43,-21],[19,-20],[-3,-19]],[[5347,7840],[-93,10],[-120,35]],[[5134,7885],[-57,-14],[-47,20],[-45,-36],[-17,-1]],[[4458,8614],[64,57],[25,15],[34,38],[37,28],[21,39],[39,-12],[75,32],[48,-16],[46,-53],[49,-44],[58,-32],[67,0],[56,22],[63,47]],[[5350,8620],[-11,-38],[-18,-21],[9,-93],[-8,-9],[33,-53],[1,-17],[-32,-26],[33,-8],[7,-42],[-35,-28],[15,-58],[-23,-11],[-8,-37],[24,-49],[16,-3],[26,-78],[0,-27],[46,-7],[-7,-36],[59,1]],[[5477,7980],[-9,-24],[-7,-71],[10,-49],[-61,31],[-37,-8],[-26,-19]],[[6597,8689],[-7,58],[-24,48],[-49,-74],[-53,14],[-94,-19],[-42,63],[-61,58],[-36,-25]],[[6188,8965],[40,1],[-4,17],[9,80],[65,72],[38,28],[70,21],[-7,47],[34,33],[28,47],[-7,46],[29,7],[5,38]],[[6488,9402],[24,4],[14,24],[21,-3],[18,68],[35,35],[24,-7],[5,36],[57,13],[18,34],[-6,28],[16,111],[-26,36],[8,55],[34,-11],[35,40],[33,25]],[[6798,9890],[21,-86],[1
 3,-95]],[[6832,9709],[-34,-145],[-2,-51]],[[6796,9513],[26,-61],[246,-267]],[[7068,9185],[-115,-50],[-95,-31],[-19,-55],[38,-26],[-2,-25],[-33,-27],[-9,-43],[-27,-38],[11,-16],[1,-42],[14,-36],[-28,-5],[4,-44],[-63,-1],[-23,17],[-6,-22],[-29,-9],[-90,-43]],[[2470,2182],[6,61],[-10,37],[-14,0],[-7,50],[-17,46],[14,20],[-24,35],[36,48],[65,40],[26,6],[111,45],[48,25],[38,37]],[[2742,2632],[9,7],[20,-40],[94,-26],[13,27],[29,13],[126,126],[24,3],[25,34],[-6,13]],[[3076,2789],[99,28],[39,-31]],[[3214,2786],[3,-30],[-21,-17],[6,-50],[17,-36],[12,0],[-2,-54],[38,-45],[12,-62],[42,-25],[12,-34],[-4,-31],[39,-44],[-103,-90],[-110,-136],[-52,-41],[-22,-10],[-93,-103],[-167,42],[-79,72],[-71,52],[-174,-19],[-34,-10]],[[9389,2178],[-19,19],[-1,23],[-77,-4],[-34,47],[-67,-25],[-23,29],[-1,24],[-69,-38],[-20,48],[-58,-11],[15,-35],[-51,-18],[-4,-47],[-22,-3],[-3,-29],[-39,-21],[25,-50],[-30,-23]],[[8911,2064],[1,23],[-23,85],[-31,-16],[-82,-8],[-15,16],[-9,-63],[-36,-19],[-3,18],[-58,2],[1,31],[
 -13,22],[-6,48],[-19,-17],[0,55]],[[8618,2241],[-3,19]],[[8615,2260],[33,42],[22,13],[8,58],[-9,62],[31,10],[24,93],[51,58],[2,74],[-23,62],[-7,85]],[[8747,2817],[1,41],[24,21],[43,0],[93,43],[-1,-13],[45,2],[103,24],[26,31],[17,44],[24,28],[16,38],[17,12]],[[9155,3088],[21,-64],[15,-78],[29,-56],[65,-65],[20,-60],[-25,-114],[6,-26],[46,-59],[4,-31],[-23,-65],[1,-40],[16,-29],[52,-54],[35,-52],[7,-57],[-35,-60]],[[2919,3269],[-7,7]],[[2912,3276],[-88,84],[-39,64],[-21,11],[-91,4],[-33,21]],[[2640,3460],[40,32],[29,46],[34,22],[-26,11],[-21,31],[-24,14],[15,65],[-11,54],[23,35],[53,16],[3,82],[35,-8],[89,22],[13,34],[-50,-8],[0,30],[-35,25],[-34,2],[-18,13],[-3,35],[17,25]],[[2769,4038],[14,-27],[250,-29],[126,-2],[10,4],[14,-62],[-21,-90],[-3,-61],[17,-87],[-4,-19],[97,49],[112,36],[2,-3]],[[3383,3747],[-4,-16],[24,-17],[-10,-30],[36,-36],[-53,-23],[27,-54],[65,-58],[90,-39]],[[3558,3474],[-34,-13],[-69,-53],[0,-58],[-83,-13],[14,-36],[-43,-25],[-47,1],[-51,32],[-87,-61],[-52,-51],[
 -21,-40],[-54,53],[-18,-6],[-58,57],[-36,8]],[[8468,7757],[-35,5],[-39,-47],[14,-22],[-33,-18]],[[8375,7675],[-80,-17],[5,59],[-72,-16],[-11,-32],[-89,-35],[-14,23],[-41,-4],[-7,-19],[-100,25],[-48,18],[-41,8],[-57,24],[-43,-11]],[[7777,7698],[-3,12],[-51,20]],[[7723,7730],[50,30],[41,7],[-12,66],[-2,49],[21,62],[58,71],[14,36],[40,-23],[35,53],[-4,33],[33,7],[23,69],[39,24],[11,74],[-11,69],[33,8],[18,53],[51,18],[-2,25]],[[8159,8461],[7,24]],[[8166,8485],[33,-29],[50,-5],[64,-32],[92,16],[6,-15],[52,2],[13,-12],[47,-1],[68,58]],[[8591,8467],[10,-10]],[[8601,8457],[-30,-60],[3,-61],[-16,-41],[-22,-10],[-27,-44],[-47,-41],[-2,-43],[33,-10],[22,-20],[18,-41],[-38,-45],[-88,-66],[-6,-45],[17,-30],[-3,-45],[58,-31],[29,-27],[-28,-13],[-6,-27]],[[4759,6053],[-68,13],[-26,-3],[-21,27],[-36,0],[2,16],[-28,35],[-76,-10],[-3,-21],[-25,8],[-29,-16],[-16,59],[-103,15],[-34,-12],[-10,-26],[-24,-2]],[[4262,6136],[10,35],[-2,41],[22,49],[19,17],[-40,13],[18,44],[-19,21],[22,8],[-34,15],[24,64],[
 -27,23]],[[4255,6466],[-2,71],[-16,5],[9,32],[-12,99],[7,4]],[[4241,6677],[65,9],[7,28],[55,-2],[27,38],[39,12],[34,-26],[62,25],[21,-4],[-12,-38],[83,24],[18,36],[50,-3],[38,-27],[2,18],[41,-9],[78,3]],[[4849,6761],[60,8],[26,-10],[-5,-19],[23,-1],[8,-21],[48,-36],[24,3],[3,-34],[59,-74]],[[5095,6577],[-96,-32],[-3,-144],[-26,-15],[-43,-1],[-45,13],[13,-126],[-34,-16],[-115,-12],[-24,-19],[12,-53],[18,-5],[-8,-42],[28,-32],[-13,-40]],[[7444,4142],[-64,65],[20,7],[-25,32],[-15,36],[15,14],[-26,40],[38,20],[-55,71],[19,16],[-23,31],[26,26],[36,58],[-123,141],[27,30],[-59,48]],[[7235,4777],[13,30],[53,-38],[29,29],[-9,18],[26,21],[-10,16],[40,35],[46,-27]],[[7423,4861],[32,12],[110,18],[32,-19]],[[7597,4872],[-3,-53],[12,-34],[27,-26],[-9,-21],[26,-50],[42,26],[25,28],[6,-12],[68,-62],[17,-39]],[[7808,4629],[10,-19],[40,21],[33,-5],[29,-42]],[[7920,4584],[71,-56],[20,-39],[44,-40],[5,-21],[41,-50],[13,-36],[18,-10],[38,-79]],[[8170,4253],[-68,3],[-29,-24],[-23,15],[-26,-11],[-43,30],[
 -40,42],[-19,-59],[-29,-18],[17,-23],[-39,-19],[-40,-33],[-15,16],[-25,-16],[9,-13],[-76,-56],[-17,20],[-60,0],[-27,-19],[-16,18],[-15,-16],[13,-17],[-31,-24]],[[7571,4049],[-27,5],[-100,88]],[[8029,6674],[-18,-24],[8,-29],[-29,13],[-18,-22],[15,-30],[-43,-29],[36,-29],[14,-45],[53,-23],[-7,-44],[-15,-24],[-33,-22]],[[7992,6366],[-12,32],[-88,10],[-23,11],[-69,-49],[13,-32],[-31,-9],[-7,25],[-41,31],[-109,22]],[[7625,6407],[-24,68],[-30,59],[-41,50],[20,10],[-53,43],[2,26],[-20,46],[0,125]],[[7479,6834],[-40,83],[-21,91],[21,40],[-1,30]],[[7438,7078],[1,47],[10,35],[34,17]],[[7483,7177],[22,-25],[49,-8],[27,7],[34,33],[26,13],[32,-1],[64,-22],[57,15],[51,-8],[58,-50],[74,4],[45,-8]],[[8022,7127],[32,2],[23,-28],[-57,-83],[-9,-28],[10,-46],[48,20]],[[8069,6964],[71,-16],[-31,-63],[-28,-26],[-15,12],[-23,-21],[2,-47],[-12,-28],[-36,14],[3,-67],[14,-40],[15,-8]],[[7572,7126],[-25,-2],[3,-21],[35,7],[-13,16]],[[8615,2260],[-28,21],[-53,-2],[-14,34],[-41,60],[2,28],[-27,10],[-45,-9],[-71
 ,-32],[-24,5],[-3,39],[-24,-5],[-29,99],[-40,-10]],[[8218,2498],[19,102],[38,79],[-41,-17],[-49,52],[-8,45],[-27,-4],[6,33],[-13,0],[-26,69],[-7,84]],[[8110,2941],[49,4],[4,26],[36,19],[20,25],[-11,46],[35,32],[-18,29],[44,43],[20,-6],[15,39],[14,-10],[77,101]],[[8395,3289],[42,-67],[32,-87],[28,37],[34,-20],[27,29],[24,-9],[6,-22],[-14,-45],[41,-11],[42,5],[-2,-34],[-22,-30],[12,-29],[-9,-50],[17,-25],[20,27],[17,-58],[-17,-3],[13,-29],[50,-29],[11,-22]],[[4605,4765],[23,59],[-62,-29],[-30,7],[-7,66],[-123,53],[-42,-2],[-30,-16],[17,-24],[-88,-94],[-29,8]],[[4234,4793],[13,43],[-8,20],[18,30],[8,44],[-3,33],[18,42],[6,49],[-21,57],[-45,190]],[[4220,5301],[19,68],[42,34],[63,26]],[[4344,5429],[51,-3],[59,-33],[58,50],[35,15],[57,43],[43,8],[38,21],[28,27],[51,22],[44,29]],[[4808,5608],[24,9],[74,-14],[53,9],[37,30],[19,3],[243,10]],[[5258,5655],[0,-83],[43,-19],[86,-54]],[[5387,5499],[-34,11],[-81,5],[-62,-9],[-61,-16],[-60,-5],[-49,-126],[-65,-17],[-11,-16],[-41,17],[-96,14],[-37,-
 11],[-24,-26],[8,-21],[-42,-14],[-6,-23],[11,-35],[-18,-9],[2,-32],[15,-21]],[[4736,5165],[-34,-28],[-45,-52]],[[4657,5085],[-6,-79],[72,-29],[47,-123],[3,-27],[-29,-5],[-50,-27],[-89,-30]],[[7022,3905],[11,15],[-56,72],[-1,52],[-37,61],[-51,40],[-55,34],[-21,37],[-53,5],[-39,63]],[[6720,4284],[65,77],[34,1],[54,-26],[46,93],[28,21],[-36,52],[63,26],[-45,55],[29,34],[46,9],[-9,27],[52,34],[-53,86],[16,6],[-21,59],[-37,36],[20,15],[-24,21],[12,8],[-32,26]],[[6928,4944],[3,29],[48,22]],[[6979,4995],[56,-128],[30,16],[34,-5],[10,-41],[15,0],[12,-40],[81,-60],[18,40]],[[7444,4142],[-47,-29],[-21,-50],[-63,-5],[12,-36],[-29,-21],[35,-26],[-30,-24],[15,-12],[-33,-41],[18,-5],[17,-51]],[[7318,3842],[-17,-7],[-33,28],[-48,27],[-44,-13],[-78,20],[-47,-1],[-29,9]],[[4344,5429],[-12,17],[-16,-20],[-32,10],[-61,243],[-10,21],[-3,55],[-41,102],[-51,-18],[-3,21],[-47,10],[-18,42],[13,121]],[[4063,6033],[57,5],[20,51],[35,48],[87,-1]],[[4759,6053],[-10,-48],[16,-4]],[[4765,6001],[12,-29],[7,-60],[
 -16,-39],[9,-10],[-11,-74],[23,-34],[-19,-29],[5,-39],[20,-27],[-7,-24],[20,-28]],[[1877,3092],[31,70],[10,52],[48,100],[16,70],[15,37],[50,43],[40,15],[84,67],[74,1],[64,-15],[66,6],[41,92]],[[2416,3630],[41,-14],[19,-51],[127,-70],[37,-35]],[[2912,3276],[-27,-15],[-50,-47],[-45,-2],[-62,19],[-24,-21],[-28,16],[-65,-7]],[[2611,3219],[-30,-19],[9,-29],[-24,-5],[-74,-88],[-38,-38],[-71,-52],[-38,-8],[-103,-42],[-22,-15],[-6,-28]],[[8110,2941],[-51,-50],[-22,-10]],[[8037,2881],[-37,-28],[4,-26],[-41,17],[-5,17],[-36,28],[3,-38],[-15,-26]],[[7910,2825],[-21,43],[-21,3],[-26,75],[-36,66],[-17,0],[-30,69],[-14,4],[-29,52],[-17,65]],[[7699,3202],[45,44],[-14,79],[19,13],[-10,34],[18,0],[35,38],[30,5],[42,32],[14,-7],[-9,64],[65,36],[-37,90],[20,18],[-24,99],[-16,21],[2,30],[-22,38],[-11,-9],[-24,23],[-34,3]],[[7788,3853],[0,-1]],[[7788,3853],[-31,37],[39,53],[58,-65],[42,7],[23,-33]],[[7919,3852],[12,-27],[31,15],[22,-55],[29,20],[22,-54],[27,17],[85,-129],[-57,-48],[27,-43],[-26,-28],[32
 ,-45],[66,27],[10,-37],[62,32],[24,-32],[61,37],[28,-37],[54,5]],[[8428,3470],[41,-54]],[[8469,3416],[-29,-37],[19,-25],[-70,-54],[6,-11]],[[2190,7922],[-37,5],[-33,-21],[-28,-55],[-74,0],[7,59],[-14,30],[-11,69],[-25,32],[-47,98],[-67,42]],[[2204,8901],[117,-128],[49,-18],[25,-52],[45,-38],[-2,-45],[14,-18],[-26,-41],[40,-22]],[[2466,8539],[35,-21],[-68,-112],[30,-48],[8,-43]],[[2471,8315],[-53,-128],[-49,-70],[7,-6],[-51,-40],[-12,-21],[-68,-44],[-24,-92],[-31,8]],[[6190,4692],[-72,7],[-84,-14]],[[6034,4685],[26,16],[34,37],[55,102],[26,86],[4,61],[31,61],[-50,15],[11,77],[-122,-6],[-47,-8],[-5,29],[-60,6],[-26,52],[-12,57],[-12,22],[-43,23],[-25,38]],[[5819,5353],[3,27],[-12,32],[62,22],[27,26]],[[5899,5460],[32,5],[71,-31],[54,-12],[-4,-67],[30,-15],[72,6],[4,-27],[116,1],[113,24],[39,1],[-38,74],[-72,74],[-21,48],[-22,-2],[-11,46]],[[6262,5585],[45,5],[83,-41],[58,-13],[33,-23],[71,-24]],[[6552,5489],[3,-27],[-14,-28],[1,-77],[-20,-39],[28,-43]],[[6550,5275],[24,-112],[24,-34],
 [13,-41],[-8,-177]],[[6603,4911],[-37,-20],[-70,-58],[-22,-25],[-12,-59],[-26,-9],[-8,-51],[9,-33],[-18,-23]],[[6419,4633],[-56,2],[-40,16],[-39,5],[-94,36]],[[8131,2105],[24,12],[9,25],[21,-12],[83,45],[-8,40],[16,21],[99,-24],[22,-26],[62,-3],[27,16],[10,38],[57,-4],[65,8]],[[8911,2064],[19,-57]],[[8930,2007],[-43,-19],[1,-22],[-36,-2],[-6,12],[-33,-9],[-61,28],[-29,-3],[4,-87],[-14,-23],[11,-32],[-27,-19],[16,-49],[6,-57],[-5,-31],[-114,-9],[8,-71],[-6,-21],[-65,-18],[9,-9],[-32,-29],[-22,-39],[-72,-39],[-19,16],[-38,6],[-57,25]],[[8306,1506],[-12,6],[-17,75],[-78,18],[-10,31],[13,14],[13,84],[-36,36],[-15,29],[2,37],[-20,54],[-7,75],[-16,44],[-3,44],[11,52]],[[3133,7149],[22,101],[14,27]],[[3169,7277],[52,34],[85,25],[79,-16],[14,-19],[49,-17],[48,-7],[95,4],[57,19],[3,-12],[103,-73],[23,22],[23,-33],[-30,-51],[9,-63]],[[3779,7090],[-10,-78],[-33,17],[-2,-39],[-42,10],[-10,-30],[-25,2],[-13,-83],[24,-60],[-48,-11],[-41,0],[-10,-23],[31,-19],[-38,-58],[-40,-27],[-44,-14],[27,-34]
 ],[[3505,6643],[-2,-20]],[[3503,6623],[-70,52],[-27,-2],[-15,-37],[-36,-14],[-32,-41],[4,-45],[-17,-15],[-45,19],[20,62],[-20,10],[-86,76],[-13,19],[-42,-19],[-4,9],[-73,-28],[22,109],[10,19],[7,87],[14,34],[10,72],[-3,88],[31,66],[-5,5]],[[6995,7656],[-37,-16]],[[6958,7640],[-14,34],[3,64],[-51,-9],[-20,10],[-37,-6],[-100,43],[-86,-1]],[[6653,7775],[-7,41],[-34,8],[31,43],[-71,18],[-69,-21],[-20,13],[-20,-8],[-41,31],[-23,38],[-12,58],[-17,15],[-49,12],[-31,-19],[-47,59],[-39,-20],[-52,33],[-19,-9],[-45,10],[-12,13],[53,30],[78,23],[-2,28]],[[6260,8280],[10,29],[89,17],[60,21],[69,40],[24,23],[118,36]],[[6630,8446],[28,18],[52,-5],[76,-42],[59,-18],[68,-46]],[[6913,8353],[-43,-53],[-8,-41],[5,-60],[16,-69],[35,-95],[29,-59],[29,-100]],[[6976,7876],[5,-49],[-10,-76],[24,-95]],[[3076,2789],[-17,34],[-55,141],[-19,78],[-44,88],[0,93],[-22,46]],[[3558,3474],[49,-7],[41,11]],[[3648,3478],[10,-31],[-7,-26],[12,-23],[6,-44],[13,-26],[55,-67],[-6,-39],[-19,-23],[-30,-70]],[[3682,3129],[-48
 ,-79],[-43,-40],[49,-53],[80,-29],[54,22],[27,1],[21,31],[25,-28],[32,7],[-32,-43],[32,-13],[-32,-10]],[[3847,2895],[-32,37],[-112,-116],[-181,-33],[-26,34],[-210,12],[-72,-43]],[[1160,7405],[-14,17]],[[1146,7422],[-8,12]],[[1138,7434],[-78,89]],[[1060,7523],[-34,28]],[[1026,7551],[-2,13],[43,59],[29,50],[12,53],[24,42],[-17,55],[10,6],[-30,61],[13,1],[-27,63],[-36,19],[-37,-2],[-29,38],[-47,11],[35,110],[19,33]],[[1604,8150],[30,-43],[-16,-33],[-12,3],[5,-94],[-8,-155],[-12,-19],[0,-55],[-45,-15],[-72,-94],[-102,-96],[-12,-2],[-31,-69],[-66,-91],[-34,-8],[-36,5],[-33,21]],[[4827,4338],[-13,37],[-41,34],[-24,73],[-26,27],[-24,-13],[17,39],[-18,22],[-8,-20],[-33,46]],[[4657,4583],[8,6],[-21,38],[-19,-12],[-20,36],[51,27],[-12,30],[-14,-2],[-25,59]],[[4736,5165],[128,-174],[28,18],[7,-11],[30,14],[52,41],[4,-21],[33,-3],[5,16],[59,29],[5,34],[60,12],[2,16],[41,-3],[18,16],[67,11],[-35,56],[-141,-34],[-52,39],[-15,33],[288,73],[-7,12],[114,68],[-1,-5]],[[5426,5402],[-10,-35],[6,-136]],
 [[5422,5231],[-131,-71],[32,-17],[16,-41],[-15,-8],[13,-39],[21,-18],[-11,-21],[55,-65]],[[8379,6365],[-37,64],[6,52],[-18,50],[-29,21],[-62,72],[-41,-1],[-122,-73],[-25,5],[-8,23],[33,46],[-7,34],[-40,16]],[[8069,6964],[0,8],[102,20],[88,20],[179,52]],[[8438,7064],[166,30],[100,9],[24,11]],[[8728,7114],[134,14],[13,-21],[-7,-116],[24,-77],[-40,-20],[-59,4],[-19,-22],[21,-4],[-4,-23],[-26,-11],[-1,-27]],[[8764,6811],[-11,-47],[-29,-32],[-9,26],[-48,14],[-30,-3],[-19,-66],[-22,-34],[24,-6],[-48,-30],[-26,-25],[-37,-12],[32,-38],[-81,-90],[-20,-43],[-32,-18],[-29,-42]],[[6655,3517],[-83,150],[-4,32],[-18,17],[-7,52],[-31,12],[-93,-46],[-6,8]],[[6413,3742],[1,33],[-28,60],[-15,57],[31,26],[-107,107],[-41,68]],[[6254,4093],[72,38]],[[6326,4131],[24,14],[41,-19],[90,61],[22,-28],[21,20],[-12,47],[11,6],[30,-31],[32,22],[-12,15],[76,39],[39,10],[32,-3]],[[7022,3905],[-11,-98],[-9,-33],[-32,-32],[-17,-75],[-26,-50]],[[6927,3617],[-8,-14],[-67,44],[-40,-40],[-25,13],[-132,-103]],[[3169,7277
 ],[44,72],[66,70],[57,23],[57,2],[34,12],[6,48],[21,14],[27,40],[35,37],[38,55]],[[3554,7650],[63,-42],[38,5],[76,-30],[48,8],[22,-7],[45,5],[16,-15],[37,10],[18,-7],[22,15],[31,-39],[15,2],[-6,-38],[9,-33],[25,-33],[76,-45],[59,-62],[24,-80],[-3,-11],[26,-34]],[[4195,7219],[13,-17],[-52,-57],[-3,-81]],[[4153,7064],[-10,-16],[-36,27],[-47,-52],[-7,-22],[15,-58],[42,-25]],[[4110,6918],[-42,6],[-27,14],[-35,-46],[16,-19],[-30,-26],[-37,22],[-36,57],[-13,57],[-51,42],[-21,-15],[-17,33],[6,27],[-44,20]],[[2611,3219],[37,-73],[6,-35],[19,-18],[-38,-103],[5,-38],[-22,-47],[-2,-25],[28,-54],[67,-22],[-7,-22],[20,-6],[34,-35],[35,-52],[-51,-57]],[[3554,7650],[15,23],[-11,17],[54,78],[17,9],[-5,30],[-42,17],[-4,34],[39,25],[7,47]],[[3624,7930],[14,54],[41,51],[20,-1],[56,-34],[10,-27],[55,-29]],[[3820,7944],[28,-23],[41,-8],[-3,-45],[17,-66],[26,-5],[29,16],[3,-25],[49,27],[38,-62],[3,14],[96,-23],[-6,27],[28,16],[11,63],[31,1],[37,24],[40,41],[42,-7]],[[4443,7755],[25,-43],[-10,-50],[-36,-2
 0],[5,-38],[34,-25],[-49,-5],[0,-13],[-44,14],[-13,-42],[6,-18],[-13,-50],[17,-24]],[[4365,7441],[-4,-26],[-18,3],[6,-65],[-27,-16],[-23,7],[-6,-30],[-21,-10],[-77,-85]],[[5182,5884],[-90,26],[-54,36],[-119,26],[-55,4],[-99,25]],[[5095,6577],[27,32],[37,16],[32,-6],[11,-18]],[[5202,6601],[14,-25],[9,-58],[74,1],[43,-14],[-5,-83]],[[5337,6422],[46,-131],[39,-52],[7,-61],[-13,-1],[-12,-59],[-27,-53],[6,-71],[-19,-10],[3,-46]],[[5367,5938],[-54,-11],[-9,-17],[-62,-21],[-60,-5]],[[4220,5301],[-84,3],[-5,-38],[-56,21],[-25,-13],[-49,16],[-5,125],[-12,10],[-26,101],[-25,11],[-47,47],[-69,15],[-38,19],[-33,2],[-19,24],[-10,36],[-23,-16],[-36,15],[-41,-11],[-64,51],[-41,71],[-26,-11],[-39,26],[-83,44],[49,20],[97,49],[44,14],[70,43],[17,-2],[6,-111],[15,-3],[24,124]],[[3686,5983],[30,-5],[49,10],[38,-3],[41,19],[135,14],[84,15]],[[5633,2154],[11,23],[5,74],[-21,38],[-23,17],[18,27],[-32,44],[1,23],[-37,26],[15,32],[-12,49],[-57,50],[-24,34],[17,48],[48,14],[43,-4],[-2,22],[21,41],[26,16],[-
 38,78],[-26,28],[-2,50],[13,21],[-23,6]],[[5554,2911],[-21,32],[18,16],[70,35],[97,85],[26,12]],[[5744,3091],[21,-20],[48,5],[-3,-44],[43,-22],[38,-5],[23,-20],[0,-63],[92,-95]],[[6006,2827],[104,-108],[-16,-16],[12,-14]],[[6106,2689],[-11,-27],[32,-36],[9,-26],[-80,-33],[-92,-76],[17,-25],[-6,-19],[23,-44],[-33,0],[-25,-19],[-55,14],[-64,-20],[30,-36],[-32,-26],[-12,-38],[1,-41]],[[5808,2237],[-85,-5],[-67,-35],[-2,-30],[-21,-13]],[[6254,4093],[-81,-51],[-87,-91]],[[6086,3951],[-17,23],[-37,-8],[-24,33],[-17,-8],[-30,31],[-12,-18],[-65,10],[-43,-10]],[[5841,4004],[-28,41],[-17,6]],[[5708,4505],[24,-13],[32,0],[50,22],[29,112],[-14,39],[55,22],[10,54]],[[5894,4741],[92,-17],[3,-30],[45,-9]],[[6190,4692],[-11,-43],[19,-17],[0,-30],[17,-34],[-4,-20],[-34,-31],[4,-33],[-30,-37],[175,-316]],[[3613,6345],[-20,56],[-76,64],[23,46],[-9,50],[-28,62]],[[4110,6918],[19,-28],[-5,-20],[36,-119],[69,-25],[12,-49]],[[4255,6466],[-21,-24],[-70,-26],[-15,30],[-53,66],[-83,33],[-17,-24],[-24,-6],[-1
 5,30],[-17,-13],[-3,-30],[-17,32],[-14,-26],[-43,1],[-8,14],[-22,-18],[-1,-24],[-57,-16],[-55,4],[18,-52],[53,-20],[-62,-47],[-54,8],[-62,-13]],[[6671,2297],[-55,-3],[-43,-26],[-74,-6],[-70,-13],[-31,-17],[-48,-1],[-17,-17]],[[6333,2214],[-20,-7]],[[6313,2207],[8,37],[-14,63],[-27,37],[-16,-10],[-22,37],[-41,-16],[-34,-31],[-45,-9],[-21,-18],[-47,-3],[-9,-23],[-12,21],[-19,-22],[-22,13],[-140,-43],[-44,-3]],[[6106,2689],[17,17],[27,-27],[19,18],[11,-11],[26,26],[-5,16],[32,31],[-15,20],[44,27],[-5,16],[80,44],[-49,68]],[[6288,2934],[52,4],[10,43],[-20,49]],[[6330,3030],[79,2],[5,-29],[24,5],[9,-43],[23,4],[20,-60]],[[6490,2909],[-23,-21],[10,-46],[19,-32],[12,-66],[11,2],[-14,-77],[-13,-10],[10,-53],[28,-1],[9,-41],[-23,-37],[49,-8],[20,11],[36,-55],[9,-34],[-12,-2],[18,-31],[10,-49],[20,-26],[5,-36]],[[5554,2911],[-34,-7],[-47,29],[-49,19]],[[5424,2952],[-25,34],[-1,44],[-59,82],[-67,42],[23,36],[30,27],[-13,38],[-37,-16],[-44,23],[-11,45],[12,17],[-59,5],[-36,21],[-14,47],[20,11]]
 ,[[5143,3408],[101,12],[58,28],[27,-12],[104,39],[81,39],[12,24],[92,46],[28,6],[5,36]],[[5651,3626],[49,-7],[17,10],[78,-29],[46,-56],[26,-47],[45,-12],[14,-21],[4,-41],[15,-51]],[[5945,3372],[-18,-35],[-71,-110],[-23,-17],[-29,-1],[-38,-19],[28,-34],[-50,-65]],[[7603,7784],[-22,-2],[-62,50],[-35,13],[-45,37],[-66,9],[-85,3],[-102,-15],[-79,16],[-81,-5],[-50,-14]],[[6913,8353],[25,48],[-7,24]],[[6931,8425],[32,-2],[23,-22],[78,78],[64,5],[80,-18],[52,17],[104,6]],[[7364,8489],[16,-64]],[[7380,8425],[-10,-7],[26,-49],[-8,-57],[31,-36]],[[7419,8276],[59,-83],[-41,-93],[-24,-30],[9,-48],[23,-21],[28,-50],[35,-35],[16,-33],[8,18],[57,-21],[22,-51],[14,8],[8,-29]],[[7633,7808],[-30,-24]],[[8893,6108],[-24,47],[-29,9],[-52,-42],[-58,-21],[-36,24]],[[8694,6125],[-51,33],[-53,4],[-81,42]],[[8509,6204],[-43,31],[-28,33],[-59,97]],[[8764,6811],[51,-18],[1,-41],[36,-47],[10,-40],[67,8],[16,-6],[18,-62],[35,2],[1,-26],[19,-2],[32,-107],[-8,-9],[-58,-13],[6,-47],[-15,-1],[14,-86],[-1,-37],[25,-
 11],[3,-54],[16,-22],[-30,-69],[-27,-4],[-51,22],[-31,-33]],[[4630,2834],[-31,-8],[7,-29],[-5,-65],[-52,-22],[12,-64]],[[4561,2646],[-106,-12],[-15,-10],[7,42],[-20,19],[-86,5],[-35,16],[-41,-34]],[[4265,2672],[-3,24],[-57,-19],[-55,12]],[[4150,2689],[0,53],[-48,52],[-8,59],[15,96],[-37,47],[0,28],[66,43],[9,68]],[[4147,3135],[58,-19],[46,100],[33,23],[8,40]],[[4292,3279],[70,-15]],[[4362,3264],[65,-27],[21,37],[36,1],[56,-58],[4,25],[45,-5],[39,20],[37,-53],[40,-14]],[[4705,3190],[21,-16],[-1,-33],[28,-22],[19,-35]],[[4772,3084],[-28,-8],[-5,-35],[-33,-7],[-9,-16],[-26,5],[-1,34],[-35,-7],[9,-41],[29,-50],[-57,-36],[16,-38],[-16,-23],[14,-28]],[[4006,3640],[-24,12],[-11,32],[3,74],[35,9],[6,21],[-36,13],[-7,22],[-31,2],[5,58],[-75,53],[21,55],[-7,45]],[[3885,4036],[24,25],[32,16],[27,54],[-41,84],[-7,40],[107,93]],[[4027,4348],[198,-7],[5,15],[28,-7],[45,-39],[10,11],[30,-27],[22,15],[-12,-35],[41,-9],[7,12],[48,-23],[37,-6]],[[4486,4248],[-4,-35],[-41,-33],[-17,-57],[19,-110],[18,
 -68],[-21,0]],[[4440,3945],[-128,10],[-44,-42],[6,-117],[-42,-12],[-22,-21],[-26,-53],[-12,-55],[38,-34],[5,-53],[18,-33]],[[4233,3535],[-30,-3],[-3,25],[-21,-13],[-62,3],[-52,28],[-31,26],[-28,39]],[[5143,3408],[-67,-13],[-17,-23],[-33,31]],[[5026,3403],[-18,66],[-27,53]],[[4981,3522],[42,43],[16,40],[1,66],[12,37],[-26,44],[-3,30]],[[5023,3782],[9,31],[-11,35],[9,48],[-22,37],[22,28]],[[5373,4028],[-22,-25],[17,-18],[-11,-37],[18,1],[2,-60],[22,-1],[7,-30],[20,7],[52,-28],[2,-56],[36,-55],[17,-5],[94,5]],[[5627,3726],[-4,-21],[29,-21],[-16,-47],[15,-11]],[[5689,6256],[-43,17],[-6,31],[-17,-7],[-16,37],[23,17],[-98,38],[-15,18],[-41,12],[-14,16],[-76,-13],[-49,0]],[[5202,6601],[83,2],[6,-26],[71,16],[53,28],[24,27]],[[5720,6805],[28,13],[44,-3],[32,-22],[10,-42],[166,-22],[-15,-26],[1,-49],[49,-2]],[[6035,6652],[14,-90],[-2,-85],[10,-40],[8,-106],[9,-41]],[[6074,6290],[-118,8],[-29,-20],[-47,12],[-191,-34]],[[5894,8023],[-110,-15],[-18,-25],[-64,-34],[-120,12],[-14,25],[-25,0],[-5,
 37],[-10,-23],[-51,-20]],[[5971,8093],[0,-21],[-49,-15],[-28,-34]],[[5071,2554],[-17,27]],[[5054,2581],[21,5],[-28,42],[63,76]],[[5110,2704],[20,33],[-4,40],[29,49],[56,11],[16,20],[39,1],[27,13],[17,23],[11,39],[11,-10],[30,38],[35,-6],[11,-27],[16,24]],[[5633,2154],[-41,-30],[-31,-11],[-65,50],[-141,14],[-18,24],[-27,76],[1,56],[-69,110],[-29,57],[-142,54]],[[8469,3416],[30,33],[25,-34],[37,47],[30,-23],[40,47],[13,33]],[[8644,3519],[28,3],[14,-39],[35,6],[13,-38],[23,-15],[35,9],[4,-42],[18,33],[27,-7],[62,15],[26,-6],[5,-47]],[[8934,3391],[19,-67],[15,-19],[111,-94],[36,-50]],[[9115,3161],[40,-73]],[[8736,5485],[-48,5],[-11,28]],[[8677,5518],[-31,-4]],[[8646,5514],[-10,52],[-18,-4],[2,63],[-17,37],[-31,7],[-38,-33],[-27,20],[-15,46],[8,34],[-47,18],[-7,31]],[[8446,5785],[1,22]],[[8447,5807],[81,57],[38,-5],[7,93],[7,30],[29,11],[-19,19],[21,46],[14,-12],[34,23],[35,56]],[[8893,6108],[18,-49],[98,-36],[59,-2],[10,-36],[39,-53],[14,-32],[-6,-42],[-55,-78],[-51,33],[-27,-36],[48,-3
 7],[-47,-64],[-9,-32],[15,-40],[34,-34],[-35,-57],[-37,-23],[-42,49],[-95,-33],[-21,-53],[-22,37],[-45,-5]],[[8930,2007],[28,-36],[22,-63],[-2,-70],[21,-106],[20,-10],[20,19],[23,-43],[28,1],[3,-16]],[[8345,1333],[-21,41],[-7,39],[10,34],[-18,12],[-3,47]],[[7723,7730],[-22,-9],[-36,52],[-13,43],[-19,-8]],[[7419,8276],[20,33],[55,-14],[5,43],[21,13],[23,-9],[80,20],[57,33],[38,-32],[0,17],[50,-16],[96,46],[67,-19],[40,-2],[46,12],[-9,25],[66,24],[9,-16],[76,28]],[[8159,8462],[0,-1]],[[2426,7571],[-31,27],[-105,30],[-34,36],[-47,76],[-32,-15],[-7,92],[1,41],[19,64]],[[2471,8315],[35,14],[56,7],[42,-10],[31,-18],[-2,-101],[4,-33],[63,48],[26,-2]],[[2726,8220],[-3,-45],[20,-16],[46,-111],[37,-25],[69,-94]],[[2895,7929],[-19,-1],[-59,-71],[-41,-33],[-39,-1],[-37,-26],[-25,6],[-21,-15],[-37,38],[-45,7],[-61,-19],[-29,-19],[-23,-71],[7,-66],[-18,-110],[-22,23]],[[7483,7177],[-3,51],[-21,26],[-48,0]],[[7411,7254],[39,15],[39,73],[12,43],[-38,21],[31,71],[15,11],[11,38],[-1,37],[17,18],[20,-
 8],[16,31],[10,53],[18,46],[3,81]],[[7777,7698],[-32,-10],[51,-59],[79,-15],[26,-38],[0,-16],[71,-64],[48,-69],[32,-82],[37,39],[28,-13],[10,-21],[53,14],[-24,-41],[29,-33],[39,-17],[-17,-44]],[[8207,7229],[-92,-20],[-35,-19],[-32,19],[-23,-28],[-3,-54]],[[7040,3494],[-81,110],[-32,13]],[[7318,3842],[46,-8],[80,-76]],[[7444,3758],[24,-24],[-19,-53],[43,-44],[26,-49],[47,-52],[-9,-12],[34,-26],[1,-32],[27,3],[16,-53]],[[7634,3416],[-14,-20],[5,-39],[39,-89]],[[7664,3268],[-70,-20],[-29,62],[-34,22],[1,15],[-91,-19],[0,-9],[-63,-12],[-15,-32],[-55,24]],[[7308,3299],[-19,16],[-21,-5],[-1,22],[-52,-6],[-18,30],[-42,13],[-2,21],[-31,-3],[-11,60],[-71,47]],[[7411,7254],[-75,37],[-32,36],[-7,34],[3,50],[-13,20],[-34,-6],[-28,-28],[-59,-29]],[[7166,7368],[-36,3],[-35,36],[17,82],[-20,31],[-34,11],[-15,43],[-49,43]],[[6994,7617],[1,39]],[[8694,7720],[-10,24],[-50,-30],[-21,21],[-69,-7],[-64,33],[-12,-4]],[[8601,8457],[20,10],[73,1],[16,-76]],[[8710,8392],[-2,-85],[21,-15],[-20,-35],[2,-58],[
 25,-3],[19,36],[25,10],[39,-23],[92,-1],[-1,-53],[20,11],[23,-13],[57,4],[36,-24],[-15,-29]],[[9031,8114],[-42,-25],[-28,-58],[-12,-103],[0,-83],[-20,-48],[-23,-27],[-32,-4],[-9,-24],[-68,23],[-23,-3],[-13,-26],[-36,1],[-31,-17]],[[3686,5983],[-25,63],[14,29],[-20,22],[-18,67],[6,59],[-5,61],[-25,61]],[[8188,4151],[-22,31],[27,23],[-23,48]],[[7920,4584],[18,56],[47,18],[57,-37],[19,-22],[34,-16],[17,40],[36,35],[-22,29],[27,39],[22,-11],[19,13],[-9,39],[39,7],[29,-28],[-2,-26],[21,-13],[14,53]],[[8286,4760],[24,28],[-1,35],[24,30],[42,-14],[4,-23],[-13,-72],[24,-43],[47,-22],[49,-51],[31,-73],[24,14],[-16,31],[-2,50],[-11,29],[21,3]],[[8533,4682],[50,-138],[20,-11],[-3,-33],[-16,-23],[1,-46],[30,-45],[-33,-44],[13,-19],[-25,-15],[6,-16],[-50,-21],[-18,-43],[-39,-15],[-52,-46]],[[8417,4167],[-21,-21],[-18,33],[-45,-33],[-45,6],[-19,-10],[-38,14],[-43,-5]],[[5898,7724],[-6,25],[30,-15],[60,9],[-11,15],[-78,70],[-44,72],[27,35],[-21,13],[7,21],[30,9],[-12,25],[14,20]],[[6653,7775],[-35
 ,-2],[-16,-51],[-35,21],[-33,-6],[-15,-123],[-35,6],[-3,-19],[-62,18]],[[6419,7619],[-70,8],[-30,-33],[-22,-52]],[[7246,6050],[-32,-3],[-26,38],[16,71],[-4,46],[7,39],[63,60],[22,44],[24,90]],[[7316,6435],[-4,26],[-85,116],[-35,21],[-26,30],[-64,22],[-42,1],[-88,-13],[-54,3],[-15,31]],[[6903,6672],[54,46],[26,61],[-13,63],[13,54]],[[6983,6896],[63,16],[37,-9],[57,40],[18,-55],[42,0],[35,-56],[78,10],[21,-31],[36,5],[50,-18],[16,21],[43,15]],[[7625,6407],[-97,-101]],[[7528,6306],[-20,29],[-94,-63],[15,0],[-28,-74],[-34,-21],[48,-45]],[[7415,6132],[-7,-36],[-60,54],[-38,-29],[-34,-39],[-11,-27]],[[7265,6055],[-19,-5]],[[7423,4861],[-9,43],[-40,57],[-33,16],[-64,0],[-64,83],[-20,44],[-23,21],[-39,5],[-37,64],[-8,-5],[-29,42],[11,4],[-33,45],[22,18],[-35,18],[13,21],[-18,22],[-22,1]],[[6995,5360],[21,53],[-15,51]],[[7001,5464],[89,14],[51,18],[17,-8],[19,28],[19,-2],[26,40]],[[7222,5554],[51,-16],[16,-47],[28,-2],[52,-28],[30,-4]],[[7399,5457],[4,-15],[67,-46],[2,-20],[25,11],[12,-14],[
 28,-86],[35,-24],[17,-67],[36,-15],[4,-33]],[[7629,5148],[11,-26],[-15,-29],[-38,-21],[-3,-38],[26,-5],[11,-28],[-5,-33],[26,-59],[-45,-37]],[[6630,8446],[-14,13],[-12,67],[-18,23],[11,80],[-13,35],[13,25]],[[7068,9185],[133,-145]],[[7201,9040],[32,-52],[9,-73],[-19,-90],[-23,-51],[-62,-37],[-101,-24],[-94,-18],[-58,-55],[-22,-51],[4,-63],[44,-54],[20,-47]],[[8438,7064],[-18,54],[-40,-2],[-25,-14],[-24,42],[8,12],[-28,38],[-5,23],[-60,-8],[-12,14]],[[8234,7223],[23,33],[-12,9],[-25,58],[31,27],[-2,24],[24,0],[45,66],[10,27],[-15,1],[11,37],[34,-6],[-3,45],[17,3],[-1,27],[15,39],[-11,62]],[[8694,7720],[6,-47],[-37,-43],[5,-26],[-20,-42],[17,-31],[56,4],[-4,-22],[-58,-55],[35,-43],[13,-82],[11,-17],[-8,-101],[18,-101]],[[4768,7091],[-24,39],[-19,8],[17,29],[-67,39],[-21,-14],[-44,52],[-16,32],[10,12],[-19,51],[-58,-13],[-32,48],[-94,35],[-36,32]],[[5134,7885],[-42,-35],[-60,-26],[-85,-83],[30,-20]],[[4977,7721],[-31,-4],[-9,-53],[-17,3],[-5,-25],[-52,-65],[19,-2],[0,-53],[-16,-7],[9,-
 39],[-39,-66],[27,-23],[-20,-66],[18,-71]],[[4861,7250],[-15,-37],[-27,-7],[46,-75],[-97,-40]],[[5110,2704],[-18,19],[-7,48],[12,33],[-13,14],[19,26],[-7,30],[-27,49],[-6,39],[20,35],[-50,21],[-17,-21],[-36,2],[-95,-39],[-26,5],[-20,25],[-16,50],[0,26],[-26,41],[-25,-23]],[[4705,3190],[23,20],[16,48],[62,72],[69,-3],[31,9],[27,43],[75,10],[18,14]],[[4826,4221],[-27,-15],[-52,-4],[-60,27],[-28,34],[-108,31],[-3,8],[-36,-53],[-13,22],[-13,-23]],[[4027,4348],[14,95],[-32,54],[32,25],[17,28],[34,23],[9,39],[26,28],[48,23]],[[4175,4663],[51,-20],[28,20],[42,-2],[38,19],[34,-25],[55,-14],[69,-68],[18,23],[63,-36],[16,27],[27,-27],[41,23]],[[3133,7149],[-17,6],[-50,-38],[-121,-46],[-10,13],[-52,0],[-17,25],[-35,-18],[-82,4],[-85,45],[-92,1],[-3,150]],[[2569,7291],[76,64],[88,30],[49,26],[14,33],[79,78],[29,3],[-14,40],[43,27],[63,-3],[1,21],[51,76],[21,8]],[[3069,7694],[53,-22],[-8,-37],[16,-20],[0,-39],[17,-30],[31,-24],[1,-39],[40,-43],[-22,-85],[-16,-27],[-12,-51]],[[7364,8489],[20,14],
 [3,28],[-24,27],[26,32],[-11,7],[60,117],[-11,44],[23,74],[-4,13],[42,70],[31,29],[6,56],[19,17],[12,36]],[[7556,9053],[34,0],[42,16],[43,-17],[53,3],[50,31],[17,-8],[53,5],[16,-10],[-10,-27],[18,-14],[-12,-27],[26,-41],[22,-17],[24,6]],[[7932,8953],[29,-10],[-19,-24],[3,-34],[42,-20],[-41,-44]],[[7946,8821],[-31,-41],[-13,-72],[-16,-20],[-31,2],[-8,-31],[12,-8],[27,-81]],[[7886,8570],[-44,34],[-108,14],[-3,-22],[-71,-48],[-18,27],[-60,-47],[-7,5],[-38,-43],[-9,9],[-89,-58],[-13,18],[-46,-34]],[[3648,3478],[55,12],[28,34],[27,61],[19,12],[35,-10],[22,12],[31,42],[30,11],[46,-40],[17,-3],[48,31]],[[4233,3535],[4,-16],[62,-18],[44,1],[13,-14]],[[4356,3488],[-19,-36],[-24,-115],[-21,-58]],[[4147,3135],[-103,68],[-83,29],[-20,16],[-57,-6],[-43,5],[-72,-50],[-30,-41],[-57,-27]],[[3624,7930],[-62,14],[-71,6],[5,23],[-35,-2],[1,28],[-21,-2],[-7,25]],[[3434,8022],[14,37],[7,62],[-7,25],[9,66],[15,28],[-8,35],[18,44],[-7,44],[-13,6],[-2,96]],[[3460,8465],[29,9],[0,15],[74,2],[0,-33],[85,-4],
 [0,-23],[82,6],[49,-15],[19,73],[60,26],[90,27],[0,48]],[[3948,8596],[0,-1]],[[3951,8190],[-31,-54],[-14,-57],[-27,-19],[-4,-41],[-29,-31],[-26,-44]],[[3069,7694],[20,36]],[[3089,7730],[21,47],[-10,7],[17,49],[21,10],[-21,11],[21,50],[33,8],[19,40],[20,-15],[24,11],[18,75]],[[3252,8023],[27,-2],[16,33],[36,8],[103,-40]],[[2569,7291],[-69,83],[-20,75],[2,28],[-50,30],[-6,64]],[[2895,7929],[50,19],[3,-54],[79,-84],[35,-16],[-24,-39],[51,-25]],[[5023,3782],[-38,9],[-45,-12],[-25,17],[-69,-24],[-96,-17],[-56,13],[-45,32],[-54,23],[-1,18],[-100,8],[5,-19],[-31,-2]],[[4468,3828],[-28,117]],[[7201,9040],[25,32],[23,8],[-7,19],[47,6],[40,-20],[44,25],[57,5],[70,-17]],[[7500,9098],[56,-45]],[[4849,6761],[-16,24],[1,35],[43,101],[-2,17],[27,1],[-29,38],[-61,64],[-10,-16]],[[4802,7025],[-32,46],[-2,20]],[[4861,7250],[20,-9],[18,-52],[40,-5],[18,-39],[26,0],[29,-43],[33,11],[61,-28]],[[5106,7085],[-5,-12],[32,-9],[49,-47],[13,-27],[-27,-14],[25,-31],[62,-43],[14,11],[-18,22],[-17,54],[39,-6]],[
 [6798,2922],[-143,595]],[[7040,3494],[-49,-32],[15,-35],[27,-31],[20,-69],[-14,-10],[3,-45],[17,-48],[13,-92],[11,-151],[-9,-54],[-76,-48],[-45,2],[-155,41]],[[5106,7085],[17,46],[-56,67],[13,19],[-23,23],[27,45],[27,-11],[33,43],[-2,31],[70,88],[0,12],[39,39]],[[5251,7487],[60,9],[75,20],[20,28],[18,93],[1,38],[20,28],[13,64]],[[5458,7767],[17,9],[30,-20],[55,-57],[5,-18]],[[6796,9513],[25,-10],[34,11],[7,-21],[28,19],[-15,21],[10,43],[23,42],[86,-38],[31,-42],[34,-68],[87,14]],[[7146,9484],[-12,23],[19,1],[38,35],[30,-20],[48,1],[27,-11],[25,-28],[23,-8],[26,32]],[[7370,9509],[29,26],[37,14],[13,-48],[-24,-52],[4,-44],[16,-62],[-39,1],[34,-34],[35,-5],[18,-15]],[[7493,9290],[27,-59],[25,-1],[-45,-56],[6,-22],[-16,-26],[10,-28]],[[5961,5615],[-22,109]],[[5939,5724],[56,17],[24,21]],[[6019,5762],[23,44],[1,76]],[[6043,5882],[109,-39],[26,25],[60,109],[101,-11]],[[6339,5966],[45,-9]],[[6384,5957],[79,-13],[65,-23],[121,-24]],[[6649,5897],[13,-4],[24,-61],[17,-16],[13,-68],[-35,-6],[5
 ,-28]],[[6686,5714],[-33,-36],[-67,-56],[-22,-47],[-12,-86]],[[6262,5585],[-37,-9],[-18,14],[-1,29],[-18,3],[-11,39],[-20,-8],[-15,37],[-34,2],[-29,-12],[-10,-34],[-25,-17],[-83,-14]],[[8078,9138],[-13,-11],[16,-23],[-52,-63],[-15,3],[-37,-28],[-45,-63]],[[7493,9290],[11,37],[17,10],[-14,62],[25,76],[53,-15],[21,25],[7,-20],[29,43],[31,17],[-13,50],[41,-4],[2,26],[29,-2],[7,79],[-47,12],[6,8],[-29,57],[33,33]],[[7702,9784],[56,-31],[56,-51],[8,-35],[-30,-179],[-1,-53],[29,-74],[19,-29],[59,-53],[84,-33],[37,-30],[59,-78]],[[5969,9229],[-34,82],[-10,44],[20,65],[26,8]],[[5971,9428],[55,0],[62,41],[67,110],[30,28],[93,31],[28,19]],[[6306,9657],[2,-37],[49,-14],[67,3],[14,-15],[-17,-36],[26,-17],[-14,-17],[33,-18],[-7,-37],[20,-8],[9,-59]],[[6235,1831],[59,-20],[10,30],[0,61],[25,18],[17,30],[34,7],[13,27],[-29,25],[-8,41],[17,13],[-16,32],[-22,-17],[-24,2],[-16,27],[-34,-20],[-4,-38],[-25,-13],[-10,-32],[21,-10],[-3,-21],[-25,-16],[-9,-49]],[[6206,1908],[-7,-17],[9,-47]],[[6208,1844],
 [-27,-9],[-28,10],[-8,19],[-25,-14],[-80,96],[4,26],[27,21],[-37,49],[-46,0],[0,34],[77,26],[85,5],[24,23],[19,-37],[54,0],[13,9],[-1,36],[25,52],[29,17]],[[6671,2297],[15,-49]],[[6686,2248],[1,-23],[-45,-75],[17,-26],[-6,-35],[7,-31],[-13,-5],[5,-34],[-21,-4],[-2,-98],[-8,-30],[20,-2],[-1,-55],[10,-30],[-96,9],[-63,-5],[3,-23],[-49,-12],[-20,-23],[-46,-20],[-57,7],[-12,-12],[-47,-4],[-24,55],[-21,8],[17,51]],[[6202,6766],[30,72],[52,49],[45,5],[59,-8],[30,20],[35,54],[-5,72],[-73,35],[-44,-20],[-32,-42],[-38,-33],[-26,68],[3,53]],[[6279,7118],[93,37],[69,22],[-2,7],[59,18],[28,29],[107,40],[-29,49]],[[6604,7320],[66,33],[-45,43],[35,40],[68,-60],[39,38],[42,26],[-25,73],[16,26],[28,-86],[43,41],[13,57],[40,13],[15,-8],[28,41],[-9,43]],[[6994,7617],[13,-78],[0,-59],[24,-73],[1,-73]],[[7032,7334],[-108,-103],[-75,12],[-41,1],[-87,-36],[14,-37],[-16,-28],[-40,-15],[-8,-30],[21,-28],[-49,-49],[-22,15],[-42,-36],[20,-28],[-59,-29],[16,-29]],[[6556,6914],[-31,-19]],[[6525,6895],[-36,-31]
 ,[-39,-47],[-95,-20],[-36,-3],[-68,-19],[-26,-18]],[[6225,6757],[-9,4],[-48,-59],[-24,11],[53,39],[5,14]],[[5527,4828],[19,48],[15,5],[49,53],[3,22],[62,35],[36,39],[-1,27],[-23,9],[13,121],[-6,43]],[[5694,5230],[23,60],[82,27]],[[5799,5317],[29,-37],[19,-64],[43,-78],[-6,-47],[14,-38],[34,1],[5,-104],[20,2],[4,-50],[-83,-17],[-2,-56],[18,-88]],[[6419,4633],[46,-12],[22,-19],[56,8],[17,-69],[80,23],[10,18]],[[6650,4582],[12,-22],[12,-68],[21,-36],[32,-31],[16,-52],[-23,-89]],[[4356,3488],[24,10],[19,47],[44,59],[-6,61],[-11,30],[31,9]],[[4457,3704],[10,-23],[12,20],[27,-6],[35,-30],[33,-10],[-3,-11],[104,-37],[37,-25],[102,-34],[51,-5],[51,-21],[30,10],[35,-10]],[[4153,7064],[40,9],[15,-22],[-17,-16],[36,-53],[-31,-18],[2,-15],[69,6],[4,-16],[65,4],[55,18],[22,-5],[-5,27],[-19,8],[5,55],[11,-9],[31,17],[-12,22],[68,-12],[4,21],[21,-16],[37,-4],[-3,-19],[103,-37],[-10,14],[34,17],[19,-3],[13,24],[27,-53],[24,16],[-4,-23],[41,8],[4,16]],[[5819,5353],[-20,-36]],[[5694,5230],[-23,2],[-4
 5,26],[-7,-25],[-82,-21],[1,22],[-37,4],[-79,-7]],[[5426,5402],[-11,87],[-28,10]],[[5258,5655],[0,1]],[[5258,5656],[176,-31],[65,-3],[90,17],[350,85]],[[5961,5615],[-50,-31],[-6,-24],[22,-46],[-3,-24],[-25,-30]],[[7629,5148],[17,43],[31,12],[41,47],[-7,26],[72,32],[-17,37],[18,10],[42,62]],[[7826,5417],[31,-18],[14,-24],[6,-46],[34,-26],[45,4],[37,-16],[1,-90],[10,-100]],[[8004,5101],[0,-25],[-26,-55],[4,-40]],[[7982,4981],[-58,-10],[17,-45],[-61,-49],[16,-31],[-23,-20],[17,-23],[36,-77],[-47,-31],[-71,-66]],[[3383,3747],[92,26],[-1,6],[81,19],[-5,26],[24,27],[89,53],[12,-19],[27,23],[-2,19],[31,29],[17,38],[61,7],[76,35]],[[9253,4832],[-79,49],[-8,58],[-38,28],[-35,9],[10,23],[-39,8],[-26,-48],[-22,-11],[-55,17],[-39,24],[-33,-14],[-13,18],[-61,-15],[-17,5]],[[8798,4983],[4,58],[-24,7],[-12,32]],[[8766,5080],[-13,23],[-8,82],[-14,31],[-9,50],[-20,43],[-21,67],[-9,62],[5,80]],[[8736,5485],[11,-27],[42,-45],[33,10],[62,-6],[38,22],[49,-7],[8,-28],[29,-34],[-1,-25],[52,-3],[11,9],[35,
 -21],[27,25],[28,-17],[12,-30],[25,5],[-11,-46],[-23,-8],[12,-21],[-1,-101],[10,-74],[-7,-17],[24,-41],[-3,-38],[23,-36],[37,-23],[-10,-18],[5,-58]],[[5627,3726],[71,3],[31,-11],[-3,40],[52,45]],[[5778,3803],[0,1]],[[5778,3804],[42,37],[39,77],[3,31],[-21,55]],[[6086,3951],[23,-17],[59,-79],[24,-21],[8,-33]],[[6200,3801],[-18,-4],[40,-62]],[[6222,3735],[-25,-5],[-27,-49],[-63,-51],[18,-33],[-27,-23],[-44,-69],[0,-41],[-15,-46],[5,-23],[-18,-10],[-35,-49]],[[5991,3336],[-23,-15],[-23,51]],[[5991,3336],[24,-20],[37,-5],[18,13],[30,-19],[41,-85],[28,33],[28,18],[9,-14],[79,1],[27,9]],[[6312,3267],[-27,-67],[3,-62],[19,-52],[24,-41],[-1,-15]],[[6288,2934],[-67,-15],[-3,-34],[-24,-14],[-37,13],[-24,-31],[-34,-2],[-20,19],[-27,-21],[-15,13],[-31,-35]],[[4067,2529],[42,-10],[47,32],[29,9]],[[4185,2560],[11,-40],[29,-16],[43,6],[96,6],[10,-16],[45,-1],[-8,-65],[25,27],[0,-35],[45,3],[7,-37],[138,86]],[[4626,2478],[18,-82]],[[4644,2396],[19,-80],[70,-102],[-158,-53],[-3,12],[-283,-54],[-11,-
 34],[-42,26],[-43,5],[-36,30],[-61,14],[-1,73],[15,47],[-4,106],[12,18],[-16,26],[7,41],[-42,58]],[[7919,3852],[99,56],[-14,89],[27,5],[-3,18],[46,11],[17,24],[37,-26],[22,17],[0,19],[28,25]],[[8178,4090],[26,1],[42,-38],[53,-30],[-16,-7],[42,-28],[23,-48],[42,-64],[33,-26],[36,-65]],[[8459,3785],[-44,22],[-29,-26],[23,-41],[-26,-75],[14,-18],[-15,-30],[42,-72],[37,-47],[-33,-28]],[[9246,8210],[-32,48],[-61,130],[-11,41],[3,37],[53,49],[-12,83],[-42,39],[-53,33]],[[9091,8670],[4,29]],[[9095,8699],[47,59],[-36,39],[18,58],[4,54],[19,-2],[3,28],[24,-10],[12,39],[-15,17],[-44,21],[-18,53],[-16,14]],[[9093,9069],[30,30],[31,17],[45,-2],[102,-50],[78,-59],[38,-20]],[[9417,8985],[-15,-45],[-15,-17],[2,-26],[64,-25]],[[9453,8872],[-25,-88],[13,-4],[-1,-47],[-19,-13],[-8,-45],[-16,-38],[3,-39],[32,-35],[-25,-40],[32,-51],[-82,4],[-35,-49],[-16,-8],[-9,-38],[-22,5],[9,-46],[-33,-26],[-30,35],[4,-40],[40,-63],[-5,-34],[-14,-2]],[[6490,2909],[67,10],[61,19],[3,22],[21,1],[156,-39]],[[6798,2922
 ],[93,-395]],[[6891,2527],[-45,-179],[-26,-7],[-71,-43],[-63,-50]],[[6202,6766],[-141,-22],[-23,-39],[-3,-53]],[[8934,3391],[26,29],[51,14],[0,44]],[[9011,3478],[27,9],[5,-25],[58,10],[7,-18],[22,4],[9,30],[44,8],[20,-52],[38,21],[3,39],[46,34],[26,-26],[30,33],[38,-24],[9,31],[45,-4],[37,23],[18,31]],[[9493,3602],[24,9],[38,-54],[21,-41],[11,-42],[31,-47],[32,-29]],[[9650,3398],[8,-10],[-101,-61],[-23,-26],[5,-18],[-42,-39],[-21,2],[-36,-20],[-69,-10],[-55,-17],[6,-21],[-91,-60],[-62,61],[-19,3],[-35,-21]],[[5258,5656],[-15,74],[-26,49],[-39,15],[-10,18],[14,72]],[[5367,5938],[46,15],[3,-12],[113,13]],[[5529,5954],[43,-55],[36,10],[30,-10],[39,13],[101,1],[68,-14],[36,-36],[60,-33],[77,-68]],[[6983,6896],[-8,31],[-47,80],[-64,56],[1,22],[29,16],[72,-23],[18,8],[38,78],[51,57],[-1,30],[-30,49],[-10,34]],[[7166,7368],[13,-24],[2,-60],[70,-41],[-14,-50],[40,-55],[35,11],[11,-18],[51,-6],[2,-36],[27,-25],[35,14]],[[6312,3267],[41,18],[3,45],[12,-18],[25,14],[-12,33],[35,30],[29,-2]],[[
 6445,3387],[19,-5],[39,-90],[25,6],[6,20],[-8,79],[8,20],[121,100]],[[9389,2178],[-22,-53],[1,-34],[-14,-42],[-95,-98],[-15,-21],[-28,-79],[-2,-31],[23,-112]],[[8710,8392],[23,-4],[20,45],[36,53],[14,36],[38,3],[7,-37],[24,28],[0,18],[30,11],[72,-7],[11,71],[16,28],[18,-24],[16,31],[28,-8],[28,34]],[[9246,8210],[-32,-4],[-67,-26],[-7,-11],[13,-66],[-32,-54],[-17,-12],[-14,20],[-29,4],[13,21],[-43,32]],[[9065,479],[14,-3],[28,21],[16,-19],[41,1],[2,-23],[32,-27],[33,11],[50,-10],[-11,-32],[9,-75],[47,10],[41,21],[2,20],[79,9],[3,17],[45,14]],[[9496,414],[-25,-41],[-9,-40],[36,-108],[6,-35],[-5,-60],[-16,-42],[-32,-45],[-26,-20],[-49,-23],[-15,14],[-89,-7],[-22,22],[-34,-11],[-46,25],[-10,-7],[-45,13],[-49,0],[-30,-18],[-22,9],[-33,-9],[-2,36],[-16,42]],[[8509,6204],[-22,-26],[8,-32],[-28,-14],[-28,12],[-36,-53],[-18,-14],[-38,1],[-17,-52],[-13,6],[-36,-24]],[[8281,6008],[-30,49],[-45,55],[6,5],[-115,106],[0,66],[-19,2]],[[8078,6291],[-53,35],[-33,40]],[[9297,955],[28,-134],[12,-13],[
 65,-14],[33,-19],[25,-42],[44,-169],[1,-121],[-9,-29]],[[9344,4447],[-27,7],[-22,-47],[-80,-35],[-52,-34],[-38,-10],[-1,-14],[-48,-19],[7,-18],[-65,-36],[-43,22],[-52,-45]],[[8923,4218],[-12,45],[-34,58],[-46,46],[19,41],[-41,51],[-60,52],[-55,71],[-4,31]],[[8690,4613],[77,99],[18,5]],[[8785,4717],[9,-14]],[[8794,4703],[21,-44],[84,-42],[51,-13],[6,11],[65,-2],[2,-14],[66,-1],[40,13],[5,-18],[84,1],[8,46],[59,29],[-1,14],[32,17]],[[9316,4700],[16,-25],[15,-63],[-5,-39],[10,-52],[25,-7],[-33,-67]],[[9375,3968],[-10,12],[-38,-22],[-19,-22],[-72,-4],[-24,21],[-71,0],[-36,-14],[-22,34],[-12,-10],[-51,36],[-19,-14],[-30,35],[-16,-1],[-33,68],[-27,40]],[[8895,4127],[-21,56],[6,15],[43,20]],[[9344,4447],[-13,-18],[-2,-46],[-23,-47],[39,-52],[-5,-21],[14,-30],[43,-27],[21,-43],[11,6],[26,-34],[22,7],[-7,-29],[12,-40],[-36,-64],[-7,-42],[-11,-3]],[[9428,3964],[-24,24],[-29,-20]],[[5529,5954],[47,19],[13,56],[39,46],[13,1],[33,87],[15,93]],[[6074,6290],[4,-57],[-15,-54],[-28,-71],[0,-96],[8,-
 39],[0,-91]],[[6339,5966],[6,38],[-46,37],[-4,51],[-23,14]],[[6272,6106],[38,31],[3,42],[25,28],[12,52],[28,22],[31,7],[49,47],[-18,29],[47,14],[29,44],[61,8],[-6,42],[-34,1],[-2,26],[26,36],[12,-9],[20,29]],[[6593,6555],[35,-39],[59,19],[12,10],[106,-20],[11,41],[51,9]],[[6867,6575],[-13,-52],[42,9],[-5,-38],[-21,4],[-13,-73],[25,-15],[29,-35],[23,24],[40,-47],[52,45],[40,-57]],[[7066,6340],[18,-25],[-29,-23],[-75,-16],[11,-20],[-38,-6]],[[6953,6250],[-21,32],[-37,-7],[-180,-20],[-120,-45],[-26,-26],[-33,31],[-66,-35],[11,-36],[-34,-23],[-26,-46],[-41,-33],[13,-41],[-9,-44]],[[3944,2718],[-3,68],[-94,109]],[[4150,2689],[-26,25],[-119,-8],[-61,12]],[[7981,6166],[-72,-44],[11,-21],[-13,-32],[-42,-11],[0,-66],[-39,20],[-26,-47],[-16,7],[-32,-31]],[[7752,5941],[-25,25],[-44,11],[-23,22],[-22,3],[-35,28],[-47,-4],[-14,38],[20,58],[-92,-3]],[[7470,6119],[-2,22],[45,4],[-2,25],[44,27],[10,66],[-25,15],[-12,28]],[[8078,6291],[-15,-1],[-57,-33],[22,-50],[-47,-41]],[[6953,6250],[44,-71],[-14
 ,1],[5,-50],[-30,6],[5,-88],[-32,-72]],[[6931,5976],[-30,-10],[12,-38],[-81,-47],[-34,18],[-12,-7],[-17,67],[-35,-3],[-5,-27],[-38,20],[-28,2],[-14,-54]],[[2726,8220],[15,25],[49,-23],[36,17],[-9,13],[16,40],[28,27],[53,31],[61,-5]],[[2975,8345],[14,-4],[-18,-27],[24,-19],[1,-27],[42,-28],[72,-16],[79,-70],[4,-29]],[[3193,8125],[58,10],[8,-20],[-25,-19],[-10,-46],[28,-27]],[[7308,3299],[8,-62],[30,-8],[9,-45],[-18,3],[27,-106]],[[7364,3081],[-52,-21],[-30,6],[-25,-9],[3,-20],[-27,-14],[11,-34],[-14,-33],[-55,-11],[7,-21],[-39,-22],[6,-50],[-22,-5],[3,-33],[16,-44],[-105,9],[-20,21],[-61,-9],[-69,-264]],[[8766,5080],[-11,-28],[-30,-31],[-48,-29],[-26,-38],[-51,-34]],[[8600,4920],[-41,75],[-27,-5]],[[8532,4990],[-45,69],[1,25],[-53,90],[-8,38],[-17,11],[-54,104],[-25,36],[15,3],[-9,42]],[[8337,5408],[29,18],[-19,32],[113,39],[-3,20],[107,38],[8,-23],[24,4],[25,-21],[25,-1]],[[6903,6672],[-67,-14]],[[6836,6658],[-35,14],[4,23],[-34,14],[13,19],[28,3],[-8,40],[-32,16],[-83,23],[-13,55],
 [-29,45]],[[6647,6910],[-44,20],[-47,-16]],[[662,8294],[7,-66],[-31,7],[15,-31],[-46,-18],[19,-39],[-14,-66],[12,-31],[-48,-18],[-14,-24],[-65,-37]],[[497,7971],[-20,-10],[-27,22],[-16,-7],[-105,33],[-41,46],[0,18],[-24,49],[-46,-8],[-16,17],[-36,5],[-4,34],[-34,35],[-28,-31],[-25,20],[-33,-11],[-24,16],[-18,63],[57,38],[24,8],[101,16],[91,7],[137,17],[91,17],[56,41]],[[8794,4703],[17,37],[-10,19],[31,36],[1,35],[-13,23],[5,41],[-18,2],[-17,30],[8,57]],[[9253,4832],[35,-10],[55,5],[16,-74],[-24,-14],[-19,-39]],[[8278,4959],[-51,-2],[-80,-43],[-31,-4],[-64,6],[-63,40],[-7,25]],[[8004,5101],[66,47],[44,59],[34,26],[-26,41],[26,25],[29,-2],[-38,17],[-28,31],[24,20],[78,32],[-14,35]],[[8199,5432],[34,21],[7,-14],[31,11],[21,-24],[21,13],[24,-31]],[[8532,4990],[-50,-35],[-36,32],[-77,-20],[-53,72],[-44,-18],[6,-62]],[[7453,5580],[17,68],[-18,18],[-43,66],[17,21],[-37,26],[-8,47],[-15,3],[25,55],[-2,46],[-13,72],[-32,37],[-79,16]],[[7415,6132],[30,-23],[25,10]],[[7752,5941],[28,-23],[-37,
 -26],[21,-14],[19,-80],[-12,-6],[-41,51],[-17,-21],[60,-56],[5,-13],[-37,-41],[8,-8]],[[7749,5704],[-54,-54],[-25,-5]],[[7670,5645],[-28,-19],[-94,-6],[8,-22],[-63,-44],[-40,26]],[[6306,9657],[40,66],[47,133],[31,46],[46,52],[60,31],[71,14],[64,-9],[80,-38],[53,-62]],[[8577,4055],[-67,60],[-46,18],[-47,34]],[[8533,4682],[6,0]],[[8539,4682],[16,-8],[22,-37],[41,-8],[35,10],[21,-32],[16,6]],[[8895,4127],[-23,-27],[-33,-12],[-14,10],[-26,-60],[-95,8],[-35,19],[-29,-11],[-35,23],[-28,-22]],[[6419,7619],[29,-29],[64,-82],[92,-188]],[[6917,5284],[-62,-40],[-13,15],[-22,-29],[-9,16],[-25,-4],[-4,21],[-66,-17],[-25,18],[-80,-17],[-61,28]],[[6686,5714],[78,-2],[3,-34]],[[6767,5678],[76,-88],[-7,-26],[26,0],[60,-18],[56,-69],[23,-13]],[[6995,5360],[-43,-35],[-9,-27],[-26,-14]],[[7897,2772],[13,53]],[[8218,2498],[-29,-32],[-35,-12],[10,-33],[-7,-21],[-54,-26],[-23,-1],[-62,-40]],[[8018,2333],[-24,34],[-22,-17],[-28,13],[-38,89],[-33,58],[-20,137],[32,63],[21,10],[22,42],[-31,10]],[[7788,3852],
 [-6,-43],[-13,22],[-23,-11]],[[7746,3820],[-17,15]],[[7729,3835],[16,16],[-39,24],[-66,55],[10,12],[-60,40],[9,8],[-28,59]],[[8188,4151],[-11,-6],[11,-40],[-10,-15]],[[2468,9193],[67,-61],[45,-67],[23,-47],[41,-107],[7,-43],[-7,-44],[-44,-82],[-6,-43],[19,-104]],[[2613,8595],[-42,-28],[-17,28],[-72,-39],[-16,-17]],[[8644,3519],[8,32],[-15,18],[-6,38],[8,114],[-50,97]],[[8589,3818],[45,23],[-11,28],[45,23],[63,5],[39,73]],[[8770,3970],[110,-95],[26,-48],[-4,-77],[9,-24],[40,-59],[42,18],[21,-61],[-19,-65]],[[8995,3559],[-10,-28],[26,-53]],[[8770,3970],[-62,22],[-56,-3],[-21,29],[-54,37]],[[9375,3968],[-3,-38],[-18,-2],[15,-32],[27,7],[23,-50],[-24,-15]],[[9395,3838],[-80,-86],[-33,33],[-20,-13],[-52,-13],[-20,16],[-111,-5],[13,-35],[-25,-9],[8,-54],[-23,-9],[12,-47],[-27,-14],[-13,-51],[-29,8]],[[2416,3630],[46,52],[39,34],[-21,43],[-7,42],[7,66],[30,71],[69,127],[42,46],[14,25],[-7,35],[19,-1],[28,-51],[94,-81]],[[7826,5417],[-63,51],[-45,69],[-12,63],[-36,45]],[[7749,5704],[17,-68]
 ,[32,-50],[57,48],[-22,36],[16,40],[19,-9],[73,-2],[32,-46]],[[7973,5653],[-18,-11],[10,-20],[78,-2],[23,-20],[29,8],[33,-55],[0,-40],[56,-89],[15,8]],[[7222,5554],[9,34],[-35,1],[-8,24],[7,43],[-52,-7],[6,60],[-48,18],[8,46],[-56,6],[11,100],[-14,33]],[[7050,5912],[70,43],[64,24],[26,3],[36,68]],[[7453,5580],[-38,-37],[-8,-24],[27,-26],[-15,-27],[-20,-9]],[[5054,2581],[-24,29],[-7,30],[-45,12],[-62,-13],[-62,44],[-49,23],[-40,38],[-39,-20],[-20,48],[-34,54],[-42,8]],[[8446,5785],[-109,-42],[-34,20],[-55,-10],[-106,-64],[-40,3]],[[8102,5692],[18,45],[-35,44],[-35,11],[-9,29],[-29,39],[15,13],[-7,22],[23,15],[-46,48],[-49,79],[43,9],[20,53],[-30,67]],[[8281,6008],[19,-44],[49,-47],[46,-11],[11,-41],[12,1],[6,-48],[23,-11]],[[7664,3268],[35,-66]],[[7897,2772],[-43,20],[-39,42],[-31,49],[-59,52],[-79,20],[-12,24],[-65,-31],[-30,4],[-12,53],[-73,-19],[-48,-1],[-31,90],[-11,6]],[[5251,7487],[-7,15],[-46,-19],[-87,8],[-36,16],[-30,41],[6,90],[-11,29],[-63,54]],[[5347,7840],[18,-24],[79,-3
 4],[14,-15]],[[1026,7551],[-14,36],[5,76],[-21,72],[33,42],[-2,60],[-55,36],[-40,-10],[-24,20],[-120,44],[-64,16],[-40,17],[-81,11],[-8,12],[-38,-15],[-60,3]],[[8734,391],[-41,39],[-14,36],[-35,52],[-29,26],[-25,7],[20,32],[-42,59],[5,22],[-29,31],[-4,32],[-42,15],[4,29],[-24,25],[-12,39],[3,71],[-14,49],[18,4]],[[7333,9850],[-46,-10],[-73,-54],[-3,-47],[66,-15],[20,6],[36,-19],[12,-62],[17,-33],[-11,-41],[17,-29],[2,-37]],[[6832,9709],[40,-41],[50,30],[53,67],[40,61],[28,7],[43,-8],[36,3],[100,46],[78,14],[33,-38]],[[8234,7223],[-27,6]],[[7333,9850],[26,-76],[49,-10],[66,17],[71,31],[46,1],[68,-12],[43,-17]],[[6979,4995],[-26,56],[15,22],[-35,39],[0,54],[-22,45],[4,25],[32,11],[-30,37]],[[7973,5653],[41,-8],[31,30],[17,-13],[40,30]],[[5071,2554],[-65,-37],[-69,-24],[3,-27],[-25,-9],[8,-14],[-39,-16],[-23,-37],[-29,-9],[-16,12],[-38,-13],[-50,42],[-56,1],[2,-21],[-30,-6]],[[4626,2478],[-24,74],[-18,25],[-23,69]],[[8591,8467],[10,30],[-11,22],[-61,39],[-51,20],[9,52]],[[8487,8630],[4
 3,-23],[48,21],[-27,67],[32,23],[-6,27],[31,30],[33,8],[5,54]],[[8646,8837],[18,-19],[70,-33],[28,-4],[33,-21],[36,3],[65,-26],[5,-13],[132,-31],[8,-11],[54,17]],[[6222,3735],[42,-77],[31,-20],[12,-67],[23,-31],[18,15],[42,-50],[55,-118]],[[6650,4582],[33,46],[48,-25],[49,39],[-20,54],[11,17],[-7,29],[52,67],[13,41],[35,38]],[[6864,4888],[16,30],[48,26]],[[4457,3704],[16,65],[-5,59]],[[6864,4888],[-26,23],[-38,14],[-20,-18],[-30,37],[-26,-10],[-84,2],[-22,-33],[-15,8]],[[6767,5678],[37,20],[9,22],[27,-3],[20,53],[53,81],[69,68],[35,46]],[[7017,5965],[16,1],[9,-53],[8,-1]],[[7886,8570],[3,-34],[-17,-23],[32,-1],[22,17],[22,-21],[29,15],[68,-32],[50,10],[23,-21],[41,-18]],[[9493,3602],[-16,37],[-41,39],[-70,-11],[-15,38],[51,70],[40,21],[-13,25],[-34,17]],[[9428,3964],[-2,-30],[38,-17],[15,-37],[37,6],[58,29],[58,10],[23,17],[45,-20]],[[9700,3922],[-26,-45],[22,-13],[-7,-46],[-19,-38],[19,-27],[15,4],[-2,-49],[-10,-14],[57,-3]],[[9749,3691],[-3,-22],[-52,-55],[1,-66],[-37,-24],[20,-41
 ],[-5,-31],[-23,-54]],[[8589,3818],[-25,-1],[-40,-27],[-65,-5]],[[6175,6271],[4,31],[32,57],[-28,93],[-22,25],[26,14],[27,39]],[[6214,6530],[3,21],[36,-2],[18,46],[54,1],[3,-15],[35,0],[5,-20],[46,-9],[8,-53],[26,-11],[41,12]],[[6489,6500],[27,51],[30,24],[47,-20]],[[6272,6106],[-47,13],[-30,23],[2,44],[-36,46],[14,39]],[[8131,2105],[-14,27],[-30,92],[-18,20],[-51,89]],[[6489,6500],[-50,63],[-5,65],[56,102],[35,32],[21,86],[-21,47]],[[6836,6658],[0,-34],[28,-21],[3,-28]],[[7316,6435],[-26,11],[-39,-18],[-38,-30],[-9,-53],[-54,9],[1,11],[-39,0],[-46,-25]],[[2613,8595],[15,-41],[28,-46],[44,-43],[42,-27],[53,-13],[136,5],[62,-21],[48,-27]],[[3041,8382],[-46,-6],[-20,-31]],[[8209,8687],[-66,47],[-8,25],[-35,50],[-27,3],[-60,-12],[-32,-16],[-35,37]],[[8078,9138],[42,-62],[63,-63],[49,-26],[48,-15],[80,-3]],[[8360,8969],[-12,-79],[7,-33],[-19,-21],[-13,-45],[11,-75]],[[8334,8716],[-56,12],[-16,-8],[-22,35],[-19,-14],[10,-17],[-22,-37]],[[8278,4959],[11,-32],[-55,-57],[-6,-62],[11,-40],[4
 7,-8]],[[7017,5965],[20,37],[-20,26],[-28,-36],[-36,-29],[-22,13]],[[8646,8837],[20,71],[13,2],[9,39]],[[8688,8949],[46,-13],[56,-1],[114,-30],[63,-31],[27,5],[24,37],[26,83],[49,70]],[[4175,4663],[51,79],[8,51]],[[8209,8687],[25,-33],[-27,-49],[16,-24],[-2,-45],[11,-20],[-16,-22],[-41,17],[-9,-26]],[[7729,3835],[-9,-17],[12,-27],[-21,-19],[9,-23],[-34,-14],[-19,73],[-38,41],[-50,-18],[-4,7],[-50,-44],[-29,18],[-21,-7],[-31,-47]],[[3041,8382],[42,-15],[43,7],[42,48],[21,66],[6,80],[17,37],[38,35],[48,20],[33,0],[36,-15]],[[3367,8645],[-19,-143]],[[3348,8502],[-11,-68],[-16,-29],[17,-1],[-14,-60],[19,-5],[-24,-41],[-61,-17],[-3,-21],[-21,-1],[-10,-83],[-31,-51]],[[6200,3801],[41,-41],[34,-55],[18,-41],[49,28]],[[6342,3692],[0,34],[13,-29],[31,14],[13,32],[14,-1]],[[5526,9205],[99,1],[41,14],[21,49],[-6,63],[24,31],[55,44],[58,59],[72,2],[81,-40]],[[8487,8630],[-78,55],[-75,31]],[[8360,8969],[34,-2],[94,10],[151,-11],[49,-17]],[[7634,3416],[-2,69],[35,-3],[9,-30],[-7,-35],[13,-32],[12
 ,73],[0,40],[67,38],[-23,41],[-6,95],[-22,36],[46,12],[15,18],[-25,82]],[[8539,4682],[-3,27],[-26,33],[-8,28],[33,27],[-7,17],[44,1],[-5,38],[27,11],[-14,49],[20,7]],[[3460,8465],[-46,3],[5,30],[-71,4]],[[3367,8645],[86,-30],[78,-9],[69,-1],[129,23],[74,8],[44,-5],[77,-22],[24,-13]],[[6074,6290],[47,-18],[7,14],[47,-15]],[[6214,6530],[-46,-17],[1,63],[15,20],[-35,5],[22,82],[18,16],[36,-10],[11,30],[-11,38]],[[4185,2560],[51,26],[-28,32],[47,25],[10,29]],[[9700,3922],[27,-21],[26,30],[72,14],[19,38],[85,28],[15,65],[26,-8],[16,32],[13,-15],[-18,-50],[-29,-52],[12,-10],[-52,-56],[20,-10],[-18,-26],[8,-19],[-34,-37],[-11,-34],[-70,-44],[11,-42],[-42,-15],[-27,1]],[[4067,2529],[-61,62],[-24,49],[-29,33],[-9,45]],[[6235,1831],[-27,13]],[[1138,7434],[-18,-44],[28,-34],[-28,-13],[2,17],[-33,8],[-19,-10],[-43,-50],[-43,-5],[28,39],[5,27],[24,12],[2,28],[22,51],[-17,17],[12,46]],[[9417,8985],[53,-19],[74,-37],[-27,-30],[-64,-27]]],"transform":{"scale":[0.05026490626145121,-0.048004800480048
 01],"translate":[228.70060114587469,490]}}


[40/50] [abbrv] zest-qi4j git commit: Final cleanup

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/ToHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/ToHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/ToHelper.java
deleted file mode 100644
index ae9916b..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/ToHelper.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions.to;
-
-import org.geojson.GeoJsonObject;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-import static org.qi4j.library.spatial.projection.transformations.TTransformations.Transform;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class ToHelper {
-
-    private Module module;
-    private TGeometry intermediate;
-
-    public ToHelper(Module module, TGeometry intermediate)
-    {
-        this.module = module;
-        this.intermediate = intermediate;
-    }
-
-    public TGeometry toTGeometry()
-    {
-        return new TGeometryToConverter(module).convert(intermediate);
-    }
-
-    public TGeometry toTGeometry(String CRS) throws Exception
-    {
-        if (!intermediate.getCRS().equalsIgnoreCase(CRS))
-                Transform(module).from(intermediate).to(CRS) ;
-
-        return new TGeometryToConverter(module).convert(intermediate, CRS);
-    }
-
-
-
-    public GeoJsonObject toGeoJson()
-    {
-        return new GeoJsonToConverter(module).convert(intermediate);
-    }
-
-    private ToHelper() {}
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/FromHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/FromHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/FromHelper.java
new file mode 100644
index 0000000..68ab3d9
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/FromHelper.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions.from;
+
+import org.geojson.GeoJsonObject;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.formats.conversions.to.ToHelper;
+
+
+public class FromHelper
+{
+
+    private Module module;
+
+    public FromHelper(Module module)
+    {
+        this.module = module;
+    }
+
+    private FromHelper()
+    {
+    }
+
+    public ToHelper from(TGeometry tGeometry)
+    {
+        return new ToHelper(module, new TGeometryFromConverter(module).convert(tGeometry));
+    }
+
+    public ToHelper from(GeoJsonObject geoJsonObject)
+    {
+        return new ToHelper(module, new GeoJsonFromConverter(module).convert(geoJsonObject));
+
+    }
+
+    public ToHelper from(String wkt) throws Exception
+    {
+        return new ToHelper(module, new WKTFromConverter(module).convert(wkt, null));
+    }
+
+    public ToHelper from(String wkt, String crs) throws Exception
+    {
+        return new ToHelper(module, new WKTFromConverter(module).convert(wkt, crs));
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/GeoJsonFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/GeoJsonFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/GeoJsonFromConverter.java
new file mode 100644
index 0000000..70bbdb0
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/GeoJsonFromConverter.java
@@ -0,0 +1,200 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions.from;
+
+import org.geojson.*;
+import org.qi4j.api.geometry.*;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.internal.TLinearRing;
+import org.qi4j.api.structure.Module;
+
+import java.util.List;
+
+import static org.qi4j.api.geometry.TGeometryFactory.*;
+
+
+public class GeoJsonFromConverter
+{
+
+    private Module module;
+
+    public GeoJsonFromConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public TGeometry convert(GeoJsonObject geojson)
+
+    {
+        return transform(geojson);
+    }
+
+    private TGeometry transform(GeoJsonObject geojson)
+    {
+        if (geojson instanceof Point)
+        {
+            return createTPoint((Point) geojson);
+        } else if ((geojson instanceof MultiPoint) && !(geojson instanceof LineString))
+        {
+            return createTMultiPoint((MultiPoint) geojson);
+        } else if (geojson instanceof LineString)
+        {
+            return createTLineString((LineString) geojson);
+        } else if (geojson instanceof MultiLineString)
+        {
+            return createTMultiLineString((MultiLineString) geojson);
+        } else if (geojson instanceof Polygon)
+        {
+            return createTPolygon((Polygon) geojson);
+        } else if (geojson instanceof MultiPolygon)
+        {
+            return createTMultiPolygon((MultiPolygon) geojson);
+        } else if (geojson instanceof Feature)
+        {
+            return createTFeature((Feature) geojson);
+        } else if (geojson instanceof FeatureCollection)
+        {
+            return createTFeatureCollection((FeatureCollection) geojson);
+        } else throw new RuntimeException("Unknown GeoJSON type - " + geojson);
+    }
+
+
+    private TGeometry createTPoint(Point point)
+    {
+        return TPoint(module)
+                .x(point.getCoordinates().getLatitude())
+                .y(point.getCoordinates().getLongitude())
+                .z(point.getCoordinates().getAltitude())
+                .geometry();
+    }
+
+    private TGeometry createTMultiPoint(MultiPoint multiPoint)
+    {
+        TMultiPoint tMultiPoint = TMultiPoint(module).geometry();
+        for (LngLatAlt xyz : multiPoint.getCoordinates())
+        {
+            tMultiPoint.of
+                    (
+                            TPoint(module)
+                                    .x(xyz.getLatitude())
+                                    .y(xyz.getLongitude())
+                                    .z(xyz.getAltitude())
+                                    .geometry()
+                    );
+        }
+        return tMultiPoint;
+    }
+
+    private TGeometry createTLineString(LineString lineString)
+    {
+        TLineString tLineString = TLineString(module).of().geometry();
+
+        for (LngLatAlt xyz : lineString.getCoordinates())
+        {
+            tLineString.of(
+                    TPoint(module)
+                            .x(xyz.getLatitude())
+                            .y(xyz.getLongitude())
+                            .z(xyz.getAltitude())
+                            .geometry()
+            );
+        }
+        return tLineString;
+    }
+
+    private TGeometry createTMultiLineString(MultiLineString multiLineString)
+    {
+        TMultiLineString tMultiLineString = TMultiLineString(module).of().geometry();
+        for (List<LngLatAlt> coordinates : multiLineString.getCoordinates())
+        {
+            tMultiLineString.of(getLine(coordinates));
+        }
+        return tMultiLineString;
+    }
+
+    private TGeometry createTPolygon(Polygon polygon)
+    {
+        TPolygon tPolygon;
+        TLinearRing ring = getRing((polygon).getExteriorRing());
+        if (!ring.isValid())
+            throw new RuntimeException("Polygon shell not valid");
+        else
+            tPolygon = TPolygon(module).shell(ring).geometry();
+        for (int i = 0; i < (polygon).getInteriorRings().size(); i++)
+        {
+            tPolygon.withHoles(getRing((polygon).getInteriorRings().get(i)));
+        }
+        return tPolygon;
+    }
+
+    private TGeometry createTMultiPolygon(MultiPolygon multiPolygon)
+    {
+        TMultiPolygon tMultiPolygon = TMultiPolygon(module).of().geometry();
+        for (List<List<LngLatAlt>> polygons : multiPolygon.getCoordinates())
+        {
+            for (List<LngLatAlt> polygon : polygons)
+            {
+                tMultiPolygon.of(TPolygon(module).shell(getRing(polygon)).geometry());
+            }
+        }
+        return tMultiPolygon;
+    }
+
+    private TGeometry createTFeature(Feature feature)
+    {
+        return TFeature(module).of(new GeoJsonFromConverter(module).transform(feature.getGeometry())).geometry();
+    }
+
+    private TGeometry createTFeatureCollection(FeatureCollection featurecollection)
+    {
+        TFeatureCollection tFeatureCollection = TFeatureCollection(module).of().geometry();
+        for (Feature feature : featurecollection.getFeatures())
+        {
+            tFeatureCollection.of((TFeature) createTFeature(feature));
+        }
+        return tFeatureCollection;
+    }
+
+    private TLineString getLine(List<LngLatAlt> coordinates)
+    {
+        TLineString tLineString = TLineString(module).of().geometry();
+        for (LngLatAlt xyz : coordinates)
+        {
+            tLineString.yx(xyz.getLatitude(), xyz.getLongitude());
+        }
+        return tLineString;
+    }
+
+    private TLinearRing getRing(List<LngLatAlt> coordinates)
+    {
+
+        TLinearRing tLinearRing = TLinearRing(module).of().geometry();
+        for (LngLatAlt xyz : coordinates)
+        {
+            tLinearRing.yx(xyz.getLatitude(), xyz.getLongitude());
+        }
+
+        if (!tLinearRing.isClosed())
+        {
+            tLinearRing.of(tLinearRing.getStartPoint()); // hack here - we are closing the ring, of not closed.
+        }
+
+        return tLinearRing;
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/GeoJsonToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/GeoJsonToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/GeoJsonToConverter.java
new file mode 100644
index 0000000..366c98f
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/GeoJsonToConverter.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions.to;
+
+import org.geojson.GeoJsonObject;
+import org.geojson.Point;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+
+public class GeoJsonToConverter
+{
+
+
+    private Module module;
+
+    public GeoJsonToConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public GeoJsonObject convert(TGeometry intemediate)
+    {
+        return transform(intemediate);
+    }
+
+    private GeoJsonObject transform(TGeometry intemediate)
+    {
+
+        switch (intemediate.getType())
+        {
+            case POINT:
+                return buildPoint((TPoint) intemediate);
+            case MULTIPOINT:
+                return null;
+            case LINESTRING:
+                return null;
+            case MULTILINESTRING:
+                return null;
+            case POLYGON:
+                return null;
+            case MULTIPOLYGON:
+                return null;
+            case FEATURE:
+                return null;
+            case FEATURECOLLECTION:
+                return null;
+            default:
+                throw new RuntimeException("Unknown TGeometry Type.");
+        }
+
+    }
+
+    private Point buildPoint(TPoint point)
+    {
+        return new Point(point.x(), point.y());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/ProjectionsRegistry.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/ProjectionsRegistry.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/ProjectionsRegistry.java
deleted file mode 100644
index e82592f..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/ProjectionsRegistry.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.projection;
-
-import org.cts.CRSFactory;
-import org.cts.crs.CRSException;
-import org.cts.crs.CoordinateReferenceSystem;
-import org.cts.registry.*;
-
-import java.util.Set;
-
-
-public class ProjectionsRegistry {
-
-    protected static CRSFactory cRSFactory = new CRSFactory();
-
-
-    static {
-        RegistryManager registryManager = cRSFactory.getRegistryManager();
-        registryManager.addRegistry(new IGNFRegistry());
-        registryManager.addRegistry(new EPSGRegistry());
-        registryManager.addRegistry(new ESRIRegistry());
-        registryManager.addRegistry(new Nad27Registry());
-        registryManager.addRegistry(new Nad83Registry());
-        registryManager.addRegistry(new worldRegistry());
-    }
-
-
-    public Set<String> getSupportedSRID(String registryName) throws RegistryException
-    {
-        return cRSFactory.getSupportedCodes(registryName);
-    }
-
-    // EPSG, IGNF, ESRI
-    public Set<String> getSupportedRegistryCodes(String registryName) throws RegistryException {
-        return cRSFactory.getRegistryManager().getRegistry(registryName).getSupportedCodes();
-    }
-
-    public String[] dumpRegistries() {
-        return cRSFactory.getRegistryManager().getRegistryNames();
-    }
-
-    public CoordinateReferenceSystem getCRS(String wkt)  {
-        try {
-            return cRSFactory.getCRS(wkt);
-        } catch(CRSException _ex)
-        {
-            _ex.printStackTrace();
-            return null;
-        }
-    }
-
-
-        public CoordinateReferenceSystem getReferenceSystem(String csName) throws CRSException
-    {
-        return cRSFactory.getCRS(csName);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/TTransformations.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/TTransformations.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/TTransformations.java
deleted file mode 100644
index 1235a27..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/TTransformations.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.projection.transformations;
-
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.projection.transformations.fromto.FromHelper;
-
-
-public class TTransformations {
-
-    public static FromHelper Transform(Module module)
-    {
-        return new FromHelper(module);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/FromHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/FromHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/FromHelper.java
deleted file mode 100644
index e1fa78a..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/FromHelper.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.projection.transformations.fromto;
-
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.conversions.from.TGeometryFromConverter;
-
-
-public class FromHelper {
-
-    private Module module;
-
-    public FromHelper(Module module)
-    {
-        this.module = module;
-    }
-
-    private FromHelper() {}
-
-    public ToHelper from(TGeometry tGeometry)
-    {
-        return new ToHelper(module, new TGeometryFromConverter(module).convert(tGeometry));
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionsRegistry.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionsRegistry.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionsRegistry.java
new file mode 100644
index 0000000..119022b
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionsRegistry.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.projections;
+
+import org.cts.CRSFactory;
+import org.cts.crs.CRSException;
+import org.cts.crs.CoordinateReferenceSystem;
+import org.cts.registry.*;
+
+import java.util.Set;
+
+
+public class ProjectionsRegistry
+{
+
+    protected static CRSFactory cRSFactory = new CRSFactory();
+
+    static
+    {
+        RegistryManager registryManager = cRSFactory.getRegistryManager();
+        registryManager.addRegistry(new IGNFRegistry());
+        registryManager.addRegistry(new EPSGRegistry());
+        registryManager.addRegistry(new ESRIRegistry());
+        registryManager.addRegistry(new Nad27Registry());
+        registryManager.addRegistry(new Nad83Registry());
+        registryManager.addRegistry(new worldRegistry());
+    }
+
+
+    public Set<String> getSupportedSRID(String registryName) throws RegistryException
+    {
+        return cRSFactory.getSupportedCodes(registryName);
+    }
+
+    // EPSG, IGNF, ESRI
+    public Set<String> getSupportedRegistryCodes(String registryName) throws RegistryException
+    {
+        return cRSFactory.getRegistryManager().getRegistry(registryName).getSupportedCodes();
+    }
+
+    public String[] dumpRegistries()
+    {
+        return cRSFactory.getRegistryManager().getRegistryNames();
+    }
+
+    public CoordinateReferenceSystem getCRS(String wkt)
+    {
+        try
+        {
+            return cRSFactory.getCRS(wkt);
+        } catch (CRSException _ex)
+        {
+            throw new RuntimeException(_ex);
+        }
+    }
+
+
+    public CoordinateReferenceSystem getReferenceSystem(String csName) throws CRSException
+    {
+        return cRSFactory.getCRS(csName);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/fromto/FromHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/fromto/FromHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/fromto/FromHelper.java
new file mode 100644
index 0000000..f3ebe56
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/fromto/FromHelper.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.projections.transformations.fromto;
+
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.formats.conversions.from.TGeometryFromConverter;
+
+
+public class FromHelper
+{
+
+    private Module module;
+
+    public FromHelper(Module module)
+    {
+        this.module = module;
+    }
+
+    private FromHelper()
+    {
+    }
+
+    public ToHelper from(TGeometry tGeometry)
+    {
+        return new ToHelper(module, new TGeometryFromConverter(module).convert(tGeometry));
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/fromto/ToHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/fromto/ToHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/fromto/ToHelper.java
new file mode 100644
index 0000000..eb49068
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/fromto/ToHelper.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.projections.transformations.fromto;
+
+import org.cts.IllegalCoordinateException;
+import org.cts.crs.GeodeticCRS;
+import org.cts.op.CoordinateOperation;
+import org.cts.op.CoordinateOperationFactory;
+import org.qi4j.api.geometry.*;
+import org.qi4j.api.geometry.internal.Coordinate;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.projections.ProjectionsRegistry;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+
+public class ToHelper
+{
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(ToHelper.class);
+
+
+    private Module module;
+    private TGeometry intermediate;
+    private double maxPrecisionMeanConversionError = Double.MAX_VALUE;
+
+    public ToHelper(Module module, TGeometry intermediate)
+    {
+        this.module = module;
+        this.intermediate = intermediate;
+    }
+
+    private ToHelper()
+    {
+    }
+
+
+    public void to(String CRS, double maxPrecisionMeanConversionError) throws RuntimeException
+    {
+        this.maxPrecisionMeanConversionError = maxPrecisionMeanConversionError;
+        to(CRS);
+    }
+
+    public void to(String CRS) throws RuntimeException
+    {
+        try
+        {
+            GeodeticCRS sourceCRS = (GeodeticCRS) new ProjectionsRegistry().getCRS(intermediate.getCRS());
+            GeodeticCRS targetCRS = (GeodeticCRS) new ProjectionsRegistry().getCRS(CRS);
+
+            if (sourceCRS.equals(targetCRS))
+            {
+                return;
+            }
+            switch (intermediate.getType())
+            {
+                case POINT:
+                    transform(sourceCRS, targetCRS, new Coordinate[]{((TPoint) intermediate).getCoordinate()});
+                    break;
+                case MULTIPOINT:
+                    transform(sourceCRS, targetCRS, ((TMultiPoint) intermediate).getCoordinates());
+                    break;
+                case LINESTRING:
+                    transform(sourceCRS, targetCRS, ((TLineString) intermediate).getCoordinates());
+                    break;
+                case MULTILINESTRING:
+                    transform(sourceCRS, targetCRS, ((TMultiLineString) intermediate).getCoordinates());
+                    break;
+                case POLYGON:
+                    transform(sourceCRS, targetCRS, ((TPolygon) intermediate).getCoordinates());
+                    break;
+                case MULTIPOLYGON:
+                    transform(sourceCRS, targetCRS, ((TMultiPolygon) intermediate).getCoordinates());
+                    break;
+                case FEATURE:
+                    transform(sourceCRS, targetCRS, ((TFeature) intermediate).getCoordinates());
+                    break;
+                case FEATURECOLLECTION:
+                    transform(sourceCRS, targetCRS, ((TFeatureCollection) intermediate).getCoordinates());
+                    break;
+            }
+
+            // JJ TODO - Set nested TGeometries CRSs as well
+            intermediate.setCRS(targetCRS.getCode());
+        } catch (Exception _ex)
+        {
+            throw new RuntimeException(_ex);
+        }
+    }
+
+
+    private void transformTPoint(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TPoint tPoint) throws Exception
+    {
+        transform(sourceCRS, targetCRS, new Coordinate[]{tPoint.getCoordinate()});
+        tPoint.setCRS(targetCRS.getCode());
+    }
+
+    private void transformTMultiPoint(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TMultiPoint tMultiPoint) throws Exception
+    {
+        transform(sourceCRS, targetCRS, tMultiPoint.getCoordinates());
+        tMultiPoint.setCRS(targetCRS.getCode());
+        // tMultiPoint.
+    }
+
+    private void transformTLineString(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TLineString tLineString) throws Exception
+    {
+
+        transform(sourceCRS, targetCRS, tLineString.getCoordinates());
+        tLineString.setCRS(targetCRS.getCode());
+        // tMultiPoint.
+    }
+
+
+    private void transform(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, Coordinate... coordinates) throws IllegalCoordinateException
+    {
+        List<CoordinateOperation> ops;
+        ops = CoordinateOperationFactory.createCoordinateOperations(sourceCRS, targetCRS);
+
+        if (!ops.isEmpty())
+        {
+            if (true)
+            {
+                LOGGER.trace("Projection conversion operations", ops.get(0));
+                LOGGER.trace("Projection precision", ops.get(0).getPrecision(), " m.");
+            }
+
+            if (maxPrecisionMeanConversionError < Double.MAX_VALUE && maxPrecisionMeanConversionError < ops.get(0).getPrecision())
+                throw new RuntimeException("Transformation from " + sourceCRS.getCode() + " to " + targetCRS.getCode() +
+                        " can not be done with the requested precision of " + maxPrecisionMeanConversionError + " meters." +
+                        " Current precision mean conversion error is " + ops.get(0).getPrecision() + " meters.");
+
+            for (Coordinate coordinate : coordinates)
+            {
+                double[] c = ops.get(0).transform(new double[]{coordinate.y(), coordinate.x() /** z */});
+                coordinate.y(c[1]).x(c[0]);
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsFromWktTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsFromWktTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsFromWktTest.java
deleted file mode 100644
index 82f7455..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsFromWktTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.qi4j.library.spatial.conversions;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.junit.Test;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.spatial.assembly.TGeometryAssembler;
-import org.qi4j.test.AbstractQi4jTest;
-
-
-/**
- * Created by jj on 04.12.14.
- */
-public class ConversionsFromWktTest extends AbstractQi4jTest {
-
-    private final String CRS_EPSG_4326 = "EPSG:4326";
-    private final String CRS_EPSG_27572 = "EPSG:27572";
-    private ObjectMapper GeoJsonMapper = new ObjectMapper();
-
-    @Override
-    public void assemble(ModuleAssembly module)
-            throws AssemblyException {
-        new TGeometryAssembler().assemble(module);
-    }
-
-    @Test
-    public void WhenConvertFromWktToTGeometry() throws Exception {
-        TPoint tPoint = (TPoint) TConversions.Convert(module).from("POINT(11.57958981111 48.13905780941111 )", CRS_EPSG_27572).toTGeometry();
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsWithProjectionsTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsWithProjectionsTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsWithProjectionsTest.java
deleted file mode 100644
index ddcde72..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsWithProjectionsTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.geojson.FeatureCollection;
-import org.junit.Test;
-import org.qi4j.api.geometry.TFeatureCollection;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.spatial.assembly.TGeometryAssembler;
-import org.qi4j.library.spatial.topo.GeoJSONSwissLakes2013;
-import org.qi4j.library.spatial.projection.transformations.TTransformations;
-import org.qi4j.test.AbstractQi4jTest;
-
-import static org.junit.Assert.assertTrue;
-import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
-import static org.qi4j.library.spatial.conversions.TConversions.Convert;
-
-
-public class ConversionsWithProjectionsTest extends AbstractQi4jTest {
-
-    private final String CRS1 = "EPSG:4326";
-    private ObjectMapper geoJsonMapper = new ObjectMapper();
-
-
-    @Override
-    public void assemble(ModuleAssembly module)
-            throws AssemblyException {
-        new TGeometryAssembler().assemble(module);
-    }
-
-    @Test
-    public void whenConvertFromTGeometryToTGeometryConvertProjections() throws Exception {
-        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
-        TPoint tPoint2 = (TPoint) Convert(module).from(tPoint1).toTGeometry(CRS1);
-        assertTrue(tPoint1.compareTo(tPoint2) == 0);
-    }
-
-
-    @Test
-    public void whenConvertSwissLakesTranslateProjection() throws Exception
-    {
-        // convert from CH1903 (EPSG:21781) to EPSG:4326
-//        TFeatureCollection swisslakes =  (TFeatureCollection)Convert(module).from(geoJsonMapper.readValue(GeoJSONSwissLakes2013.SWISS_LAKES, FeatureCollection.class))
-//         .toTGeometry("EPSG:21781");
-
-        FeatureCollection featureCollection = geoJsonMapper.readValue(GeoJSONSwissLakes2013.SWISS_LAKES, FeatureCollection.class);
-        TFeatureCollection tFeatureCollection = (TFeatureCollection)Convert(module).from(featureCollection).toTGeometry();
-        tFeatureCollection.setCRS("EPSG:21781");
-        System.out.println(tFeatureCollection.getCoordinates().length);
-        System.out.println(tFeatureCollection.getNumPoints());
-
-        TTransformations.Transform(module).from(tFeatureCollection).to("EPSG:4326");
-
-        System.out.println("tFeatureCollection " + tFeatureCollection);
-
-        // tFeatureCollection.getCoordinates();
-
-
- /**
-        TFeatureCollection tFeatureCollection = (TFeatureCollection)Convert(module).from(featureCollection).toTGeometry("EPSG:21781");
-        System.out.println(tFeatureCollection);
-        TTransformations.Transform(module).from(tFeatureCollection).to("EPSG:4326");
-        System.out.println(tFeatureCollection);
-  */
-    }
-
-}


[18/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ju-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ju-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ju-municipalities.json
deleted file mode 100644
index e8be059..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ju-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":6702,"properties":{"name":"Boécourt"},"arcs":[[[-4,-17,-47,-113,-120]]]},{"type":"MultiPolygon","id":6703,"properties":{"name":"Bourrignon"},"arcs":[[[112,-46,-91,-62,113]]]},{"type":"MultiPolygon","id":6704,"properties":{"name":"Châtillon (JU)"},"arcs":[[[-7,-117,168,-131,169,170]]]},{"type":"MultiPolygon","id":6705,"properties":{"name":"Corban"},"arcs":[[[-38,155,156,157,-141]]]},{"type":"MultiPolygon","id":6706,"properties":{"name":"Courchapoix"},"arcs":[[[-37,164,-156]]]},{"type":"MultiPolygon","id":6708,"properties":{"name":"Courrendlin"},"arcs":[[[128,129,130,131,-58,-76,132]]]},{"type":"MultiPolygon","id":6709,"properties":{"name":"Courroux"},"arcs":[[[74,75,-65,76,77,-35]]]},{"type":"MultiPolygon","id":6710,"properties":{"name":"Courtételle"},"arcs":[[[-6,114,-60,115,116]]]},{"type":"MultiPolygon","id":6711,"properties":{"name":"Delémont"},"arcs":[[[57,58
 ,59,60,61,62,63,64]]]},{"type":"MultiPolygon","id":6712,"properties":{"name":"Develier"},"arcs":[[[-5,119,-114,-61,-115]]]},{"type":"MultiPolygon","id":6713,"properties":{"name":"Ederswiler"},"arcs":[[[-152,-93,175]]]},{"type":"MultiPolygon","id":6715,"properties":{"name":"Mervelier"},"arcs":[[[-39,140,141,142]]]},{"type":"MultiPolygon","id":6716,"properties":{"name":"Mettembert"},"arcs":[[[-63,-95,-151,-162]]]},{"type":"MultiPolygon","id":6718,"properties":{"name":"Movelier"},"arcs":[[[150,-94,151,152,153]]]},{"type":"MultiPolygon","id":6719,"properties":{"name":"Pleigne"},"arcs":[[[90,-45,91,92,93,94]]]},{"type":"MultiPolygon","id":6720,"properties":{"name":"Rebeuvelier"},"arcs":[[[-133,-75,-34,149]]]},{"type":"MultiPolygon","id":6721,"properties":{"name":"Rossemaison"},"arcs":[[[-116,-59,-132,-169]]]},{"type":"MultiPolygon","id":6722,"properties":{"name":"Saulcy"},"arcs":[[[154,-121,-96,-1]]]},{"type":"MultiPolygon","id":6724,"properties":{"name":"Soyhières"},"arcs":[[[-64,161,-
 154,162,-77]]]},{"type":"MultiPolygon","id":6728,"properties":{"name":"Vellerat"},"arcs":[[[-170,-130,176]]]},{"type":"MultiPolygon","id":6729,"properties":{"name":"Haute-Sorne"},"arcs":[[[0,1,2,3,4,5,6,7]]]},{"type":"MultiPolygon","id":6730,"properties":{"name":"Val Terbi"},"arcs":[[[33,34,35,36,37,38,39]],[[-142,-158,160]]]},{"type":"MultiPolygon","id":6741,"properties":{"name":"Le Bémont (JU)"},"arcs":[[[-31,122,-83,123]]]},{"type":"MultiPolygon","id":6742,"properties":{"name":"Les Bois"},"arcs":[[[47,48]]]},{"type":"MultiPolygon","id":6743,"properties":{"name":"Les Breuleux"},"arcs":[[[135,-69,-135,136,137]]]},{"type":"MultiPolygon","id":6744,"properties":{"name":"La Chaux-des-Breuleux"},"arcs":[[[-137,-134,-25,174]]]},{"type":"MultiPolygon","id":6745,"properties":{"name":"Les Enfers"},"arcs":[[[-30,-119,-86,163,-84,-123]],[[-33]]]},{"type":"MultiPolygon","id":6748,"properties":{"name":"Les Genevez (JU)"},"arcs":[[[-90,106,107]]]},{"type":"MultiPolygon","id":6750,"properties":{
 "name":"Lajoux (JU)"},"arcs":[[[-107,-89,-97,120,121]]]},{"type":"MultiPolygon","id":6751,"properties":{"name":"Montfaucon"},"arcs":[[[81,82,83,84,85,86,-10,87,88,89]]]},{"type":"MultiPolygon","id":6753,"properties":{"name":"Muriaux"},"arcs":[[[-68,-26,133,134]],[[-70,-136,165]]]},{"type":"MultiPolygon","id":6754,"properties":{"name":"Le Noirmont"},"arcs":[[[65,-48,66,-27,67,68,69]]]},{"type":"MultiPolygon","id":6757,"properties":{"name":"Saignelégier"},"arcs":[[[24,25,26,27,28,29,30,31],[32]]]},{"type":"MultiPolygon","id":6758,"properties":{"name":"Saint-Brais"},"arcs":[[[95,96,-88,-9,-2]],[[-164,-85]]]},{"type":"MultiPolygon","id":6759,"properties":{"name":"Soubey"},"arcs":[[[117,-11,-87,118,-29]]]},{"type":"MultiPolygon","id":6771,"properties":{"name":"Alle"},"arcs":[[[138,-80,-102,-125,139,-42]]]},{"type":"MultiPolygon","id":6773,"properties":{"name":"Beurnevésin"},"arcs":[[[-111,-168,-172,173]]]},{"type":"MultiPolygon","id":6774,"properties":{"name":"Boncourt"},"arcs":[[[-54,
 145]]]},{"type":"MultiPolygon","id":6775,"properties":{"name":"Bonfol"},"arcs":[[[108,109,110,111]]]},{"type":"MultiPolygon","id":6778,"properties":{"name":"Bure"},"arcs":[[[-22,102,103,-52,104,-99,105]]]},{"type":"MultiPolygon","id":6781,"properties":{"name":"Coeuve"},"arcs":[[[124,-101,125,-50,126,127]]]},{"type":"MultiPolygon","id":6782,"properties":{"name":"Cornol"},"arcs":[[[-15,-81,-139,-41]]]},{"type":"MultiPolygon","id":6783,"properties":{"name":"Courchavon"},"arcs":[[[-100,-105,-51,-126]]]},{"type":"MultiPolygon","id":6784,"properties":{"name":"Courgenay"},"arcs":[[[-14,-74,78,79,80]]]},{"type":"MultiPolygon","id":6785,"properties":{"name":"Courtedoux"},"arcs":[[[-23,-106,-98,-72]]]},{"type":"MultiPolygon","id":6787,"properties":{"name":"Damphreux"},"arcs":[[[-127,-57,166,167,-110,-144]]]},{"type":"MultiPolygon","id":6789,"properties":{"name":"Fahy"},"arcs":[[[158,-103,-21,159,-148]]]},{"type":"MultiPolygon","id":6790,"properties":{"name":"Fontenais"},"arcs":[[[70,-24,71,72
 ,73,-13]]]},{"type":"MultiPolygon","id":6792,"properties":{"name":"Grandfontaine"},"arcs":[[[146,147,148,-19]]]},{"type":"MultiPolygon","id":6793,"properties":{"name":"Lugnez"},"arcs":[[[171,-167,-56,172]]]},{"type":"MultiPolygon","id":6800,"properties":{"name":"Porrentruy"},"arcs":[[[-73,97,98,99,100,101,-79]]]},{"type":"MultiPolygon","id":6803,"properties":{"name":"Rocourt"},"arcs":[[[-149,-160,-20]]]},{"type":"MultiPolygon","id":6806,"properties":{"name":"Vendlincourt"},"arcs":[[[-140,-128,143,-109,144,-43]]]},{"type":"MultiPolygon","id":6807,"properties":{"name":"Basse-Allaine"},"arcs":[[[49,50,51,52,53,54,55,56]]]},{"type":"MultiPolygon","id":6808,"properties":{"name":"Clos du Doubs"},"arcs":[[[-3,8,9,10,11,12,13,14,15,16]]]},{"type":"MultiPolygon","id":6809,"properties":{"name":"Haute-Ajoie"},"arcs":[[[17,18,19,20,21,22,23]]]},{"type":"MultiPolygon","id":6810,"properties":{"name":"La Baroche"},"arcs":[[[-16,40,41,42,43,44,45,46]]]}]}},"arcs":[[[4661,4037],[28,52],[10,99],[87,1
 35],[26,19],[13,28],[-1,65],[13,31],[34,35],[33,-1],[5,31],[-34,44],[-18,10],[-21,30],[-32,23],[-35,8],[-35,-2],[-63,49],[-39,-5],[-19,-37],[-14,8],[-12,58],[-51,-51],[-20,-27],[-22,9],[-26,-23],[-32,-42],[-26,-53],[11,-39],[-38,-25],[-65,-30],[24,-58],[-9,-18],[-71,-93],[-3,-24],[-41,-35],[-64,-15],[-7,9]],[[4147,4202],[0,67],[40,40],[17,25],[41,138],[-41,33],[-11,39],[1,30],[28,88],[28,-3],[21,9],[33,42],[60,147]],[[4364,4857],[36,12],[44,81],[8,4],[37,72],[24,33],[-11,19],[59,35],[44,50],[35,76],[63,105],[35,65],[25,63],[34,39],[70,37],[26,23]],[[4893,5571],[130,-99],[86,-63],[3,24],[56,-53],[53,-21],[2,10],[43,-9],[37,-31],[33,4],[10,19],[29,17],[12,23],[55,181],[1,24],[48,49],[12,25],[16,58],[21,59],[25,30],[62,45],[52,52],[42,124]],[[5721,6039],[70,-18],[52,-49],[23,-56],[63,-83],[50,-42],[24,-32],[4,-53],[15,-56],[30,-44],[26,-24],[44,-18],[37,-41],[32,-13],[48,3],[43,18],[87,62]],[[6369,5593],[-4,-33],[15,-83],[-26,-18],[26,-94],[16,7],[23,-108],[-11,-18],[3,-33],[10,5],[9,-
 133],[-2,-113],[-9,-179],[-1,-152],[-6,-78],[-15,-91],[40,-19],[154,-28],[61,-16],[33,-3],[101,-32],[106,-12],[5,8]],[[6897,4370],[32,-8]],[[6929,4362],[-43,-81],[-26,-41],[-12,-55],[-77,-76],[-49,-40],[-27,-44],[-52,-103],[-89,-30],[-51,-38],[-73,-12],[-53,-15],[-84,-32],[-56,-9],[-23,12],[-3,-20],[-24,-3],[-70,-24],[-49,4],[-105,39],[-71,39],[-28,3],[-37,-12],[-2,-35],[-74,-11],[-49,7],[-95,-5],[-42,15],[-100,70],[-123,-1],[-119,52],[-21,-5],[-45,-27],[-48,71],[-7,18],[42,78],[-45,21],[-117,12],[-42,-2],[-94,-29],[-33,14],[-125,-20],[-27,-10]],[[4364,4857],[-6,14],[-45,0],[-6,20],[58,3],[22,30],[-18,41],[33,20],[5,19],[-22,2],[-38,-19],[-10,99],[-20,62],[-23,-9],[-38,-1],[-34,15],[-33,38],[-60,27],[-24,-27],[-2,-43],[10,-59],[-9,-49],[-12,-12],[-71,-12],[-27,-11],[-63,-39],[-76,-35],[-70,-54],[-49,-10],[-33,-20],[-13,-66],[-9,-20],[11,-16],[37,5],[32,-19],[3,-20],[28,-38],[-61,-2],[-61,-10],[-61,-23],[-19,-53]],[[3590,4585],[-26,13],[-68,-10],[-123,12],[-22,-13]],[[3351,4587],[-18
 ,63],[-81,-16],[-24,12],[32,17],[-29,90],[-10,-5],[-5,31],[-17,-23],[-48,61],[-21,-10],[-13,14],[-5,-21],[-21,7],[-2,-17],[-80,-101],[-34,-2],[-32,47],[5,20],[-33,11],[-48,-6],[-22,24],[15,38],[-1,34],[-20,75],[-93,16],[-26,33],[-2,36]],[[2718,5015],[35,-11],[86,-43],[33,1],[158,222],[-57,23],[12,6],[-10,35],[31,26],[-11,19],[11,13],[63,29],[37,122],[-16,13],[-65,71],[-19,13],[-73,8],[8,63],[34,46],[-15,79],[2,69],[-17,31],[-10,47],[0,52],[-20,26],[-22,8],[-52,47],[-69,-7],[-46,-18],[-8,37],[-1,95]],[[2717,6137],[91,40],[103,13],[51,1],[13,-14],[51,6],[41,29],[52,27],[39,9],[-2,-31],[28,-6],[17,-15],[57,-3],[41,6],[-2,-11],[31,-22],[53,4],[29,-12],[30,14]],[[3440,6172],[37,-13],[89,30],[95,86],[37,8],[7,23],[-29,0],[-1,25],[34,6],[20,17],[21,-17],[-8,-16],[23,0],[24,14],[29,-9],[30,10],[-2,-13],[24,-28],[27,37],[4,-14],[23,28],[-3,39],[23,57],[17,-23],[4,-44],[19,10],[28,-27],[29,30],[45,20],[22,-4],[80,3],[33,45],[39,-24],[59,-12],[56,14],[35,19],[25,-10],[69,56],[44,44]],[[4548,65
 39],[29,27],[92,32],[29,22]],[[4698,6620],[18,-46],[6,-43],[17,-65],[31,21],[24,5],[18,21],[-1,-56],[14,-89],[27,-10],[15,22],[32,23],[18,1],[23,21],[23,-39],[88,-41],[30,25],[47,2],[15,-17],[42,-83]],[[5185,6272],[5,-63],[13,-24],[-30,-92],[-43,-71],[-21,-27],[-34,-23],[-27,-42],[-29,25],[-36,-124],[-7,-42],[-19,-61],[-15,-14],[-49,-143]],[[2412,6278],[-39,-68],[-27,-66],[-77,-56],[-44,-46],[-33,-25],[-28,-10],[-96,17],[-45,-4],[-47,-25],[-52,-40],[-22,-10],[-13,-23],[-56,24],[-1,-16],[-33,-24],[-32,-9],[-23,30],[-45,-28],[-32,5],[-31,-11],[-34,8],[-22,-9],[-4,27],[-26,-13],[-58,-8],[-45,-43],[-45,5],[-62,-8],[-27,26],[-40,-25],[-86,-67],[-6,8],[-57,-3],[-34,22],[-17,38],[-168,62],[-25,-2],[-32,-49],[-14,16],[-43,12],[-20,-70],[-16,1],[-80,-64],[-5,-18],[-55,-25],[-52,5],[3,147],[9,37],[35,60],[10,50],[7,76],[17,50],[-9,46],[-9,107],[31,53],[38,50],[71,71],[32,24],[-10,51],[23,14],[115,8]],[[926,6563],[6,-21],[33,11],[50,-22],[3,-39],[51,33],[68,17],[38,-1],[11,-40],[33,1],[26,-12]
 ,[39,-3],[100,25],[41,-4],[14,-136],[-3,-34],[7,-42],[24,-32],[8,-35],[12,26],[13,-3],[41,26],[24,4],[44,20],[6,-82],[14,-2]],[[1629,6218],[5,-3],[38,42],[89,17],[29,26],[16,85],[2,44],[17,65],[13,91],[13,39],[26,107],[-14,17],[19,27],[-33,-12],[-10,9],[-7,53],[-60,77],[-14,46],[11,62],[-4,63],[-14,133]],[[1751,7206],[-5,34],[17,24],[26,97],[28,24],[30,12],[0,13],[28,-15],[9,73],[11,-3],[57,83]],[[1952,7548],[132,-7],[50,11],[23,41],[42,24],[4,-26],[43,16],[9,21]],[[2255,7628],[24,-66],[21,-18],[-8,-8],[24,-19],[65,-81],[22,6],[4,-18],[41,-48],[46,-82],[-4,-25],[12,-38],[38,-75],[10,-9],[9,-52],[17,-38],[31,-32],[28,0],[15,-14],[-2,-40],[-11,-13],[4,-61],[12,-1]],[[2653,6896],[-10,-13],[-29,-6],[-22,11],[-51,-37],[-25,-50],[-9,-42],[-5,-179],[-16,-94],[-7,-1],[-11,-77],[-28,-14],[-14,-27],[-14,-89]],[[2880,2140],[-9,-3],[-40,31],[-25,-8],[-67,63],[-15,54],[-28,-16],[-2,50],[-33,-13],[-4,15],[-35,-15],[-60,-11],[-16,24],[35,58],[-9,12],[-58,-69],[-9,12]],[[2505,2324],[-16,42],[-23,-1
 3],[-28,47],[-22,62],[-24,-12],[-15,55],[-20,30],[0,25],[-15,-9],[-21,29],[-16,-8],[-32,85],[10,5],[-8,28],[-28,-11],[-7,16],[-37,15],[-57,4],[-13,35],[-32,0],[-19,70],[-7,-7],[-39,71],[-39,35],[-9,-28],[-37,-24],[-32,15],[-55,-34],[-21,5],[-10,18],[-32,-44],[-13,-32],[0,-36],[-13,-40],[-15,-77],[-1,-27],[-60,-61],[-34,-23],[-46,-20],[-28,-66]],[[1591,2444],[-58,-18],[-11,20],[-45,-32],[27,-45],[-75,5]],[[1429,2374],[6,47],[-4,41],[19,17],[44,21],[32,29],[23,39],[46,25],[15,22],[-2,24],[-17,23],[-29,68],[-42,46],[-25,47],[-2,55],[-10,44],[29,42],[19,45],[19,75],[8,62],[-21,106],[2,26],[25,65],[-2,33],[-29,63],[-28,97],[-37,93],[5,54],[-17,40],[-45,75],[3,47],[44,47],[58,88],[33,16],[85,7],[42,-25],[30,-1],[90,37],[55,-40],[36,17],[15,32],[-1,74],[7,20],[39,0],[39,-30],[22,3],[50,23],[9,11],[36,2],[51,-31],[26,2],[23,22],[26,37],[20,52],[39,55],[54,-15]],[[2342,4248],[24,-27],[0,-34]],[[2366,4187],[-72,35],[-33,-35],[-12,-32],[-22,-37],[-52,-54],[-33,-2],[11,-45],[0,-49],[27,-34],[-1
 6,-37],[32,-6],[5,-22],[39,12],[11,-30],[-19,-29],[11,-29],[-23,-14],[16,-37],[15,3],[100,66],[30,23],[52,28],[91,34],[18,17],[41,-122],[10,-19],[9,-64]],[[2602,3708],[-65,-44],[-54,-30],[-59,-26],[2,-16],[-21,-17],[-63,-32],[-39,-12],[-21,-52],[-10,-73],[20,-7],[7,-22],[33,-28],[-38,-72],[-64,-40],[15,-28],[6,-58],[67,-12],[4,-49],[31,-32],[19,-37],[44,-111],[19,24],[29,21],[6,-10],[35,33],[26,-14],[11,8],[30,-15],[41,-78],[27,-29],[12,-79],[13,12],[30,-44],[71,54],[32,18],[50,-92],[22,16],[21,-49],[32,22],[70,-54],[-2,-39],[-24,-5],[-2,-38],[26,-6],[31,-40]],[[3022,2526],[-5,-27],[11,-24],[-16,-22],[0,-27],[16,-68],[7,-70],[8,-23],[-48,-52],[-52,-34],[-18,-6],[-45,-33]],[[2125,3878],[20,5],[10,31],[-21,8],[4,20],[-21,11],[-29,-25],[4,-39],[26,5],[7,-16]],[[8387,4438],[-5,85],[-15,368],[-9,81],[-71,33],[-53,32],[-54,22],[-35,-8],[-52,2],[-20,18],[-48,25],[-36,31],[-37,-54],[-34,19],[5,23],[-31,53]],[[7892,5168],[-36,67],[-35,111],[-11,18],[-6,54],[6,64],[-15,106],[-11,7],[15,102],[
 -21,26],[7,53],[8,-20],[24,6],[37,-45],[10,15],[31,5],[-7,35],[49,8],[1,-11],[59,-9],[19,62],[15,25],[-1,27],[35,38],[62,114],[24,53],[18,66],[2,54],[33,89],[18,9],[45,48],[33,58]],[[8300,6403],[56,62],[48,-46],[19,-10],[25,-48],[24,-21],[60,-37],[11,-31]],[[8543,6272],[-58,-69],[-28,-80],[-17,-90],[-1,-27],[-26,-141],[0,-105],[-23,-54],[-50,-156],[7,-36],[-15,9],[-5,-34],[3,-54],[12,-54],[41,-113],[7,-66],[9,-32],[-5,-32],[7,-48],[45,-34],[38,-72],[20,47],[82,46],[46,13],[62,42]],[[8694,5132],[47,8],[41,16],[69,17],[53,24],[60,1],[49,9]],[[9013,5207],[73,0],[84,17],[101,-233],[33,-30],[157,-35],[113,-90]],[[9574,4836],[52,-44],[63,0],[26,7],[135,7],[20,16],[20,0],[51,31],[58,-26],[-107,-70],[-77,-25],[-210,-76],[-34,-26],[-77,-48],[-99,-116],[-41,-33],[-28,-33],[-29,-8],[-37,-41],[-32,-10],[-70,-60],[-6,-21],[-19,-6],[-26,19],[-58,-22],[-50,3],[-17,19],[-87,64],[-11,3],[-4,30],[-31,25],[-82,-3],[-40,8],[-67,-15],[-35,-3],[-103,25],[-37,16],[-66,14],[-32,1]],[[4698,6620],[52,43],[71
 ,68],[21,5],[-23,58],[-22,96],[16,22],[-12,56],[-12,-8],[-16,16],[29,107],[-18,35],[-21,73],[-8,46],[-43,163],[-6,-3],[-33,101],[-10,-8],[-30,78],[-41,61],[-84,52],[-29,36],[-31,16],[-77,11]],[[4371,7744],[-21,89],[9,23],[-28,184],[19,8],[-6,39],[23,55]],[[4367,8142],[9,36],[34,24],[30,2],[59,-12],[44,17],[0,10],[69,28]],[[4612,8247],[50,4],[25,-5],[234,-113],[36,-44],[9,-58],[57,-8],[79,12],[20,-19],[34,27],[20,4],[16,20],[73,29],[44,23],[37,33],[34,8],[48,-4],[60,-36],[31,-45],[45,-106],[-19,-76],[21,-58],[66,-21],[27,-36],[-4,-52],[11,-72],[-12,-32]],[[5654,7622],[-16,-36],[-7,5],[-36,-38],[-30,-49],[-16,0],[-36,-28],[-15,1],[8,-50],[-1,-43],[16,-47]],[[5521,7337],[-16,-15],[-43,-2],[-38,-57],[-78,-98],[-1,-131],[12,-45],[20,-132],[65,-219],[-35,-66],[-2,-24]],[[5405,6548],[-44,23],[-4,-13],[-28,-4],[-24,-26],[-9,-28],[-15,-82],[-51,-88],[-45,-58]],[[686,1546],[28,-28],[10,-23],[23,62],[46,-14],[61,-25],[11,-19],[45,-17],[33,24],[19,-51],[18,-29],[76,79],[12,-44],[24,-48],[62,-80
 ],[174,-114],[53,-74],[31,-60],[10,5],[30,-99],[8,-10]],[[1460,981],[-55,-23],[-9,-22],[-9,-60],[13,-22],[-19,-27],[-22,-134],[-116,-163],[-151,-125],[-34,-16],[7,-16],[-46,-30],[-58,-92],[-14,-14],[-6,21],[-12,-14],[9,-22],[-34,-21],[4,-14],[-84,-45],[-24,-7],[-35,-29],[-48,-12],[-47,-41],[-19,-26],[-32,-5],[-23,-22],[-12,36],[-4,42],[-40,31],[3,118],[-40,69],[-68,375],[-121,-159],[-26,-80],[-40,-2],[-31,9],[-12,14],[-37,13],[-20,-17],[-53,-5],[-59,36],[-36,104],[20,36],[46,30],[42,41],[19,8],[45,46],[52,28],[62,53],[40,27],[21,49],[7,57],[17,31],[63,-16],[31,14],[6,14],[-12,85],[7,58],[18,53],[49,89],[0,18],[17,62],[10,49],[33,20],[25,46],[26,33],[39,19],[3,12]],[[3214,8870],[-1,-62],[25,-69],[39,-84],[16,-52],[-28,-56],[-61,-50],[-1,-42]],[[3203,8455],[-47,-26],[-13,-15],[-56,-19],[-38,-49],[-4,19],[-41,-10],[-70,15],[-36,3],[-59,-4],[-22,11],[-24,-18],[-108,-67],[-13,-17],[-21,23],[-42,-12],[-13,23],[-26,9]],[[2570,8321],[11,26],[30,12],[-46,157],[-92,152],[-18,23],[-50,27],[-6,
 22],[-77,47],[-56,26]],[[2266,8813],[-15,71],[10,64]],[[2261,8948],[22,76],[0,27],[22,52],[9,45],[119,15],[50,14],[-11,8],[-12,48],[2,45],[16,31],[42,41],[0,44],[19,81],[7,2],[6,50],[65,15],[16,-8],[32,45],[74,139],[30,83]],[[2769,9801],[87,17],[18,9],[67,-68],[43,-28],[44,-3],[35,11],[36,-1],[29,-23],[128,-63],[6,-74],[32,-44]],[[3294,9534],[0,-101],[-8,-56],[-5,-126],[-6,-35],[6,-86]],[[3281,9130],[-21,-29],[-30,-29],[-11,-30],[-44,-23],[35,-82],[4,-67]],[[7291,5773],[-72,-6],[7,-84],[-13,-21],[-2,-60],[-37,-29],[-4,-28],[-32,-6]],[[7138,5539],[-12,38],[-13,-1],[-41,88],[-101,-39],[8,-43],[-109,-20]],[[6870,5562],[-10,43],[-29,4],[-21,27],[-24,7],[-41,49],[41,78],[-1,14],[-33,46],[-37,22],[-70,14],[-2,-88],[-35,-3],[-7,-40],[-24,23]],[[6577,5758],[22,63],[7,41],[0,105],[-9,49],[-74,53],[-11,37],[-17,-7],[-9,17],[-30,-1],[-15,91],[-67,86],[-37,82],[-53,81]],[[6284,6455],[1,23],[-13,34],[5,57],[21,54],[52,44],[32,101],[5,50]],[[6387,6818],[76,71],[10,-19],[31,43],[26,1],[18,-16],[64
 ,-36],[85,-6],[55,17],[105,-1],[47,13],[162,11],[52,-6],[63,14],[37,-12],[20,6]],[[7238,6898],[3,-17],[49,-26],[34,10],[37,-10],[10,-28],[-21,-61],[-37,-29],[-52,-22],[63,-13],[7,-13]],[[7331,6689],[7,-24],[-52,-90],[-19,-43],[-11,-53],[-17,-33],[7,-43],[25,-39],[0,-50],[-17,-95],[13,-56],[5,-81],[-4,-31],[21,-43],[31,25],[19,-61],[-4,-48],[-48,-134],[4,-17]],[[1555,1036],[-95,-55]],[[686,1546],[34,58],[60,47],[30,28],[38,59],[84,76],[37,96],[41,19],[4,-12],[46,24],[45,31],[21,8],[40,44],[37,74],[10,32],[-3,31],[9,42],[41,41],[28,18],[89,1],[26,24],[15,36],[11,51]],[[1591,2444],[54,-10],[39,-23],[42,-5],[33,15],[18,-44],[11,20],[74,57],[13,-20],[-3,-33],[29,-55],[2,-27],[-26,-40],[-1,-71],[26,-45],[-10,-9],[20,-47],[29,-54],[-3,-24],[9,-31],[-15,-17],[11,-22],[36,27],[-36,-48],[17,-114]],[[1960,1824],[-13,0],[-2,-35],[15,-59],[7,-58],[-40,-24],[-78,-71]],[[1849,1577],[-43,-44],[-47,-27],[-35,-28],[-51,-31],[-50,-14],[-77,-74],[13,-39],[31,-40],[34,-77],[11,-57],[-11,-65],[-69,-38],[
 0,-7]],[[2717,6137],[-1,48],[-49,-5],[-16,-10],[-74,24],[-55,11],[-26,29],[0,36],[-36,8],[-35,-41],[-13,41]],[[2653,6896],[24,0],[45,31],[54,63],[74,29],[83,8],[-1,15],[64,10],[36,15]],[[3032,7067],[45,-16],[37,4],[29,55],[4,-47],[22,36],[8,32],[38,13],[-5,16],[20,3],[62,39],[-2,59],[64,-10],[41,6],[61,23],[51,34],[43,10]],[[3550,7324],[27,-94],[-14,-43],[13,0],[10,-96],[-7,-39],[8,-12],[-34,-26],[-17,-73],[-22,-63],[6,-49],[42,18],[-14,-25],[-13,-53],[-12,-19],[13,-62],[-3,-34],[5,-71],[13,-28],[24,-18],[6,-48],[-44,-61],[-8,-23],[0,-73],[-89,-160]],[[7892,5168],[-19,14],[-51,-39],[-49,-26],[-24,-58]],[[7749,5059],[3,72],[-42,86],[-8,58],[-22,84],[3,39],[-29,74],[-11,45],[-35,92],[-50,51],[-32,-43],[-61,69],[17,44],[-17,16],[-41,2],[0,-26],[-28,0],[-7,-38],[-43,-13],[-15,33],[-18,8],[-15,26],[-7,35]],[[7331,6689],[30,18],[82,-5],[44,19],[22,37],[34,1],[15,-12],[74,23],[18,-7],[48,24],[-1,-23],[49,-87],[49,-17],[7,50],[-33,21],[-8,17],[19,41],[0,22],[44,5],[17,-45],[11,-9],[108,-22]
 ,[26,-16]],[[7986,6724],[18,-68],[21,-63],[-65,-119],[115,-22],[70,-8],[121,-3],[51,41],[-17,-79]],[[3550,7324],[33,63],[108,83],[36,5]],[[3727,7475],[43,-4],[83,12],[-9,-43],[72,-5],[27,16],[54,7],[5,-55],[30,-12],[21,-67],[67,52],[12,-25]],[[4132,7351],[19,-40],[33,-49],[57,-57],[-20,-7],[-1,-22],[69,-136],[61,-39],[8,-46],[32,-119],[43,-68],[39,-79],[55,-100],[21,-50]],[[3336,2732],[-74,-53],[-80,-51],[-95,-22],[-26,-13],[-24,-30]],[[3037,2563],[-9,16],[49,86],[37,34],[7,42],[-10,26],[-5,53],[48,29],[-3,45],[-62,-26],[-26,5],[-13,33],[15,11],[41,7],[48,30],[-29,117],[-8,-5],[-42,73],[5,6],[-35,32],[-17,-13],[-11,17],[-15,-11],[-56,101],[-24,-14],[-31,50],[-37,49],[-10,3],[-29,56],[-41,-18],[-8,28],[-24,23],[-10,28],[-58,-67],[-21,43],[42,52],[97,96],[-34,64],[29,53]],[[2787,3717],[41,5],[13,-37],[84,86],[16,20],[-15,53],[37,15],[15,-31],[34,38],[14,-18],[34,34],[25,47],[49,33],[24,27],[67,53]],[[3225,4042],[15,-48],[27,13],[34,-36],[32,31],[-21,65],[-37,-7]],[[3275,4060],[4,47],[
 -12,15],[-1,37],[-30,-2],[-19,14],[-64,-34],[-19,20]],[[3134,4157],[15,55],[53,51],[12,20],[3,54],[48,4],[30,89],[41,57],[19,38],[7,39],[-11,23]],[[3590,4585],[18,-64],[-5,-31],[30,-10],[11,-34],[11,-132],[-76,-18],[-7,-61],[-26,5],[-17,-29],[-35,-16],[-64,-52],[-44,-29],[-2,-87],[-4,-2],[34,-52],[-30,-40],[0,-41],[48,-55],[-23,-25],[-60,-35],[-44,-33],[20,-40],[13,-7],[37,12],[26,28],[48,7],[36,19],[26,-47],[18,11],[-6,16],[62,51],[-10,34],[24,17],[-23,63],[38,24],[28,-78]],[[3642,3854],[-4,-20],[41,4],[4,-25],[35,-5],[-26,-33],[30,2],[26,-16],[-69,-51],[-9,-18],[2,-34],[11,-26],[-10,-36],[36,-35],[18,-7],[-36,-114],[-70,-118],[6,-20]],[[3627,3302],[-24,-26],[-52,-35],[-63,114],[-11,-30],[-76,-96],[8,-12],[-23,-27],[6,-9],[-64,-105],[13,-80],[3,-91],[5,-49],[-13,-124]],[[6387,6818],[-57,15],[-193,-24],[-37,54],[-30,81],[14,7],[-25,32],[-13,-1],[-62,110],[-10,79],[-43,22],[-32,57],[-34,1],[-36,-9],[-33,4],[-53,83],[-30,16],[-58,-55],[-48,3],[-43,-10],[-43,54]],[[5654,7622],[16,-20],
 [40,31],[13,44],[31,13],[33,27],[60,27],[63,21],[30,17],[51,8],[24,20],[35,65],[49,50],[8,21],[28,9],[22,53],[30,12],[46,-1],[25,-11],[52,-39],[30,28],[14,38],[46,10],[19,12],[26,60],[63,11],[50,-25],[28,-4],[25,18],[68,6],[17,-14],[34,16],[7,-8],[26,27],[27,13],[13,-55],[-17,-46],[-24,-40],[13,-86]],[[6775,7930],[-7,0],[3,-72],[-22,-7],[-56,-90],[-8,-74],[-29,-16],[-30,-28],[-29,-13]],[[6597,7630],[-41,-27],[-23,30],[-26,-12],[-36,-104],[18,-5],[-7,-21],[3,-63],[12,-8],[-109,-26],[9,-24],[35,-57],[5,-49],[-3,-96],[-26,-16],[18,-88]],[[6426,7064],[10,-94],[-28,-96],[-21,-56]],[[4147,4202],[-84,-35],[-31,-21],[-12,5],[6,-48],[-25,-1],[-25,-30],[-24,-11],[-5,-18],[28,-16],[10,-26],[-15,-17]],[[3970,3984],[-54,-47],[-45,-26],[-20,34],[-18,48],[-11,-5],[-120,-99],[-40,-19],[-20,-16]],[[3032,7067],[9,58],[-20,-16],[-6,21],[-40,99],[-19,32],[-28,83],[-4,24],[-28,43],[-20,57],[20,33],[-38,40],[-25,35],[-126,4],[-53,146],[-43,105],[-26,76]],[[2585,7907],[37,33]],[[2622,7940],[26,-41],[8,-27
 ],[-10,-41],[13,13],[44,-34],[40,10],[26,-34],[29,-4],[21,11],[31,44],[54,33],[52,43],[72,13],[13,-39],[28,-10],[3,25],[23,15],[11,-26],[36,48],[-5,18],[16,35],[-6,16],[54,51],[-34,30],[-12,47],[27,43],[28,15]],[[3210,8194],[19,0],[50,-45],[52,-6],[23,17],[52,10],[40,-27],[13,-20],[15,-57],[11,-19],[44,-28],[54,10],[26,-35],[27,36]],[[3636,8030],[6,-90],[2,-108],[31,-77],[32,-101],[20,-179]],[[1952,7548],[-20,142],[-18,49],[-39,81],[-11,43],[-30,77],[-17,-6],[-7,29],[-30,42],[-33,58]],[[1747,8063],[35,52],[58,265],[45,2],[23,18],[80,41],[42,-30],[52,-11],[33,4],[80,47],[43,81],[44,46],[-10,51],[-54,15],[11,93],[-7,4],[23,35],[26,23],[-5,14]],[[2570,8321],[35,-362],[17,-19]],[[2585,7907],[0,6],[-206,-89],[-54,-42],[-38,-19],[-26,-28],[-6,-107]],[[3627,3302],[15,-22],[22,-8],[19,-61],[40,-52],[21,20],[24,-34],[21,-13],[44,44],[75,51],[81,30],[22,21],[67,22],[100,14],[34,-2],[89,16]],[[4301,3328],[-14,-52],[-29,-53],[22,-77],[24,17],[-1,-29],[-20,-15],[-18,-51],[-43,-10],[1,-46],[-6,-5
 9],[63,11],[36,-2],[22,-17],[4,-20],[-36,-26],[56,-82],[36,-98],[-31,3],[-35,-30],[-56,-34],[-46,-22],[-49,-10],[-7,-29],[-82,36],[-57,16],[-32,1],[-109,-27],[-59,-37],[-55,-23],[-19,17],[-34,-6],[-61,25],[-48,-44],[-37,-57],[-11,-32],[-2,-40],[-109,0],[-37,84],[29,24],[13,22],[-24,24],[3,30],[-29,54],[-9,-3],[-37,-52],[-32,0],[5,38],[-5,85]],[[4729,8847],[-97,-36],[-31,0],[-54,-42],[-28,30],[-51,-18],[-15,2],[-3,-25],[-76,-20],[-8,18],[-14,-11],[-31,3],[-67,-10],[-15,-7],[-32,18],[-28,-4],[0,20],[-28,-14],[-80,-19],[-41,74],[-46,43],[-43,30],[-38,17]],[[3903,8896],[13,46],[34,179],[13,82],[79,-3],[5,48],[-24,43]],[[4023,9291],[13,-4],[72,38],[1,15],[25,5],[-5,26],[26,5],[20,55],[-4,35],[24,7],[6,52],[21,8],[63,3],[46,13],[-1,-10],[69,43],[66,16]],[[4465,9598],[40,-19],[53,2],[19,-20],[79,10],[37,17],[128,22],[63,31],[21,2],[51,33],[31,1],[56,18],[3,-40],[23,-40],[-65,-42],[-56,-28],[-46,-10],[0,-33],[-20,-65],[-36,-72],[-7,-46],[-24,-104],[-24,-55],[-13,-52],[-11,-14],[-9,-42],[-44
 ,-108],[17,-19],[5,-36],[-7,-42]],[[5747,6372],[-1,33],[-45,24],[-46,33],[-149,45],[-95,35],[-6,6]],[[6284,6455],[-8,10],[-102,-21],[-63,10],[-74,5],[-5,-8],[-84,0],[-138,-35],[-63,-44]],[[6369,5593],[44,33],[80,34],[26,-7],[25,57],[-3,29],[36,19]],[[6870,5562],[5,-100],[14,-49],[12,-123]],[[6901,5290],[4,-75],[-42,2],[-3,-26],[58,7],[-15,-21],[-2,-78],[-5,-20],[-4,-152],[9,-51],[7,-113],[23,0],[-1,-54],[-47,-108],[-30,-26],[4,-27],[22,-54],[18,-124]],[[2342,4248],[29,46],[14,133],[9,29],[29,20],[19,59],[20,96],[-16,82],[-28,74],[-52,4],[11,119],[75,21],[53,6],[91,17],[69,22],[-1,14],[32,9],[22,16]],[[3134,4157],[-30,-21],[-83,-1],[-25,15],[-46,37],[-82,-24],[-37,-18],[-42,-9],[-52,-37],[-47,-43],[-59,-31],[-20,13],[-39,0],[-31,22],[-12,25],[6,45],[-41,18],[-68,-2],[-67,-8],[-6,25],[13,24]],[[5721,6039],[-20,25],[-41,102],[-1,38],[24,81],[9,14],[-16,35],[-1,35],[30,-5],[42,8]],[[3970,3984],[9,-29],[-4,-35],[129,15],[24,-23],[30,50],[-2,41],[9,21],[30,25],[49,2],[-18,-47],[0,-64],[48
 ,-35],[29,0],[15,-21],[8,-34],[31,-25],[13,16],[11,-17],[13,67],[-28,40],[37,40],[-2,38],[30,17],[-3,18],[52,-18],[27,-19]],[[4507,4007],[65,-41],[18,-22],[-12,-4],[-53,-49],[6,-75],[18,-15],[35,5],[17,-57],[0,-24],[-15,13],[-13,-26],[-5,-60],[12,-102],[-1,-62],[-48,-34],[-33,-15],[-34,-27],[-38,-14],[-30,-2],[-41,-31],[-30,-13],[-24,-24]],[[2602,3708],[35,20],[11,-21],[35,10],[26,23],[17,-9],[40,24],[8,-33],[13,-5]],[[3037,2563],[-15,-37]],[[3955,8309],[-44,-26],[-28,8],[-15,-18],[-48,-33],[-13,-19],[-65,-42],[-44,-81],[-62,-68]],[[3210,8194],[-4,29],[17,53],[-2,96],[-18,83]],[[3214,8870],[46,-4],[58,38],[23,7],[41,29],[1,-8],[133,18],[20,-9],[63,5],[76,-26],[17,17],[37,-32],[35,-10],[4,14],[56,-33],[9,10],[46,-41]],[[3879,8845],[9,-3],[-17,-66],[88,22],[-14,-22],[12,-121],[2,-75],[9,-19],[-16,-40],[-18,-108],[21,-104]],[[7665,4563],[-7,12],[-45,5],[-30,-5],[-23,15],[-36,0],[-23,27]],[[7501,4617],[-30,37],[-11,85],[-32,84],[-23,13],[11,63],[19,28],[-9,18],[-48,-17],[-56,-54],[-17,-
 38],[-27,-86],[-7,-35],[-21,-42],[-4,-29],[-19,-21],[-29,-15]],[[7198,4608],[3,62],[-3,89],[-19,73],[-3,108],[-8,167],[-15,110]],[[7153,5217],[-1,17],[14,87],[-3,52],[-30,93],[-7,53],[12,20]],[[7749,5059],[-24,-141],[-30,-75],[0,-73],[30,-57],[16,-57],[-61,-20],[4,-11],[-19,-62]],[[2505,2324],[-11,-5],[23,-26],[-12,-16],[11,-17],[-51,-71],[-47,-34],[-26,-3],[2,-33],[22,-61],[-63,-46],[6,-26],[20,-1],[21,-39],[-15,-22]],[[2385,1924],[-8,6],[-19,-38],[-18,25],[-5,28],[-30,-4],[-15,20],[-33,-10],[-61,7],[2,-52],[-29,17],[4,-31],[-9,-48],[-17,-4],[0,40],[-27,-8],[1,-41],[-15,-4],[-12,26],[-29,6],[-12,-16],[-40,-3],[4,-15],[-37,-13],[-20,12]],[[2153,1083],[-78,20],[-22,10],[-45,-37],[-16,1],[-6,66],[-65,6],[-29,104],[20,13],[-21,44],[-27,33],[11,15],[38,15],[-10,32],[-11,-3],[-1,80],[-15,26],[-10,-7],[-13,34],[10,9],[-14,33]],[[2385,1924],[4,-21],[18,2],[35,38],[-30,28],[66,76],[10,-36],[25,-44],[-21,-27],[4,-20],[-50,-36],[6,-29],[-38,-28],[8,-36],[18,20],[39,-26],[12,13],[16,-25],[44,7
 2],[97,-60],[33,-64],[4,-26],[-30,-67],[37,-26]],[[2692,1602],[-46,-152],[-96,-185],[-199,-52],[-178,-13],[-20,-117]],[[4371,7744],[-16,5],[-45,-67],[-13,-32],[-50,-74],[-19,-80],[-90,-140],[-6,-5]],[[3955,8309],[33,-33],[38,-18],[27,-115],[67,16],[78,12],[79,21],[1,-22],[43,14],[25,-2],[21,-40]],[[9013,5207],[-4,6],[-2,108],[-5,16],[1,95],[-8,74],[1,52],[31,25],[-5,37],[12,9]],[[9034,5629],[58,17],[66,52],[69,26],[38,-12],[25,2],[36,-37],[13,-3],[45,-52],[31,-53],[91,-18],[14,-13],[34,12],[23,18],[81,22],[42,25]],[[9700,5615],[17,-26],[13,-49],[23,-5],[16,11],[43,-9],[79,-52],[22,-8],[-16,-45],[-15,-22],[0,-59],[-27,-8],[-38,-28],[-39,-42],[-27,-21],[-84,-80],[2,-10],[-15,-84],[-20,-31],[-24,-73],[-36,-138]],[[3879,8845],[15,46],[9,5]],[[4729,8847],[7,-28],[-2,-68],[-22,-28],[14,-35],[-54,-238],[-15,-38],[-18,-83],[-31,-60],[4,-22]],[[2261,8948],[-123,-23],[-11,34],[7,33],[26,55],[-9,26],[-58,42],[-7,52],[-19,40],[30,132],[2,166],[-24,95],[-15,40],[9,14],[-52,43],[4,26],[44,-36],[3
 0,43],[35,28],[69,41],[50,37],[13,31],[48,29],[180,82],[48,19],[66,-3],[37,-85],[20,6],[24,-31],[47,-36],[34,1],[3,-48]],[[926,6563],[3,22],[68,49],[26,31],[20,53],[4,36],[-32,38],[-6,27],[9,61],[-16,18],[-14,47],[13,13],[72,18],[0,56],[18,46],[14,67],[-14,21],[-49,21],[55,20],[35,37],[13,-46],[21,17],[43,6],[43,-6],[82,3],[58,6]],[[1392,7224],[40,7],[10,-51],[22,-3],[91,16],[25,-53],[54,56],[22,5]],[[1656,7201],[9,-89],[-15,-4],[4,-52],[-40,-47],[8,-22],[-9,-49],[4,-62],[-7,-4],[4,-55],[-55,-34],[-32,-49],[-6,-79],[11,-9],[0,-79],[-14,-43],[-6,-39],[31,-76],[58,-65],[22,-63],[6,-63]],[[8387,4438],[-98,-20],[-51,-17],[-41,-2],[-40,15],[-62,-26],[-22,49],[-32,20],[-27,0],[-36,20],[-18,93],[-21,3],[-62,-22],[-58,6],[-41,12],[-73,8],[-40,-14]],[[7079,7012],[-74,11],[-37,-2],[-45,7],[-68,-13],[-85,2],[-40,7],[-38,-3],[-43,6],[-8,-7],[-44,14],[-42,-10],[-34,0],[-81,26],[-14,14]],[[6597,7630],[6,-19],[61,-93],[28,-1],[113,-24],[52,8],[32,-2],[37,9],[31,-4],[78,-19],[29,11],[32,-5],[33,-23
 ],[17,2],[59,-22]],[[7205,7448],[21,5],[61,-15]],[[7287,7438],[-19,-78],[-26,-70],[-66,-121],[-38,-42],[-41,-35],[-18,-80]],[[4661,4037],[-81,14],[-11,-10],[-57,-6],[-5,-28]],[[8694,5132],[-28,43],[-3,26],[15,166],[-29,6],[-6,34],[18,0],[9,64],[-11,11],[5,33],[12,-5],[19,20],[-16,3],[-6,57],[30,-4],[-6,51],[-31,-1],[-4,65],[5,24],[-17,-6],[0,45],[-11,62],[-11,95],[2,64],[-8,35],[-11,186]],[[8611,6206],[51,-21],[31,-3],[22,8],[21,-13],[48,4],[117,33],[112,-49]],[[9013,6165],[-6,-50],[12,-143],[-2,-112],[8,-178],[9,-53]],[[1392,7224],[35,157],[10,116],[-7,238],[-7,176],[-5,22],[4,63],[22,15],[72,3],[110,35],[35,-42],[86,56]],[[1751,7206],[-95,-5]],[[9013,6165],[96,27],[55,31],[168,15],[95,1],[28,-8],[49,4],[21,-14],[4,-52],[-40,-101],[0,-30],[21,-26],[63,-43],[36,6],[40,-20],[-7,-25],[15,-48],[81,14],[17,-99],[8,-25],[-28,-72],[-26,-45],[-9,-40]],[[7238,6898],[-7,28],[-18,28],[6,22],[-25,17],[-4,-14],[-66,15],[-45,18]],[[7287,7438],[70,-19],[49,-4],[59,7],[48,-38],[65,-11],[6,-58],[44
 ,-174],[14,-33],[42,0],[57,10],[43,-186],[27,2],[34,-20],[35,-29],[41,-2],[24,-10],[32,3],[27,-25],[-12,-22],[-6,-105]],[[3275,4060],[-50,-18]],[[8543,6272],[17,-35],[51,-31]],[[2153,1083],[-8,-62],[-20,-22],[-46,-91],[9,-12],[-20,-56],[-39,-74],[7,-14],[-17,-25],[-66,-64],[-52,18],[-45,88],[-45,95],[-55,2],[-68,19],[-18,-1],[-61,-38],[-23,53],[-15,7],[29,31],[-38,52],[6,19],[-13,28]],[[3281,9130],[14,13],[54,14],[2,24],[33,-18],[-2,19],[19,4],[7,-20],[137,41],[-3,23],[18,9],[1,-45],[78,40],[40,81],[82,75],[81,23],[67,40]],[[3909,9453],[21,-29],[12,-49],[26,13],[22,-70],[18,11],[15,-38]],[[6901,5290],[170,-7],[41,-29],[-9,-34],[26,-15],[24,12]],[[7198,4608],[-16,-29],[3,-81],[-73,-41],[-27,-5],[-6,-52],[14,-39]],[[7093,4361],[-51,-16],[-44,11],[-45,-5],[-24,11]],[[3811,9725],[9,-89],[21,1],[37,-152],[23,-13],[8,-19]],[[3294,9534],[46,14],[44,28],[50,53],[52,48],[38,40],[39,20],[37,-8],[42,-24],[37,1],[34,10],[98,9]],[[3811,9725],[49,34],[111,133],[39,44],[22,37],[30,-27],[76,-14],[4
 9,-19],[84,-75],[71,-52],[28,-29],[41,-90],[54,-69]],[[2880,2140],[-7,-30],[-39,-75],[9,-34],[-106,-238],[-45,-161]],[[6775,7930],[41,-17],[41,-36],[80,-2],[4,-13],[26,4],[15,-20],[3,-71],[31,-19],[8,-42],[25,-28],[34,-20],[15,-40],[37,-17],[44,-55],[37,-17],[-1,-46],[-10,-43]],[[7501,4617],[-56,-40],[-75,-74],[-63,-49],[-43,-17],[-18,2],[-60,-33],[-55,-20],[-38,-25]]],"transform":{"scale":[0.06642554168985716,-0.04800480048004801],"translate":[147.90550432155908,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/lu-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/lu-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/lu-municipalities.json
deleted file mode 100644
index c6e8803..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/lu-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":1001,"properties":{"name":"Doppleschwand"},"arcs":[[[-46,-61,-162,-9]]]},{"type":"MultiPolygon","id":1002,"properties":{"name":"Entlebuch"},"arcs":[[[7,8,9,10,11,12]],[[-51,-56,-44]]]},{"type":"MultiPolygon","id":1004,"properties":{"name":"Flühli"},"arcs":[[[0,1,2,3]]]},{"type":"MultiPolygon","id":1005,"properties":{"name":"Hasle (LU)"},"arcs":[[[41,-3,42,43,44,45,-8]]]},{"type":"MultiPolygon","id":1007,"properties":{"name":"Romoos"},"arcs":[[[-45,55,-50,-6,56,57,58,59,60]]]},{"type":"MultiPolygon","id":1008,"properties":{"name":"Schüpfheim"},"arcs":[[[-7,49,50,-43,-2]]]},{"type":"MultiPolygon","id":1009,"properties":{"name":"Werthenstein"},"arcs":[[[-11,144,-14,-75]]]},{"type":"MultiPolygon","id":1010,"properties":{"name":"Escholzmatt-Marbach"},"arcs":[[[4,5,6,-1]]]},{"type":"MultiPolygon","id":1021,"properties":{"name":"Aesch (LU)"},"arcs":[[[-27,253,-179,-92,254
 ,255]]]},{"type":"MultiPolygon","id":1022,"properties":{"name":"Altwis"},"arcs":[[[263,-255,-91,-259]]]},{"type":"MultiPolygon","id":1023,"properties":{"name":"Ballwil"},"arcs":[[[-172,-199,-119,212,-193]]]},{"type":"MultiPolygon","id":1024,"properties":{"name":"Emmen"},"arcs":[[[-102,126,127,128,129,-67]]]},{"type":"MultiPolygon","id":1025,"properties":{"name":"Ermensee"},"arcs":[[[-29,257,258,-90,-89,-139]]]},{"type":"MultiPolygon","id":1026,"properties":{"name":"Eschenbach (LU)"},"arcs":[[[-147,169,170,171,172,173,-128]]]},{"type":"MultiPolygon","id":1030,"properties":{"name":"Hitzkirch"},"arcs":[[[88,89,90,91,92,93,94,95]],[[-28,-256,-264,-258]]]},{"type":"MultiPolygon","id":1031,"properties":{"name":"Hochdorf"},"arcs":[[[-140,-120,198,-171,199]]]},{"type":"MultiPolygon","id":1032,"properties":{"name":"Hohenrain"},"arcs":[[[116,-95,117,118,119]]]},{"type":"MultiPolygon","id":1033,"properties":{"name":"Inwil"},"arcs":[[[-173,192,193,194,195,196,197]]]},{"type":"MultiPolygon","id"
 :1037,"properties":{"name":"Rain"},"arcs":[[[207,-141,-200,-170,-146,-100]]]},{"type":"MultiPolygon","id":1039,"properties":{"name":"Römerswil"},"arcs":[[[-30,138,-96,-117,139,140,141]]]},{"type":"MultiPolygon","id":1040,"properties":{"name":"Rothenburg"},"arcs":[[[-101,145,146,-127]]]},{"type":"MultiPolygon","id":1041,"properties":{"name":"Schongau"},"arcs":[[[178,179,-93]]]},{"type":"MultiPolygon","id":1051,"properties":{"name":"Adligenswil"},"arcs":[[[-69,-207,238,239,240,-167]]]},{"type":"MultiPolygon","id":1052,"properties":{"name":"Buchrain"},"arcs":[[[-129,-174,-198,-216,260,-205]]]},{"type":"MultiPolygon","id":1053,"properties":{"name":"Dierikon"},"arcs":[[[-206,-261,-215,-250,-239]]]},{"type":"MultiPolygon","id":1054,"properties":{"name":"Ebikon"},"arcs":[[[-68,-130,204,205,206]]]},{"type":"MultiPolygon","id":1055,"properties":{"name":"Gisikon"},"arcs":[[[-196,-265,-217]]]},{"type":"MultiPolygon","id":1056,"properties":{"name":"Greppen"},"arcs":[[[-169,259,-107]]]},{"type"
 :"MultiPolygon","id":1057,"properties":{"name":"Honau"},"arcs":[[[-218,264,-195,265]]]},{"type":"MultiPolygon","id":1058,"properties":{"name":"Horw"},"arcs":[[[-78,-71,124,125]]]},{"type":"MultiPolygon","id":1059,"properties":{"name":"Kriens"},"arcs":[[[-48,-77,-64,77,78]]]},{"type":"MultiPolygon","id":1061,"properties":{"name":"Luzern"},"arcs":[[[63,64,65,66,67,68,69,70]],[[-104,248]]]},{"type":"MultiPolygon","id":1062,"properties":{"name":"Malters"},"arcs":[[[74,-20,75,-65,76,-47]]]},{"type":"MultiPolygon","id":1063,"properties":{"name":"Meggen"},"arcs":[[[-125,-70,166,167,168,-106]]]},{"type":"MultiPolygon","id":1064,"properties":{"name":"Meierskappel"},"arcs":[[[208,209,210]]]},{"type":"MultiPolygon","id":1065,"properties":{"name":"Root"},"arcs":[[[213,214,215,-197,216,217,218,-210]]]},{"type":"MultiPolygon","id":1066,"properties":{"name":"Schwarzenberg"},"arcs":[[[-12,46,47,48]]]},{"type":"MultiPolygon","id":1067,"properties":{"name":"Udligenswil"},"arcs":[[[-240,249,-214,-209,
 250]]]},{"type":"MultiPolygon","id":1068,"properties":{"name":"Vitznau"},"arcs":[[[-109,185]]]},{"type":"MultiPolygon","id":1069,"properties":{"name":"Weggis"},"arcs":[[[102,103,104,105,106,107,108]]]},{"type":"MultiPolygon","id":1081,"properties":{"name":"Beromünster"},"arcs":[[[20,21,22,23,24,25,26,27,28,29,30,31]]]},{"type":"MultiPolygon","id":1082,"properties":{"name":"Büron"},"arcs":[[[-202,-123,-237,-248]]]},{"type":"MultiPolygon","id":1083,"properties":{"name":"Buttisholz"},"arcs":[[[-73,-134,142,143,-17]]]},{"type":"MultiPolygon","id":1084,"properties":{"name":"Eich"},"arcs":[[[-160,-192,211,-21,-187]]]},{"type":"MultiPolygon","id":1085,"properties":{"name":"Geuensee"},"arcs":[[[-233,246,-203,247,-236,-183,-24]]]},{"type":"MultiPolygon","id":1086,"properties":{"name":"Grosswangen"},"arcs":[[[-72,-40,130,131,132,133]]]},{"type":"MultiPolygon","id":1088,"properties":{"name":"Hildisrieden"},"arcs":[[[-188,-31,-142,-208,-99]]]},{"type":"MultiPolygon","id":1089,"properties":{"n
 ame":"Knutwil"},"arcs":[[[200,-115,-124,201,202,203]]]},{"type":"MultiPolygon","id":1091,"properties":{"name":"Mauensee"},"arcs":[[[-132,-178,-177,176,233,-116,-201,234,-189]]]},{"type":"MultiPolygon","id":1093,"properties":{"name":"Neuenkirch"},"arcs":[[[-19,96,97,98,99,100,101,-66,-76]]]},{"type":"MultiPolygon","id":1094,"properties":{"name":"Nottwil"},"arcs":[[[-18,-144,157,158,159,160,-97]]]},{"type":"MultiPolygon","id":1095,"properties":{"name":"Oberkirch"},"arcs":[[[-143,-133,188,189,190,191,-159,-158]]]},{"type":"MultiPolygon","id":1097,"properties":{"name":"Rickenbach (LU)"},"arcs":[[[182,183,184,-25]]]},{"type":"MultiPolygon","id":1098,"properties":{"name":"Ruswil"},"arcs":[[[13,14,15,16,17,18,19]]]},{"type":"MultiPolygon","id":1099,"properties":{"name":"Schenkon"},"arcs":[[[-191,231,232,-23,-22,-212]]]},{"type":"MultiPolygon","id":1100,"properties":{"name":"Schlierbach"},"arcs":[[[235,236,-122,237,-184]]]},{"type":"MultiPolygon","id":1102,"properties":{"name":"Sempach"},"a
 rcs":[[[-161,186,-32,187,-98]]]},{"type":"MultiPolygon","id":1103,"properties":{"name":"Sursee"},"arcs":[[[-235,-204,-247,-232,-190]]]},{"type":"MultiPolygon","id":1104,"properties":{"name":"Triengen"},"arcs":[[[-114,-88,120,121,122,123]]]},{"type":"MultiPolygon","id":1107,"properties":{"name":"Wolhusen"},"arcs":[[[161,-60,-74,-15,-145,-10]]]},{"type":"MultiPolygon","id":1121,"properties":{"name":"Alberswil"},"arcs":[[[-38,-253,-148,-175]]]},{"type":"MultiPolygon","id":1122,"properties":{"name":"Altbüron"},"arcs":[[[241,-138,242,243,-222,244]]]},{"type":"MultiPolygon","id":1123,"properties":{"name":"Altishofen"},"arcs":[[[256,-224,-81,-113]]]},{"type":"MultiPolygon","id":1125,"properties":{"name":"Dagmersellen"},"arcs":[[[109,110,111,112,-80,113,114,115]]]},{"type":"MultiPolygon","id":1126,"properties":{"name":"Ebersecken"},"arcs":[[[220,221,222,-82,223,224,-153,225,226]],[[-231,266,-151,-165]]]},{"type":"MultiPolygon","id":1127,"properties":{"name":"Egolzwil"},"arcs":[[[-155,261,-
 111,262]]]},{"type":"MultiPolygon","id":1128,"properties":{"name":"Ettiswil"},"arcs":[[[-39,174,-157,175,176,177,-131]]]},{"type":"MultiPolygon","id":1129,"properties":{"name":"Fischbach"},"arcs":[[[-182,227,228,-227,229,230,-164]]]},{"type":"MultiPolygon","id":1130,"properties":{"name":"Gettnau"},"arcs":[[[-166,-149,252,-37]]]},{"type":"MultiPolygon","id":1131,"properties":{"name":"Grossdietwil"},"arcs":[[[245,-245,-221,-229]],[[-244,-252,-136,-83,-223]],[[-230,-226,-152,-267]]]},{"type":"MultiPolygon","id":1132,"properties":{"name":"Hergiswil bei Willisau"},"arcs":[[[61,-55,-33,62,-58]]]},{"type":"MultiPolygon","id":1135,"properties":{"name":"Luthern"},"arcs":[[[51,52,53,-34,54]]]},{"type":"MultiPolygon","id":1136,"properties":{"name":"Menznau"},"arcs":[[[-59,-63,-41,71,72,-16,73]]]},{"type":"MultiPolygon","id":1137,"properties":{"name":"Nebikon"},"arcs":[[[-154,-225,-257,-112,-262]]]},{"type":"MultiPolygon","id":1139,"properties":{"name":"Pfaffnau"},"arcs":[[[134,-84,135,136,137]
 ]]},{"type":"MultiPolygon","id":1140,"properties":{"name":"Reiden"},"arcs":[[[79,80,81,82,83,84,85,86,87]]]},{"type":"MultiPolygon","id":1142,"properties":{"name":"Roggliswil"},"arcs":[[[-137,251,-243]]]},{"type":"MultiPolygon","id":1143,"properties":{"name":"Schötz"},"arcs":[[[147,148,149,150,151,152,153,154,155,156]]]},{"type":"MultiPolygon","id":1145,"properties":{"name":"Ufhusen"},"arcs":[[[-54,-53,180,181,-163,-35]]]},{"type":"MultiPolygon","id":1146,"properties":{"name":"Wauwil"},"arcs":[[[-176,-156,-263,-110,-234,-177]]]},{"type":"MultiPolygon","id":1147,"properties":{"name":"Wikon"},"arcs":[[[-86,219]]]},{"type":"MultiPolygon","id":1150,"properties":{"name":"Zell (LU)"},"arcs":[[[162,163,164,-150,165,-36]]]},{"type":"MultiPolygon","id":1151,"properties":{"name":"Willisau"},"arcs":[[[32,33,34,35,36,37,38,39,40]]]}]}},"arcs":[[[1737,477],[26,35],[45,28],[-15,46],[-30,34],[33,56],[-31,47],[-36,8],[-37,24],[6,59],[20,44],[9,51],[36,73],[29,79],[50,100],[39,24],[27,44],[18,-3],[
 43,24],[31,68],[59,97],[-44,38],[-3,66],[7,24],[-29,68],[-28,17],[-1,47],[17,29],[-42,15],[8,27],[-27,53],[-45,-8],[-53,-35],[-10,21],[72,73],[-17,53],[-35,41],[-2,66],[-58,48],[-5,16],[-56,27],[53,64],[23,-37],[30,3],[38,40],[-20,2],[39,61],[54,33],[-7,43],[16,27],[35,-6],[41,27],[33,42],[16,44],[45,30],[22,37],[95,71],[12,0],[55,54],[51,23],[-13,20],[8,39],[17,-5],[21,22],[91,-7],[39,12],[62,6],[9,19],[45,13],[51,5]],[[2669,2783],[-14,-42],[18,-18],[53,-7],[91,79],[69,15],[22,-8],[53,-57],[46,1],[2,-14],[54,-20],[31,21],[59,-18],[36,-1],[69,-29],[0,-35],[67,-3],[39,-21]],[[3364,2626],[45,-38],[14,-27],[-26,-36],[27,-68],[27,-83],[28,-16]],[[3479,2358],[-1,-97],[-11,-33],[-27,-24],[35,-113],[24,-10],[-13,-24],[2,-65],[22,-62],[-36,-50],[8,-46],[-55,-36],[4,-47],[17,-42],[-33,-71],[-33,1],[-10,-17],[-37,13],[-34,-51],[25,-51],[-43,-63],[0,-17],[-57,-40],[-34,-43],[-62,-22],[-19,-75],[-27,-70],[64,-87],[17,-9],[-14,-42],[55,-70],[84,-121],[8,-27],[117,-195],[-8,-99],[-41,-5],[-5,-22]
 ,[-35,-10],[-45,-39],[-1,-38],[26,-34],[-11,-48],[-136,-116],[-83,13],[-44,0],[-43,30],[-43,1],[-16,16],[-86,-11],[-42,-16],[-30,3],[-61,-21],[-27,-26],[-33,-8],[-117,-62],[-59,-5],[-54,-14],[-30,-22],[-11,-42],[-35,-12],[-42,-37],[-64,-28],[-37,27],[-49,15],[-45,1],[-32,22],[-43,67],[-18,12],[-7,46],[-57,41],[-24,-4],[-38,37],[-47,14],[-57,35],[-22,41],[20,47],[-30,37],[-16,39]],[[1737,477],[-61,108],[-74,54],[-193,162],[-94,69],[-268,145],[-130,66],[-275,118],[-64,107],[-34,25],[-6,71],[-37,55],[9,68],[-14,94],[24,46],[7,64],[-17,16],[-55,22],[-6,63],[-36,20],[-59,2],[-8,14],[10,77],[-2,32],[-25,74],[6,52],[29,34],[58,26],[49,-1],[51,24],[20,36],[35,2],[0,54],[32,65],[51,62],[44,14],[-29,32],[41,44],[-6,39],[13,21],[-21,20],[-18,55],[-34,15],[-46,-4],[-31,33],[-56,31],[-33,7],[31,44],[21,80],[31,62],[30,38],[28,20],[131,50],[27,19],[92,35],[36,31],[31,12],[62,-8],[30,-24],[52,-7],[68,7],[40,32],[37,74],[44,66],[12,40],[-12,28],[11,27],[43,9],[22,23],[45,-4],[38,47],[9,61],[-13,43]
 ,[15,52],[-15,32],[11,28],[57,54],[57,8],[77,60],[-10,135],[-11,47],[71,53],[19,-2],[35,29]],[[1736,4011],[74,-23],[-13,-16],[31,-35],[21,-39],[-6,-36]],[[1843,3862],[2,-22],[-66,0],[-94,60],[10,-48],[-38,-23],[-2,-23],[31,-26],[8,-29],[25,-2],[52,-48],[74,-9],[72,-52],[-45,-20],[-51,-11],[-24,-19],[6,-34],[-31,19],[-16,-15],[-8,-39],[13,-35],[22,-16],[19,-45],[33,-7],[26,-32],[25,-54],[41,-28],[0,-17],[30,-14],[67,-73],[65,4],[47,-22],[41,27],[53,16],[2,-42],[16,-44],[34,-5],[19,-19],[31,-64],[13,-45],[-8,-49],[34,1],[1,-30],[32,-12],[-19,-23],[40,-44],[-8,-67],[14,-3],[44,51],[72,23],[27,31],[42,26],[55,1],[4,-35],[-10,-41],[4,-52]],[[3715,2560],[-59,12],[-42,41],[2,26],[22,40],[2,52],[33,33],[29,5],[24,25],[49,24],[24,27],[44,23],[43,-2],[72,32],[36,48],[68,19],[29,21],[37,10],[47,-12],[38,15],[77,83],[26,45],[64,49],[17,35],[41,40],[1,44],[-24,11],[-31,65],[-39,34],[-39,59],[-6,73],[-103,92],[-60,11],[-96,38],[-29,-2],[-100,30],[-13,22],[-82,16],[-33,28],[-183,-8],[-49,53],[-66,
 15],[-38,24],[-31,86],[-39,67],[-34,42],[-13,32],[-3,49],[-16,29],[-9,71],[20,43],[-5,28]],[[3318,4303],[30,4],[18,25],[7,45],[-10,21],[-49,-14],[-15,15],[-2,55],[9,37],[41,39],[2,53],[15,25],[4,56],[22,29],[34,80],[-14,130],[12,113]],[[3422,5016],[11,23]],[[3433,5039],[101,-44],[15,10],[25,-25],[10,16],[4,58],[41,-12],[46,12],[45,-3],[6,16],[34,7],[101,-37],[99,-69],[15,-34],[38,-30],[71,31],[18,-8],[48,13],[13,-34],[-16,-40],[19,-15],[-3,-83],[17,-22],[-26,-31],[8,-22],[-40,-20],[12,-33],[-19,-26],[22,-27],[-16,-37],[6,-26],[26,2],[40,23],[25,35],[92,63],[24,-7]],[[4334,4640],[-28,-30],[20,-16],[11,-37],[41,-58],[31,-12],[43,8],[57,-29],[-1,-17],[48,-12],[-10,-37],[12,-12],[-27,-44],[-4,-48],[-14,-1],[-10,-71],[22,-33],[-13,-48],[14,-47],[24,-38],[-12,-16],[9,-53],[-6,-36],[24,-48],[1,-23],[27,-58],[128,-15],[30,-76],[79,-46]],[[4830,3687],[-61,-53],[-16,10],[-32,-24],[12,-10],[-81,-42],[21,-32],[-5,-57],[36,-56],[109,-126],[13,3],[46,-77],[-14,-38],[-47,-36],[-20,-1],[-34,-47],[-
 41,-10],[-35,-39],[-54,-26],[-38,-38],[-27,-8],[-36,-34],[-29,-43],[-53,-11],[-36,-54],[-37,-39],[-30,-62],[-31,-28],[-66,-98],[-5,-31],[-49,-62],[-33,-95],[-31,-60],[-12,-39],[-22,-20],[-54,42],[-18,68],[-5,57],[29,97],[4,38],[-69,17],[-47,-2],[-34,30],[-53,26],[-13,-33],[-70,-23],[-47,-61]],[[4387,5239],[-90,26],[-98,0],[-42,16],[-24,22],[-43,82],[-23,7],[-25,-36],[-27,-1],[-45,60],[-21,69],[-25,-31],[-38,22],[-41,-32],[-30,-9],[-106,5]],[[3709,5439],[1,29],[31,29],[1,60],[-35,72],[21,120],[-34,111],[-90,40]],[[3604,5900],[16,54],[27,61],[7,32],[-21,21]],[[3633,6068],[22,43],[54,-7],[9,26],[18,-2],[6,35],[-29,0],[9,22],[30,0],[-16,46],[15,50],[15,-2],[77,35],[29,31],[69,-29],[20,24],[69,32],[70,42],[-14,18],[50,23],[-7,63],[103,-2],[4,15],[55,-10],[31,14],[-6,99]],[[4316,6634],[35,-9],[53,-28],[54,27],[46,-9],[72,-25],[74,-59],[43,-26],[30,13],[6,32]],[[4729,6550],[17,-15],[-1,-33],[67,-81],[27,-19],[22,4],[45,-45],[37,-71],[59,-22],[6,-27],[-13,-78],[10,-72],[22,-41],[32,-11],[11
 ,-33],[43,17],[112,-43],[1,-49],[28,-9],[23,-33],[-23,-28],[-9,-57],[18,-15],[27,-49],[19,1]],[[5309,5741],[-45,-15],[-30,-55],[-34,-24],[-63,-23],[-79,4],[0,-20],[-27,-39],[-36,0],[-1,-32],[24,-23],[-21,-25],[-7,-79],[-13,-25],[-30,13],[-43,-27],[-46,-12],[-16,-19],[-69,1],[-87,-31],[-89,19],[-49,2],[-22,-23],[-30,21],[-57,6],[-13,23],[-13,-19],[-26,-100]],[[5326,7547],[-86,29],[-1,47],[-33,14],[-24,53],[-19,-26],[-80,-16],[-50,14],[-60,-4],[-36,-13],[-90,4],[-38,15],[-63,50]],[[4746,7714],[-8,20],[20,14],[-21,32],[-38,13],[-28,36]],[[4671,7829],[-51,21],[-16,44],[6,19],[-42,39],[28,19],[-42,36],[-21,-14],[-23,36],[-25,14],[15,23],[-46,11],[-40,25],[-12,41],[-45,61]],[[4357,8204],[26,56],[90,51],[-25,28],[45,19]],[[4493,8358],[14,-14],[32,17],[0,19],[42,11],[-5,33],[10,35],[49,-13],[17,30],[-12,37],[46,19],[1,30],[22,-6],[59,60],[40,22],[79,3],[31,13],[63,64]],[[4981,8718],[45,3],[20,14],[84,-2],[50,35],[53,11],[-4,21],[48,7],[73,-9],[55,3],[-13,24],[1,52],[-23,2],[11,49],[1,71],[2
 3,4],[-5,32],[13,66],[-19,24],[48,70],[-1,22],[70,48],[77,40],[28,7],[38,129]],[[5654,9441],[34,-176]],[[5688,9265],[-75,-42],[-3,-29],[-35,-5],[6,-62],[25,-24],[22,-46],[-26,-11],[18,-41],[-14,-45]],[[5606,8960],[-15,-13],[34,-54],[-22,-31],[14,-63],[-14,-9],[22,-65],[42,-98],[-11,-16],[36,-74]],[[5692,8537],[-57,-26],[43,-50],[-23,-14],[19,-27],[22,-56],[-4,-69],[9,-59],[-7,-18],[14,-74],[19,-13],[-5,-30],[21,-55],[19,14],[46,-41],[-28,-14],[36,-35],[-49,-9],[44,-53],[-15,-58],[29,3],[-12,-47],[3,-51],[13,-9],[-26,-52],[30,-31],[-25,-7],[9,-64],[41,-18],[-6,-41]],[[5852,7533],[-6,-69],[-79,1],[-24,-8],[-115,-4],[-28,9],[-88,-5],[-32,4]],[[5480,7461],[-15,34],[-59,31],[-80,21]],[[2265,5231],[-63,72],[-30,72],[52,63],[2,14],[-67,186],[12,84],[-43,50],[19,46],[3,74],[35,29],[14,47],[-14,25],[-45,-10],[-69,9],[7,36],[63,11],[29,13],[4,27],[-25,-3],[-9,38],[-59,8],[18,50],[-24,53],[12,30],[-20,7],[-55,43],[-63,6],[-38,20],[-33,-4],[-7,-19],[-53,-5],[-76,-44],[-30,-3],[-76,-31],[-7,12],
 [-65,15],[0,58],[-67,0],[-99,-35],[-19,-31],[23,-29],[27,-6],[-56,-24],[31,-31],[8,-35],[-14,-23],[30,-17],[-48,-32],[-19,-27],[-4,-34],[36,-5],[-35,-40],[-56,-16]],[[1302,5925],[1,69],[25,32],[-34,32],[26,63],[42,43],[18,58],[-67,62],[9,21]],[[1322,6305],[11,33],[-12,27],[-65,46],[42,6],[9,44],[23,-9],[40,29],[-31,1],[-18,37],[22,26],[17,60],[-44,28]],[[1316,6633],[10,52],[50,20],[39,-2],[60,31],[92,-3],[26,16],[28,51],[-46,11],[-3,12],[50,39]],[[1622,6860],[32,5],[24,-19],[80,5],[27,-13],[43,16],[-6,28],[33,28],[81,11],[22,-45],[50,20],[81,67],[66,-21],[40,20]],[[2195,6962],[11,-28],[37,-3],[45,38],[-5,31],[15,29],[22,8],[-27,30],[16,17],[61,3],[12,-49],[33,-2],[42,28]],[[2457,7064],[24,-27],[39,-3],[39,-33],[27,-39],[70,-68]],[[2656,6894],[-16,-18],[54,-49],[5,-16],[42,-30],[42,-58],[16,19],[53,-14],[-28,-33],[47,-23],[70,-3],[8,-18],[-25,-35],[18,-8],[-25,-28],[-7,-35],[35,-51],[16,2],[20,-32]],[[2981,6464],[-62,-52],[-56,-1],[-49,-94],[-40,-42],[8,-15],[-20,-24],[34,-31],[2,-30
 ],[-66,-36],[-19,-24],[-29,-9],[-35,13],[-16,-21],[12,-55],[26,-49],[31,-21],[-3,-30],[48,2],[17,-21],[-9,-19],[21,-32],[-29,-60],[-27,15],[-18,-51],[-25,-20],[18,-46],[-20,-15],[-61,-8],[-67,-31],[-43,-40],[-66,-1],[-28,-58],[-29,-31],[19,-18],[-8,-73],[26,-39],[-40,-50],[-18,-4],[-49,-41],[-18,-39],[-28,-32]],[[3715,2560],[3,-34],[-27,-37],[-23,-63],[-68,-35],[-71,-6],[-50,-27]],[[3364,2626],[20,50],[19,8],[83,77],[-37,20],[-34,48],[-18,52],[-9,81],[16,130],[-3,21],[-60,-47],[-18,-29],[-62,1],[25,43],[-5,41],[-19,17],[-27,-11],[-69,-1],[-17,29],[-37,-27],[-25,43],[0,37],[25,28],[4,42],[32,56],[-52,43],[-28,34],[25,35],[4,43],[-19,20],[24,49],[-1,39],[19,12],[20,54],[-30,10],[10,17],[-84,104],[-34,20],[-39,0],[15,15],[-65,30],[-9,24],[-52,37],[-17,34],[-62,-30]],[[2773,3925],[-19,60],[-30,42],[-40,25]],[[2684,4052],[42,66],[104,48],[4,17],[37,-3],[59,58],[15,36],[4,98]],[[2949,4372],[29,-26],[18,1],[100,-33],[120,3],[38,4],[64,-18]],[[4334,4640],[49,-24],[82,31],[57,-4],[37,37],[27
 ,-9],[22,33],[40,25],[22,0],[70,46],[46,16],[78,9],[28,15],[16,26],[21,-13],[100,54],[63,0],[3,-15],[52,17],[39,33],[66,17],[20,-16],[54,2],[63,16],[69,-3],[19,20],[67,17]],[[5544,4970],[26,-23],[36,-11],[55,-75],[-20,-180],[46,-53],[18,-37],[50,-23],[17,-37],[60,-51],[-3,-65],[39,-65],[-1,-31],[29,-1],[40,-70]],[[5936,4248],[-33,-14],[-26,18],[-83,10],[-22,-56],[-27,-26],[-19,-43],[-28,-35],[-7,-25],[-41,-40],[15,-38],[42,-37],[17,-29],[56,-26],[42,-43],[-11,-41],[-44,-19],[-83,7],[-60,-8],[-106,-30],[-87,-15],[-119,35],[-114,58],[-79,-64],[-57,3],[-140,-67],[-58,-14],[-34,-22]],[[1843,3862],[56,-45],[73,-24],[89,-3],[31,40],[128,12],[44,35],[73,38],[54,-5],[32,8],[20,-11],[42,18],[53,65],[42,9]],[[2580,3999],[9,-36],[40,-72],[30,-41],[34,40],[80,35]],[[1566,4483],[-24,-18],[-101,-9],[-48,23],[-38,31],[-27,65],[-44,4],[-86,-42],[-44,2],[-86,-34],[-81,-12],[-29,27],[-45,105],[32,38],[21,57],[-60,72],[-25,9],[-23,51],[12,56],[-34,56],[-40,6],[-78,53],[-12,33],[14,37],[-37,69],[-99,5]
 ,[-34,73],[-24,8],[-62,98],[20,32],[-9,25],[-21,5],[19,50],[35,55],[61,59],[-42,19],[14,49],[26,28],[50,95],[-18,36],[32,19],[-10,18],[21,67]],[[642,5903],[51,43],[41,26],[75,63],[40,60],[49,40]],[[898,6135],[42,24],[49,96],[47,39],[44,87],[7,39],[40,-8],[57,8],[11,-17],[-9,-35],[38,11],[12,-66],[35,-12],[51,4]],[[1302,5925],[20,-48],[46,-54],[-40,-42],[11,-68],[37,-61],[-3,-30],[-18,-11],[-15,-48],[17,-47],[-2,-43],[34,-35],[15,-40],[15,-8],[3,-48],[32,-59],[5,-28],[37,-67],[-24,-21],[-5,-39],[32,-20],[43,-46],[26,2],[28,-32],[6,-36],[-17,-49],[-1,-38],[15,-13],[-56,-42],[-12,-60],[17,-46],[1,-89],[28,-145],[-11,-31]],[[2684,4052],[-104,-53]],[[1736,4011],[-5,33],[-39,85],[8,19],[-25,68],[-1,44],[36,44],[18,5],[5,42],[22,64],[32,28],[-34,33],[-57,37]],[[1696,4513],[-23,118],[24,116],[53,40],[46,19],[66,56],[17,32],[54,49],[46,11]],[[1979,4954],[50,4],[54,-18],[67,19],[67,9],[68,-40],[106,-27],[58,14],[67,-12],[70,-1],[74,-25],[63,30],[21,18],[33,62],[29,15],[12,25],[62,44],[44,13]]
 ,[[2924,5084],[37,-20],[33,18],[53,10],[15,-18],[32,-1],[52,-45],[76,-41],[7,-22],[53,-19]],[[3282,4946],[-33,-30],[-20,5],[-38,-59],[-88,-52],[-32,4],[-27,-29],[-32,10],[-1,-25],[-61,-79],[10,-22],[-33,-42],[-17,-6],[-12,-66],[32,-50],[12,-35],[-1,-46],[11,-9],[-3,-43]],[[1696,4513],[-9,-24],[-65,-9],[-56,3]],[[2265,5231],[-62,-43],[-31,-29],[-36,8],[-61,-37],[-4,-16],[-39,-29],[-49,-22],[-55,-49],[31,-2],[1,-30],[19,-28]],[[6885,4926],[-79,179],[21,47],[-9,34],[-70,60],[-82,19],[-98,46],[-43,12],[-27,-12],[-70,6],[0,-14],[-74,-1],[2,-16],[-74,-15],[6,-14],[-69,-16],[4,-8],[-85,-38],[-123,-32],[-63,2]],[[5952,5165],[19,33],[-34,97],[-5,35],[78,21],[-10,26],[41,8],[40,66],[-39,6],[-29,22],[-15,43],[-51,36],[-32,13],[-52,1],[-29,21],[-14,39],[-32,-12],[-31,39],[-25,-9],[-43,5],[-77,32],[-42,32],[-63,5],[-27,18],[-19,49]],[[5461,5791],[3,29],[53,46],[74,2],[32,-9],[15,12],[6,90],[13,2],[104,68]],[[5761,6031],[36,-72],[89,-61],[70,-55],[38,23],[57,-44],[-51,-90],[138,-23],[57,53],[57,-
 19],[30,-71],[120,133],[60,11],[17,-11],[63,-70],[37,-17],[91,4],[25,19]],[[6695,5741],[17,-21],[15,-72],[28,15],[35,-29],[51,18],[197,114],[43,-50],[82,44],[96,-41],[25,17],[93,-10],[54,10]],[[7431,5736],[41,-11],[31,21],[37,-49],[-32,-31],[34,-32],[51,5],[32,-26],[20,-54],[14,9],[21,-36]],[[7680,5532],[13,-62],[-84,-23],[-26,-36],[29,-15],[-39,-25],[10,-66],[33,-20],[9,-25],[49,4],[17,-65],[-63,-27],[-144,-31]],[[7484,5141],[-145,-30],[-23,-38],[-2,-35],[-32,26],[-51,-29],[-21,8],[-8,46],[-15,5],[-41,-22],[-61,13],[-32,27],[-83,-35],[-42,-129],[-43,-22]],[[2981,6464],[35,12],[33,-38],[117,-46],[51,15],[1,24]],[[3218,6431],[38,-2],[34,-25],[103,-24],[49,-46],[-9,-6],[41,-37],[55,-26],[31,6],[32,-52],[-10,-28],[-27,0],[-22,-22],[53,-61],[47,-40]],[[3604,5900],[-44,19],[-46,62],[-17,7],[-102,-5],[-17,-37],[-43,-25],[-1,-20],[37,-38],[49,-68],[-13,-29],[-25,-8],[-12,-42],[-29,-19],[-5,-35],[17,-37],[-16,-43],[-39,-24],[-103,-4],[-155,-49],[-7,-10],[-73,-5],[-27,5],[-38,24],[-29,-3],[-
 23,-33],[-59,-124],[10,-35],[-17,-2],[-57,41],[-37,-31],[10,-27],[-27,-41],[7,-60],[61,-29],[56,-17],[51,-36],[63,-20],[20,-18]],[[4334,4640],[10,26],[27,18],[-7,22],[50,17],[10,42],[31,25],[17,49],[18,10],[39,69],[-3,52],[39,18],[4,46],[38,59],[11,43],[18,26],[-112,22],[-65,31],[-72,24]],[[5309,5741],[31,-2],[44,25],[13,-7],[54,13],[10,21]],[[5952,5165],[-73,-51],[-112,-60],[-83,-1],[-78,-28],[-54,-11],[-18,-21],[10,-23]],[[6885,4926],[30,-64],[-8,-52],[-9,-6],[26,-39],[-25,5],[-35,-37],[-10,-41],[-24,-12],[-55,9],[-38,-7],[-42,-54],[-78,-7],[-47,-26],[-17,-25],[-10,-63],[-33,-27],[-78,14],[-44,-20],[-106,-37],[-47,-24],[28,-75]],[[6263,4338],[-70,-43],[-26,-46],[-44,-33],[-30,-37],[1,-16],[-65,-28],[-67,68],[-26,45]],[[2604,8946],[-69,24],[-41,-11],[-15,-16],[-84,-34],[-131,-16],[-29,-9],[-28,9],[-32,31],[-53,30],[-36,6],[-40,-9],[-3,-33],[-26,-12],[12,-46],[-18,-15],[28,-50],[-39,-5],[6,-27],[-49,-28],[6,-8],[-46,-37],[-43,-91],[-105,-35],[-29,-3],[-31,-36]],[[1709,8525],[-72,-31
 ],[-16,-37],[2,-76],[-6,-83],[-30,0],[0,-26],[-19,-27],[-35,-18]],[[1533,8227],[-65,-17],[-58,19],[-42,2],[-11,-35],[-50,4],[-86,27],[-17,-5]],[[1204,8222],[-24,36],[-42,-7],[-33,26],[-22,43]],[[1083,8320],[16,21],[5,48],[99,84],[-56,28],[3,56],[20,0],[34,65],[34,21],[41,47],[-21,34],[8,48],[23,16],[-8,25],[23,9],[0,58],[-35,24],[7,13],[-8,59],[-17,25]],[[1251,9001],[171,-36],[92,89],[90,55],[118,128],[113,82],[-3,11]],[[1832,9330],[5,-6],[59,34],[56,17],[15,-14],[45,20],[53,6],[67,49],[81,38],[49,-9],[0,-39],[22,4],[105,52],[51,-34],[52,-4],[49,24],[54,13]],[[2595,9481],[45,-54],[-9,-20],[20,-46],[-15,-14],[5,-106],[-16,-38],[3,-70]],[[2628,9133],[-22,-41],[-1,-26],[40,-68],[-41,-52]],[[5748,8480],[76,26],[30,23],[11,-31],[31,5],[-19,29],[26,79],[44,7],[13,47],[25,6],[-14,33],[46,23],[11,-10],[54,32],[16,23],[-23,61]],[[6075,8833],[77,35],[-29,56]],[[6123,8924],[80,8],[109,55],[-71,149],[-19,74],[14,3],[-35,47]],[[6201,9260],[-4,54],[62,1],[12,33]],[[6271,9348],[45,1],[40,-39],[83,
 -1],[44,-32],[43,-8],[46,-34],[22,0],[50,33],[47,48],[-5,10],[33,42],[58,20]],[[6777,9388],[32,-63],[30,-12],[24,15],[36,-42],[65,-91],[47,-106],[-11,-54],[4,-42],[17,-41],[7,-71],[21,-50],[-2,-34],[23,-30]],[[7070,8767],[-59,-15],[-30,-20],[-79,10],[-12,-11],[36,-48],[0,-18],[-32,-10],[-45,13],[-16,-10],[-36,12],[-22,-53],[-54,-20],[-73,-38],[28,-23],[-83,-72],[47,-64],[-19,-14],[17,-16],[-44,-42],[-7,-23],[-51,-17],[-26,9],[-50,-11],[-17,-19],[-28,-1],[-63,-27],[-91,-51]],[[6261,8188],[-108,-62],[-53,-6],[-40,-50],[-79,-39],[-19,-21],[-17,10],[-15,74],[-36,55],[-8,63],[-26,35],[22,45],[-9,26],[38,10],[-4,32],[-45,67],[0,44],[-23,-42],[-36,-6],[4,-16],[-42,-8],[-4,58],[-13,23]],[[4729,6550],[-13,8],[13,30],[32,15],[-6,13],[23,33],[19,-11],[25,44],[61,57],[0,22],[139,127]],[[5022,6888],[133,-124],[136,-47],[23,31],[46,-16],[4,55],[64,-50],[29,-6],[57,22],[23,50],[26,16],[32,63],[-14,25],[17,36],[-21,13],[20,24],[-31,18],[24,38],[-23,22],[13,40],[-30,63],[28,58]],[[5578,7219],[31,-25
 ],[9,-52],[69,-50],[36,-7],[40,-57],[50,-37]],[[5813,6991],[-16,-53],[37,-16],[-10,-27],[40,-19],[-8,-25],[63,-33]],[[5919,6818],[11,-65],[-15,-40],[-86,-74],[69,-41],[-23,-80],[-15,-14],[-26,-87],[-23,-50],[-2,-58],[-15,-35],[12,-50],[50,-16]],[[5856,6208],[-148,-57],[23,-40],[27,-18],[3,-62]],[[9182,4662],[-450,109]],[[8732,4771],[-323,-35],[-328,37]],[[8081,4773],[-225,42]],[[7856,4815],[136,199],[491,484]],[[8483,5498],[168,-96],[175,-34],[202,-12],[70,23],[36,-11],[27,31],[60,21]],[[9221,5420],[44,-35],[51,-3],[25,-15],[78,-83]],[[9419,5284],[-2,-21],[45,-59],[3,-57],[23,-49],[-28,-72],[4,-44],[-37,36],[-44,29],[-12,-55],[-12,-9],[-3,-42],[-23,-36],[-7,-44],[-144,-199]],[[2943,8084],[0,11],[-57,16],[-19,27],[-49,-10],[-29,48],[-51,14],[-27,-33],[6,-20],[-34,-11]],[[2683,8126],[-32,17],[-71,20],[-3,25],[-72,-9],[-54,-17]],[[2451,8162],[-47,32],[-91,32],[-50,2],[-89,16],[-33,35],[-36,23],[-67,16]],[[2038,8318],[-25,20],[57,56],[-52,80],[11,61],[-117,-12],[-15,-48],[-37,9],[-17,29
 ],[-61,2],[-61,21],[-12,-11]],[[2604,8946],[26,-24],[133,-29],[70,5],[21,-26],[6,-62],[92,-39],[12,-55],[31,-15],[-11,-62],[42,-16],[59,-4],[35,-44],[49,-24],[16,-28],[19,0]],[[3204,8523],[-19,-86],[-49,-69],[37,-5],[43,-22],[-34,-46],[-43,-20],[-34,-174]],[[3105,8101],[-14,-17],[-148,0]],[[6301,8116],[-40,72]],[[7070,8767],[27,-23],[-1,-71],[-21,-31],[10,-27],[85,-17],[19,-71],[14,-5],[2,-45],[18,-6],[-9,-38],[32,-89],[-5,-60],[62,-119],[30,-26],[33,-48],[0,-44],[22,1],[-5,-40],[-18,-4],[15,-47],[-5,-66],[19,-42],[22,-18],[-5,-27],[45,-14],[4,-29],[32,-31],[-5,-18],[45,-57],[-21,-29],[46,-21],[51,-59],[13,-31],[51,-42],[0,-65]],[[7672,7408],[-83,-4],[-42,74],[-80,-38],[-7,45],[-19,-8],[-38,16],[-17,-8],[-24,20],[-92,13],[-36,-27],[-46,25],[-10,33],[-38,-5],[-149,-53],[-12,9]],[[6979,7500],[-55,42],[-8,46],[-58,105],[-38,-11],[-31,132],[6,35],[-9,37],[-42,49],[-51,-1],[-2,46],[-11,37],[-40,-1],[-19,29],[-47,-5],[-6,76],[-51,-18],[-4,75],[-23,21],[-77,-24],[-112,-54]],[[2628,9133],[6
 5,-12],[24,-23],[62,-8],[41,-22],[17,29],[308,50],[3,-11],[170,51],[-72,90],[-18,38],[-4,42],[31,6],[-2,18],[60,0],[50,-39],[46,11],[21,-11],[31,11],[8,22],[57,25],[-11,15],[30,6],[-3,27],[74,21],[71,36],[93,-34],[61,-17],[106,-157],[-2,-52],[32,-71],[18,-24]],[[3995,9150],[-43,-4],[-53,-42],[19,-92],[5,-55],[-39,-4],[21,-82],[-31,-36],[-36,14],[-32,-1]],[[3806,8848],[-8,-5],[15,-54],[-25,10],[-60,-34],[-36,3],[-20,-24],[18,-31],[-79,-23],[15,-28],[-42,6],[9,-16],[-43,18],[-40,0],[24,-51]],[[3534,8619],[-79,-17],[5,-69],[-47,-38],[-80,-17],[-36,13],[-52,-2],[-19,32],[-22,2]],[[7484,5141],[226,-288],[146,-38]],[[7856,4815],[-494,-608],[-233,204],[-106,-31],[-68,2],[-25,-8],[-31,12],[-110,-5],[-26,-39],[-44,-5],[-31,-28],[-75,9],[-55,23],[-30,33],[-62,-11],[-57,11],[-65,1],[-81,-37]],[[5856,6208],[6,-15],[51,-57],[53,-17],[11,20],[83,-54],[57,-21],[30,19],[14,-13],[70,18],[15,22],[134,86],[25,-6],[57,43],[63,-1],[32,19],[-6,24],[87,37],[19,-8],[14,21],[54,17],[-23,37],[35,14],[21,-8],
 [81,5],[19,70],[34,24],[25,-28],[47,35],[25,1]],[[6989,6492],[67,8],[39,56],[70,13],[77,23],[42,-41],[46,12],[18,17],[40,1]],[[7388,6581],[-2,-46],[-40,-8],[-15,-24],[13,-31],[35,-37],[-33,-26],[-5,-48],[24,-7],[-42,-30],[52,-19],[-55,-59],[-83,-58]],[[7237,6188],[-31,-29],[-61,-94],[-39,-39],[-38,-23],[-21,4],[-47,-16],[-134,-116],[-103,-81],[4,-21],[-38,-28],[-34,-4]],[[2656,6894],[39,11],[68,50],[17,33],[29,5],[1,49],[-21,14],[50,20],[-2,29],[14,57],[36,1],[-10,31],[42,30],[84,41],[23,-1],[50,46],[15,63],[44,48],[54,28],[50,15],[51,0]],[[3290,7464],[16,-4],[39,30],[34,1],[62,-20],[13,-23],[68,-8]],[[3522,7440],[94,-97],[2,-16],[64,-53],[27,-9],[-15,-19],[28,-32],[-11,-43],[41,-34],[44,-14]],[[3796,7123],[-9,-20],[-63,-33],[20,-22],[-48,-37],[-16,37],[-30,-7],[6,-32],[-43,-62],[-12,-43],[-56,-34],[13,-19],[-36,-13],[-16,16],[-25,-38],[32,-31],[-41,-24],[13,-16],[-71,-40],[3,-14],[-51,-24],[12,-43],[-45,-12],[-44,-31],[-13,-55],[-57,-36],[-1,-59]],[[347,8233],[-53,40],[-45,103],[-1
 8,12],[0,32],[-18,5],[-37,69],[-7,36],[-18,21],[3,44],[-47,16],[0,38],[-18,2],[-37,53],[-34,-1],[-18,30],[14,7],[-14,58],[17,42],[-3,48],[23,60],[43,6],[15,-26],[150,-36],[207,95],[438,115],[188,17],[60,-36],[102,-80],[11,-2]],[[1083,8320],[-17,-32],[-79,-47],[-90,-6],[-15,27],[-53,4],[-45,29]],[[784,8295],[20,52],[34,12],[-5,32],[24,-23],[37,2],[47,30],[4,21],[42,-8],[2,26],[39,6],[-26,32],[0,24],[23,8],[0,28],[-21,3],[-35,30],[-26,1],[-64,43],[-32,-7],[-7,30],[-36,8],[-81,-7],[-90,46],[-20,0],[-59,36],[26,15],[-10,25],[-50,13],[-31,49],[-29,-13],[20,-36],[-3,-32],[-56,-24],[-37,14],[-13,-45],[-29,-24],[7,-18],[-28,-6],[-13,-29],[19,-50],[40,24],[21,-31],[-30,-12],[22,-42],[-18,-7],[33,-70],[51,-33],[27,-27]],[[473,8361],[-13,8],[-26,-32],[25,-28],[-53,-27],[-5,-21],[-33,5],[-21,-33]],[[5692,8537],[56,-57]],[[6301,8116],[102,-189],[18,-16],[18,-41],[31,-40],[56,-47],[29,-146],[15,-20],[-100,-46],[-4,-45],[42,-63],[11,-56],[13,-10],[49,17],[10,-21],[38,-15],[-49,-104],[9,-53],[-38,-
 21],[-8,-27]],[[6543,7173],[-30,17],[-53,-9],[-9,26],[-84,67],[-62,7],[9,35],[-81,7],[0,-82],[-49,-46],[-66,-12],[-27,23]],[[6091,7206],[11,-3],[25,44],[-9,50],[-19,19],[-1,39],[25,18],[-32,30],[-23,-1],[4,63],[-50,20],[-22,-23],[-34,15],[4,25],[-59,14],[11,11],[-70,6]],[[3796,7123],[35,-19],[50,14],[24,-41]],[[3905,7077],[9,-44],[33,-25],[5,-33],[95,-70],[45,-22],[62,-50],[29,-32],[6,-38],[107,-90],[23,-8],[-3,-31]],[[3433,5039],[-3,70],[14,91],[-54,137],[6,46],[44,49],[-2,68],[19,12],[34,-4],[76,-59],[47,-17],[50,14],[45,-7]],[[5919,6818],[74,-16],[34,-47],[37,-13],[74,-11],[82,1],[54,18],[17,-16],[39,18],[-3,-39],[71,-11],[26,16],[25,-14],[13,13],[45,-5],[3,19],[31,21],[40,-4],[57,31]],[[6638,6779],[-21,-32],[6,-21],[32,-18],[-56,-22],[-33,-40],[11,-8],[-22,-32],[28,-21],[25,18],[49,-32],[60,23],[25,36],[38,-8],[8,26],[32,9],[70,-1],[38,-45],[42,-8],[-16,-45],[12,-42],[23,-24]],[[2431,7490],[-68,3],[-26,-57],[-54,-5],[-42,-14],[7,-23],[-16,-31],[-61,-40],[-31,-8],[-28,-50]],[[211
 2,7265],[-55,-1],[-33,37],[-98,-28],[-133,-1]],[[1793,7272],[8,15],[-36,17],[-2,30],[-35,-29],[-31,-7],[-3,26],[-53,36],[35,38],[-26,17],[-60,12],[48,36],[-54,14],[-43,-31],[-25,36],[-49,-1],[-32,32]],[[1435,7513],[-8,57],[-18,35]],[[1409,7605],[-9,18],[5,75]],[[1405,7698],[108,-28],[23,-23],[72,-10],[56,10],[21,17],[70,-1],[26,-8],[75,-4],[20,26],[-4,26],[-25,10],[-32,55],[4,65],[35,71],[36,20],[40,-2]],[[1930,7922],[42,2],[57,-21],[14,33],[-13,23],[37,2]],[[2067,7961],[62,-13],[34,-26],[12,13],[21,-49],[49,22],[17,-42],[27,11],[11,-29],[32,41],[60,-61],[-28,-31],[56,-19],[36,-30],[138,0],[37,89]],[[2631,7837],[116,0],[-36,-89],[25,0]],[[2736,7748],[25,-59],[-73,-1],[-36,-168],[-23,-46],[-52,17],[-9,-24],[-79,22],[-21,-13],[-37,14]],[[3905,7077],[75,48],[19,-17],[45,23],[29,0]],[[4073,7131],[22,42],[28,31],[38,-13],[41,38],[39,-45],[0,24],[69,34],[188,134]],[[4498,7376],[335,-312]],[[4833,7064],[189,-176]],[[3422,5016],[-50,-9],[-37,-36],[-53,-25]],[[1316,6633],[-7,5],[-38,-43],[-1
 5,13],[-35,-9],[11,-76],[-60,-18],[13,31],[-115,38],[10,80],[-19,6],[4,54],[-49,-4],[-6,56],[-36,3],[-23,38],[-18,-9],[-128,59]],[[805,6857],[53,93],[23,18],[55,10],[35,30],[-7,36],[78,51],[26,7],[64,51],[36,21],[53,7],[16,54],[39,19],[17,29],[-25,29],[-5,33],[24,9],[-16,41],[42,51],[37,28]],[[1350,7474],[50,0],[25,12],[10,27]],[[1793,7272],[-57,-13],[-24,-22],[28,-39],[-37,5],[-90,-23],[10,-49],[55,-32],[0,-117],[-9,-25],[-55,-16],[14,-20],[-39,-43],[33,-18]],[[7680,5532],[39,32],[131,75],[161,58],[55,35],[7,-8],[54,35],[23,-4]],[[8150,5755],[18,-132],[25,-10],[123,-20]],[[8316,5593],[167,-95]],[[6638,6779],[-17,39],[-27,3],[-22,39],[-31,-4],[-15,20],[51,76],[34,6],[14,25],[59,25],[9,30],[30,39],[-3,27],[-63,-22],[-17,21],[8,64]],[[6648,7167],[72,-5],[1,26],[36,5],[56,-19],[30,42],[28,0],[4,-38],[77,-33],[-1,24],[81,39]],[[7032,7208],[9,19],[42,-6],[2,16],[48,9],[7,-68],[38,-7],[19,22],[42,1],[-21,-25],[54,-39],[-22,-13],[-2,-98],[89,-43],[15,-33]],[[7352,6943],[-6,-17],[40,-25],[2
 5,-30],[-78,-46],[-30,-9],[24,-33],[18,8],[26,-17],[-4,-29],[42,-7],[6,-57],[93,8],[41,-21],[-15,-25],[15,-13]],[[7549,6630],[-29,-26],[-37,4],[-42,-32],[-36,17],[-17,-12]],[[2457,7064],[18,16],[4,64],[-9,81],[44,-1],[-3,71],[5,48],[-20,0],[-11,74],[-33,13],[3,27],[-24,33]],[[2736,7748],[87,0],[22,20],[80,39]],[[2925,7807],[1,1]],[[2926,7808],[90,32],[139,-24],[33,-37],[19,9],[4,-23],[-36,-57],[54,-9],[5,-49],[-38,-8],[54,-28],[53,-14],[5,-25],[-16,-40],[-2,-71]],[[6271,9348],[-29,18],[-47,-11],[-57,3],[0,29],[-27,20],[-43,3],[-53,93],[14,10],[-46,102],[-4,41],[-23,58],[-13,-7]],[[5943,9707],[-22,72],[24,5],[-6,47],[42,20],[-7,20],[58,10],[17,33],[-13,30],[28,14],[-2,18],[61,3],[55,20],[11,-6],[36,-84],[52,0],[79,18],[12,-49],[33,-4],[71,29],[13,-22],[85,-18],[65,-49],[34,-47],[58,-51],[64,-17],[-24,-38],[-32,-22],[-25,-47],[23,-109],[-2,-19],[46,-76]],[[642,5903],[-35,16],[40,13],[12,19],[-28,19],[31,43],[-3,23],[20,61],[-13,-4],[-14,65],[-28,20],[27,31],[-3,20],[-88,44],[37,75],[-
 21,35],[-20,-5],[-6,42],[19,30],[10,49],[-18,18],[-82,31],[21,41],[6,36],[-22,20],[-24,-7],[6,73],[26,37],[64,36],[166,70],[19,18]],[[741,6872],[64,-15]],[[4493,8358],[-18,13],[-4,77]],[[4471,8448],[-19,105],[13,78],[-11,29],[-25,17],[-28,-9],[-49,46],[5,33],[-25,1],[-4,46],[-23,24],[-3,33],[27,63],[-35,52],[-28,22],[13,40],[-59,62]],[[4220,9090],[99,51],[4,30],[72,31],[151,10],[141,38],[23,-12],[22,21],[74,5],[23,16],[49,10],[36,28],[45,15],[9,-25],[33,-1],[30,-40],[14,-53],[-8,-36],[-30,-13],[-30,-50],[2,-33],[-15,-10],[-59,1],[-19,34],[-34,-23],[-85,-4],[-84,-24],[0,-31],[50,0],[41,-47],[-30,-18],[-4,-26],[86,-91],[27,13],[40,-26],[29,9],[30,-13],[-19,-48],[21,-5],[27,-55]],[[9419,5284],[54,-60],[74,-39],[38,-56],[51,-31],[11,-31],[59,-52],[38,-9],[55,-77],[36,-10],[29,7],[81,-19],[44,-34],[10,-80],[-9,-28],[2,-70],[-32,-68],[-4,-57],[-27,-33],[-81,-27],[-40,-43],[-87,-10],[-36,-24],[-24,-2],[-112,-48],[-139,-26],[-81,18],[10,249],[-157,38]],[[4833,7064],[144,194],[64,69],[32,-16
 ],[46,74],[37,11],[22,22],[23,-15],[17,26],[1,38],[58,18],[49,62]],[[5480,7461],[-21,-7],[-47,14],[-34,-28],[27,-21],[-11,-35],[39,-15],[57,-8],[0,-68],[44,-2],[49,-14],[22,-34],[-27,-24]],[[3522,7440],[41,68],[29,36],[-3,35],[14,39],[24,6],[82,56],[74,38]],[[3783,7718],[30,-10],[35,-39],[17,8],[96,-114],[30,35],[66,34],[46,-22],[53,21],[156,6]],[[4312,7637],[69,-152]],[[4381,7485],[117,-109]],[[7352,6943],[59,23],[15,-5],[40,29],[68,27],[55,12],[80,31],[17,-15],[31,26],[-7,37],[-17,7],[11,65],[-4,31],[20,0],[9,58]],[[7729,7269],[29,-4],[34,-21],[125,-33],[17,-38],[2,-35],[60,0],[27,14],[58,2],[50,-13],[9,9],[51,-24],[38,10],[24,-22],[97,8],[16,-14]],[[8366,7108],[-56,-45],[-28,-40]],[[8282,7023],[-21,-51],[-19,-99],[-13,-30]],[[8229,6843],[-46,-11],[-24,-29],[-47,-35],[-74,-20],[-84,0],[-2,-17],[-70,8],[-100,-4],[-78,-33],[-55,-54]],[[7649,6648],[-43,26],[-57,-44]],[[6979,7500],[-36,-31],[12,-49],[1,-65],[76,-147]],[[6648,7167],[-18,1],[-35,-33],[-31,-84],[-36,23],[6,48],[15,14],[-
 6,37]],[[3616,7895],[-14,-22],[-11,-64],[-11,-15],[-64,25],[-46,-59],[-38,-17],[-20,26],[-28,-1],[-54,49],[60,53],[1,40],[-18,58],[-23,39],[-1,39],[-108,-19],[-99,23],[-20,22],[2,25],[-19,4]],[[3534,8619],[26,-84],[71,-139],[28,-27],[26,-40],[13,-100]],[[3698,8229],[8,-53],[27,-25]],[[3733,8151],[19,-36],[-8,-52],[46,-80],[-36,10],[-59,-24],[-79,-74]],[[7237,6188],[117,-9],[41,-13],[56,19],[60,-48],[55,48],[60,40],[60,53]],[[7686,6278],[58,-36],[31,-8],[-10,-44],[24,-21],[-26,-48],[32,-56]],[[7795,6065],[-1,-33],[-52,-22],[-2,-11],[-107,-43],[3,-34],[-24,-16],[-12,-45],[-49,-35],[-42,-4],[-1,-22],[-69,-51],[-8,-13]],[[5813,6991],[43,-14],[104,27],[25,-2],[11,48],[27,1],[13,33],[32,5],[2,22],[-26,7],[7,48],[17,0],[8,34],[15,6]],[[8600,6416],[-38,12],[2,43],[-51,54],[47,41],[-47,32]],[[8513,6598],[32,30],[11,34],[3,61],[-16,42],[-30,28],[66,4],[12,24]],[[8591,6821],[66,21],[32,-7],[25,17],[25,-16],[9,19],[49,14],[127,89],[34,-13],[32,12],[23,32],[10,-28],[26,-155],[41,-154],[23,-3],[6
 8,50],[80,22],[17,34],[194,148],[200,-242],[-6,-264],[-249,113],[-14,35],[-2,66],[-24,17],[-36,-11],[-10,21],[-90,-36],[-67,18],[-9,22],[-34,-4],[-103,29],[-19,-60],[-19,-6],[-79,6],[-59,-37],[-15,-43],[9,-22],[-32,5],[-161,-54],[-53,-40]],[[4381,7485],[176,124],[-18,24],[68,23],[29,-20],[4,30],[29,43],[31,-5],[-2,19],[48,-9]],[[7672,7408],[34,-20],[23,-119]],[[8513,6598],[-34,-40],[-9,11],[-40,-60],[-57,-62],[-30,18],[-27,-27],[-56,-8],[1,-26],[-19,-24],[4,-32],[-45,20],[-46,-36],[-32,-10]],[[8123,6322],[-80,50],[-53,27],[-68,13],[-27,-9],[-48,45],[-57,-64]],[[7790,6384],[-25,-1],[-10,27],[-56,21],[-8,51],[51,47],[-15,41],[15,87],[-8,6],[-85,-15]],[[8229,6843],[-2,-36],[49,-15],[23,11],[72,-11],[48,-17],[17,8],[60,80]],[[8496,6863],[22,-8]],[[8518,6855],[36,-39],[7,25],[30,-20]],[[1832,9330],[-39,31],[5,29],[-22,42],[-29,7],[-20,63],[-43,44],[6,38],[-35,47],[-8,48],[25,15],[-5,29],[80,41],[229,-13],[25,-32],[198,31],[121,109],[141,-140],[-6,-35],[13,-61],[35,-37],[41,-64],[51,-41]]
 ,[[1190,7698],[-13,14],[25,43],[-2,37],[-57,30],[41,12],[4,54],[-28,10],[-1,27],[-26,0]],[[1133,7925],[26,56],[38,-11]],[[1197,7970],[150,-37],[-1,60],[52,-14],[0,47],[30,58],[-58,32],[-45,-26],[5,-27],[-59,41],[-6,24],[-20,-12],[-41,78],[-22,-5],[2,24],[20,9]],[[1533,8227],[13,-16],[-6,-65],[29,-47],[21,-62],[43,32],[31,-32],[47,25],[21,-31]],[[1732,8031],[49,-41],[48,-19],[52,7],[34,-16],[35,4],[-6,-44],[-14,0]],[[1405,7698],[-42,-20],[-50,-6]],[[1313,7672],[-38,5],[-35,-10],[-50,31]],[[741,6872],[5,60],[47,8],[-18,47],[21,3],[-10,24],[18,35],[-17,27],[11,33],[-40,57],[-75,74]],[[683,7240],[81,47],[89,31],[-14,73],[25,20],[21,64],[26,21],[-10,26],[26,16],[49,72],[40,22],[42,1],[61,15],[71,50]],[[1313,7672],[23,-13],[-27,-62],[55,3],[-52,-56]],[[1312,7544],[24,0],[-5,-37],[19,-33]],[[4312,7637],[-29,62],[-44,43],[22,28],[-9,27],[-42,-13],[0,34],[-44,53],[-36,20],[-15,-19],[-20,14],[-2,33],[-59,21],[-21,91],[-20,45],[22,6]],[[4015,8082],[78,18],[83,48],[54,23],[30,39],[54,25],[43,-3
 1]],[[2926,7808],[6,220],[11,56]],[[3616,7895],[18,-5],[42,-37],[16,-33],[2,-40],[96,-53],[-7,-9]],[[4471,8448],[-33,-53],[3,33],[-73,9],[-11,13],[-9,92],[-30,34],[-65,-9],[-51,36],[-9,-26],[-109,-21]],[[4084,8556],[-58,71],[4,16],[-35,21],[-42,46],[-15,-6],[-31,44],[-54,17],[35,22],[-27,8],[-55,53]],[[3995,9150],[154,-12],[71,-48]],[[7795,6065],[36,21],[45,-14],[93,34]],[[7969,6106],[10,-23],[34,-4],[25,34],[49,-76],[45,-28],[-2,-36],[27,-14],[36,6],[32,-23],[-18,-25],[-58,-32],[-9,-49],[6,-31]],[[8146,5805],[4,-50]],[[660,7797],[-25,27],[16,7],[-27,29],[-43,76],[-66,41],[-28,4],[-39,43],[-27,11],[7,21],[-27,13],[-6,32],[-25,-6],[-29,35],[21,14],[-15,89]],[[473,8361],[98,-21],[15,-53],[59,-6],[-1,-21],[31,-5],[29,15]],[[704,8270],[8,-11],[39,8],[3,-92],[62,-22],[-2,-22],[42,2],[5,-12],[57,-30],[28,-3],[-12,-54],[65,15],[148,-5],[35,-21],[15,-53]],[[1133,7925],[-65,-1],[-35,-10],[-51,-34],[-3,-23],[-29,-19],[-61,9],[-48,-20],[-59,6],[-42,13],[-44,0],[-38,-29],[2,-20]],[[683,7240],[-
 32,32],[-22,62],[-20,23],[-27,110],[6,10],[-3,74],[20,51],[-8,14],[37,52],[31,22],[28,39],[-16,34],[-22,10],[5,24]],[[4015,8082],[-4,34],[-141,0],[-45,18],[-92,17]],[[3698,8229],[7,0],[86,71],[26,34],[54,7],[49,43],[54,11],[90,105],[20,56]],[[8732,4771],[-14,-291],[11,-67],[-21,-13],[-134,3],[-46,-4],[-121,37],[-24,-9],[-70,2],[-43,19],[-30,-17],[-57,-9],[-70,-25],[-43,42],[-2,16],[29,31],[-16,287]],[[7969,6106],[46,73],[36,12],[0,67],[60,38],[31,6],[-19,20]],[[8600,6416],[-47,-53],[-38,-55],[-68,-56],[-11,-31],[14,-22],[-15,-36],[23,-58],[-19,-21],[-3,-48],[-29,-32],[0,-25],[-108,-82],[-21,-1],[-36,-27],[-13,-23],[-30,-9],[-53,-32]],[[784,8295],[-33,-1],[-47,-24]],[[2112,7265],[13,-47],[51,-7],[23,-56],[48,-1],[0,-42],[31,-30],[-23,-38],[-11,-47],[-49,-35]],[[5654,9441],[86,286],[66,9],[23,-20],[114,-9]],[[6201,9260],[-59,-5],[-26,7],[-53,-15],[-27,-23],[-78,-27],[-76,-10]],[[5882,9187],[-30,8],[-39,-29],[-73,47],[-52,52]],[[2038,8318],[12,-15],[-35,-55],[3,-75],[-17,-3],[-4,-66],[
 -68,-18],[4,-13],[-50,-11],[-89,31],[-36,-46],[-26,-16]],[[5606,8960],[56,-9],[-6,40],[50,18],[36,-14],[93,58],[6,-12],[61,17]],[[5902,9058],[11,3],[15,-46],[21,-28],[25,20],[19,-55],[20,-5],[55,11],[32,-6],[23,-28]],[[8316,5593],[436,117],[25,1],[32,-31],[34,-8],[43,6],[31,-12],[68,-53],[-23,-21],[23,-19],[113,-58],[123,-95]],[[7790,6384],[-59,-39],[-47,-56],[2,-11]],[[2067,7961],[-11,10],[44,35],[36,-49],[17,10],[41,57],[77,17],[39,25],[93,0],[36,46],[12,50]],[[2683,8126],[-24,-46],[30,-45],[-50,-1],[-29,-35],[-10,-42],[62,3],[15,-10],[-46,-113]],[[5902,9058],[-23,77],[22,21],[-19,31]],[[8496,6863],[-132,90],[-36,12],[-46,58]],[[8366,7108],[81,41],[20,20],[44,-97],[14,-58],[-12,-21],[23,-18],[-34,-86],[16,-34]],[[1312,7544],[31,13],[66,48]]],"transform":{"scale":[0.04339444555024057,-0.04800480048004801],"translate":[263.04946947157225,490]}}


[37/50] [abbrv] zest-qi4j git commit: ..

Posted by ni...@apache.org.
..


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/8c01b5c6
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/8c01b5c6
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/8c01b5c6

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: 8c01b5c65d56a520906094ae92991e3211df9943
Parents: d305f9d
Author: jj <ju...@gmail.com>
Authored: Thu Jan 15 19:40:16 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Thu Jan 15 19:40:16 2015 +0100

----------------------------------------------------------------------
 .../extension/spatial/ElasticSearchSpatialBench.java             | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/8c01b5c6/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
index 0ffa488..67a9623 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
@@ -137,13 +137,13 @@ public class ElasticSearchSpatialBench
 
         // System.out.println("spherical " + xy[0] + " " + xy[1] );
         long start = System.currentTimeMillis();
-        for (int j = 0; j < 1000; j++)
+        for (int j = 0; j < 10000; j++)
         {
             System.out.println("--> " + j);
             UnitOfWork unitOfWork = module.newUnitOfWork();
 
 
-            for (int i = 0; i < 10000; i++) {
+            for (int i = 0; i < 1000; i++) {
                 double[] xy = nextSpherePt2D();
                 //System.out.println("Degrees " + DistanceUtils.toDegrees(xy[0]) + "," + DistanceUtils.toDegrees(xy[1]));
 


[42/50] [abbrv] zest-qi4j git commit: Final cleanup

Posted by ni...@apache.org.
Final cleanup


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/503532e9
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/503532e9
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/503532e9

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: 503532e9ab0b5269a5a97b4ee640160d0abd1d15
Parents: 8c01b5c
Author: jj <ju...@gmail.com>
Authored: Sat Jan 17 17:13:56 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Sat Jan 17 17:13:56 2015 +0100

----------------------------------------------------------------------
 .../main/java/org/qi4j/api/geometry/TCRS.java   |  20 +-
 .../java/org/qi4j/api/geometry/TLineString.java |  83 ++--
 .../org/qi4j/api/geometry/TMultiLineString.java |  17 +-
 .../org/qi4j/api/geometry/TMultiPolygon.java    |  19 +-
 .../geometry/internal/GeometryCollections.java  |  43 +-
 .../qi4j/api/geometry/internal/HasNoArea.java   |   7 -
 .../org/qi4j/api/geometry/internal/TCircle.java |  17 +-
 .../qi4j/api/geometry/internal/TGeometry.java   | 103 +++--
 .../api/geometry/internal/TGeometryRoot.java    |  28 --
 .../org/qi4j/api/geometry/internal/TShape.java  |   4 +-
 .../geometry/internal/builders/TCRSBuilder.java |  12 +-
 .../builders/TFeatureCollectionBuilder.java     |  21 +-
 .../internal/builders/TLinearRingBuilder.java   |  37 +-
 .../builders/TMultiLineStringBuilder.java       |  28 +-
 .../internal/builders/TMultiPointBuilder.java   |  21 +-
 .../internal/builders/TPointBuilder.java        |  39 +-
 .../internal/builders/TPolygonBuilder.java      |  25 +-
 .../spatial/SpatialQueryExpressions.java        |  46 +-
 .../convert/ST_GeomFromTextSpecification.java   |  32 +-
 .../convert/SpatialConvertSpecification.java    |  57 +--
 .../SpatialMeasurementsSpecification.java       |  60 ---
 .../predicate/ST_DisjointSpecification.java     |  30 +-
 .../predicate/ST_IntersectsSpecification.java   |  29 +-
 .../SpatialPredicatesSpecification.java         |  21 +-
 .../qi4j/api/geometry/TGeometryFactoryTest.java | 156 +++----
 .../test/indexing/AbstractAnyQueryTest.java     |   2 +-
 .../indexing/AbstractSpatialRegressionTest.java |  13 +-
 extensions/indexing-elasticsearch/build.gradle  |  13 +-
 .../elasticsearch/ElasticSearchFinder.java      |   5 -
 .../elasticsearch/ElasticSearchIndexer.java     |   5 +-
 .../functions/convert/ConvertFinderSupport.java |  26 +-
 .../predicates/PredicateFinderSupport.java      |  34 +-
 .../spatial/functions/predicates/ST_Within.java |  37 +-
 .../AbstractElasticSearchSpatialFunction.java   | 179 ++++----
 .../spatial/internal/InternalUtils.java         |  18 +-
 .../spatial/mappings/SpatialIndexMapper.java    |  37 +-
 .../mappings/builders/AbstractBuilder.java      |  21 +-
 .../mappings/cache/MappingsCachesTable.java     |  15 +-
 .../ElasticSearchSpatialQueryTest.java          | 237 ----------
 .../ElasticSearchSpatialClusterQueryTest.java   | 132 ------
 ...chSpatialQueryTestUsingGeoPointIndexing.java |  14 +-
 ...SearchSpatialRegressionQueryClusterTest.java |  90 ----
 .../spatial/model/VerifyStatialTypes.java       |  36 --
 .../spatial/model/entity/SpatialEntity.java     |  11 -
 .../extension/spatial/utils/RandomUtils.java    | 438 -------------------
 .../resources/ElasticSearchBenchmark.properties |  30 --
 .../ElasticSearchGeoShapeIndexing.properties    |   4 +-
 .../spatial/assembly/TGeometryAssembler.java    |  10 +-
 .../spatial/conversions/TConversions.java       |  30 --
 .../spatial/conversions/from/FromHelper.java    |  58 ---
 .../spatial/conversions/to/ToHelper.java        |  62 ---
 .../formats/conversions/from/FromHelper.java    |  61 +++
 .../conversions/from/GeoJsonFromConverter.java  | 200 +++++++++
 .../conversions/to/GeoJsonToConverter.java      |  76 ++++
 .../spatial/projection/ProjectionsRegistry.java |  75 ----
 .../transformations/TTransformations.java       |  31 --
 .../transformations/fromto/FromHelper.java      |  41 --
 .../projections/ProjectionsRegistry.java        |  79 ++++
 .../transformations/fromto/FromHelper.java      |  44 ++
 .../transformations/fromto/ToHelper.java        | 158 +++++++
 .../conversions/ConversionsFromWktTest.java     |  33 --
 .../ConversionsWithProjectionsTest.java         |  86 ----
 .../formats/data/GeoJSONSwissLakes2013.java     | 176 ++++++++
 .../spatial/topo/GeoJSONSpec20080616.java       |  27 --
 .../transformations/TransformationsTest.java    |  22 +-
 samples/openstreetmap/build.gradle              |  19 -
 .../domain/openstreetmap/model/OSMEntity.java   |  11 -
 .../model/interactions/api/FeatureCmds.java     |  48 --
 .../openstreetmap/model/state/FeatureState.java |  19 -
 .../model/state/IdentifiableState.java          |  18 -
 .../model/state/PropertiesState.java            |  18 -
 .../openstreetmap/model/v2/FeatureEntityV2.java |  13 -
 .../openstreetmap/model/v2/OSMEntityV2.java     |  11 -
 .../model/v2/structure/Feature.java             |  79 ----
 .../openstreetmap/model/v2/structure/OSM.java   | 109 -----
 .../openstreetmap/model/test/TestOSMModel.java  | 431 ------------------
 settings.gradle                                 |   1 -
 77 files changed, 1486 insertions(+), 2912 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/TCRS.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TCRS.java b/core/api/src/main/java/org/qi4j/api/geometry/TCRS.java
index 0f94f61..67c605c 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TCRS.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TCRS.java
@@ -14,37 +14,35 @@
 
 package org.qi4j.api.geometry;
 
-import org.qi4j.api.geometry.internal.TGeometryRoot;
 import org.qi4j.api.injection.scope.Structure;
 import org.qi4j.api.injection.scope.This;
 import org.qi4j.api.mixin.Mixins;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.structure.Module;
+import org.qi4j.api.value.ValueComposite;
 
 @Mixins(TCRS.Mixin.class)
-public interface TCRS extends TGeometryRoot {
-
-
+public interface TCRS extends ValueComposite
+{
     Property<String> definition();
-
     TCRS of(String crs);
-
     String crs();
 
-
-    public abstract class Mixin implements TCRS {
+    public abstract class Mixin implements TCRS
+    {
         @Structure
         Module module;
-
         @This
         TCRS self;
 
-        public TCRS of(String crs) {
+        public TCRS of(String crs)
+        {
             self.definition().set(crs);
             return self;
         }
 
-        public String crs() {
+        public String crs()
+        {
             return self.definition().get();
         }
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/TLineString.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TLineString.java b/core/api/src/main/java/org/qi4j/api/geometry/TLineString.java
index 33b1a23..d9b0959 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TLineString.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TLineString.java
@@ -27,7 +27,8 @@ import java.util.List;
 
 
 @Mixins(TLineString.Mixin.class)
-public interface TLineString extends TGeometry {
+public interface TLineString extends TGeometry
+{
 
     Property<List<TPoint>> points();
 
@@ -38,86 +39,102 @@ public interface TLineString extends TGeometry {
     TLineString yx(double y, double x);
 
     boolean isEmpty();
+
     int getNumPoints();
+
     TPoint getPointN(int n);
     TPoint getStartPoint();
     TPoint getEndPoint();
+
     boolean isClosed();
     boolean isRing();
+
     int compareTo(TLineString line);
 
-    public abstract class Mixin implements TLineString {
+    public abstract class Mixin implements TLineString
+    {
         @This
         TLineString self;
 
         @Structure
         Module module;
 
-        public TLineString of(List<TPoint> points) {
+        public TLineString of(List<TPoint> points)
+        {
             of(points.toArray(new TPoint[points.size()]));
             return self;
         }
 
 
-        public TLineString of(TPoint... points) {
+        public TLineString of(TPoint... points)
+        {
 
             List<TPoint> l = new ArrayList<>();
-
-            for (TPoint p : points) {
+            for (TPoint p : points)
+            {
                 l.add(p);
             }
-
             if (self.isEmpty())
                 self.points().set(l);
             else
                 self.points().get().addAll(l);
-
             self.geometryType().set(TGEOMETRY_TYPE.LINESTRING);
-
             return self;
         }
 
-        public TLineString of() {
+        public TLineString of()
+        {
             return self;
         }
 
-        public TLineString yx(double y, double x) {
+        public TLineString yx(double y, double x)
+        {
             of(module.newValueBuilder(TPoint.class).prototype().x(x).y(y));
             return self;
         }
 
-        public boolean isEmpty() {
+        public boolean isEmpty()
+        {
             return (self.points() == null) || (self.points().get() == null) || (self.points().get().isEmpty()) ? true : false;
         }
 
-        public int getNumPoints() {
+        public int getNumPoints()
+        {
             return isEmpty() ? 0 : self.points().get().size();
         }
 
-        public TPoint getPointN(int n) {
+        public TPoint getPointN(int n)
+        {
             return self.points().get().get(n);
         }
 
-        public TPoint getStartPoint() {
-            if (isEmpty()) {
+        public TPoint getStartPoint()
+        {
+            if (isEmpty())
+            {
                 return null;
             }
             return getPointN(0);
         }
 
-        public TPoint getEndPoint() {
-            if (isEmpty()) {
+        public TPoint getEndPoint()
+        {
+            if (isEmpty())
+            {
                 return null;
             }
             return getPointN(getNumPoints() - 1);
         }
 
-        public Coordinate[] getCoordinates() {
+        public Coordinate[] getCoordinates()
+        {
             int k = -1;
             Coordinate[] coordinates = new Coordinate[getNumPoints()];
-            for (int i = 0; i < getNumPoints(); i++) {
+            for (int i = 0; i < getNumPoints(); i++)
+            {
                 Coordinate[] childCoordinates = getPointN(i).getCoordinates();
-                for (int j = 0; j < childCoordinates.length; j++) {
+                for (int j = 0; j < childCoordinates.length; j++)
+                {
                     k++;
                     coordinates[k] = childCoordinates[j];
                 }
@@ -125,33 +142,41 @@ public interface TLineString extends TGeometry {
             return coordinates;
         }
 
-        public boolean isClosed() {
-            if (isEmpty()) {
+        public boolean isClosed()
+        {
+            if (isEmpty())
+            {
                 return false;
             }
             return getStartPoint().compareTo(getEndPoint()) == 0 ? true : false;
         }
 
-        public boolean isRing() {
+        public boolean isRing()
+        {
             return isClosed();
         }
 
-        public int compareTo(TLineString line) {
+        public int compareTo(TLineString line)
+        {
 
             int i = 0;
             int j = 0;
-            while (i < self.getNumPoints() && j < line.getNumPoints()) {
+            while (i < self.getNumPoints() && j < line.getNumPoints())
+            {
                 int comparison = self.getPointN(i).compareTo(line.getPointN(j));
-                if (comparison != 0) {
+                if (comparison != 0)
+                {
                     return comparison;
                 }
                 i++;
                 j++;
             }
-            if (i < self.getNumPoints()) {
+            if (i < self.getNumPoints())
+            {
                 return 1;
             }
-            if (j < line.getNumPoints()) {
+            if (j < line.getNumPoints())
+            {
                 return -1;
             }
             return 0;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/TMultiLineString.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TMultiLineString.java b/core/api/src/main/java/org/qi4j/api/geometry/TMultiLineString.java
index 9b12a3f..3d8ba09 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TMultiLineString.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TMultiLineString.java
@@ -25,28 +25,35 @@ import java.util.ArrayList;
 import java.util.List;
 
 @Mixins(TMultiLineString.Mixin.class)
-public interface TMultiLineString extends GeometryCollections {
+public interface TMultiLineString extends GeometryCollections
+{
 
     TMultiLineString of(TLineString... lines);
+
     TMultiLineString of(List<TLineString> lines);
 
-    public abstract class Mixin extends GeometryCollections.Mixin implements TMultiLineString {
+    public abstract class Mixin extends GeometryCollections.Mixin implements TMultiLineString
+    {
         @Structure
         Module module;
 
         @This
         TMultiLineString self;
 
-        public TMultiLineString of(List<TLineString> lines) {
+        public TMultiLineString of(List<TLineString> lines)
+        {
             of(lines.toArray(new TLineString[lines.size()]));
             return self;
         }
-        public TMultiLineString of(TLineString... lines) {
+
+        public TMultiLineString of(TLineString... lines)
+        {
             self.geometryType().set(TGEOMETRY_TYPE.MULTILINESTRING);
             init();
             List<TGeometry> l = new ArrayList<>();
 
-            for (TLineString p : lines) {
+            for (TLineString p : lines)
+            {
                 l.add(p);
             }
             if (self.isEmpty())

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/TMultiPolygon.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TMultiPolygon.java b/core/api/src/main/java/org/qi4j/api/geometry/TMultiPolygon.java
index 2538df4..4eb37c1 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TMultiPolygon.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TMultiPolygon.java
@@ -25,28 +25,35 @@ import java.util.ArrayList;
 import java.util.List;
 
 @Mixins(TMultiPolygon.Mixin.class)
-public interface TMultiPolygon extends GeometryCollections {
+public interface TMultiPolygon extends GeometryCollections
+{
 
     TMultiPolygon of(TPolygon... polygons);
+
     TMultiPolygon of(List<TPolygon> polygons);
 
-    public abstract class Mixin extends GeometryCollections.Mixin implements TMultiPolygon {
+    public abstract class Mixin extends GeometryCollections.Mixin implements TMultiPolygon
+    {
         @Structure
         Module module;
 
         @This
         TMultiPolygon self;
 
-        public TMultiPolygon of(List<TPolygon> polygons) {
+        public TMultiPolygon of(List<TPolygon> polygons)
+        {
             of(polygons.toArray(new TPolygon[polygons.size()]));
             return self;
         }
-        public TMultiPolygon of(TPolygon... polygons) {
-            self.geometryType().set(TGEOMETRY_TYPE.MULTIPOLYGON);
+
+        public TMultiPolygon of(TPolygon... polygons)
+        {
             init();
+            self.geometryType().set(TGEOMETRY_TYPE.MULTIPOLYGON);
             List<TGeometry> l = new ArrayList<>();
 
-            for (TPolygon p : polygons) {
+            for (TPolygon p : polygons)
+            {
                 l.add(p);
             }
             if (self.isEmpty())

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
index 48b0537..7f9d5a8 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
@@ -20,10 +20,9 @@ import org.qi4j.api.property.Property;
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * Created by jj on 28.11.14.
- */
-public interface GeometryCollections extends TGeometry {
+
+public interface GeometryCollections extends TGeometry
+{
 
     Property<List<TGeometry>> geometries();
     TGeometry getGeometryN(int n);
@@ -33,14 +32,15 @@ public interface GeometryCollections extends TGeometry {
 
     boolean isEmpty();
 
-    public abstract class Mixin extends TGeometry.Mixin implements GeometryCollections {
+    public abstract class Mixin extends TGeometry.Mixin implements GeometryCollections
+    {
 
         @This
         GeometryCollections self;
 
 
-        protected void init() {
-
+        protected void init()
+        {
             if (self.geometries().get() == null)
             {
                 List<TGeometry> geometries = new ArrayList<>();
@@ -48,7 +48,8 @@ public interface GeometryCollections extends TGeometry {
             }
         }
 
-        public boolean isEmpty() {
+        public boolean isEmpty()
+        {
             for (int i = 0; i < self.geometries().get().size(); i++)
             {
                 if (!self.geometries().get().get(i).isEmpty())
@@ -59,30 +60,36 @@ public interface GeometryCollections extends TGeometry {
             return true;
         }
 
-        public int getNumGeometries() {
+        public int getNumGeometries()
+        {
             return self.geometries().get().size();
         }
 
-        public TGeometry getGeometryN(int n) {
+        public TGeometry getGeometryN(int n)
+        {
             return self.geometries().get().get(n);
         }
-
-        public Coordinate[] getCoordinates() {
+        public Coordinate[] getCoordinates()
+        {
             Coordinate[] coordinates = new Coordinate[self.getNumPoints()];
             int k = -1;
-            for (int i = 0; i < self.getNumGeometries(); i++) {
+            for (int i = 0; i < self.getNumGeometries(); i++)
+            {
                 Coordinate[] childCoordinates = self.geometries().get().get(i).getCoordinates();
-                    for (int j = 0; j < childCoordinates.length; j++) {
-                        k++;
-                        coordinates[k] = childCoordinates[j];
+                for (int j = 0; j < childCoordinates.length; j++)
+                {
+                    k++;
+                    coordinates[k] = childCoordinates[j];
                 }
             }
             return coordinates;
         }
 
-        public int getNumPoints() {
+        public int getNumPoints()
+        {
             int numPoints = 0;
-            for (int i = 0; i < self.geometries().get().size(); i++) {
+            for (int i = 0; i < self.geometries().get().size(); i++)
+            {
                 numPoints += self.geometries().get().get(i).getNumPoints();
             }
             return numPoints;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/HasNoArea.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/HasNoArea.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/HasNoArea.java
deleted file mode 100644
index c03f86f..0000000
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/HasNoArea.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.api.geometry.internal;
-
-/**
- * Created by jj on 02.12.14.
- */
-public interface HasNoArea {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/TCircle.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TCircle.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TCircle.java
index fcc4203..b52b28d 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TCircle.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/TCircle.java
@@ -8,14 +8,12 @@ import org.qi4j.api.injection.scope.This;
 import org.qi4j.api.mixin.Mixins;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.structure.Module;
-import org.qi4j.api.value.ValueBuilder;
-
-import java.util.List;
 
 @Mixins(TCircle.Mixin.class)
-    public interface TCircle extends TGeometry
+public interface TCircle extends TGeometry
 {
     Property<TPoint> point();
+
     Property<Double> radius();
 
     TCircle of(TPoint point, double radius);
@@ -25,8 +23,8 @@ import java.util.List;
 
     TCircle yx(double y, double x);
     TCircle yx(double y, double x, double radius);
-    TCircle radius(double r);
 
+    TCircle radius(double r);
     TPoint getCentre();
     TPolygon polygonize(int numOfPoints);
 
@@ -93,8 +91,6 @@ import java.util.List;
             double centreX = self.getCentre().x();
             double centreY = self.getCentre().y();
 
-           // ValueBuilder<TPoint> pB = module.newValueBuilder(TPoint.class);
-
             TPoint[] pts = new TPoint[numOfPoints + 1];
             int pt = 0;
             for (int i = 0; i < numOfPoints; i++)
@@ -106,17 +102,14 @@ import java.util.List;
             }
 
             pts[pt++] = module.newValueBuilder(TPoint.class).prototype().of(pts[0].getCoordinates());
-
-            TLinearRing tLinearRing = (TLinearRing)module.newValueBuilder(TLinearRing.class).prototype().of(pts);
-           // System.out.println(tLinearRing);
+            TLinearRing tLinearRing = (TLinearRing) module.newValueBuilder(TLinearRing.class).prototype().of(pts);
 
             if (tLinearRing.isValid())
             {
                 TPolygon tPolygon = module.newValueBuilder(TPolygon.class).prototype().of(tLinearRing);
                 tPolygon.setCRS(self.getCRS());
                 return module.newValueBuilder(TPolygon.class).prototype().of(tLinearRing);
-            }
-            else
+            } else
                 return null;
         }
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
index 18c273c..533ee14 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
@@ -14,8 +14,6 @@
 
 package org.qi4j.api.geometry.internal;
 
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.MultiPoint;
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.common.UseDefaults;
 import org.qi4j.api.geometry.*;
@@ -24,22 +22,28 @@ import org.qi4j.api.injection.scope.This;
 import org.qi4j.api.mixin.Mixins;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.structure.Module;
+import org.qi4j.api.value.ValueComposite;
 
 @Mixins(TGeometry.Mixin.class)
-public interface TGeometry extends TGeometryRoot {
+public interface TGeometry extends ValueComposite
+{
+    enum TGEOMETRY_TYPE
+    {
+        POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, FEATURE, FEATURECOLLECTION, INVALID
+    }
 
     Property<TGEOMETRY_TYPE> geometryType();
 
     @Optional
     @UseDefaults
     Property<String> CRS();
-
-
     String getCRS();
     void setCRS(String crs);
 
     abstract Coordinate[] getCoordinates();
+
     abstract int getNumPoints();
+
     abstract boolean isEmpty();
 
     TGEOMETRY_TYPE getType();
@@ -71,7 +75,10 @@ public interface TGeometry extends TGeometryRoot {
     boolean isGeometry();
     boolean isGeometry(Object tGeometry);
 
-    public abstract class Mixin implements TGeometry {
+
+
+    public abstract class Mixin implements TGeometry
+    {
 
         @Structure
         Module module;
@@ -79,122 +86,138 @@ public interface TGeometry extends TGeometryRoot {
         @This
         TGeometry self;
 
-        public String getCRS() {
+        public String getCRS()
+        {
             return self.CRS().get();
         }
 
-        public void setCRS(String crs) {
+        public void setCRS(String crs)
+        {
             self.CRS().set(crs);
         }
 
 
-        public int getNumPoints() {
+        public int getNumPoints()
+        {
             return 0;
         }
 
-        public Coordinate[] getCoordinates() {
+        public Coordinate[] getCoordinates()
+        {
             throw new RuntimeException("Should never be called");
         }
 
-        public boolean isEmpty() {
+        public boolean isEmpty()
+        {
             throw new RuntimeException("Should never be called");
         }
 
         public TGEOMETRY_TYPE getType()
         {
             // "strong typing" - type & instanceOf must match
-            switch(self.geometryType().get())
+            switch (self.geometryType().get())
             {
-                case POINT              : return self.isPoint()             == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.POINT;
-                case MULTIPOINT         : return self.isMultiPoint()        == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.MULTIPOINT;
-                case LINESTRING         : return self.isLineString()        == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.LINESTRING;
-                case MULTILINESTRING    : return self.isMultiLineString()   == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.MULTILINESTRING;
-                case POLYGON            : return self.isPolygon()           == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.POLYGON;
-                case MULTIPOLYGON       : return self.isMultiPolygon()      == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.MULTIPOLYGON;
-                case FEATURE            : return self.isFeature()           == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.FEATURE;
-                case FEATURECOLLECTION  : return self.isFeatureCollection() == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.FEATURECOLLECTION;
-                default                 : return TGEOMETRY_TYPE.INVALID;
+                case POINT:
+                    return self.isPoint() == false ? TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.POINT;
+                case MULTIPOINT:
+                    return self.isMultiPoint() == false ? TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.MULTIPOINT;
+                case LINESTRING:
+                    return self.isLineString() == false ? TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.LINESTRING;
+                case MULTILINESTRING:
+                    return self.isMultiLineString() == false ? TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.MULTILINESTRING;
+                case POLYGON:
+                    return self.isPolygon() == false ? TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.POLYGON;
+                case MULTIPOLYGON:
+                    return self.isMultiPolygon() == false ? TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.MULTIPOLYGON;
+                case FEATURE:
+                    return self.isFeature() == false ? TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.FEATURE;
+                case FEATURECOLLECTION:
+                    return self.isFeatureCollection() == false ? TGEOMETRY_TYPE.INVALID : TGEOMETRY_TYPE.FEATURECOLLECTION;
+                default:
+                    return TGEOMETRY_TYPE.INVALID;
             }
         }
 
         public boolean isPoint()
         {
-            return self instanceof TPoint ? true:false;
+            return self instanceof TPoint ? true : false;
         }
         public boolean isPoint(TGeometry tGeometry)
         {
-            return tGeometry instanceof TPoint ? true:false;
+            return tGeometry instanceof TPoint ? true : false;
         }
 
         public boolean isMultiPoint()
         {
-            return self instanceof TMultiPoint ? true:false;
+            return self instanceof TMultiPoint ? true : false;
         }
         public boolean isMultiPoint(TGeometry tGeometry)
         {
-            return tGeometry instanceof TMultiPoint ? true:false;
+            return tGeometry instanceof TMultiPoint ? true : false;
         }
 
         public boolean isLineString()
         {
-            return self instanceof TLineString ? true:false;
+            return self instanceof TLineString ? true : false;
         }
         public boolean isLineString(TGeometry tGeometry)
         {
-            return tGeometry instanceof TLineString ? true:false;
+            return tGeometry instanceof TLineString ? true : false;
         }
 
         public boolean isMultiLineString()
         {
-            return self instanceof TMultiLineString ? true:false;
+            return self instanceof TMultiLineString ? true : false;
         }
         public boolean isMultiLineString(TGeometry tGeometry)
         {
-            return tGeometry instanceof TMultiLineString ? true:false;
+            return tGeometry instanceof TMultiLineString ? true : false;
         }
+
         public boolean isPolygon()
         {
-            return self instanceof TPolygon ? true:false;
+            return self instanceof TPolygon ? true : false;
         }
         public boolean isPolygon(TGeometry tGeometry)
         {
-            return tGeometry instanceof TPolygon ? true:false;
+            return tGeometry instanceof TPolygon ? true : false;
         }
+
         public boolean isMultiPolygon()
         {
-            return self instanceof TMultiPolygon ? true:false;
+            return self instanceof TMultiPolygon ? true : false;
         }
         public boolean isMultiPolygon(TGeometry tGeometry)
         {
-            return tGeometry instanceof TMultiPolygon ? true:false;
+            return tGeometry instanceof TMultiPolygon ? true : false;
         }
+
         public boolean isFeature()
         {
-            return self instanceof TFeature ? true:false;
+            return self instanceof TFeature ? true : false;
         }
         public boolean isFeature(TGeometry tGeometry)
         {
-            return tGeometry instanceof TFeature ? true:false;
+            return tGeometry instanceof TFeature ? true : false;
         }
 
         public boolean isFeatureCollection()
         {
-            return self instanceof TFeatureCollection ? true:false;
+            return self instanceof TFeatureCollection ? true : false;
         }
         public boolean isFeatureCollection(TGeometry tGeometry)
         {
-            return tGeometry instanceof TFeatureCollection ? true:false;
+            return tGeometry instanceof TFeatureCollection ? true : false;
         }
 
         public boolean isGeometry()
         {
-            return self instanceof TGeometry ? true:false;
+            return self instanceof TGeometry ? true : false;
         }
         public boolean isGeometry(Object tGeometry)
         {
-            return tGeometry instanceof TGeometry ? true:false;
+            return tGeometry instanceof TGeometry ? true : false;
         }
-
     }
 
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometryRoot.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometryRoot.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometryRoot.java
deleted file mode 100644
index 25731c0..0000000
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometryRoot.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.qi4j.api.geometry.internal;
-
-import org.qi4j.api.value.ValueComposite;
-
-/**
- * Created by jakes on 2/7/14.
- */
-public interface TGeometryRoot extends ValueComposite {
-
-    public static enum TGEOMETRY_TYPE {POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, FEATURE, FEATURECOLLECTION, INVALID}
-
-}
-
-

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
index 7c0f8da..d56eb71 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
@@ -14,5 +14,7 @@
 
 package org.qi4j.api.geometry.internal;
 
-public interface TShape extends TGeometry {
+public interface TShape extends TGeometry
+{
+    // marking interface
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TCRSBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TCRSBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TCRSBuilder.java
index 1f37197..e089b5a 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TCRSBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TCRSBuilder.java
@@ -17,21 +17,21 @@ package org.qi4j.api.geometry.internal.builders;
 import org.qi4j.api.geometry.TCRS;
 import org.qi4j.api.structure.Module;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TCRSBuilder {
+public class TCRSBuilder
+{
 
     private Module module;
     private TCRS geometry;
 
 
-    public TCRSBuilder(Module module) {
+    public TCRSBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TCRS.class).prototype();
     }
 
-    public TCRS crs(String crs) {
+    public TCRS crs(String crs)
+    {
         return geometry.of(crs);
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureCollectionBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureCollectionBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureCollectionBuilder.java
index 4fae6cc..fd27562 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureCollectionBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureCollectionBuilder.java
@@ -20,35 +20,38 @@ import org.qi4j.api.structure.Module;
 
 import java.util.List;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TFeatureCollectionBuilder {
+public class TFeatureCollectionBuilder
+{
 
     private Module module;
     private TFeatureCollection geometry;
 
 
-    public TFeatureCollectionBuilder(Module module) {
+    public TFeatureCollectionBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TFeatureCollection.class).prototype();
     }
 
-    public TFeatureCollectionBuilder of(List<TFeature> features) {
+    public TFeatureCollectionBuilder of(List<TFeature> features)
+    {
         geometry.of(features);
         return this;
     }
 
-    public TFeatureCollectionBuilder of(TFeature... features) {
+    public TFeatureCollectionBuilder of(TFeature... features)
+    {
         geometry.of(features);
         return this;
     }
 
-    public TFeatureCollection geometry() {
+    public TFeatureCollection geometry()
+    {
         return geometry;
     }
 
-    public TFeatureCollection geometry(int srid) {
+    public TFeatureCollection geometry(int srid)
+    {
         return geometry();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLinearRingBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLinearRingBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLinearRingBuilder.java
index 42b30da..b057cbb 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLinearRingBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TLinearRingBuilder.java
@@ -18,52 +18,45 @@ import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.api.structure.Module;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TLinearRingBuilder {
+
+public class TLinearRingBuilder
+{
 
     private Module module;
     private TLinearRing geometry;
 
 
-    public TLinearRingBuilder(Module module) {
+    public TLinearRingBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TLinearRing.class).prototype();
     }
 
 
-    public TLinearRingBuilder ring(double[][] ring) {
-        for (double xy[] : ring) {
+    public TLinearRingBuilder ring(double[][] ring)
+    {
+        for (double xy[] : ring)
+        {
             if (xy.length < 2) return null;
             geometry.yx(xy[0], xy[1]);
         }
         return this;
     }
 
-    public TLinearRingBuilder of(TPoint... points) {
+    public TLinearRingBuilder of(TPoint... points)
+    {
         geometry().of(points);
         return this;
     }
 
-    /**
-     * public TLinearRingBuilder of()
-     * {
-     * geometry().of();
-     * return this;
-     * }
-     */
-
-
-    public TLinearRing geometry() {
-        // System.out.println(geometry + " " + geometry.isValid() );
+    public TLinearRing geometry()
+    {
 
-        // if (!geometry.isValid()) throw new RuntimeException("Ring not valid");
-        //    else
         return geometry;
     }
 
-    public TLinearRing geometry(int srid) {
+    public TLinearRing geometry(int srid)
+    {
         return geometry();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
index 9862301..c852d3a 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
@@ -20,45 +20,49 @@ import org.qi4j.api.structure.Module;
 
 import java.util.List;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TMultiLineStringBuilder {
+public class TMultiLineStringBuilder
+{
 
     private Module module;
     private TMultiLineString geometry;
 
 
-    public TMultiLineStringBuilder(Module module) {
+    public TMultiLineStringBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TMultiLineString.class).prototype();
     }
 
 
-    public TMultiLineStringBuilder points(double[][][] points) {
-        for (double xy[][] : points) {
+    public TMultiLineStringBuilder points(double[][][] points)
+    {
+        for (double xy[][] : points)
+        {
             if (xy.length < 2) return null;
-            // geometry.xy(xy[0], xy[1]);
         }
         return this;
     }
 
-    public TMultiLineStringBuilder of(List<TLineString> lines) {
+    public TMultiLineStringBuilder of(List<TLineString> lines)
+    {
         geometry.of(lines);
         return this;
     }
 
-    public TMultiLineStringBuilder of(TLineString... lines) {
+    public TMultiLineStringBuilder of(TLineString... lines)
+    {
         geometry.of(lines);
         return this;
     }
 
 
-    public TMultiLineString geometry() {
+    public TMultiLineString geometry()
+    {
         return geometry;
     }
 
-    public TMultiLineString geometry(int srid) {
+    public TMultiLineString geometry(int srid)
+    {
         return geometry();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPointBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPointBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPointBuilder.java
index a68d80c..0fe8ad1 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPointBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiPointBuilder.java
@@ -21,36 +21,43 @@ import org.qi4j.api.structure.Module;
 /**
  * Created by jj on 26.11.14.
  */
-public class TMultiPointBuilder {
+public class TMultiPointBuilder
+{
 
     private Module module;
     private TMultiPoint geometry;
 
 
-    public TMultiPointBuilder(Module module) {
+    public TMultiPointBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TMultiPoint.class).prototype();
     }
 
     // Format { lat, lon }
-    public TMultiPointBuilder points(double[][] points) {
-        for (double yx[] : points) {
+    public TMultiPointBuilder points(double[][] points)
+    {
+        for (double yx[] : points)
+        {
             if (yx.length < 2) return null;
             geometry.yx(yx[0], yx[1]);
         }
         return this;
     }
 
-    public TMultiPointBuilder of(TPoint... points) {
+    public TMultiPointBuilder of(TPoint... points)
+    {
         geometry().of(points);
         return this;
     }
 
-    public TMultiPoint geometry() {
+    public TMultiPoint geometry()
+    {
         return geometry;
     }
 
-    public TMultiPoint geometry(String CRS) {
+    public TMultiPoint geometry(String CRS)
+    {
         geometry().setCRS(CRS);
         return geometry();
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPointBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPointBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPointBuilder.java
index bd5f356..d632459 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPointBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPointBuilder.java
@@ -18,65 +18,70 @@ import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.structure.Module;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TPointBuilder {
+
+public class TPointBuilder
+{
 
     private Module module;
     private TPoint geometry;
 
 
-    public TPointBuilder(Module module) {
+    public TPointBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TPoint.class).prototype();
     }
 
-    public TPointBuilder x(double x) {
+    public TPointBuilder x(double x)
+    {
         geometry.x(x);
         return this;
     }
 
-    public TPointBuilder y(double y) {
+    public TPointBuilder y(double y)
+    {
         geometry.y(y);
         return this;
     }
 
-    public TPointBuilder z(double u) {
+    public TPointBuilder z(double u)
+    {
         geometry.z(u);
         return this;
     }
 
 
-    public TPointBuilder lat(double lat) {
+    public TPointBuilder lat(double lat)
+    {
         geometry.y(lat);
         return this;
     }
 
-    public TPointBuilder lon(double lon) {
+    public TPointBuilder lon(double lon)
+    {
         geometry.x(lon);
         return this;
     }
 
-    public TPointBuilder alt(double alt) {
+    public TPointBuilder alt(double alt)
+    {
         geometry.z(alt);
         return this;
     }
 
 
-
-
-
     public boolean isPoint(TGeometry tGeometry)
     {
-        return tGeometry instanceof TPoint ?  true :  false;
+        return tGeometry instanceof TPoint ? true : false;
     }
 
-    public TPoint geometry() {
+    public TPoint geometry()
+    {
         return geometry;
     }
 
-    public TPoint geometry(String CRS) {
+    public TPoint geometry(String CRS)
+    {
         geometry().setCRS(CRS);
         return geometry();
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPolygonBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPolygonBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPolygonBuilder.java
index 7ca9a97..d3f6b72 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPolygonBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TPolygonBuilder.java
@@ -18,41 +18,46 @@ import org.qi4j.api.geometry.TPolygon;
 import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.api.structure.Module;
 
-/**
- * Created by jj on 26.11.14.
- */
-public class TPolygonBuilder {
+
+public class TPolygonBuilder
+{
 
     private Module module;
     private TPolygon geometry;
 
 
-    public TPolygonBuilder(Module module) {
+    public TPolygonBuilder(Module module)
+    {
         this.module = module;
         geometry = module.newValueBuilder(TPolygon.class).prototype();
     }
 
-    public TPolygonBuilder shell(TLinearRing shell) {
+    public TPolygonBuilder shell(TLinearRing shell)
+    {
         geometry.of(shell);
         return this;
     }
 
-    public TPolygonBuilder shell(double[][] shell) {
+    public TPolygonBuilder shell(double[][] shell)
+    {
         geometry.of(new TLinearRingBuilder(module).ring(shell).geometry());
         return this;
     }
 
-    public TPolygonBuilder withHoles(TLinearRing... holes) {
+    public TPolygonBuilder withHoles(TLinearRing... holes)
+    {
         geometry.withHoles(holes);
         return this;
     }
 
 
-    public TPolygon geometry() {
+    public TPolygon geometry()
+    {
         return geometry;
     }
 
-    public TPolygon geometry(String CRS) {
+    public TPolygon geometry(String CRS)
+    {
         geometry().setCRS(CRS);
         return geometry();
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
index c86a090..e1bdb34 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
@@ -2,8 +2,8 @@ package org.qi4j.api.query.grammar.extensions.spatial;
 
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TUnit;
-import org.qi4j.api.geometry.internal.TShape;
 import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.internal.TShape;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.query.QueryExpressions;
 import org.qi4j.api.query.grammar.extensions.spatial.convert.ST_GeomFromTextSpecification;
@@ -14,73 +14,73 @@ import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecific
 import org.qi4j.functional.Specification;
 
 
-public final class SpatialQueryExpressions extends QueryExpressions {
+public final class SpatialQueryExpressions extends QueryExpressions
+{
 
     // ST_Within
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry, TPoint param, double distance, TUnit unit)
+    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within(Property<T> geometry, TPoint param, double distance, TUnit unit)
     {
-        return new ST_WithinSpecification( property(geometry), param, distance, unit);
+        return new ST_WithinSpecification(property(geometry), param, distance, unit);
     }
 
-    public static <T extends TGeometry>  ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry, TShape param)
+    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within(Property<T> geometry, TShape param)
     {
-       return new ST_WithinSpecification( property(geometry), param);
+        return new ST_WithinSpecification(property(geometry), param);
     }
 
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry, Specification<SpatialConvertSpecification> operator, double distance, TUnit unit )
+    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within(Property<T> geometry, Specification<SpatialConvertSpecification> operator, double distance, TUnit unit)
     {
-        return new ST_WithinSpecification( property(geometry), operator, distance, unit);
+        return new ST_WithinSpecification(property(geometry), operator, distance, unit);
     }
 
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry, Specification<SpatialConvertSpecification> operator)
+    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within(Property<T> geometry, Specification<SpatialConvertSpecification> operator)
     {
-        return new ST_WithinSpecification( property(geometry), operator);
+        return new ST_WithinSpecification(property(geometry), operator);
     }
 
     // ST_Disjoint
-    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> ST_Disjoint( Property<T> geometry, Specification<SpatialConvertSpecification> operator, long distance )
+    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> ST_Disjoint(Property<T> geometry, Specification<SpatialConvertSpecification> operator, long distance)
     {
-        return new ST_DisjointSpecification( property(geometry), operator, distance);
+        return new ST_DisjointSpecification(property(geometry), operator, distance);
     }
 
-    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> ST_Disjoint( Property<T> geometry, TPoint param, double distance, TUnit unit)
+    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> ST_Disjoint(Property<T> geometry, TPoint param, double distance, TUnit unit)
     {
-        return new ST_DisjointSpecification( property(geometry), param, distance, unit);
+        return new ST_DisjointSpecification(property(geometry), param, distance, unit);
     }
 
-    public static <T extends TGeometry>  ST_DisjointSpecification<TGeometry> ST_Disjoint( Property<T> geometry, TShape param)
+    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> ST_Disjoint(Property<T> geometry, TShape param)
     {
         return new ST_DisjointSpecification(property(geometry), param);
     }
 
 
     // ST_Intersects
-    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> ST_Intersects( Property<T> geometry, Specification<SpatialConvertSpecification> operator, long distance )
+    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> ST_Intersects(Property<T> geometry, Specification<SpatialConvertSpecification> operator, long distance)
     {
-        return new ST_IntersectsSpecification( property(geometry), operator, distance);
+        return new ST_IntersectsSpecification(property(geometry), operator, distance);
     }
 
-    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> ST_Intersects( Property<T> geometry, TPoint value, double distance, TUnit unit)
+    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> ST_Intersects(Property<T> geometry, TPoint value, double distance, TUnit unit)
     {
-        return new ST_IntersectsSpecification( property(geometry), value, distance, unit);
+        return new ST_IntersectsSpecification(property(geometry), value, distance, unit);
     }
 
-    public static <T extends TGeometry>  ST_IntersectsSpecification<TGeometry> ST_Intersects( Property<T> geometry, TShape param)
+    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> ST_Intersects(Property<T> geometry, TShape param)
     {
         return new ST_IntersectsSpecification(property(geometry), param);
     }
 
 
-
     // ST_GeometryFromText
     public static Specification<SpatialConvertSpecification> ST_GeometryFromText(String WKT)
     {
-        return ST_GeometryFromText( WKT, null);
+        return ST_GeometryFromText(WKT, null);
     }
 
     public static Specification<SpatialConvertSpecification> ST_GeometryFromText(String WKT, String crs)
     {
-        return new ST_GeomFromTextSpecification( WKT, crs);
+        return new ST_GeomFromTextSpecification(WKT, crs);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java
index d802c36..b7e76a5 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/ST_GeomFromTextSpecification.java
@@ -1,45 +1,19 @@
 package org.qi4j.api.query.grammar.extensions.spatial.convert;
 
-import com.spatial4j.core.context.SpatialContext;
-import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
-import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
-import com.spatial4j.core.io.jts.JtsWktShapeParser;
-import com.spatial4j.core.shape.Circle;
-import com.spatial4j.core.shape.Point;
-import com.spatial4j.core.shape.Shape;
-import com.spatial4j.core.shape.jts.JtsGeometry;
-import com.spatial4j.core.shape.jts.JtsPoint;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.MultiPolygon;
-import com.vividsolutions.jts.geom.Polygon;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.TPolygon;
 import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.structure.Module;
-import org.qi4j.api.value.ValueBuilder;
-import static org.qi4j.api.geometry.TGeometryFactory.*;
 
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
 
-/**
- * ST_Within Specification.
- *
- */
 public class ST_GeomFromTextSpecification<T extends TGeometry>
-    extends SpatialConvertSpecification<T>
+        extends SpatialConvertSpecification<T>
 {
     public ST_GeomFromTextSpecification(String WKT, String crs)
     {
-        super( WKT, crs );
+        super(WKT, crs);
     }
 
     @Override
     public String toString()
     {
-        return "converting"; //property.toString() + " is within " + value.toString();
+        return "CONVERTING ( " +  geometryAsWKT + " )";
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java
index 1d77fd7..7e4f13b 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/convert/SpatialConvertSpecification.java
@@ -3,77 +3,42 @@ package org.qi4j.api.query.grammar.extensions.spatial.convert;
 import org.qi4j.api.composite.Composite;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.query.grammar.ExpressionSpecification;
-import org.qi4j.api.structure.Module;
 
-import java.text.ParseException;
 
-/**
- * Base Spatial Predicates Specification.
- *
- * ST_Equals, ST_Disjoint, ST_Intersects, ST_Touches, ST_Crosses, ST_Within, ST_Contains, ST_Overlaps and ST_Relate
- */
 public abstract class SpatialConvertSpecification<T>
-    extends ExpressionSpecification
+        extends ExpressionSpecification
 {
-    protected  String    geometryAsWKT;
-    protected  TGeometry geometry;
-    protected  String    crs;
+    protected String geometryAsWKT;
+    protected TGeometry geometry;
+    protected String crs;
 
 
     public SpatialConvertSpecification(String wkt, String crs)
     {
-        this.geometryAsWKT  = wkt;
-        this.crs            = crs;
+        this.geometryAsWKT = wkt;
+        this.crs = crs;
     }
 
 
-
     public String property()
     {
         return geometryAsWKT;
     }
 
-    public void setGeometry(TGeometry geometry)
+    public TGeometry getGeometry()
     {
-        this.geometry = geometry;
+        return this.geometry;
     }
 
-    public TGeometry getGeometry()
+    public void setGeometry(TGeometry geometry)
     {
-        return this.geometry;
+        this.geometry = geometry;
     }
 
     @Override
-    public final boolean satisfiedBy( Composite item )
+    public final boolean satisfiedBy(Composite item)
     {
-//        try
-//        {
-//            Property<TGeometry> prop = WKT.map( item );
-//
-//            if( prop == null )
-//            {
-//                return false;
-//            }
-//
-//            TGeometry propValue = prop.get();
-//            if( propValue == null )
-//            {
-//                return false;
-//            }
-//
-//            return convert( propValue );
-//        }
-//        catch( IllegalArgumentException e )
-//        {
-//            return false;
-//        }
         return true;
     }
 
-
-
-//    public TGeometry value()
-//    {
-//        return value;
-//    }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/measurements/SpatialMeasurementsSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/measurements/SpatialMeasurementsSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/measurements/SpatialMeasurementsSpecification.java
deleted file mode 100644
index 51de60c..0000000
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/measurements/SpatialMeasurementsSpecification.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.qi4j.api.query.grammar.extensions.spatial.measurements;
-
-import org.qi4j.api.composite.Composite;
-import org.qi4j.api.query.grammar.ExpressionSpecification;
-import org.qi4j.api.query.grammar.PropertyFunction;
-import org.qi4j.functional.Specification;
-
-/**
- * Base Common Spatial Relationships Specification based on the DE-9IM
- */
-public abstract class SpatialMeasurementsSpecification<T>
-    extends ExpressionSpecification
-{
-
-    // TODO JJ : The following spatial functions are specified :
-    // ST_Disjoint, ST_Intersects, ST_Touches, ST_Crosses, ST_Within,
-    // ST_Contains and ST_Overlaps
-
-    //  Known Specifications - http://en.wikipedia.org/wiki/Spatial_database
-    // - SpatialMeasurementsSpecification
-    // - SpatialFunctionsSpecification
-    // - SpatialPredicatesSpecification
-    // - SpatialConstructorsSpecification
-    // - SpatialObserverFunctionsSpecification
-
-
-
-
-
-
-    // protected final Iterable<Specification<Composite>> operands;
-
-    protected final PropertyFunction<T> property;
-    protected final T value;
-
-    public SpatialMeasurementsSpecification(PropertyFunction<T> property, T value)
-    {
-        this.property = property;
-        this.value = value;
-    }
-
-    public PropertyFunction<T> property()
-    {
-        return property;
-    }
-
-    public T value()
-    {
-        return value;
-    }
-
-
-
-
-    public Iterable<Specification<Composite>> operands()
-    {
-      //  return operands;
-        return null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
index 3d85281..703e955 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
@@ -4,13 +4,12 @@ import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TUnit;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.query.grammar.PropertyFunction;
-import org.qi4j.api.query.grammar.Variable;
 import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.functional.Specification;
 
 
 public class ST_DisjointSpecification<T extends TGeometry>
-    extends SpatialPredicatesSpecification<T>
+        extends SpatialPredicatesSpecification<T>
 {
 
     private double distance;
@@ -18,30 +17,37 @@ public class ST_DisjointSpecification<T extends TGeometry>
 
     public ST_DisjointSpecification(PropertyFunction<T> property, TGeometry param)
     {
-        super( property, param );
+        super(property, param);
     }
 
     public ST_DisjointSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator, long distance)
     {
-        super( property, operator );
+        super(property, operator);
     }
 
     public ST_DisjointSpecification(PropertyFunction<T> property, TPoint value, double distance, TUnit unit)
     {
-        super( property, value );
-        this.distance   = distance;
-        this.unit       = unit;
+        super(property, value);
+        this.distance = distance;
+        this.unit = unit;
     }
 
 
-    public double getDistance() { return distance; }
-    public TUnit  getUnit() { return unit; }
+    public double getDistance()
+    {
+        return distance;
+    }
+
+    public TUnit getUnit()
+    {
+        return unit;
+    }
 
 
-   @Override
-    protected boolean compare( TGeometry param )
+    @Override
+    protected boolean compare(TGeometry param)
     {
-        return param.equals( this.param );
+        return param.equals(this.param);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
index 90cb3ab..6fda01f 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
@@ -4,13 +4,12 @@ import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TUnit;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.query.grammar.PropertyFunction;
-import org.qi4j.api.query.grammar.Variable;
 import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.functional.Specification;
 
 
 public class ST_IntersectsSpecification<T extends TGeometry>
-    extends SpatialPredicatesSpecification<T>
+        extends SpatialPredicatesSpecification<T>
 {
 
     private double distance;
@@ -18,31 +17,37 @@ public class ST_IntersectsSpecification<T extends TGeometry>
 
     public ST_IntersectsSpecification(PropertyFunction<T> property, TGeometry param)
     {
-        super( property, param );
+        super(property, param);
     }
 
     public ST_IntersectsSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator, long distance)
     {
-        super( property, operator );
+        super(property, operator);
     }
 
     public ST_IntersectsSpecification(PropertyFunction<T> property, TPoint param, double distance, TUnit unit)
     {
-        super( property, param );
-        this.distance   = distance;
-        this.unit       = unit;
+        super(property, param);
+        this.distance = distance;
+        this.unit = unit;
     }
 
 
+    public double getDistance()
+    {
+        return distance;
+    }
 
-    public double getDistance() { return distance; }
-    public TUnit  getUnit() { return unit; }
+    public TUnit getUnit()
+    {
+        return unit;
+    }
 
 
-   @Override
-    protected boolean compare( TGeometry param )
+    @Override
+    protected boolean compare(TGeometry param)
     {
-        return param.equals( this.param );
+        return param.equals(this.param);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
index 9d3dfec..2e876b5 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
@@ -10,11 +10,11 @@ import org.qi4j.functional.Specification;
 
 /**
  * Base Spatial Predicates Specification.
- *
+ * <p/>
  * ST_Equals, ST_Disjoint, ST_Intersects, ST_Touches, ST_Crosses, ST_Within, ST_Contains, ST_Overlaps and ST_Relate
  */
 public abstract class SpatialPredicatesSpecification<T extends TGeometry>
-    extends ExpressionSpecification
+        extends ExpressionSpecification
 {
     protected final PropertyFunction<T> property;
     protected final TGeometry param;
@@ -31,7 +31,7 @@ public abstract class SpatialPredicatesSpecification<T extends TGeometry>
     {
         this.property = property;
         this.operator = operator;
-        this.param    = null;
+        this.param = null;
     }
 
     public PropertyFunction<T> property()
@@ -40,32 +40,31 @@ public abstract class SpatialPredicatesSpecification<T extends TGeometry>
     }
 
     @Override
-    public final boolean satisfiedBy( Composite item )
+    public final boolean satisfiedBy(Composite item)
     {
         try
         {
-            Property<T> prop = property.map( item );
+            Property<T> prop = property.map(item);
 
-            if( prop == null )
+            if (prop == null)
             {
                 return false;
             }
 
             TGeometry propValue = prop.get();
-            if( propValue == null )
+            if (propValue == null)
             {
                 return false;
             }
 
-            return compare( propValue );
-        }
-        catch( IllegalArgumentException e )
+            return compare(propValue);
+        } catch (IllegalArgumentException e)
         {
             return false;
         }
     }
 
-    protected abstract boolean compare( TGeometry value );
+    protected abstract boolean compare(TGeometry value);
 
     public TGeometry param()
     {

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
index 30276bd..1871807 100644
--- a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
+++ b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
@@ -17,7 +17,6 @@ package org.qi4j.api.geometry;
 import org.junit.Test;
 import org.qi4j.api.geometry.internal.Coordinate;
 import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TGeometryRoot;
 import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
@@ -25,9 +24,11 @@ import org.qi4j.test.AbstractQi4jTest;
 
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.*;
+import static org.qi4j.api.geometry.TGeometryFactory.*;
 import static org.qi4j.api.geometry.TGeometryFactory.TFeature;
 import static org.qi4j.api.geometry.TGeometryFactory.TFeatureCollection;
-import static org.qi4j.api.geometry.TGeometryFactory.*;
+import static org.qi4j.api.geometry.TGeometryFactory.TLineString;
+import static org.qi4j.api.geometry.TGeometryFactory.TMultiLineString;
 import static org.qi4j.api.geometry.TGeometryFactory.TMultiPoint;
 import static org.qi4j.api.geometry.TGeometryFactory.TMultiPolygon;
 import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
@@ -35,7 +36,8 @@ import static org.qi4j.api.geometry.TGeometryFactory.TPolygon;
 
 
 public class TGeometryFactoryTest
-        extends AbstractQi4jTest {
+        extends AbstractQi4jTest
+{
 
     private final double ZERO = 0d;
     private final String CRS_EPSG_27572 = "EPSG:27572";
@@ -48,15 +50,15 @@ public class TGeometryFactoryTest
         module.values(Coordinate.class, TLinearRing.class, TGeometry.class);
         // API values
         module.values(
-                                TCRS.class,
-                                TPoint.class,
-                                TMultiPoint.class,
-                                TLineString.class,
-                                TMultiLineString.class,
-                                TPolygon.class,
-                                TMultiPolygon.class,
-                                TFeature.class,
-                                TFeatureCollection.class);
+                TCRS.class,
+                TPoint.class,
+                TMultiPoint.class,
+                TLineString.class,
+                TMultiLineString.class,
+                TPolygon.class,
+                TMultiPolygon.class,
+                TFeature.class,
+                TFeatureCollection.class);
 
         TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
         tGeometry.CRS().set(CRS_EPSG_27572);
@@ -100,8 +102,8 @@ public class TGeometryFactoryTest
                 }).geometry();
 
         assertTrue(multiPoint.getNumGeometries() == 2);
-        assertEquals(multiPoint.getType(), TGeometryRoot.TGEOMETRY_TYPE.MULTIPOINT);
-        assertEquals(multiPoint.getGeometryN(0).getType(), TGeometryRoot.TGEOMETRY_TYPE.POINT);
+        assertEquals(multiPoint.getType(), TGeometry.TGEOMETRY_TYPE.MULTIPOINT);
+        assertEquals(multiPoint.getGeometryN(0).getType(), TGeometry.TGEOMETRY_TYPE.POINT);
         assertTrue(multiPoint.getCoordinates().length == 2);
         assertThat(multiPoint.getCRS(), equalTo(CRS_EPSG_27572));
 
@@ -133,11 +135,11 @@ public class TGeometryFactoryTest
 
         TLineString line = TLineString(module).points(new double[][]
                 {
-                                                {0, 0},
-                                                {1, 0},
-                                                {1, 1},
-                                                {0, 1},
-                                                {0, 1}
+                        {0, 0},
+                        {1, 0},
+                        {1, 1},
+                        {0, 1},
+                        {0, 1}
 
                 }).geometry();
 
@@ -171,17 +173,17 @@ public class TGeometryFactoryTest
     }
 
 
-        @Test
+    @Test
     public void script06()
     {
 
         TLinearRing ring = TLinearRing(module).ring(new double[][]
                 {
-                                                {0, 0},
-                                                {1, 0},
-                                                {1, 1},
-                                                {0, 1},
-                                                {0, 0}
+                        {0, 0},
+                        {1, 0},
+                        {1, 1},
+                        {0, 1},
+                        {0, 0}
                 }).geometry();
 
         assertThat(ring.getCRS(), equalTo(CRS_EPSG_27572));
@@ -275,32 +277,32 @@ public class TGeometryFactoryTest
                         (
                                 new double[][]
                                         {
-                                                    {0, 0},
-                                                    {3, 0},
-                                                    {1, 3},
-                                                    {0, 3},
-                                                    {0, 0}
+                                                {0, 0},
+                                                {3, 0},
+                                                {1, 3},
+                                                {0, 3},
+                                                {0, 0}
                                         }
                         )
                 .withHoles(
 
                         TLinearRing(module).ring(new double[][]
                                 {
-                                                    {0, 0},
-                                                    {1, 0},
-                                                    {1, 1},
-                                                    {0, 1},
-                                                    {0, 0}
+                                        {0, 0},
+                                        {1, 0},
+                                        {1, 1},
+                                        {0, 1},
+                                        {0, 0}
 
                                 }).geometry()
 
                         , TLinearRing(module).ring(new double[][]
                                 {
-                                                    {0, 0},
-                                                    {2, 0},
-                                                    {2, 2},
-                                                    {0, 2},
-                                                    {0, 0}
+                                        {0, 0},
+                                        {2, 0},
+                                        {2, 2},
+                                        {0, 2},
+                                        {0, 0}
 
                                 }).geometry()
                 )
@@ -313,7 +315,8 @@ public class TGeometryFactoryTest
 
 
     @Test
-    public void script12() {
+    public void script12()
+    {
 
         TPolygon polygon1 = TPolygon(module)
 
@@ -321,11 +324,11 @@ public class TGeometryFactoryTest
                         (
                                 new double[][]
                                         {
-                                                    {0, 0},
-                                                    {4, 0},
-                                                    {0, 4},
-                                                    {0, 4},
-                                                    {0, 0}
+                                                {0, 0},
+                                                {4, 0},
+                                                {0, 4},
+                                                {0, 4},
+                                                {0, 0}
                                         }
 
 
@@ -334,21 +337,21 @@ public class TGeometryFactoryTest
 
                         TLinearRing(module).ring(new double[][]
                                 {
-                                                    {0, 0},
-                                                    {1, 0},
-                                                    {1, 1},
-                                                    {0, 1},
-                                                    {0, 0}
+                                        {0, 0},
+                                        {1, 0},
+                                        {1, 1},
+                                        {0, 1},
+                                        {0, 0}
 
                                 }).geometry()
 
                         , TLinearRing(module).ring(new double[][]
                                 {
-                                                    {0, 0},
-                                                    {2, 0},
-                                                    {2, 2},
-                                                    {0, 2},
-                                                    {0, 0}
+                                        {0, 0},
+                                        {2, 0},
+                                        {2, 2},
+                                        {0, 2},
+                                        {0, 0}
 
                                 }).geometry()
 
@@ -362,11 +365,11 @@ public class TGeometryFactoryTest
                         (
                                 new double[][]
                                         {
-                                                    {0, 0},
-                                                    {3, 0},
-                                                    {1, 3},
-                                                    {0, 3},
-                                                    {0, 0}
+                                                {0, 0},
+                                                {3, 0},
+                                                {1, 3},
+                                                {0, 3},
+                                                {0, 0}
                                         }
 
 
@@ -375,21 +378,21 @@ public class TGeometryFactoryTest
 
                         TLinearRing(module).ring(new double[][]
                                 {
-                                                    {0, 0},
-                                                    {1, 0},
-                                                    {1, 1},
-                                                    {0, 1},
-                                                    {0, 0}
+                                        {0, 0},
+                                        {1, 0},
+                                        {1, 1},
+                                        {0, 1},
+                                        {0, 0}
 
                                 }).geometry()
 
                         , TLinearRing(module).ring(new double[][]
                                 {
-                                                    {0, 0},
-                                                    {2, 0},
-                                                    {2, 2},
-                                                    {0, 2},
-                                                    {0, 0}
+                                        {0, 0},
+                                        {2, 0},
+                                        {2, 2},
+                                        {0, 2},
+                                        {0, 0}
 
                                 }).geometry()
 
@@ -404,10 +407,11 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void script13() {
+    public void script13()
+    {
 
         TFeature featureOfAPoint = TFeature(module).of(TPoint(module).x(1d).y(2d).z(3d).geometry()).geometry();
-        assertEquals(featureOfAPoint.getType(), TGeometryRoot.TGEOMETRY_TYPE.FEATURE);
+        assertEquals(featureOfAPoint.getType(), TGeometry.TGEOMETRY_TYPE.FEATURE);
         assertFalse(featureOfAPoint.isEmpty());
         assertEquals(featureOfAPoint.getNumPoints(), 1);
         assertThat(featureOfAPoint.getCRS(), equalTo(CRS_EPSG_27572));
@@ -415,7 +419,8 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void script14() {
+    public void script14()
+    {
 
         TFeature featureOfAPolygon = TFeature(module).of(
 
@@ -441,7 +446,8 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void script15() {
+    public void script15()
+    {
         TFeature featureOfAPolygon = TFeature(module).of(
 
                 TPolygon(module)

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
index 21d701d..1c5ba2e 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
@@ -79,7 +79,7 @@ public class AbstractAnyQueryTest
         TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
         tGeometry.CRS().set(CRS_EPSG_4326);
 
-        // new EntityTestAssembler().assemble( module );
+        new EntityTestAssembler().assemble( module );
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
index f442cdf..025909c 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
@@ -267,9 +267,9 @@ public abstract class AbstractSpatialRegressionTest
                         .where(
                                 ST_Within
                                         (
-                                         templateFor(A.class).point(),
-                                         TPoint(module).y(2389280.7514562616).x(1286436.5975464052).geometry("EPSG:27572"),
-                                         10,TUnit.METER
+                                                templateFor(A.class).point(),
+                                                TPoint(module).y(1286436.5975464052).x(2389280.7514562616).geometry("EPSG:27572"),
+                                                10, TUnit.METER
                                         )
                         ));
         System.out.println(query);
@@ -511,7 +511,6 @@ public abstract class AbstractSpatialRegressionTest
         query.find();
         assertEquals(1, query.count());
         TLineString tLineString = query.iterator().next().line().get();
-        System.out.println(tLineString);
     }
 
 
@@ -567,7 +566,7 @@ public abstract class AbstractSpatialRegressionTest
                         .where(
                                 ST_Within
                                         (
-                                                templateFor(A.class).nested().get().point(), // <- "nested.point" : [ 11.57958984375, 48.13905780942574 ]
+                                                templateFor(A.class).nested().get().point(), // <- "nested.point"
                                                 TPoint(module).y(48.13905780942574).x(11.57958984375).geometry(),
                                                 10,TUnit.METER
                                         )
@@ -697,13 +696,13 @@ public abstract class AbstractSpatialRegressionTest
                                         ST_Disjoint
                                                 (
                                                         templateFor(A.class).point(),
-                                                        TPoint(module).y(2389280.7514562616).x(1286436.5975464052).geometry("EPSG:27572"),
+                                                        TPoint(module).y(1286436.5975464052).x(2389280.7514562616).geometry("EPSG:27572"),
                                                         10, TUnit.METER
                                                 ),
                                         ST_Within
                                                 (
                                                         templateFor(A.class).point(),
-                                                        TPoint(module).y(2389280.7514562616).x(1286436.5975464052).geometry("EPSG:27572"),
+                                                        TPoint(module).y(1286436.5975464052).x(2389280.7514562616).geometry("EPSG:27572"),
                                                         1000,TUnit.KILOMETER
                                                 )
                                 )

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/build.gradle b/extensions/indexing-elasticsearch/build.gradle
index 883ef33..e27eda9 100644
--- a/extensions/indexing-elasticsearch/build.gradle
+++ b/extensions/indexing-elasticsearch/build.gradle
@@ -7,13 +7,8 @@ dependencies {
   compile project(":org.qi4j.core:org.qi4j.core.bootstrap")
   compile project(":org.qi4j.libraries:org.qi4j.library.fileconfig")
   compile project(":org.qi4j.libraries:org.qi4j.library.spatial")
-  compile project(":org.qi4j.libraries:org.qi4j.library.sql")
-  compile project(":org.qi4j.extensions:org.qi4j.extension.entitystore-sql")
-  compile project(":org.qi4j.extensions:org.qi4j.extension.entitystore-riak")
   compile project(":org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson")
 
-
-
   compile libraries.elasticsearch
   compile libraries.guava
 
@@ -22,10 +17,4 @@ dependencies {
   testRuntime project(":org.qi4j.core:org.qi4j.core.runtime")
   testRuntime libraries.logback
 
-}
-
-// test {
-//  jacoco {
-//    enabled = false
-//  }
-// }
\ No newline at end of file
+}
\ No newline at end of file


[43/50] [abbrv] zest-qi4j git commit: Final cleanup

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSwissLakes2013.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSwissLakes2013.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSwissLakes2013.java
deleted file mode 100644
index 9d286a9..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSwissLakes2013.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.qi4j.library.spatial.topo;
-
-/**
- * https://github.com/interactivethings/swiss-maps
- */
-public class GeoJSONSwissLakes2013 {
-
-    // Used http://www.freeformatter.com/javascript-escape.html#ad-output
-
-
-    public static final String SWISS_LAKES = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"id\":9040," +
-            "\"properties\":{\"name\":\"Greifensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[593.9590783343607," +
-            "112.49024902490248],[595.8203253450184,114.65046504650462],[596.6663467134993,115.08250825082507],[597.9071780539377," +
-            "117.09870987098708],[598.1327837521992,119.018901890189],[598.8660022715492,120.50705070507047],[600.7272492822069," +
-            "121.46714671467146],[600.6144464330762,123.1473147314731],[599.3736150926377,124.29942994299427],[598.4711922995915," +
-            "124.20342034203418],[597.9635794785031,122.3312331233123],[595.8203253450184,118.77887788778872],[594.5230925800146," +
-            "118.10681068106805],[592.3234370219645,114.8424842484248],[592.4926412956606,112.87428742874283],[593.9590783343607," +
-            "112.49024902490248]]]]}},{\"type\":\"Feature\",\"id\":9050,\"properties\":{\"name\":\"Z\u00FCrichsee\"},\"geometry\":" +
-            "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[616.9144581324724,147.1017101710171],[619.0577122659571,149.021902190219]," +
-            "[622.0469877679225,149.8379837983798],[637.7265837970996,147.19771977197718],[636.5421538812266,148.49384938493847]," +
-            "[631.9736384914303,150.12601260126007],[629.5483772351188,150.27002700270026],[629.0407644140303,149.5979597959796]," +
-            "[627.969137347288,150.36603660366035],[626.8975102805457,150.03000300029998],[623.8518333540148,151.03810381038102]," +
-            "[623.7390305048841,153.00630063006298],[622.272593466184,153.58235823582356],[620.7497550029186,152.76627662766276]," +
-            "[618.6629022939994,152.8142814281428],[618.3244937466071,151.75817581758173],[615.8428310657301,150.6540654065406]," +
-            "[611.9511327707186,150.07800780078003],[611.6127242233263,150.51005100510048],[606.6493988615723,149.64596459645963]," +
-            "[603.6601233596069,151.66216621662164],[602.4756934437339,151.32613261326128],[606.5365960124416,149.30993099309927]," +
-            "[614.7148025744225,146.66966696669664],[616.9144581324724,147.1017101710171]],[[616.4632467359494,147.9177917791779]," +
-            "[614.8840068481186,148.54185418541852],[614.6019997252916,149.9339933993399],[616.858056707907,148.44584458445843]," +
-            "[616.4632467359494,147.9177917791779]]],[[[637.7265837970996,147.19771977197718],[622.0469877679225,149.8379837983798]," +
-            "[619.0577122659571,149.021902190219],[616.9144581324724,147.1017101710171],[614.940408272684,142.87728772877284]," +
-            "[617.9860851992148,143.40534053405338],[618.4372965957378,144.9414941494149],[617.4784723781263,145.51755175517548]," +
-            "[618.0988880483455,146.5256525652565],[619.6781279361763,146.66966696669664],[620.7497550029186,147.77377737773776]," +
-            "[622.6674034381417,148.10981098109806],[623.8518333540148,147.72577257725771],[623.4006219574917,146.71767176717668]," +
-            "[625.2054675435841,146.6216621662166],[625.8822846383687,147.38973897389735],[627.7435316490264,147.96579657965793]," +
-            "[630.6764057264264,147.38973897389735],[631.0148142738187,146.90969096909686],[634.2296954740457,145.6615661566156]," +
-            "[637.9521894953612,145.8055805580558],[637.7265837970996,147.19771977197718]]],[[[614.940408272684,142.87728772877284]," +
-            "[616.9144581324724,147.1017101710171],[614.7148025744225,146.66966696669664],[606.5365960124416,149.30993099309927]," +
-            "[602.4756934437339,151.32613261326128],[599.9940307628569,147.8217821782178],[597.1739595345877,146.045604560456]," +
-            "[596.2715367415415,144.89348934893485],[594.0718811834915,143.26132613261325],[592.4362398710953,140.8130813081308]," +
-            "[591.1954085306568,140.28502850285025],[590.0673800393491,140.86108610861083],[586.5704917162952,139.32493249324932]," +
-            "[583.3556105160683,137.5007500750075],[580.084327891276,130.78007800780074],[578.2230808806182,128.37983798379832]," +
-            "[577.602665210399,125.73957395739569],[576.3054324453951,122.57125712571252],[574.387784010172,119.11491149114909]," +
-            "[574.4441854347374,114.93849384938488],[575.403009652349,114.4104410441044],[576.5874395682221,117.57875787578757]," +
-            "[577.3206580875722,117.62676267626762],[578.8434965508375,119.78697869786976],[579.2383065227953,121.46714671467146]," +
-            "[580.8175464106259,125.06750675067502],[581.1559549580184,126.55565556555655],[583.468413365199,129.77197719771976]," +
-            "[583.9760261862875,131.06810681068106],[586.5704917162952,134.38043804380436],[590.5185914358722,136.9246924692469]," +
-            "[593.9026769097953,137.64476447644762],[598.0763823276338,139.66096609660963],[598.1891851767646,140.14101410141012]," +
-            "[601.4604678015569,141.72517251725168],[602.7012991419954,143.2133213321332],[605.6341732193955,144.3654365436543]," +
-            "[613.6995769322455,143.98139813981396],[614.940408272684,142.87728772877284]]]]}},{\"type\":\"Feature\",\"id\":9073,\"properties\"" +
-            ":{\"name\":\"Thunersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[435.18906818280146,257.3207320732073]," +
-            "[440.20879496912073,261.7371737173717],[441.95723913064774,262.6492649264926],[442.6904576499977,264.08940894089403]," +
-            "[448.443402955667,266.2016201620162],[451.376277033067,269.22592259225917],[451.9402912787209,271.57815781578154]," +
-            "[453.857939713944,272.3942394239424],[454.64755965785935,271.9141914191419],[456.9600180650402,271.96219621962194]," +
-            "[459.1032721985248,271.14611461146114],[462.20535054962096,271.9141914191419],[463.3897804654941,273.45034503450347]," +
-            "[465.1946260515864,274.84248424842485],[464.79981607962867,275.75457545754574],[462.88216764440557,276.81068106810676]," +
-            "[460.7953149354863,275.7065706570657],[458.4264551037402,277.2907290729073],[456.11399669655935,278.01080108010797]," +
-            "[454.19634826133625,278.058805880588],[450.81226278741315,276.13861386138615],[449.176621475017,275.8025802580258]," +
-            "[445.3413246045708,273.64236423642365],[445.510528878267,272.1062106210621],[443.19807047108617,270.57005700570056]," +
-            "[442.97246477282465,269.7059705970597],[439.0807664778131,268.55385538553855],[438.34754795846305,267.1617161716172]," +
-            "[435.97868812671686,265.2415241524152],[435.18906818280146,263.3693369336934],[433.5534268704053,262.8892889288929]," +
-            "[433.6098282949707,260.72907290729074],[435.18906818280146,257.3207320732073]]]]}},{\"type\":\"Feature\",\"id\":9089,\"properties\"" +
-            ":{\"name\":\"Brienzersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[494.57976825015203,254.58445844584458]," +
-            "[497.1742337801598,255.54455445544554],[498.35866369603286,255.25652565256524],[499.48669218734057,256.16861686168613]," +
-            "[499.3738893382098,258.3288328832883],[496.10260671341746,258.90489048904885],[490.12405570948664,262.5052505250525]," +
-            "[487.6987944531751,264.5694569456946],[484.0891032809904,266.1056105610561],[482.34065911946345,268.07380738073806]," +
-            "[479.29498219293265,270.18601860186016],[475.96729814357496,270.37803780378033],[475.7980938698788,269.7059705970597]," +
-            "[473.8240440100903,269.08190819081904],[476.24930526640185,267.0657065706571],[477.54653803140576,266.5376537653765]," +
-            "[481.66384202467884,263.4173417341734],[485.72474459338656,259.4809480948095],[487.30398448121736,258.7608760876087]," +
-            "[488.714020095352,256.7446744674467],[491.8724998710136,255.11251125112508],[494.57976825015203,254.58445844584458]]]]}}," +
-            "{\"type\":\"Feature\",\"id\":9148,\"properties\":{\"name\":\"Bielersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\"" +
-            ":[[[[347.14644443623524,187.5217521752175],[346.6388316151468,186.84968496849683],[349.007691446893,185.79357935793576]," +
-            "[347.14644443623524,187.5217521752175]]],[[[351.0381427312468,188.62586258625862],[347.7668601064545,188.62586258625862]," +
-            "[347.14644443623524,187.5217521752175],[349.007691446893,185.79357935793576],[352.10976979798914,184.2094209420942]," +
-            "[353.12499544016606,182.28922892289228],[358.65233504757384,178.88088808880883],[359.7239621143161,178.6408640864086]," +
-            "[363.05164616367387,175.95259525952594],[364.23607607954693,174.36843684368432],[367.4509572797739,172.016201620162]," +
-            "[369.7070142623893,169.6159615961596],[371.2862541502201,168.7998799879988],[371.9630712450047,169.5199519951995]," +
-            "[369.4814085641278,173.07230723072303],[369.19940144130084,174.41644164416437],[367.0561473078162,177.77677767776777],[367.1125487323816,179.40894089408937],[364.0104703812854,184.5454545454545],[362.6004347671508,184.73747374737474],[362.4312304934546,186.12961296129612],[360.6263849073623,187.80978097809776],[358.31392650018154,188.3378337833783],[356.1142709421315,189.68196819681964],[353.2941997138622,190.59405940594058],[351.32014985407375,189.77797779777973],[351.0381427312468,188.62586258625862]],[[351.0381427312468,188.62586258625862],[352.22257264711993,188.09780978097808],[356.0014680930007,185.5055505550555],[357.9191165282238,183.44134413441344],[358.31392650018154,182.24122412241223],[357.41150370713535,181.7131713171317],[356.1142709421315,184.44944494449442],[351.0381427312468,188.62586258625862]]]]}},{\"type\":\"Feature\",\"id\":9151,\"properties\":{\"name\":\"Lac de Neuch\u00E2tel\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[300.446064
 89609635,232.59825982598255],[294.4111124676001,238.3108310831083],[298.3592121871771,242.6312631263126],[296.3287609028232,244.1194119411941],[294.0727039202078,242.9192919291929],[290.2374070497616,243.15931593159314],[289.84259707780393,243.6393639363936],[286.00730020735773,245.4155415541554],[283.0744261299577,247.23972397239723],[280.53636202451537,248.007800780078],[279.5775378069038,247.76777677767774],[277.6598893716807,245.65556555655564],[277.6598893716807,244.16741674167415],[281.43878481756155,240.95109510951093],[284.37165889496157,239.70297029702968],[285.6688916599654,237.78277827782776],[288.94017428475775,235.86258625862584],[290.3502098988924,233.8463846384638],[292.493464032377,232.93429342934292],[294.24190819390395,231.2541254125412],[296.27235947825784,229.95799579957992],[296.7799722993463,228.9018901890189],[300.44606489609635,232.59825982598255]]],[[[317.98690793593113,225.01350135013502],[315.336040981358,227.89378937893787],[314.49001961287723,229.2379237
 923792],[309.6394971002541,232.74227422742274],[308.9062785809041,234.13441344134412],[305.63499595611177,235.5265526552655],[303.5481432471925,237.20672067206718],[298.3592121871771,242.6312631263126],[294.4111124676001,238.3108310831083],[300.44606489609635,232.59825982598255],[314.03880821635414,219.78097809780974],[317.98690793593113,225.01350135013502]]],[[[341.3370977060006,203.79537953795375],[340.71668203578133,205.71557155715567],[339.3066464216467,207.5397539753975],[335.8661595231582,209.93999399939992],[334.7381310318505,210.32403240324032],[331.7488555298851,212.5322532253225],[331.86165837901586,213.39633963396335],[328.9851857261812,215.65256525652563],[323.85265609073116,209.89198919891987],[335.47134955120055,202.2112211221122],[341.3370977060006,203.79537953795375]]],[[[328.9851857261812,215.65256525652563],[325.6011002522581,218.72487248724872],[322.72462759942346,220.74107410741072],[318.7765278798465,216.13261326132613],[323.85265609073116,209.89198919891987],[3
 28.9851857261812,215.65256525652563]]],[[[322.72462759942346,220.74107410741072],[319.67895067289265,222.6132613261326],[319.67895067289265,223.28532853285327],[317.98690793593113,225.01350135013502],[314.03880821635414,219.78097809780974],[318.7765278798465,216.13261326132613],[322.72462759942346,220.74107410741072]]],[[[341.3370977060006,203.79537953795375],[339.0810407233852,197.8427842784278],[340.9422877340429,198.85088508850885],[342.6907318955698,201.87518751875183],[341.3370977060006,203.79537953795375]]],[[[339.0810407233852,197.8427842784278],[341.3370977060006,203.79537953795375],[335.47134955120055,202.2112211221122],[323.85265609073116,209.89198919891987],[318.7765278798465,216.13261326132613],[314.03880821635414,219.78097809780974],[300.44606489609635,232.59825982598255],[296.7799722993463,228.9018901890189],[298.07720506435015,225.34953495349532],[299.0360292819617,224.05340534053403],[300.6152691697925,223.23732373237323],[302.02530478392714,221.17311731173118],[303.
 83015037001945,219.54095409540952],[304.50696746480406,218.38883888388835],[308.39866575981563,215.8445844584458],[309.80870137395027,215.74857485748572],[310.1471099213426,213.97239723972393],[310.936729865258,213.1083108310831],[313.0799839987426,212.5322532253225],[314.9412310094003,211.38013801380134],[315.4488438304888,208.78787878787875],[315.61804810418494,206.003600360036],[317.47929511484267,204.7074707470747],[320.6941763150696,203.98739873987398],[323.51424754333885,201.6351635163516],[323.96545893986195,201.82718271827179],[328.6467771787889,199.7149714971497],[328.81598145248506,198.94689468946893],[330.6772284631428,198.3228322832283],[332.4820740492351,196.97869786978697],[334.11771536163127,197.17071707170714],[336.03536379685437,198.56285628562853],[339.0810407233852,197.8427842784278]]]]}},{\"type\":\"Feature\",\"id\":9157,\"properties\":{\"name\":\"Baldeggersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[529.7742571789524,149.021902190219],[531.
 6919056141755,149.26192619261923],[532.4251241335255,150.22202220222022],[533.1583426528755,153.77437743774374],[534.117166870487,155.35853585358535],[534.2299697196179,157.27872787278727],[533.7223568985294,157.95079507950794],[532.2559198598294,156.7026702670267],[530.451074273737,152.9102910291029],[529.1538415087332,150.89408940894089],[529.7742571789524,149.021902190219]]]]}},{\"type\":\"Feature\",\"id\":9163,\"properties\":{\"name\":\"Sempachersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[510.7105756758522,159.15091509150915],[512.7974283847715,160.44704470447044],[514.4330696971676,162.36723672367236],[517.7607537465253,164.9114911491149],[520.6936278239255,167.64776477647763],[521.1448392204485,169.6159615961596],[519.9604093045754,171.6321632163216],[519.0015850869638,171.7281728172817],[515.5046967639099,169.42394239423942],[513.4742454795561,167.64776477647763],[510.6541742512868,164.43144314431441],[510.14656143019835,161.74317431743174],[510.7105756
 758522,159.15091509150915]]]]}},{\"type\":\"Feature\",\"id\":9172,\"properties\":{\"name\":\"Hallwilersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[526.5593759787255,136.30063006300628],[525.3749460628524,141.00510051005097],[523.6265019013254,136.78067806780678],[522.6112762591486,132.98829882988298],[521.9908605889293,129.29192919291927],[522.0472620134947,126.65166516651664],[523.4572976276293,126.17161716171614],[524.585326118937,127.85178517851784],[525.318544638287,131.1161116111611],[526.6721788278562,135.6285628562856],[526.5593759787255,136.30063006300628]]],[[[525.3749460628524,141.00510051005097],[526.5593759787255,136.30063006300628],[527.4053973472062,138.3168316831683],[526.1081645822023,142.54125412541254],[525.3749460628524,141.00510051005097]]]]}},{\"type\":\"Feature\",\"id\":9175,\"properties\":{\"name\":\"Zugersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[568.2964301571105,175.37653765376535],[565.9275703253643,173.9843984
 3984397],[567.2812045149335,173.26432643264326],[566.6607888447143,171.82418241824178],[565.2507532305797,171.96819681968196],[564.1791261638373,171.20012001200115],[566.3787817218874,169.5199519951995],[568.3528315816759,172.25622562256223],[568.2964301571105,175.37653765376535]]],[[[572.6393398486451,177.63276327632758],[568.2964301571105,175.37653765376535],[568.3528315816759,172.25622562256223],[566.3787817218874,169.5199519951995],[564.1791261638373,171.20012001200115],[563.7279147673142,168.7998799879988],[565.0251475323181,166.5436543654365],[562.7690905497027,165.91959195919588],[562.656287700572,164.67146714671463],[563.4459076444873,162.65526552655263],[561.8666677566566,159.34293429342932],[562.1486748794835,158.28682868286825],[564.4611332866643,156.99069906990695],[565.8147674762336,156.75067506750673],[566.2095774481912,157.99879987998798],[567.9580216097181,157.66276627662762],[570.9472971116836,159.24692469246924],[571.3985085082066,159.9189918991899],[569.8192686203
 759,164.67146714671463],[569.9320714695066,167.023702370237],[568.4092330062413,169.90399039903986],[569.7628671958105,173.6483648364836],[572.6393398486451,177.63276327632758]]],[[[568.2964301571105,175.37653765376535],[572.6393398486451,177.63276327632758],[573.7109669153874,181.95319531953191],[572.0753256029913,183.96939693969392],[570.270480016899,181.56915691569156],[567.7324159114567,179.9369936993699],[564.3483304375335,176.9606960696069],[564.0663233147066,175.95259525952594],[565.9275703253643,173.98439843984397],[568.2964301571105,175.37653765376535]]]]}},{\"type\":\"Feature\",\"id\":9179,\"properties\":{\"name\":\"Vierwaldst\u00E4ttersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[564.6867389849258,199.09090909090907],[564.2919290129681,201.92319231923187],[569.1988529501566,203.65136513651362],[572.8085441223413,202.83528352835282],[576.4182352945259,202.83528352835282],[580.5355392877991,200.33903390339032],[581.3251592317145,201.77917791779174],[577
 .5462637858336,204.17941794179416],[573.5981640662567,205.33153315331532],[571.6805156310336,206.48364836483648],[569.1424515255912,206.8196819681968],[566.3787817218874,206.09960996099608],[564.6867389849258,204.65946594659465],[561.8666677566566,204.7074707470747],[560.5694349916528,204.03540354035403],[558.0877723107758,203.79537953795375],[556.959743819468,202.4512451245124],[557.0725466685988,201.3951395139514],[560.8514421144796,199.6189618961896],[563.2767033707912,199.42694269426943],[563.9535204655758,198.70687068706866],[562.7126891251373,198.034803480348],[558.1441737353412,197.79477947794777],[558.3133780090373,194.43444344434442],[564.7995418340565,196.1626162616261],[564.6867389849258,199.09090909090907]]],[[[551.6580099103219,197.69876987698768],[549.1199458048795,197.6027602760276],[547.1458959450911,200.0990099009901],[546.5818816994372,201.7311731173117],[543.9874161694295,203.12331233123308],[544.3822261413872,204.99549954995496],[542.8029862535564,206.57965796579
 657],[539.4753022041987,208.69186918691867],[539.9829150252872,205.71557155715567],[541.2237463657256,205.57155715571554],[543.4234019237756,204.46744674467442],[543.7054090466025,202.6912691269127],[540.8289363937679,202.9312931293129],[541.2237463657256,200.96309630963094],[540.6597321200718,198.8988898889889],[541.4493520639871,198.70687068706866],[543.9310147448641,201.10711071107107],[549.1199458048795,194.05040504050402],[551.4888056366257,194.43444344434442],[551.6580099103219,197.69876987698768]]],[[[565.589161777972,199.28292829282924],[564.6867389849258,199.09090909090907],[564.7995418340565,196.1626162616261],[558.3133780090373,194.43444344434442],[558.1441737353412,197.79477947794777],[552.7860384016295,197.5067506750675],[551.6580099103219,197.69876987698768],[551.4888056366257,194.43444344434442],[549.1199458048795,194.05040504050402],[543.9310147448641,201.10711071107107],[541.4493520639871,198.70687068706866],[540.6597321200718,198.8988898889889],[539.5881050533294,1
 96.59465946594656],[541.1109435165948,196.06660666066603],[541.6749577622486,197.65076507650764],[543.1413948009487,198.4188418841884],[544.8898389624756,197.26672667266723],[544.5514304150834,194.86648664866482],[545.0590432361718,194.43444344434442],[544.0438175939948,193.0903090309031],[544.5514304150834,191.60216021602156],[542.2389720079025,188.86588658865884],[539.7009079024601,186.51365136513647],[543.4234019237756,186.27362736273625],[546.6946845485679,189.77797779777973],[546.9202902468295,190.88208820882085],[548.1047201627025,190.88208820882085],[550.9247913909719,187.95379537953795],[553.0680455244565,186.17761776177616],[554.4216797140257,184.5454545454545],[558.5953851318642,183.48934893489348],[558.0877723107758,186.41764176417638],[556.959743819468,188.09780978097808],[554.9292925351142,189.44194419441942],[553.2372497981526,191.84218421842183],[554.1396725911989,192.41824182418242],[555.4933067807681,191.69816981698165],[557.241750942295,191.89018901890188],[558.087
 7723107758,191.3141314131413],[560.6258364162181,191.36213621362134],[562.4306820023104,192.9462946294629],[564.5739361357951,193.0903090309031],[565.4199575042758,194.48244824482447],[566.7171902692796,195.25052505250522],[567.2812045149335,197.69876987698768],[565.589161777972,199.28292829282924]]],[[[558.5953851318642,183.48934893489348],[554.4216797140257,184.5454545454545],[555.9445181772911,183.92139213921388],[559.1593993775181,179.88898889888986],[559.7798150477373,179.79297929792978],[558.5953851318642,183.48934893489348]]],[[[588.4881401515183,208.88388838883884],[588.6009430006491,210.03600360036],[587.2473088110798,213.25232523252322],[587.4729145093414,214.98049804980496],[589.164957246303,216.94869486948693],[588.8829501234761,218.48484848484844],[589.4469643691299,219.1569156915691],[588.9957529726069,220.78907890789077],[587.5293159339068,221.22112211221122],[586.0628788952067,223.28532853285327],[585.1604561021607,221.84518451845184],[584.483639007376,219.6369636963
 696],[584.483639007376,217.71677167716769],[585.1604561021607,216.61266126612657],[582.4531877230222,214.06840684068402],[583.2992090915029,209.89198919891987],[584.5964418565068,205.7635763576357],[584.0888290354183,203.69936993699366],[584.7092447056375,201.20312031203116],[583.0736033932413,200.77107710771077],[581.3251592317145,201.77917791779174],[580.5355392877991,200.33903390339032],[582.6223919967183,199.57095709570956],[584.9348504038991,200.24302430243023],[585.8936746215106,201.01110111011099],[585.6116674986837,203.69936993699366],[585.950076046076,205.23552355235523],[586.1756817443376,209.02790279027903],[588.4881401515183,208.88388838883884]]],[[[539.4753022041987,208.69186918691867],[537.783259467237,209.6999699969997],[537.1064423724524,208.64386438643862],[535.8656110320139,209.07590759075907],[536.147618154841,208.11581158115808],[538.2344708637602,206.48364836483648],[539.9829150252872,205.71557155715567],[539.4753022041987,208.69186918691867]]],[[[588.4881401515
 183,208.88388838883884],[586.1756817443376,209.02790279027903],[585.950076046076,205.23552355235523],[585.6116674986837,203.69936993699366],[585.8936746215106,201.01110111011099],[584.9348504038991,200.24302430243023],[582.6223919967183,199.57095709570956],[580.5355392877991,200.33903390339032],[576.4182352945259,202.83528352835282],[572.8085441223413,202.83528352835282],[569.1988529501566,203.65136513651362],[564.2919290129681,201.92319231923187],[564.6867389849258,199.09090909090907],[565.589161777972,199.28292829282924],[567.6196130623258,199.66696669666965],[568.6348387045027,200.38703870387036],[572.4137341503836,199.6189618961896],[575.2338053786528,200.86708670867085],[577.602665210399,200.77107710771077],[581.3815606562798,198.17881788178818],[583.4120119406336,197.89078907890786],[584.0888290354183,199.04290429042902],[586.5704917162952,199.76297629762973],[587.0217031128184,200.96309630963094],[586.8524988391222,203.93939393939394],[587.5293159339068,206.8196819681968],[58
 8.4881401515183,208.88388838883884]]]]}},{\"type\":\"Feature\",\"id\":9216,\"properties\":{\"name\":\"Sihlsee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[613.0227598374609,162.36723672367236],[614.3763940270301,163.03930393039303],[614.0943869042032,164.95949594959495],[615.5044225183378,169.2319231923192],[615.5044225183378,171.6321632163216],[616.0684367639917,174.27242724272423],[619.1705151150879,176.33663366336629],[618.8321065676955,177.4407440744074],[617.7604795009532,177.5367536753675],[616.1248381885571,176.43264326432643],[615.1660139709455,174.65646564656464],[613.473971233984,173.88838883888388],[613.0791612620262,172.78427842784276],[613.6995769322455,171.68016801680164],[612.3459427426762,170.67206720672067],[612.2895413181109,169.18391839183914],[610.4846957320185,165.87158715871584],[609.6386743635378,165.3435343534353],[610.4846957320185,163.51935193519347],[612.0075341952839,163.42334233423338],[613.0227598374609,162.36723672367236]]]]}},{\"type
 \":\"Feature\",\"id\":9239,\"properties\":{\"name\":\"Sarnersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[529.5486514806909,223.95739573957394],[529.8870600280832,225.06150615061506],[529.3794472069947,227.6057605760576],[525.4313474874177,230.87008700870086],[523.6265019013254,233.79837983798376],[521.4268463432754,231.92619261926188],[522.4420719854523,229.52595259525953],[526.2209674313331,227.3177317731773],[528.5898272630793,224.05340534053403],[529.5486514806909,223.95739573957394]]]]}},{\"type\":\"Feature\",\"id\":9267,\"properties\":{\"name\":\"Walensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[676.7563695963461,169.6159615961596],[673.7106926698153,169.18391839183914],[668.8037687326268,167.55175517551754],[666.0965003534884,167.59975997599759],[664.0096476445691,167.26372637263722],[662.6560134549998,166.25562556255625],[668.5217616097999,166.35163516351633],[670.3266071958922,166.97569756975696],[676.9255738700423,168.031803180317
 98],[676.7563695963461,169.6159615961596]]],[[[676.7563695963461,169.6159615961596],[676.9255738700423,168.03180318031798],[670.3266071958922,166.97569756975696],[668.5217616097999,166.35163516351633],[662.6560134549998,166.25562556255625],[665.0812747113114,164.76747674767472],[669.8189943748038,165.19951995199517],[672.0750513574192,165.8235823582358],[676.58716532265,165.91959195919588],[680.8172721650539,166.87968796879687],[686.6266188952885,166.3036303630363],[689.7850986709501,166.6396639663966],[690.6311200394309,166.3036303630363],[694.1280083624847,166.44764476447642],[694.015205513354,168.89588958895888],[690.800324313127,170.04800480048004],[687.2470345655078,169.42394239423942],[686.4010131970269,170.04800480048004],[682.6785191757116,170.57605760576052],[680.9864764387501,169.71197119711968],[680.3096593439654,170.19201920192017],[676.7563695963461,169.6159615961596]]]]}},{\"type\":\"Feature\",\"id\":9270,\"properties\":{\"name\":\"Aegerisee\"},\"geometry\":{\"type\":\
 "MultiPolygon\",\"coordinates\":[[[[583.4120119406336,166.59165916591655],[585.7244703478145,166.83168316831683],[586.7960974145568,167.8397839783978],[587.8677244812991,167.59975997599759],[589.3905629445645,168.27182718271825],[591.4774156534838,171.5361536153615],[591.364612804353,173.55235523552352],[590.2929857376107,174.6084608460846],[588.8829501234761,173.26432643264326],[588.9393515480415,172.06420642064205],[586.0628788952067,170.48004800480044],[583.6376176388952,169.80798079807977],[584.1452304599836,168.46384638463843],[583.4120119406336,166.59165916591655]]]]}},{\"type\":\"Feature\",\"id\":9276,\"properties\":{\"name\":\"Lac de la Gruy\u00E8re\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[352.33537549625066,263.8493849384938],[351.32014985407375,265.81758175817583],[350.07931851363526,266.2496249624962],[350.30492421189683,267.44974497449743],[351.99696694885836,269.1779177917791],[352.22257264711993,270.8100810081008],[353.8018125349507,270.0420042004
 2],[352.8429883173392,271.9141914191419],[351.5457555523353,271.5301530153015],[351.99696694885836,272.4902490249025],[350.30492421189683,273.97839783978395],[350.53052991015835,275.7065706570657],[349.85371281537374,276.8586858685868],[350.0229170890699,280.26702670267025],[351.0381427312468,283.2433243324332],[351.2637484295084,287.8037803780378],[349.74090996624295,287.3237323732373],[348.95129002232756,284.15541554155413],[349.007691446893,281.2751275127513],[349.5717056925468,278.1548154815481],[348.8948885977622,277.05070507050704],[349.74090996624295,275.5625562556255],[348.72568432406604,275.0825082508251],[347.14644443623524,276.04260426042606],[348.1052686538468,274.74647464746477],[348.33087435210837,273.1143114311431],[351.0381427312468,270.57005700570056],[351.2637484295084,269.36993699369935],[348.72568432406604,269.033903390339],[349.85371281537374,267.0657065706571],[348.4436772012391,266.39363936393636],[350.86893845755066,265.28952895289524],[352.33537549625066,263
 .8493849384938]]]]}},{\"type\":\"Feature\",\"id\":9294,\"properties\":{\"name\":\"Murtensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[348.1052686538468,219.10891089108907],[344.3827746325314,213.7323732373237],[344.89038745361984,212.72427242724268],[347.93606438015064,211.4281428142814],[352.2789740716853,209.07590759075907],[354.0838196577776,209.2199219921992],[355.7758623947392,211.62016201620162],[355.5502566964776,212.58025802580255],[353.2941997138622,214.98049804980496],[350.5869313347238,217.2367236723672],[348.7820857486314,217.2367236723672],[348.1052686538468,219.10891089108907]]],[[[348.1052686538468,219.10891089108907],[345.22879600101214,220.8370837083708],[343.42395041491983,220.9330933093309],[341.9575133762198,220.30903090309027],[340.378273488389,218.62886288628863],[340.378273488389,216.75667566756675],[344.3827746325314,213.7323732373237],[348.1052686538468,219.10891089108907]]]]}},{\"type\":\"Feature\",\"id\":9326,\"properties\":{\"name\":\
 "Bodensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[664.5172604656575,44.13141314131411],[663.6148376726114,44.035403540354025],[661.2459778408652,42.259225922592236],[659.2719279810767,41.395139513951335],[655.8878425071537,41.49114911491148],[654.477806893019,40.579057905790535],[652.6165598823613,40.195019501950185],[647.1456216995189,40.147014701470084],[644.2691490466843,41.49114911491148],[641.3362749692842,43.21932193219317],[639.4186265340611,44.94749474947491],[635.9217382110073,47.011701170116964],[633.8912869266534,47.39573957395737],[628.7587572912033,49.17191719171916],[626.7847074314149,47.63576357635759],[625.6002775155418,47.63576357635759],[625.6002775155418,47.34773477347733],[628.4767501683764,48.21182118211817],[631.2968213966457,47.49174917491746],[633.5528783792611,46.195619561956164],[634.286096898611,46.57965796579657],[638.0085909199265,43.93939393939388],[640.3774507516728,43.363336333633356],[640.715859299065,42.355235523552324],[643.3
 103248290727,40.96309630963094],[645.7355860853843,37.842784278427814],[643.4231276782035,35.29852985298527],[640.2646479025419,34.24242424242419],[637.6701823725342,32.370237023702316],[635.6961325127457,31.506150615061472],[635.4705268144842,29.729972997299683],[638.4598023164497,28.481848184818432],[640.4902536008035,29.00990099009897],[644.4383533203804,31.17011701170111],[644.8895647169036,30.834083408340803],[646.863614576692,31.60216021602156],[644.3819518958151,29.1539153915391],[642.5771063097227,28.76987698769875],[642.182296337765,27.185718571857137],[643.5923319518997,27.137713771377094],[644.6075575940765,28.241824182418213],[648.048044492565,30.35403540354031],[649.5708829558305,30.69006900690067],[657.0158709984613,34.67446744674464],[658.9335194336844,35.10651065106509],[660.4563578969498,36.210621062106156],[661.9227949356498,38.99489948994898],[658.9335194336844,39.71497149714969],[661.8663935110844,39.66696669666965],[664.4044576165268,42.73927392739273],[664.5172
 604656575,44.13141314131411]],[[650.9245171453997,34.91449144914486],[651.544932815619,35.922592259225894],[650.9245171453997,36.59465946594656],[651.6013342401843,38.418841884188396],[655.8314410825883,40.195019501950185],[657.3542795458536,40.53105310531049],[658.7079137354228,39.85898589858982],[653.9701940719306,35.87458745874585],[652.8421655806228,36.16261626162611],[652.1089470612728,35.10651065106509],[650.9245171453997,34.91449144914486]]],[[[738.3467252217467,61.17311731173112],[730.6761314808543,72.16621662166216],[727.7996588280198,72.55025502550251],[725.0923904488811,72.35823582358233],[723.2311434382234,70.05400540054],[715.2221411499388,60.453045304530406],[714.0377112340657,59.39693969396939],[686.2318089233308,46.05160516051603],[683.1861319968,45.42754275427541],[681.0992792878808,46.05160516051603],[676.1359539261268,46.43564356435638],[673.7670940943807,46.05160516051603],[673.0338755750307,46.43564356435638],[672.4134599048115,43.89138913891384],[674.2183054909
 037,43.93939393939388],[676.58716532265,44.707470747074694],[678.3920109087423,43.987398739873925],[677.2639824174346,41.683168316831654],[677.4331866911307,40.24302430243023],[675.8539468033,38.08280828082803],[673.5414883961191,36.78667866786674],[672.3006570556806,35.20252025202518],[672.5826641785077,33.714371437143654],[671.3418328380692,28.481848184818432],[669.4805858274115,27.617761776177588],[667.4501345430576,25.265526552655217],[665.4760846832692,25.74557455745571],[661.5279849636921,22.385238523852365],[658.425906612596,21.281128112811246],[654.929018289542,18.832883288328787],[651.6013342401843,14.704470447044685],[649.063270134742,13.168316831683114],[649.4580801066998,11.248124812481194],[650.3041014751805,9.999999999999943],[652.6729613069267,10.768076807680757],[653.462581250842,10.480048004800437],[655.0418211386728,12.30423042304227],[657.8054909423768,14.368436843684322],[660.8511678689075,15.616561656165572],[663.3892319743499,17.680768076807624],[664.7992675884
 844,19.888988898889863],[665.758091806096,20.65706570657062],[668.4089587606691,21.185118511851158],[672.2442556311153,23.153315331533122],[674.0491012172076,24.689468946894635],[676.58716532265,25.45754575457545],[679.2944337017884,27.137713771377094],[679.52003940005,30.93009300930089],[681.2684835615769,33.61836183618357],[685.667794677677,37.45874587458741],[687.3598374146386,38.03480348034799],[689.2210844252962,39.71497149714969],[692.8871770220462,41.92319231923187],[694.8048254572693,42.16321632163215],[698.8093266014117,44.65946594659465],[699.9373550927194,44.80348034803478],[702.4754191981617,43.45934593459344],[704.3930676333848,43.45934593459344],[705.1262861527348,42.83528352835282],[707.777153107308,42.787278727872774],[710.0896115144888,43.363336333633356],[711.725252826885,45.091509150915044],[713.3608941392811,45.18751875187513],[715.8989582447234,46.29162916291625],[716.4629724903773,47.10771077107705],[718.1550152273389,46.43564356435638],[719.2266422940811,46.91
 569156915688],[719.9034593888657,46.195619561956164],[722.4415234943081,47.443744374437415],[724.923186175185,50.75607560756072],[724.9795875997504,52.86828682868281],[726.4460246384504,54.35643564356434],[726.8972360349735,57.284728472847235],[729.0404901684581,58.91689168916889],[729.9429129615044,60.16501650165014],[731.6349556984658,61.07710771077103],[733.7782098319506,61.36513651365135],[736.6546824847851,60.453045304530406],[738.3467252217467,61.17311731173112]],[[674.7259183119922,34.33843384338428],[673.7670940943807,35.49054905490544],[675.6283411050384,35.77857785778576],[674.7259183119922,34.33843384338428]]],[[[758.4256323670238,72.16621662166216],[732.5937799160774,79.55895589558952],[730.6761314808543,72.16621662166216],[738.3467252217467,61.17311731173112],[739.0799437410967,63.57335733573353],[740.8847893271891,64.7254725472547],[742.4640292150198,64.19741974197416],[742.9716420361083,64.96549654965492],[744.6636847730699,65.49354935493545],[746.1865232363352,67.269
 72697269724],[750.4730315033046,67.12571257125711],[751.1498485980892,68.27782778277822],[752.447081363093,68.70987098709867],[755.6055611387546,68.37383738373836],[757.297603875716,69.90999099909988],[758.4256323670238,72.16621662166216]],[[751.1498485980892,68.90189018901884],[749.9090172576507,69.66996699669966],[751.6574614191777,70.19801980198014],[752.3342785139623,68.99789978997899],[751.1498485980892,68.90189018901884]]],[[[625.6002775155418,47.34773477347733],[625.6002775155418,47.63576357635759],[623.7390305048841,47.587758775877546],[623.0058119855341,46.86768676867683],[625.6002775155418,47.34773477347733]]],[[[723.2311434382234,70.05400540054],[713.0788870164542,79.55895589558952],[713.6429012621081,77.1587158715871],[712.0636613742772,76.53465346534648],[708.0591602301349,72.93429342934292],[705.0134833036041,70.67806780678063],[704.2238633596887,69.04590459045903],[704.6750747562118,65.82958295829582],[704.111060510558,64.82148214821478],[698.2453123557578,61.79717971
 7971744],[695.5944454011848,60.1170117011701],[692.7179727483501,57.76477647764773],[691.4207399833463,56.27662766276626],[687.9238516602924,54.308430843084295],[683.9757519407154,52.48424842484246],[683.4681391196269,51.90819081908188],[679.5764408246154,51.04410441044104],[677.9407995122192,49.507950795079466],[675.6847425296038,48.259825982598215],[674.7823197365576,48.3558355835583],[673.0338755750307,46.43564356435638],[673.7670940943807,46.05160516051603],[676.1359539261268,46.43564356435638],[681.0992792878808,46.05160516051603],[683.1861319968,45.42754275427541],[686.2318089233308,46.05160516051603],[714.0377112340657,59.39693969396939],[715.2221411499388,60.453045304530406],[723.2311434382234,70.05400540054]]],[[[664.5172604656575,44.13141314131411],[663.0508234269575,44.563456345634506],[659.6667379530345,44.32343234323429],[658.4823080371614,42.643264326432586],[656.7338638756344,43.363336333633356],[655.5494339597612,42.59525952595254],[650.529707173442,42.49924992499245
 5],[648.8940658610459,42.83528352835282],[647.6532345206074,42.355235523552324],[644.8331632923381,43.171317131713124],[643.1975219799419,44.08340834083407],[642.2386977623304,43.89138913891384],[640.4338521762381,45.955595559555945],[638.7982108638419,46.91569156915688],[635.2449211162227,48.115811581158084],[634.286096898611,48.06780678067804],[632.9324627090418,49.41194119411938],[632.0300399159958,48.97989798979893],[630.3943986035995,49.98799879987996],[628.0819401964187,49.795979597959786],[626.7283060068495,48.115811581158084],[625.3182703927148,48.30783078307826],[623.7390305048841,47.587758775877546],[625.6002775155418,47.63576357635759],[626.7847074314149,47.63576357635759],[628.7587572912033,49.17191719171916],[633.8912869266534,47.39573957395737],[635.9217382110073,47.011701170116964],[639.4186265340611,44.94749474947491],[641.3362749692842,43.21932193219317],[644.2691490466843,41.49114911491148],[647.1456216995189,40.147014701470084],[652.6165598823613,40.19501950195018
 5],[654.477806893019,40.579057905790535],[655.8878425071537,41.49114911491148],[659.2719279810767,41.395139513951335],[661.2459778408652,42.259225922592236],[663.6148376726114,44.035403540354025],[664.5172604656575,44.13141314131411]]],[[[732.5373784915121,80.80708070807077],[732.5937799160774,79.55895589558952],[758.4256323670238,72.16621662166216],[759.4972594337662,72.55025502550251],[761.6969149918161,74.99849984998497],[761.7533164163815,77.73477347734769],[760.8508936233354,78.55085508550854],[754.9851454685354,78.022802280228],[753.7443141280969,78.50285028502844],[751.8266656928738,81.67116711671162],[750.6422357770007,82.39123912391238],[751.0370457489585,80.6150615061506],[749.6270101348236,79.94299429942993],[749.4578058611276,81.28712871287127],[748.8937916154737,78.88688868886885],[748.8937916154737,81.04710471047099],[748.047770246993,80.80708070807077],[745.9609175380738,82.91929192919287],[744.4944804993736,80.56705670567055],[745.566107566116,79.60696069606956],[744
 .7764876222006,78.74287428742872],[742.0692192430622,81.62316231623157],[741.1667964500159,81.52715271527148],[739.869563685012,82.96729672967291],[736.5418796356544,83.20732073207319],[734.1730198039081,81.62316231623157],[733.6654069828198,80.03900390039001],[732.5373784915121,80.80708070807077]]],[[[730.6761314808543,72.16621662166216],[732.5937799160774,79.55895589558952],[732.5373784915121,80.80708070807077],[730.1685186597658,82.77527752775273],[729.7737086878083,83.9273927392739],[727.5740531297581,85.07950795079506],[722.8363334662658,85.75157515751573],[720.523875059085,85.2235223522352],[718.1550152273389,82.00720072007198],[715.2785425745042,80.9510951095109],[714.4889226305888,79.70297029702965],[713.0788870164542,79.55895589558952],[723.2311434382234,70.05400540054],[725.0923904488811,72.35823582358233],[727.7996588280198,72.55025502550251],[730.6761314808543,72.16621662166216]]]]}},{\"type\":\"Feature\",\"id\":9710,\"properties\":{\"name\":\"Lago di Lugano\"},\"geometr
 y\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[639.4186265340611,445.3075307530753],[638.6290065901458,445.73957395739575],[637.4445766742726,447.8037803780378],[636.5421538812266,447.27572757275726],[636.767759579488,444.29942994299427],[635.4705268144842,443.1953195319532],[634.9065125688303,440.4110411041104],[635.865336786442,438.2988298829883],[635.2449211162227,436.1866186618662],[633.0452655581726,436.2826282628263],[632.7068570107804,435.3225322532253],[631.4660256703419,435.034503450345],[630.2815957544688,433.6903690369037],[633.7784840775226,435.7065706570657],[635.6961325127457,435.17851785178516],[636.1473439092688,436.1866186618662],[636.2037453338341,439.1149114911491],[635.5833296636149,441.37113711371137],[638.0649923444919,444.5874587458746],[639.4186265340611,445.3075307530753]]],[[[648.8376644364805,429.46594659465944],[648.3864530399574,431.4341434143414],[647.596833096042,432.3942394239424],[647.3712273977804,434.026402640264],[645.9047903590804,433.6903690
 369037],[647.1456216995189,429.27392739273927],[648.8376644364805,429.46594659465944]]],[[[656.4518567528075,425.1455145514551],[654.195799770192,425.96159615961597],[653.6317855245381,426.6816681668167],[650.0220943523536,428.31383138313834],[648.8376644364805,429.46594659465944],[647.1456216995189,429.27392739273927],[645.9047903590804,433.6903690369037],[647.3712273977804,434.026402640264],[646.9764174258228,435.8505850585058],[645.9047903590804,436.71467146714673],[646.9200160012574,437.43474347434744],[646.8072131521267,439.35493549354936],[647.3712273977804,440.84308430843083],[648.9504672856112,442.04320432043204],[650.0220943523536,444.5874587458746],[649.5144815312651,447.03570357035704],[648.3864530399574,446.79567956795677],[647.9916430679997,442.7152715271527],[644.7767618677727,440.0750075007501],[642.5771063097227,441.65916591659163],[641.3926763938496,443.96339633963396],[639.4186265340611,445.3075307530753],[638.0649923444919,444.5874587458746],[635.5833296636149,441
 .37113711371137],[636.2037453338341,439.1149114911491],[636.1473439092688,436.1866186618662],[635.6961325127457,435.17851785178516],[633.7784840775226,435.7065706570657],[630.2815957544688,433.6903690369037],[631.635229944038,432.34623462346235],[632.3120470388226,433.06630663066306],[631.8608356422995,434.6024602460246],[632.650455586215,435.0825082508251],[634.7937097196996,434.55445544554453],[634.1732940494803,432.7302730273027],[635.865336786442,431.2901290129013],[635.5269282390495,428.6018601860186],[636.1473439092688,427.5457545754575],[637.7265837970996,427.0657065706571],[638.4034008918842,427.8817881788179],[636.2037453338341,432.92229222922293],[637.3881752497073,437.4827482748275],[636.3729496075304,441.13111311131115],[638.5726051655804,443.4353435343534],[639.700633656888,443.33933393339333],[640.9414649973265,442.18721872187217],[642.8591134325496,439.2589258925893],[643.8179376501612,436.85868586858686],[645.397177537992,436.71467146714673],[644.4947547449458,435.32
 25322532253],[644.5511561695112,433.06630663066306],[645.7355860853843,431.0981098109811],[645.5663818116882,427.92979297929793],[644.2691490466843,426.8256825682568],[645.0023675660343,425.001500150015],[647.596833096042,424.5694569456946],[649.3452772575689,425.72157215721575],[651.2065242682266,424.7134713471347],[652.8421655806228,424.6174617461746],[656.0570467808498,421.7371737173717],[656.4518567528075,425.1455145514551]]],[[[656.4518567528075,425.1455145514551],[656.0570467808498,421.7371737173717],[657.4670823949843,420.63306330633065],[659.8359422267306,419.76897689768975],[660.7947664443421,420.05700570057],[665.306880409573,419.96099609960993],[667.1117259956652,419.67296729672967],[670.7778185924153,416.984698469847],[672.2442556311153,418.95289528952895],[667.506535967623,423.1773177317732],[665.1376761358767,423.46534653465346],[662.6560134549998,422.84128412841284],[658.7643151599882,422.84128412841284],[656.4518567528075,425.1455145514551]]]]}},{\"type\":\"Feature\"
 ,\"id\":9711,\"properties\":{\"name\":\"Lago Maggiore\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[613.0791612620262,402.1512151215121],[610.9359071285417,398.31083108310827],[608.1158359002724,401.0951095109511],[606.5929974370069,404.11941194119413],[603.9421304824339,403.15931593159314],[606.4801945878762,398.93489348934895],[607.5518216546186,395.4305430543054],[609.5822729389724,392.74227422742274],[614.6584011498571,390.9180918091809],[617.4220709535609,392.88628862886287],[618.7757051431302,392.74227422742274],[620.354945030961,390.9180918091809],[620.6933535783533,388.997899789979],[620.072937908134,387.3657365736574],[622.6674034381417,386.6456645664566],[624.9798618453226,385.06150615061506],[626.5027003085879,385.97359735973595],[628.420348743811,388.037803780378],[628.9843629894649,391.06210621062104],[629.9995886316418,390.6300630063006],[630.3943986035995,391.4941494149415],[628.7587572912033,391.6381638163816],[625.8258832138033,393.4143414341434],[6
 22.3853963153149,394.2304230423042],[620.806156427484,395.0945094509451],[619.3961208133494,396.6306630663066],[617.4784723781263,397.73477347734774],[613.9815840550725,401.76717671767176],[613.0791612620262,402.1512151215121]]],[[[613.0791612620262,402.1512151215121],[610.1462871846263,402.6312631263126],[609.6950757881032,404.7914791479148],[607.4954202300531,407.33573357335734],[609.1874629670147,410.6960696069607],[608.9618572687532,412.4722472247225],[609.7514772126685,414.34443444344436],[609.5258715144071,417.17671767176716],[611.725527072457,418.7128712871287],[612.6279498655032,420.8730873087309],[612.6279498655032,422.5532553255325],[611.4999213741955,425.09750975097506],[609.6950757881032,426.96969696969694],[608.51064587223,426.96969696969694],[606.4801945878762,428.88988898889886],[606.2545888896148,430.9060906090609],[603.9421304824339,433.3063306330633],[598.8096008469838,436.95469546954695],[598.5839951487224,439.54695469546954],[596.7227481380646,440.2190219021902],
 [595.31271252393,441.4191419141914],[594.1846840326223,443.14731473147316],[591.5902185026146,444.4914491449145],[590.6877957095684,446.027602760276],[592.0978313237031,447.13171317131713],[591.7594227763107,447.7077707770777],[589.164957246303,447.8037803780378],[587.9241259058645,451.16411641164115],[589.1085558217376,453.3723372337234],[588.5445415760837,454.7164716471647],[589.6161686428261,455.964596459646],[590.91340140783,459.7089708970897],[592.2670355973992,459.94899489948995],[592.9438526921838,464.4134413441344],[593.3950640887069,465.85358535853584],[592.0978313237031,466.95769576957696],[591.5902185026146,466.47764776477646],[590.4621900113068,467.8217821782178],[590.4057885867414,470.84608460846084],[588.6009430006491,472.52625262526254],[587.2473088110798,472.7182718271827],[584.8784489793337,472.0942094209421],[583.468413365199,475.83858385838585],[583.468413365199,477.4227422742274],[584.6528432810721,479.1989198919892],[587.1909073865145,479.15091509150915],[586.06
 28788952067,479.87098709870986],[586.965301688253,482.7032703270327],[588.2625344532569,482.7992799279928],[589.164957246303,487.5037503750375],[590.6877957095684,487.45574557455745],[590.3493871621761,488.65586558655866],[592.4926412956606,489.13591359135916],[594.1282826080569,490],[590.5749928604375,489.23192319231924],[588.3189358778222,487.83978397839786],[586.8524988391222,484.14341434143415],[582.1147791756298,477.6627662766277],[581.832772052803,475.2145214521452],[582.0583777510644,473.006300630063],[583.468413365199,470.7980798079808],[586.1756817443376,469.45394539453946],[587.3601116602106,468.0618061806181],[588.4881401515183,464.65346534653463],[587.9241259058645,460.3810381038104],[587.0781045373838,458.55685568556856],[584.3144347336798,451.54815481548155],[584.5400404319414,449.1959195919592],[587.9241259058645,444.53945394539454],[591.6466199271799,440.6990699069907],[601.8552777735147,429.36993699369935],[604.7317504263492,426.3456345634563],[607.9466316265762,423
 .46534653465346],[609.1310615424493,420.2010201020102],[607.7774273528801,416.984698469847],[606.5929974370069,411.2721272127213],[605.1829618228724,407.2397239723972],[606.5929974370069,404.11941194119413],[608.1158359002724,401.0951095109511],[610.9359071285417,398.31083108310827],[613.0791612620262,402.1512151215121]]],[[[606.5929974370069,404.11941194119413],[605.1829618228724,407.2397239723972],[606.5929974370069,411.2721272127213],[607.7774273528801,416.984698469847],[609.1310615424493,420.2010201020102],[607.9466316265762,423.46534653465346],[604.7317504263492,426.3456345634563],[601.8552777735147,429.36993699369935],[591.6466199271799,440.6990699069907],[587.9241259058645,444.53945394539454],[584.5400404319414,449.1959195919592],[584.3144347336798,451.54815481548155],[587.0781045373838,458.55685568556856],[587.9241259058645,460.3810381038104],[588.4881401515183,464.65346534653463],[587.3601116602106,468.0618061806181],[586.1756817443376,469.45394539453946],[583.468413365199,
 470.7980798079808],[582.0583777510644,473.006300630063],[581.832772052803,475.2145214521452],[582.1147791756298,477.6627662766277],[586.8524988391222,484.14341434143415],[588.3189358778222,487.83978397839786],[590.5749928604375,489.23192319231924],[594.1282826080569,490],[589.2213586708683,489.2799279927993],[587.4729145093414,489.9039903990399],[586.0628788952067,486.01560156015603],[584.3708361582453,484.6714671467147],[584.4272375828107,482.84728472847286],[583.6376176388952,482.5112511251125],[583.468413365199,481.07110711071107],[581.1559549580184,479.006900690069],[580.6483421369298,477.9027902790279],[580.084327891276,474.014401440144],[579.5767150701874,473.24632463246326],[581.0995535334529,468.9258925892589],[582.0583777510644,469.3579357935794],[583.7504204880261,468.0618061806181],[583.9760261862875,465.3255325532553],[585.2732589512914,463.26132613261325],[583.8068219125914,456.44464446444647],[581.832772052803,453.9003900390039],[576.4182352945259,451.5961596159616],[5
 74.2185797364759,448.33183318331834],[574.1621783119106,446.79567956795677],[571.8497199047297,444.3954395439544],[570.2140785923336,443.24332433243325],[571.0600999608143,441.7551755175517],[573.5981640662567,440.6990699069907],[575.0081996803913,440.6990699069907],[579.2947079473606,442.66726672667266],[580.8739478351913,444.8274827482748],[582.6223919967183,446.07560756075605],[583.6940190634606,443.33933393339333],[584.7656461302029,441.56315631563155],[587.3037102356452,440.4590459045904],[591.8722256254414,436.6186618661866],[593.3386626641415,433.25832583258324],[596.8919524117607,428.64986498649864],[598.8096008469838,424.8094809480948],[600.8400521313376,421.92919291929195],[604.0549333315646,421.06510651065105],[606.2545888896148,419.5769576957696],[606.4801945878762,418.0888088808881],[605.3521660965685,415.4965496549655],[605.6905746439609,414.05640564056404],[604.5625461526531,412.3282328232823],[604.3369404543917,410.55205520552056],[603.0961091139532,406.7596759675967
 6],[603.9421304824339,403.15931593159314],[606.5929974370069,404.11941194119413]]]]}},{\"type\":\"Feature\",\"id\":9751,\"properties\":{\"name\":\"Lac de Joux\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[228.87265712262257,274.31443144314426],[229.21106567001488,274.84248424842485],[227.46262150848793,277.9147914791479],[221.31486623086096,283.29132913291323],[219.39721779563786,284.1074107410741],[216.9155551147609,286.3636363636364],[215.50551950062626,286.8436843684368],[215.0543081041032,285.8355835583558],[217.47956936041476,283.00330033003297],[222.10448617477633,279.16291629162913],[224.64255028021867,277.6267626762676],[228.87265712262257,274.31443144314426]]]]}},{\"type\":\"Feature\",\"id\":9757,\"properties\":{\"name\":\"Lac L\u00E9man\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[306.08620735263486,330],[303.4353403980617,337.53675367536755],[301.46129053827326,337.6807680768077],[295.9903523554309,335.3285328532853],[292.6062668815078,3
 34.8964896489649],[289.72979422867314,333.98439843984397],[283.35643325278465,334.1284128412841],[282.2848061860423,334.6084608460846],[276.81386800319996,334.3204320432043],[273.9373953503653,335.04050405040505],[269.3124785360037,335.1845184518452],[262.03669476706904,336.8166816681668],[258.65260929314593,334.8964896489649],[257.41177795270744,334.56045604560455],[253.97129105421897,336.048604860486],[252.44845259095356,337.53675367536755],[252.44845259095356,339.4569456945694],[251.65883264703817,341.041104110411],[243.9318374815804,344.73747374737474],[241.2245691024419,344.73747374737474],[239.98373776200344,346.65766576657666],[239.0249135443919,346.9456945694569],[237.8404836285188,349.009900990099],[236.43044801438418,348.8178817881788],[233.04636254046108,347.3297329732973],[231.46712265263028,344.06540654065407],[231.52352407719565,342.86528652865286],[230.39549558588794,342.1932193219322],[227.12421296109562,342.24122412241223],[224.86815597848022,342.9132913291329],[221
 .65327477825326,344.88148814881487],[219.79202776759556,346.65766576657666],[218.88960497454937,349.3939393939394],[216.5771465673686,352.27422742274223],[216.74635084106475,353.4263426342634],[215.22351237779935,356.4986498649865],[213.98268103736086,356.8826882688269],[210.5421941388724,355.15451545154514],[212.62904684779164,350.9300930093009],[214.09548388649165,347.95379537953795],[216.01313232171475,344.16141614161415],[229.21106567001488,334.5124512451245],[243.5370275096227,331.8721872187218],[258.370602170319,322.79927992799276],[284.08965177213463,323.56735673567357],[306.08620735263486,330]]],[[[312.0083569320003,337.53675367536755],[306.08620735263486,330],[284.08965177213463,323.56735673567357],[258.370602170319,322.79927992799276],[243.5370275096227,331.8721872187218],[229.21106567001488,334.5124512451245],[216.01313232171475,344.16141614161415],[214.09548388649165,347.95379537953795],[209.6397713458262,345.79357935793576],[210.9370041108301,343.7773777377738],[213.587
 8710654032,340.5130513051305],[217.14116081302245,336.8166816681668],[219.39721779563786,337.44074407440746],[220.7508519852071,335.85658565856585],[220.86365483433786,333.7923792379238],[222.2172890239071,331.8241824182418],[222.38649329760327,329.95199519951996],[224.75535312934943,328.5598559855986],[226.95500868739947,325.3435343534353],[229.21106567001488,323.7113711371137],[231.29791837893413,321.35913591359133],[236.7688565617765,320.5910591059106],[238.51730072330344,321.7911791179118],[239.98373776200344,321.98319831983196],[243.1986189622304,319.8229822982298],[247.3723243800689,318.6228622862286],[248.33114859768045,317.6147614761476],[249.34637423985737,317.7587758775877],[249.45917708898816,316.17461746174615],[250.756409853992,314.9264926492649],[252.11004404356123,314.87848784878486],[253.52007965769587,312.4302430243024],[254.76091099813436,312.04620462046205],[256.5657565842267,309.45394539453946],[258.59620786858056,309.3579357935794],[261.3598776722844,311.1341134
 113411],[264.5747588725114,311.2301230123012],[265.75918878838445,310.2220222022202],[268.46645716752295,308.8298829882988],[269.93289420622295,308.8298829882988],[271.51213409405375,310.07800780078003],[273.42978252927685,310.6060606060606],[275.7422409364576,311.95019501950196],[281.5515876666923,311.9021902190219],[284.03325034756926,312.4302430243024],[286.7969201512731,313.58235823582356],[290.51941417258854,316.4626462646264],[292.9446754289001,315.74257425742576],[295.03152813781935,316.3666366636663],[296.61076802565015,317.95079507950794],[298.8104235837002,319.15091509150915],[301.12288199088096,319.3429342934293],[304.3377631911079,320.3510351035103],[307.8346515141618,320.8790879087909],[308.39866575981563,322.4152415241524],[310.936729865258,323.32733273327335],[312.12115978113104,325.48754875487543],[314.2080124900503,325.4395439543954],[315.27963955679263,326.6396639663966],[316.9152808691888,327.35973597359737],[318.66372503071574,327.2637263726373],[319.509746399196
 5,327.8397839783978],[319.9609577957196,329.47194719471946],[321.7658033818119,330.14401440144013],[323.17583899594655,333.8883888388839],[322.3298176274658,336.4806480648065],[321.4273948344196,337.44074407440746],[316.40766804810033,337.2007200720072],[313.0799839987426,337.8247824782478],[312.0083569320003,337.53675367536755]]],[[[213.98268103736086,356.8826882688269],[214.09548388649165,358.37083708370835],[212.7982511214878,360.6750675067507],[211.83942690387624,361.2511251125112],[209.3577642229993,365.1875187518752],[206.93250296668774,366.29162916291625],[206.36848872103388,367.5397539753975],[206.2556858719031,370.9000900090009],[205.63527020168388,373.06030603060304],[204.50724171037618,374.6924692469247],[202.81519897341462,377.76477647764773],[199.76952204688382,379.5409540954095],[198.07747930992227,379.44494449444943],[199.76952204688382,378.004800480048],[199.76952204688382,375.94059405940595],[199.20550780122997,374.6924692469247],[199.8259234714492,370.9000900090009
 ],[199.76952204688382,368.979897989799],[202.02557902949923,366.29162916291625],[202.64599469971847,363.93939393939394],[202.25118472776077,361.971197119712],[202.75879754884923,359.042904290429],[207.15810866494928,361.3951395139514],[210.5421941388724,355.15451545154514],[213.98268103736086,356.8826882688269]]],[[[212.62904684779164,350.9300930093009],[210.5421941388724,355.15451545154514],[207.15810866494928,361.3951395139514],[202.75879754884923,359.042904290429],[203.77402319102617,358.13081308130813],[206.81970011755695,353.95439543954393],[208.68094712821465,349.1059105910591],[212.62904684779164,350.9300930093009]]],[[[214.09548388649165,347.95379537953795],[212.62904684779164,350.9300930093009],[208.68094712821465,349.1059105910591],[209.019355675607,346.8976897689769],[209.6397713458262,345.79357935793576],[214.09548388649165,347.95379537953795]]],[[[312.0083569320003,337.53675367536755],[311.6135469600426,339.50495049504946],[309.6394971002541,338.83288328832884],[306.593
 8201737233,339.07290729072906],[303.4353403980617,337.53675367536755],[306.08620735263486,330],[312.0083569320003,337.53675367536755]]]]}}]}";
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/FeatureEntity.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/FeatureEntity.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/FeatureEntity.java
deleted file mode 100644
index d964f92..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/FeatureEntity.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model;
-
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.interactions.api.FeatureCmds;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.state.FeatureState;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.state.IdentifiableState;
-
-/**
- * Created by jj on 28.11.14.
- */
-public interface FeatureEntity extends EntityComposite,
-
-    IdentifiableState.latest,
-    FeatureState.latest,
-        FeatureCmds
-
-{}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java
deleted file mode 100644
index 88e3318..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model;
-
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.state.IdentifiableState;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.state.PropertiesState;
-
-/**
- * Created by jj on 28.11.14.
- */
-public interface TagEntity extends EntityComposite
-
-        ,PropertiesState.latest
-        ,IdentifiableState.latest
-
-{}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java
deleted file mode 100644
index 750add4..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.assembly;
-
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.bootstrap.Assembler;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.OSMEntity;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.TagEntity;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.v2.FeatureEntityV2;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.v2.OSMEntityV2;
-// import org.qi4j.sample.spatial.domain.openstreetmap.model.TagEntity;
-
-
-/**
- * Created by jj on 28.11.14.
- */
-public class OpenStreetMapDomainModelAssembler implements Assembler {
-
-    private final String CRS_EPSG_4326 = "EPSG:4326";
-
-
-    @Override
-    public void assemble(ModuleAssembly module) throws AssemblyException
-    {
-       // module.entities(FeatureEntity.class, TagEntity.class, OSMEntity.class);
-
-        module.entities(OSMEntityV2.class, FeatureEntityV2.class);
-
-        // internal values
-        module.values(Coordinate.class, TLinearRing.class, TGeometry.class);
-
-        // API values
-        module.values(TPoint.class, TMultiPoint.class, TLineString.class, TPolygon.class, TMultiPolygon.class, TFeature.class, TFeatureCollection.class);
-
-
-        TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
-        tGeometry.CRS().set(CRS_EPSG_4326);
-
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/interactions/api/OSM.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/interactions/api/OSM.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/interactions/api/OSM.java
deleted file mode 100644
index 21f6bea..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/interactions/api/OSM.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.interactions.api;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.entity.EntityBuilder;
-import org.qi4j.api.entity.EntityReference;
-import org.qi4j.api.geometry.TFeature;
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.structure.Module;
-import org.qi4j.api.unitofwork.NoSuchEntityException;
-import org.qi4j.library.eventsourcing.domain.api.DomainEvent;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.OSMEntity;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.state.FeatureState;
-
-import java.util.Map;
-import java.util.UUID;
-
-@Mixins({
-        OSM.Mixin.class,
-        OSM.EventsMixin.class
-})
-public interface OSM {
-
-    public static final String ID = UUID.randomUUID().toString();
-
-    // API
-
-    public FeatureState createFeature(TFeature feature, Map<String, String> properties) throws Exception;
-
-    public static class Repository {
-
-        public static OSM $(Module module) {
-            try {
-                return module.currentUnitOfWork().get(OSM.class, ID);
-            } catch (NoSuchEntityException e) {
-                return module.currentUnitOfWork().newEntity(OSM.class, ID);
-            }
-        }
-    }
-
-
-    /**
-     * Events
-     */
-    interface Events {
-
-        @DomainEvent
-        OSM journalCreated(EntityReference owner, @Optional String name, @Optional String description) throws Exception;
-
-        // @DomainEvent
-        // void journalDestroyed(String journalId);
-        FeatureState featureCreated(TFeature feature, Map<String, String> properties) throws Exception;
-    }
-
-
-    /**
-     * Mixin
-     */
-    class Mixin implements OSM {
-
-        @This
-        Events events;
-
-        @Structure
-        Module module;
-
-        // @Override
-        public OSM create(EntityReference owner, @Optional String name, @Optional String description) throws Exception {
-            return events.journalCreated(owner, name, description);
-        }
-
-        public FeatureState createFeature(TFeature feature, Map<String, String> properties) throws Exception
-        {
-            return events.featureCreated(feature, properties);
-        }
-
-
-
-
-    }
-
-    /**
-     * Events mixin
-     */
-    class EventsMixin implements Events {
-
-        @Structure
-        Module module;
-
-        @This
-        OSMEntity thisEntity;
-
-        @Override
-        public OSM journalCreated(EntityReference owner, @Optional String name, @Optional String description) throws Exception {
-            return null;
-        }
-
-        public FeatureState featureCreated(TFeature feature, Map<String, String> properties) throws Exception
-        {
-           // System.out.println("Feature created : " + feature);
-            EntityBuilder<FeatureCmds> eb = module.currentUnitOfWork().newEntityBuilder(FeatureCmds.class);
-            // eb.instance().
-            eb.instance().createWithProperties(feature, properties);
-            eb.newInstance();
-
-            return null;
-        }
-    }
-}


[45/50] [abbrv] zest-qi4j git commit: Final cleanup

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
index d9c37ff..7bd5300 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
@@ -18,55 +18,68 @@ import org.qi4j.api.common.Optional;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.value.ValueComposite;
 
-/**
- * Created by jj on 22.12.14.
- */
-public class SpatialConfiguration {
 
-    public static boolean isEnabled(Configuration config) {
+public class SpatialConfiguration
+{
+
+    public static boolean isEnabled(Configuration config)
+    {
         return config.Enabled().get().booleanValue();
     }
 
-    public static INDEXING_METHOD getMethod(Configuration config) {
+    public static INDEXING_METHOD getMethod(Configuration config)
+    {
         return config.Indexer().get().Method().get().Type().get();
     }
 
-    public static boolean isMethodGeoPoint(Configuration config) {
+    public static boolean isMethodGeoPoint(Configuration config)
+    {
         return config.Indexer().get().Method().get().Type().get() == INDEXING_METHOD.GEO_POINT ? true : false;
     }
 
-    public static boolean isMethodGeoShape(Configuration config) {
+    public static boolean isMethodGeoShape(Configuration config)
+    {
         return config.Indexer().get().Method().get().Type().get() == INDEXING_METHOD.GEO_SHAPE ? true : false;
     }
 
-    public static boolean isIndexerProjectionConversionEnabled(Configuration config) {
+    public static boolean isIndexerProjectionConversionEnabled(Configuration config)
+    {
         return config.Indexer().get().Projection().get().ConversionEnabled().get().booleanValue();
     }
 
-    public static double getIndexerProjectionConversionAccuracy(Configuration config) {
+    public static double getIndexerProjectionConversionAccuracy(Configuration config)
+    {
         // return config.Indexer().get().Projection().get().
         return 2;
     }
 
-    public static String getIndexerPrecision(Configuration config) {
+    public static String getIndexerPrecision(Configuration config)
+    {
         return config.Indexer().get().Method().get().Precision().get();
     }
 
-    public static boolean isFinderProjectionConversionEnabled(Configuration config) {
+    public static boolean isFinderProjectionConversionEnabled(Configuration config)
+    {
         return config.Finder().get().Projection().get().ConversionEnabled().get().booleanValue();
     }
 
-    public static double getFinderProjectionConversionAccuracy(Configuration config) {
+    public static double getFinderProjectionConversionAccuracy(Configuration config)
+    {
         return 2;
     }
 
-    public String getMethodAccuracy(Configuration config) {
+    public String getMethodAccuracy(Configuration config)
+    {
         return config.Indexer().get().Method().get().Precision().get();
     }
 
-    public static enum INDEXING_METHOD {GEO_POINT, GEO_SHAPE}
+    public static enum INDEXING_METHOD
+    {
+        GEO_POINT, GEO_SHAPE
+    }
 
-    public interface Configuration extends ValueComposite {
+    public interface Configuration extends ValueComposite
+    {
         @Optional
         Property<Boolean> Enabled();
 
@@ -77,7 +90,8 @@ public class SpatialConfiguration {
         Property<FinderConfiguration> Finder();
     }
 
-    public interface IndexerConfiguration extends ValueComposite {
+    public interface IndexerConfiguration extends ValueComposite
+    {
         @Optional
         Property<IndexingMethod> Method();
 
@@ -85,12 +99,14 @@ public class SpatialConfiguration {
         Property<ProjectionSupport> Projection();
     }
 
-    public interface FinderConfiguration extends ValueComposite {
+    public interface FinderConfiguration extends ValueComposite
+    {
         @Optional
         Property<ProjectionSupport> Projection();
     }
 
-    public interface IndexingMethod extends ValueComposite {
+    public interface IndexingMethod extends ValueComposite
+    {
         @Optional
         Property<INDEXING_METHOD> Type();
 
@@ -98,7 +114,8 @@ public class SpatialConfiguration {
         Property<String> Precision();
     }
 
-    public interface ProjectionSupport extends ValueComposite {
+    public interface ProjectionSupport extends ValueComposite
+    {
         @Optional
         Property<Boolean> ConversionEnabled();
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
index fdc29ba..90810f3 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
@@ -28,13 +28,11 @@ import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
-/**
- * Created by jj on 22.12.14.
- */
-public class SpatialFunctionsSupportMatrix {
+public class SpatialFunctionsSupportMatrix
+{
+    private static final Table<String, SpatialConfiguration.INDEXING_METHOD, ConfigurationEntry> SPATIAL_SUPPORT_MATRIX = HashBasedTable.create();
     private static Boolean OrderBy = true;
     private static Class<? extends TGeometry> AnyGeometry = TGeometry.class;
-    private static final Table<String, SpatialConfiguration.INDEXING_METHOD, ConfigurationEntry> SPATIAL_SUPPORT_MATRIX = HashBasedTable.create();
 
     static
     {
@@ -53,22 +51,22 @@ public class SpatialFunctionsSupportMatrix {
     }
 
 
-    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method, Boolean verifyOrderBy) {
-        System.out.println(SPATIAL_SUPPORT_MATRIX.toString());
+    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method, Boolean verifyOrderBy)
+    {
 
-        System.out.println("isSupported " + expression + " " + geometryOfProperty + " " + geometryOfFilter + " Type " + method);
-        System.out.println("Contains " + SPATIAL_SUPPORT_MATRIX.contains(expression.getName(), method));
         if (SPATIAL_SUPPORT_MATRIX.contains(expression.getName(), method))
             return SPATIAL_SUPPORT_MATRIX.get(expression.getName(), method).isSupported(geometryOfProperty, geometryOfFilter, orderBy, verifyOrderBy);
         else
             return false;
     }
 
-    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, SpatialConfiguration.INDEXING_METHOD method) {
+    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, SpatialConfiguration.INDEXING_METHOD method)
+    {
         return isSupported(expression, geometryOfProperty, geometryOfFilter, false, method, false);
     }
 
-    private static void supports(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method) {
+    private static void supports(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method)
+    {
         supports
                 (
                         expression,
@@ -78,54 +76,63 @@ public class SpatialFunctionsSupportMatrix {
                 );
     }
 
-    private static void supports(Class expression, Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method) {
+    private static void supports(Class expression, Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method)
+    {
         SPATIAL_SUPPORT_MATRIX.put(expression.getName(), method, new ConfigurationEntry(geometriesOfProperty, geometriesOfFilter, orderBy, method));
     }
 
-    private static Class disable(Class clazz) {
+    private static Class disable(Class clazz)
+    {
         return Object.class;
     }
 
-    private static Class enable(Class clazz) {
+    private static Class enable(Class clazz)
+    {
         return clazz;
     }
 
-    private static Boolean disable(Boolean bool) {
+    private static Boolean disable(Boolean bool)
+    {
         return false;
     }
 
-    private static Boolean enable(Boolean bool) {
+    private static Boolean enable(Boolean bool)
+    {
         return true;
     }
 
-    private static Class<? extends TGeometry>[] filterOf(Class<? extends TGeometry>... geometryOfFilters) {
+    private static Class<? extends TGeometry>[] filterOf(Class<? extends TGeometry>... geometryOfFilters)
+    {
         return geometryOfFilters;
     }
 
-    private static Class<? extends TGeometry>[] propertyOf(Class<? extends TGeometry>... geometryOfProperty) {
+    private static Class<? extends TGeometry>[] propertyOf(Class<? extends TGeometry>... geometryOfProperty)
+    {
         return geometryOfProperty;
     }
 
-    private static class ConfigurationEntry {
+    private static class ConfigurationEntry
+    {
         private SpatialConfiguration.INDEXING_METHOD method;
         private Boolean orderBy;
         private List<Class<? extends TGeometry>> supportedPropertyGeometries = new LinkedList<>();
         private List<Class<? extends TGeometry>> supportedFilterGeometries = new LinkedList<>();
 
-        public ConfigurationEntry(Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method) {
+        public ConfigurationEntry(Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method)
+        {
             this.supportedPropertyGeometries = Arrays.asList(geometriesOfProperty);
             this.supportedFilterGeometries = Arrays.asList(geometriesOfFilter);
             this.orderBy = orderBy;
             this.method = method;
         }
 
-        public boolean isSupported(Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, Boolean verifyOrderBy) {
-            System.out.println("geometryOfProperty " + geometryOfProperty);
-            System.out.println("geometryOfFilter " + geometryOfFilter);
-            System.out.println("OrderBy " + orderBy);
+        public boolean isSupported(Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, Boolean verifyOrderBy)
+        {
 
-            if (supportsProperty(geometryOfProperty) && supportsFilter(geometryOfFilter)) {
-                if (verifyOrderBy) {
+            if (supportsProperty(geometryOfProperty) && supportsFilter(geometryOfFilter))
+            {
+                if (verifyOrderBy)
+                {
                     if (this.orderBy && orderBy) return true;
                     if (this.orderBy && !orderBy) return true;
                     if (!this.orderBy && !orderBy) return true;
@@ -135,7 +142,8 @@ public class SpatialFunctionsSupportMatrix {
             return false;
         }
 
-        private boolean supportsProperty(Class<? extends TGeometry> geometryOfProperty) {
+        private boolean supportsProperty(Class<? extends TGeometry> geometryOfProperty)
+        {
             if (supportedPropertyGeometries.contains(TGeometry.class))
                 return true;
             else if (supportedPropertyGeometries.contains(geometryOfProperty))
@@ -144,7 +152,8 @@ public class SpatialFunctionsSupportMatrix {
                 return false;
         }
 
-        private boolean supportsFilter(Class<? extends TGeometry> geometryOfFilter) {
+        private boolean supportsFilter(Class<? extends TGeometry> geometryOfFilter)
+        {
             if (supportedFilterGeometries.contains(TGeometry.class))
                 return true;
             else if (supportedFilterGeometries.contains(geometryOfFilter))

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
index bd8fe6c..4ec3adc 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
@@ -23,20 +23,24 @@ import org.qi4j.spi.query.EntityFinderException;
 
 import java.util.Map;
 
-import static org.qi4j.library.spatial.conversions.TConversions.Convert;
+import static org.qi4j.library.spatial.formats.conversions.TConversions.Convert;
 
 
-public class ST_GeometryFromText extends AbstractElasticSearchSpatialFunction implements ConvertFinderSupport.ConvertSpecification {
-    public void processSpecification(FilterBuilder filterBuilder, SpatialConvertSpecification<?> spec, Map<String, Object> variables) throws EntityFinderException {
+public class ST_GeometryFromText extends AbstractElasticSearchSpatialFunction implements ConvertFinderSupport.ConvertSpecification
+{
+    public void processSpecification(FilterBuilder filterBuilder, SpatialConvertSpecification<?> spec, Map<String, Object> variables) throws EntityFinderException
+    {
         try
         {
             spec.setGeometry(Convert(module).from(spec.property()).toTGeometry());
-        } catch (Exception _ex) {
+        } catch (Exception _ex)
+        {
             throw new EntityFinderException(_ex);
         }
     }
 
-    public ConvertFinderSupport.ConvertSpecification support(Module module, ElasticSearchSupport support) {
+    public ConvertFinderSupport.ConvertSpecification support(Module module, ElasticSearchSupport support)
+    {
         this.module = module;
         this.support = support;
         return this;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
index b0164b4..5603bb5 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
@@ -33,11 +33,13 @@ import java.util.Map;
 import static org.elasticsearch.index.query.FilterBuilders.notFilter;
 
 
-public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification {
+public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
+{
     public void processSpecification(FilterBuilder filterBuilder,
                                      SpatialPredicatesSpecification<?> spec,
                                      Map<String, Object> variables)
-            throws EntityFinderException {
+            throws EntityFinderException
+    {
         TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
 
         if (!isValid(spec))
@@ -50,8 +52,10 @@ public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements
             throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
 
 
-        if (isPropertyOfType(TPoint.class, spec.property()) && isMappedAsGeoShape(spec.property())) {
-            if (geomOfFilterProperty instanceof TPolygon) {
+        if (isPropertyOfType(TPoint.class, spec.property()) && isMappedAsGeoShape(spec.property()))
+        {
+            if (geomOfFilterProperty instanceof TPolygon)
+            {
 
                 if (((ST_DisjointSpecification) spec).getDistance() > 0)
                     throw new EntityFinderException("Invalid ST_Disjoint expression. A " + TPolygon.class.getSimpleName() + " can " +
@@ -61,24 +65,28 @@ public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements
 
                 GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
 
-                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
+                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++)
+                {
                     TPoint point = polygonFilter.shell().get().getPointN(i);
                     geoPolygonFilterBuilder.addPoint(point.x(), point.y());
                 }
                 addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder);
-            } else if (geomOfFilterProperty instanceof TPoint && ((ST_DisjointSpecification) spec).getDistance() > 0) {
+            } else if (geomOfFilterProperty instanceof TPoint && ((ST_DisjointSpecification) spec).getDistance() > 0)
+            {
                 double radiusInMeters = convertDistanceToMeters(((ST_DisjointSpecification) spec).getDistance(), ((ST_DisjointSpecification) spec).getUnit());
                 TPolygon polygonizedCircleFilter = polygonizeCircle((TPoint) verifyProjection(geomOfFilterProperty), radiusInMeters);
                 addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.DISJOINT), filterBuilder);
             }
-        } else {
+        } else
+        {
             addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.DISJOINT), filterBuilder);
         }
 
 
     }
 
-    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support) {
+    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support)
+    {
         this.module = module;
         this.support = support;
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
index a85c66e..a13f1b4 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
@@ -34,16 +34,16 @@ import java.util.Map;
 import static org.elasticsearch.index.query.FilterBuilders.notFilter;
 
 
-public class ST_Intersects extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification {
+public class ST_Intersects extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
+{
 
     public void processSpecification(FilterBuilder filterBuilder,
                                      SpatialPredicatesSpecification<?> spec,
                                      Map<String, Object> variables)
-            throws EntityFinderException {
+            throws EntityFinderException
+    {
         TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
 
-        System.out.println("Spec " + spec);
-
         if (!isValid(spec))
             throw new EntityFinderException(spec.getClass() + " expression invalid.");
 
@@ -54,8 +54,10 @@ public class ST_Intersects extends AbstractElasticSearchSpatialFunction implemen
             throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
 
 
-        if (isPropertyOfType(TPoint.class, spec.property())) {
-            if (geomOfFilterProperty instanceof TPolygon) {
+        if (isPropertyOfType(TPoint.class, spec.property()))
+        {
+            if (geomOfFilterProperty instanceof TPolygon)
+            {
 
                 if (((ST_DisjointSpecification) spec).getDistance() > 0)
                     throw new EntityFinderException("Invalid ST_Disjoint expression. A " + TPolygon.class.getSimpleName() + " can " +
@@ -65,24 +67,28 @@ public class ST_Intersects extends AbstractElasticSearchSpatialFunction implemen
 
                 GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
 
-                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
+                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++)
+                {
                     TPoint point = polygonFilter.shell().get().getPointN(i);
                     geoPolygonFilterBuilder.addPoint(point.x(), point.y());
                 }
                 addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder);
-            } else if (geomOfFilterProperty instanceof TPoint && ((ST_IntersectsSpecification) spec).getDistance() > 0) {
+            } else if (geomOfFilterProperty instanceof TPoint && ((ST_IntersectsSpecification) spec).getDistance() > 0)
+            {
                 double radiusInMeters = convertDistanceToMeters(((ST_IntersectsSpecification) spec).getDistance(), ((ST_IntersectsSpecification) spec).getUnit());
                 TPolygon polygonizedCircleFilter = polygonizeCircle((TPoint) verifyProjection(geomOfFilterProperty), radiusInMeters);
                 addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.INTERSECTS), filterBuilder);
             }
-        } else {
+        } else
+        {
 
             addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.INTERSECTS), filterBuilder);
         }
 
     }
 
-    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support) {
+    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support)
+    {
         this.module = module;
         this.support = support;
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
index c653283..54d6104 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
@@ -25,13 +25,15 @@ import java.util.StringTokenizer;
 /**
  * Created by jj on 19.12.14.
  */
-public class GeoPointBuilder extends AbstractBuilder {
+public class GeoPointBuilder extends AbstractBuilder
+{
 
-    public GeoPointBuilder(ElasticSearchSupport support) {
+    public GeoPointBuilder(ElasticSearchSupport support)
+    {
         this.support = support;
     }
 
-    private  String createGeoPointMapping(String field) throws IOException
+    private String createGeoPointMapping(String field) throws IOException
     {
         XContentBuilder qi4jRootType = XContentFactory.jsonBuilder().startObject().startObject(support.entitiesType());
         StringTokenizer t1 = new StringTokenizer(field, ".");
@@ -41,10 +43,10 @@ public class GeoPointBuilder extends AbstractBuilder {
             propertyLevel1 = t1.nextToken();
             qi4jRootType.startObject("properties").startObject(propertyLevel1);
         }
-                qi4jRootType
-                        .field("type", "geo_point") // geo_point
-                        .field("precision", SpatialConfiguration.getIndexerPrecision(support.spatialConfiguration()))
-                        .field("lat_lon", true);
+        qi4jRootType
+                .field("type", "geo_point")
+                .field("precision", SpatialConfiguration.getIndexerPrecision(support.spatialConfiguration()))
+                .field("lat_lon", true);
 
         StringTokenizer t2 = new StringTokenizer(field, ".");
         while (t2.hasMoreTokens())
@@ -57,13 +59,14 @@ public class GeoPointBuilder extends AbstractBuilder {
         return qi4jRootType.string();
     }
 
-    public boolean create(String field) {
-        try {
+    public boolean create(String field)
+    {
+        try
+        {
             return put(field, createGeoPointMapping(field));
-        } catch (Exception _ex) {
-            _ex.printStackTrace();
+        } catch (IOException _ex)
+        {
+            throw new RuntimeException(_ex);
         }
-        return false;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
index fb739fb..2bcc0d7 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
@@ -25,13 +25,16 @@ import java.util.StringTokenizer;
 /**
  * Created by jj on 19.12.14.
  */
-public class GeoShapeBuilder extends AbstractBuilder {
+public class GeoShapeBuilder extends AbstractBuilder
+{
 
-    public GeoShapeBuilder(ElasticSearchSupport support) {
+    public GeoShapeBuilder(ElasticSearchSupport support)
+    {
         this.support = support;
     }
 
-    private  String createESGeoShapeMapping(String property) throws IOException {
+    private String createESGeoShapeMapping(String property) throws IOException
+    {
 
         XContentBuilder qi4jRootType = XContentFactory.jsonBuilder().startObject().startObject(support.entitiesType());
 
@@ -60,13 +63,15 @@ public class GeoShapeBuilder extends AbstractBuilder {
         return qi4jRootType.string();
     }
 
-    public boolean create(String field) {
-        try {
+    public boolean create(String field)
+    {
+        try
+        {
             return put(field, createESGeoShapeMapping(field));
-        } catch (Exception _ex) {
-            _ex.printStackTrace();
+        } catch (IOException _ex)
+        {
+             throw new RuntimeException(_ex);
         }
-        return false;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
index d70ae1c..bd4ee08 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
@@ -19,9 +19,11 @@ import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 /**
  * Created by jj on 19.12.14.
  */
-public class MappingQueryBuilder extends AbstractBuilder {
+public class MappingQueryBuilder extends AbstractBuilder
+{
 
-    public MappingQueryBuilder(ElasticSearchSupport support) {
+    public MappingQueryBuilder(ElasticSearchSupport support)
+    {
         this.support = support;
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
index 1d13756..e6b68cb 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
@@ -19,17 +19,21 @@ import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 /**
  * Created by jj on 19.12.14.
  */
-public class SpatialMappingFactory {
+public class SpatialMappingFactory
+{
 
-    public static GeoPointBuilder GeoPointMapping(ElasticSearchSupport support) {
+    public static GeoPointBuilder GeoPointMapping(ElasticSearchSupport support)
+    {
         return new GeoPointBuilder(support);
     }
 
-    public static GeoShapeBuilder GeoShapeMapping(ElasticSearchSupport support) {
+    public static GeoShapeBuilder GeoShapeMapping(ElasticSearchSupport support)
+    {
         return new GeoShapeBuilder(support);
     }
 
-    public static MappingQueryBuilder MappingQuery(ElasticSearchSupport support) {
+    public static MappingQueryBuilder MappingQuery(ElasticSearchSupport support)
+    {
         return new MappingQueryBuilder(support);
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
index 3128092..3829019 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
@@ -23,10 +23,9 @@ import java.util.concurrent.TimeUnit;
 
 import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders.SpatialMappingFactory.MappingQuery;
 
-/**
- * Created by jj on 19.12.14.
- */
-public class MappingsCache {
+
+public class MappingsCache
+{
 
     private static final int TTL_SECONDS = 1 * 60; // <- JJ TODO make it configurable
     private static final int CONCURENCY_LEVEL = 50;
@@ -42,54 +41,59 @@ public class MappingsCache {
                         .expireAfterAccess(TTL_SECONDS, TimeUnit.SECONDS)
                         .concurrencyLevel(CONCURENCY_LEVEL) // valid ?
                         .build(
-                                new CacheLoader<String, String>() {
-                                    public String load(String key) {
-                                        if (valid()) {
+                                new CacheLoader<String, String>()
+                                {
+                                    public String load(String key)
+                                    {
+                                        if (valid())
+                                        {
                                             return reloadStrategy(key);
                                         } else
                                             return "";
                                     }
                                 }
                         );
-
     }
 
 
-    public MappingsCache(ElasticSearchSupport support) {
+    public MappingsCache(ElasticSearchSupport support)
+    {
         this.support = support;
     }
 
-    private String reloadStrategy(String key) {
-
-        System.out.println("Reload Cache for " + key);
-
+    private String reloadStrategy(String key)
+    {
         String result = MappingQuery(support).get(key);
-        System.out.println("Reload Result " + result);
         return (result == null || result.length() == 0) ? "" : result;
     }
 
-    private boolean valid() {
+    private boolean valid()
+    {
         return (support != null) && (support.index() != null) && (support.entitiesType() != null) ? true : false;
     }
 
 
-    public boolean exists(String key) {
+    public boolean exists(String key)
+    {
         return (ES_MAPPINGS_CACHE.getUnchecked(key) == null) || ES_MAPPINGS_CACHE.getUnchecked(key).length() == 0 ? false : true;
     }
 
-    public String get(String key) {
+    public String get(String key)
+    {
         return ES_MAPPINGS_CACHE.getUnchecked(key);
     }
 
 
-    public void put(String key, String mappings) {
-        System.out.println("Cache PUT key " + key + " mappings " + mappings);
+    public void put(String key, String mappings)
+    {
         if (mappings != null)
             ES_MAPPINGS_CACHE.put(key, mappings);
     }
 
-    public boolean putIfNotExist(String key, String mappings) {
-        if (!exists(key)) {
+    public boolean putIfNotExist(String key, String mappings)
+    {
+        if (!exists(key))
+        {
             put(key, mappings);
             return false;
         } else

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialClusterQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialClusterQueryTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialClusterQueryTest.java
deleted file mode 100644
index 154ffd1..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialClusterQueryTest.java
+++ /dev/null
@@ -1,484 +0,0 @@
-package org.qi4j.index.elasticsearch;
-
-import org.joda.time.LocalDateTime;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.entity.EntityBuilder;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.TUnit;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.query.Query;
-import org.qi4j.api.query.QueryBuilder;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.api.value.ValueBuilder;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialQueryTest;
-import org.qi4j.test.indexing.NameableAssert;
-import org.qi4j.test.indexing.model.City;
-import org.qi4j.test.indexing.model.Female;
-import org.qi4j.test.indexing.model.Person;
-import org.qi4j.test.indexing.model.entities.FemaleEntity;
-import org.qi4j.test.util.DelTreeAfter;
-
-import java.io.File;
-import java.util.Iterator;
-
-import static org.joda.time.DateTimeZone.UTC;
-import static org.junit.Assert.assertNotNull;
-import static org.qi4j.api.query.QueryExpressions.*;
-import static org.qi4j.api.query.QueryExpressions.lt;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_Disjoint;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_Within;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_GeometryFromText;
-import static org.qi4j.test.indexing.NameableAssert.verifyUnorderedResults;
-import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-
-/**
- * Created by jakes on 2/8/14.
- */
-public class ElasticSearchSpatialClusterQueryTest
-        extends AbstractSpatialQueryTest {
-    private static final File DATA_DIR = new File("build/tmp/es-money-query-test");
-    @Rule
-    public final DelTreeAfter delTreeAfter = new DelTreeAfter(DATA_DIR);
-
-    @BeforeClass
-    public static void beforeClass_IBMJDK() {
-        assumeNoIbmJdk();
-    }
-
-    @Override
-    public void assemble(ModuleAssembly module)
-            throws AssemblyException {
-        super.assemble(module);
-
-        // Config module
-        ModuleAssembly config = module.layer().module("config");
-        new EntityTestAssembler().assemble(config);
-
-        // Index/Query
-        new ESClusterIndexQueryAssembler().
-                withConfig(config, Visibility.layer).
-                assemble(module);
-        ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData(new File(DATA_DIR, "qi4j-data")).
-                withLog(new File(DATA_DIR, "qi4j-logs")).
-                withTemporary(new File(DATA_DIR, "qi4j-temp"));
-        module.services(FileConfigurationService.class).
-                setMetaInfo(override);
-    }
-
-    @Override
-    public void setUp()
-            throws Exception {
-        super.setUp();
-
-        try (UnitOfWork unitOfWork = module.newUnitOfWork()) {
-
-            // Kuala Lumpur
-
-            // Latitude    3.139003
-            // Longitude 101.686854
-
-            ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
-
-            TPolygon area = builder.prototype().of
-                    (
-                            // shell
-                            (TLinearRing)module.newValueBuilder(TLinearRing.class).prototype().of
-                                    (
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.56797785892715).y(10.62652587890625),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.5835615987737).y(10.748062133789062),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.533230478523684).y(10.78857421875),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.484185749507716).y(10.72265625),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.49310663031507).y(10.578460693359375),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.5416968611641).y(10.583267211914062),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.555507284155276).y(10.605239868164062),
-                                            module.newValueBuilder(TPoint.class).prototype().x(49.56797785892715).y(10.62652587890625)
-                                    )
-                    );
-
-
-            System.out.println("Area " + area);
-
-            City Emskirchen;
-            {
-                EntityBuilder<City> cityBuilder = unitOfWork.newEntityBuilder(City.class);
-                Emskirchen = cityBuilder.instance();
-                Emskirchen.name().set("Emskirchen");
-                Emskirchen.country().set("Germany");
-                Emskirchen.county().set("Bavaria");
-                Emskirchen.location().set(TPoint(module).x (49.550881).y(10.712809).geometry());
-                Emskirchen = cityBuilder.newInstance();
-                // NameableAssert.trace( kualaLumpur );
-                Emskirchen.area().set(area);
-
-            }
-
-
-            Female annDoe;
-            {
-                EntityBuilder<FemaleEntity> femaleBuilder = unitOfWork.newEntityBuilder(FemaleEntity.class, "anndoe2");
-                annDoe = femaleBuilder.instance();
-                annDoe.name().set("Ann Doe 2");
-                annDoe.title().set(Person.Title.MRS);
-                annDoe.placeOfBirth().set(Emskirchen);
-                annDoe.favoritePlaces().put("Emskirchen", Emskirchen);
-                annDoe.yearOfBirth().set(1975);
-                annDoe.password().set("passwordOfAnnDoe");
-
-                annDoe = femaleBuilder.newInstance();
-                NameableAssert.trace(annDoe);
-            }
-
-            unitOfWork.complete();
-
-        } catch (Exception _ex) {
-            _ex.printStackTrace();
-        }
-
-    }
-
-    @Test
-    public void whenQueryUseConversion() throws Exception {
-        // lat, long
-        ST_GeometryFromText("POINT(49.550881 10.712809)");
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).location(),
-                                                ST_GeometryFromText("POINT(49.550881 10.712809)"),
-                                                100,
-                                                TUnit.METER
-                                        )
-                        ));
-
-
-        // System.out.println( "*** script01: " + query );
-        query.find();
-
-
-        System.out.println("Found Cities " + query.count());
-
-
-//        QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class );
-//        Person personTemplate = templateFor( Person.class );
-//        City placeOfBirth = personTemplate.placeOfBirth().get();
-//        Query<Person> query = unitOfWork.newQuery( qb.where( eq( placeOfBirth.name(), "Kuala Lumpur" ) ) );
-//        System.out.println( "*** script04: " + query );
-//       //  verifyUnorderedResults( query, "Joe Doe", "Ann Doe" );
-    }
-
-    @Test
-    public void whenQueryUsePolygon() throws Exception {
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).area(),
-
-                                                ST_GeometryFromText(
-                                                        "POLYGON((" +
-                                                                "49.56797785892715 10.62652587890625," +
-                                                                "49.5835615987737 10.748062133789062," +
-                                                                "49.533230478523684 10.78857421875," +
-                                                                "49.484185749507716 10.72265625," +
-                                                                "49.49310663031507 10.578460693359375," +
-                                                                "49.5416968611641 10.583267211914062," +
-                                                                "49.555507284155276 10.605239868164062," +
-                                                                "49.56797785892715 10.62652587890625))")
-                                        )
-                        ));
-
-
-        // System.out.println( "*** script01: " + query );
-        query.find();
-
-
-        System.out.println("Found Cities " + query.count());
-
-
-//        QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class );
-//        Person personTemplate = templateFor( Person.class );
-//        City placeOfBirth = personTemplate.placeOfBirth().get();
-//        Query<Person> query = unitOfWork.newQuery( qb.where( eq( placeOfBirth.name(), "Kuala Lumpur" ) ) );
-//        System.out.println( "*** script04: " + query );
-//       //  verifyUnorderedResults( query, "Joe Doe", "Ann Doe" );
-    }
-
-
-    @Test
-    public void whenQueryUsePolygonDSL() throws Exception {
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).area(),
-
-                                                TPolygon(module)
-                                                        .shell
-                                                                (
-                                                                        new double[][]
-                                                                                {
-                                                                                        {49.56797785892715, 10.62652587890625},
-                                                                                        {49.5835615987737, 10.748062133789062},
-                                                                                        {49.533230478523684, 10.78857421875},
-                                                                                        {49.484185749507716, 10.72265625},
-                                                                                        {49.49310663031507, 10.578460693359375},
-                                                                                        {49.5416968611641, 10.583267211914062},
-                                                                                        {49.555507284155276, 10.605239868164062},
-                                                                                        {49.56797785892715, 10.62652587890625}
-
-                                                                                }
-                                                                ).geometry()
-                                        )
-                        ));
-
-
-        query.find();
-
-        System.out.println("Found Cities " + query.count());
-    }
-
-
-    @Test
-    public void directQuery() {
-
-        ValueBuilder<TPolygon> tPolygonShapeBuilder = module.newValueBuilder(TPolygon.class);
-        TPolygon tPolygonShape = tPolygonShapeBuilder.prototype().of
-                (
-                        // shell
-                        (TLinearRing)module.newValueBuilder(TLinearRing.class).prototype().of
-                                (
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.56797785892715),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.62652587890625)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.5835615987737),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.748062133789062)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.533230478523684),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.78857421875)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.484185749507716),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.72265625)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.49310663031507),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.578460693359375)   //y
-                                                )
-
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.5416968611641),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.583267211914062)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.555507284155276),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.605239868164062)   //y
-                                                )
-                                        ,
-                                        module.newValueBuilder(TPoint.class).prototype().of
-                                                (
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(49.56797785892715),  //x
-                                                        module.newValueBuilder(Coordinate.class).prototype().of(10.62652587890625)   //y
-                                                )
-
-
-                                        // ,
-                                        // no holes
-                                        // null
-                                ));
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-/**
- Query<City> query = unitOfWork.newQuery(
- qb
-
- .where(
- ST_Within(templateFor(City.class).location(),
-
- tPolygonShape
- )));
-
-
- // System.out.println( "*** script01: " + query );
- query.find();
-
-
-
- System.out.println("Found Cities 123 " + query.count());
- */
-
-    }
-
-
-    @Test
-    public void whenQueryUseConversion2() throws Exception {
-        // lat, long
-        ST_GeometryFromText("POINT(49.550881 10.712809)");
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).location(),
-                                                ST_GeometryFromText("POINT(49.550881 10.712809)"),
-                                                100,
-                                                TUnit.METER
-                                        )
-                        ));
-
-
-        query.find();
-
-        System.out.println("Found Cities " + query.count());
-
-        Iterator<City> cities = query.iterator();
-
-        while (cities.hasNext()) {
-            System.out.println("Cities " + cities.next().name());
-        }
-
-    }
-
-
-    @Test
-    public void whenSpatialQueryWithNot() throws Exception {
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(not(
-                                        ST_Within
-                                                (
-                                                        templateFor(City.class).location(),
-                                                        ST_GeometryFromText("POINT(49.550881 10.712809)"),
-                                                        100,
-                                                        TUnit.METER
-                                                )
-                                )
-                        ));
-
-
-        query.find();
-
-        System.out.println("Found Cities " + query.count());
-
-        Iterator<City> cities = query.iterator();
-
-        while (cities.hasNext()) {
-            System.out.println("Cities " + cities.next().name());
-        }
-    }
-
-
-    @Test
-    public void whenST_DisjoinThen() throws Exception {
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Disjoint(
-                                        (
-                                                templateFor(City.class).area()),
-                                        ST_GeometryFromText("POINT(49.550881 10.712809)"),
-                                        100
-                                )
-
-                        ));
-
-
-        query.find();
-
-        System.out.println("Found Cities " + query.count());
-
-        Iterator<City> cities = query.iterator();
-
-        while (cities.hasNext()) {
-            System.out.println("Cities " + cities.next().name());
-        }
-    }
-
-    /**
-     * QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class );
-     * Person person = templateFor( Person.class );
-     * Query<Person> query = unitOfWork.newQuery( qb.where( ge( person.yearOfBirth(), 1973 ) ) );
-     * System.out.println( "*** script06: " + query );
-     * verifyUnorderedResults( query, "Joe Doe", "Ann Doe" );
-     *
-     * @throws Exception
-     */
-
-    //                         .where(ge(templateFor(City.class).location(), "123")));
-
-
-
-    @Test
-    public void script43_LocalDateTime() {
-        QueryBuilder<Person> qb = this.module.newQueryBuilder(Person.class);
-        Person person = templateFor(Person.class);
-        Query<Person> query = unitOfWork.newQuery(qb.where(
-                and(gt(person.localDateTimeValue(), new LocalDateTime("2005-03-04T13:24:35", UTC)),
-                        lt(person.localDateTimeValue(), new LocalDateTime("2015-03-04T13:24:35", UTC)))));
-        System.out.println("*** script43_LocalDateTime: " + query);
-
-        verifyUnorderedResults(query, "Jack Doe");
-    }
-
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
deleted file mode 100644
index 67a9623..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
+++ /dev/null
@@ -1,170 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import com.spatial4j.core.distance.DistanceUtils;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.entity.EntityBuilder;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.entitystore.riak.RiakHttpMapEntityStoreAssembler;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extension.spatial.utils.RandomPoint;
-import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.assembly.TGeometryAssembler;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractAnyQueryTest;
-import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
-import org.qi4j.test.util.DelTreeAfter;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
-
-import java.io.File;
-
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-import static org.qi4j.test.util.Assume.*;
-
-/**
- * Created by jj on 21.12.14.
- */
-public class ElasticSearchSpatialBench
-        extends AbstractSpatialRegressionTest
-{
-    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
-    @Rule
-    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
-
-    @BeforeClass
-    public static void beforeClass_IBMJDK()
-    {
-        assumeNoIbmJdk();
-    }
-
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        super.assemble( module );
-
-        // Geometry support
-        new TGeometryAssembler().assemble(module);
-
-        // Config module
-        ModuleAssembly config = module.layer().module( "config" );
-        new EntityTestAssembler().assemble( config );
-
-        config.values(SpatialConfiguration.Configuration.class,
-                SpatialConfiguration.FinderConfiguration.class,
-                SpatialConfiguration.IndexerConfiguration.class,
-                SpatialConfiguration.IndexingMethod.class,
-                SpatialConfiguration.ProjectionSupport.class).
-                visibleIn(Visibility.application);
-
-        // Index/Query
-        new ESClusterIndexQueryAssembler().
-                withConfig(config, Visibility.layer).
-                identifiedBy("ElasticSearchBenchmark").
-                assemble(module);
-        ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData(new File(DATA_DIR, "qi4j-data")).
-                withLog(new File(DATA_DIR, "qi4j-logs")).
-                withTemporary(new File(DATA_DIR, "qi4j-temp"));
-        module.services(FileConfigurationService.class).
-                setMetaInfo(override);
-
-        // In-Memory Entity Store
-        // new EntityTestAssembler().assemble( module );
-
-
-        /** RIAK */
-        ModuleAssembly configRiak = module.layer().module( "configRiak" );
-        new EntityTestAssembler().assemble( configRiak );
-        new OrgJsonValueSerializationAssembler().assemble( module );
-        // START SNIPPET: assembly
-        new RiakHttpMapEntityStoreAssembler().identifiedBy("RIAKBenchmark").withConfig(configRiak, Visibility.layer ).assemble( module );
-        /** +++ */
-    }
-
-    // @Test
-    public void test() throws Exception
-    {
-
-        try (UnitOfWork unitOfWork = module.newUnitOfWork())
-        {
-            unitOfWork.complete();
-
-        }
-        // double[] xy = nextSpherePt2D();
-
-        // System.out.println("spherical " + xy[0] + " " + xy[1] );
-        long start = System.currentTimeMillis();
-
-        module.newUnitOfWork();
-        for (int i = 0; i < 10000; i++) {
-
-            double[] xy = nextSpherePt2D();
-            System.out.println("Degrees " + DistanceUtils.toDegrees(xy[0]) + "," + DistanceUtils.toDegrees(xy[1]));
-
-            TPoint(module).lat(xy[0]).lon(xy[1]).geometry();
-        }
-        module.currentUnitOfWork().complete();
-
-        long end = System.currentTimeMillis();
-
-        System.out.println("Duration  " + (end - start));
-    }
-
-    @Test
-    public void test1() throws Exception
-    {
-
-        try (UnitOfWork unitOfWork = module.newUnitOfWork())
-        {
-            unitOfWork.complete();
-
-        }
-        // double[] xy = nextSpherePt2D();
-
-        // System.out.println("spherical " + xy[0] + " " + xy[1] );
-        long start = System.currentTimeMillis();
-        for (int j = 0; j < 10000; j++)
-        {
-            System.out.println("--> " + j);
-            UnitOfWork unitOfWork = module.newUnitOfWork();
-
-
-            for (int i = 0; i < 1000; i++) {
-                double[] xy = nextSpherePt2D();
-                //System.out.println("Degrees " + DistanceUtils.toDegrees(xy[0]) + "," + DistanceUtils.toDegrees(xy[1]));
-
-                TPoint point = TPoint(module).lat(DistanceUtils.toDegrees(xy[0])).lon(DistanceUtils.toDegrees(xy[1])).geometry();
-                EntityBuilder<SpatialAEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class);
-                pointBuilder.instance().point().set(point);
-                pointBuilder.newInstance();
-            }
-
-            unitOfWork.complete();
-        }
-        long end = System.currentTimeMillis();
-
-        System.out.println("Duration  " + (end - start));
-    }
-
-     static long seed = 1;
-    static RandomPoint randomPoint = new RandomPoint();
-
-    public double[] nextSpherePt2D()
-    {
-        return randomPoint.nextSpherePt(2);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
index 1904139..b96f845 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
@@ -36,9 +36,7 @@ import java.io.File;
 
 import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
 
-/**
- * Created by jj on 21.12.14.
- */
+
 public class ElasticSearchSpatialQueryTestUsingUsingDefaults
         extends AbstractSpatialRegressionTest
 {
@@ -62,8 +60,6 @@ public class ElasticSearchSpatialQueryTestUsingUsingDefaults
         // Geometry support
         new TGeometryAssembler().assemble(module);
 
-
-
         // Config module
         ModuleAssembly config = module.layer().module( "config" );
         new EntityTestAssembler().assemble( config );

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomPoint.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomPoint.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomPoint.java
deleted file mode 100644
index 1835104..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomPoint.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial.utils;
-
-import java.io.Serializable;
-
-
-public class RandomPoint extends RandomUtils implements Serializable {
-
-    /**
-     * 	auto generated
-     */
-    private static final long serialVersionUID = -1772453101010620003L;
-
-    /**
-     *  for the case d = 2
-     */
-    private static final double twopi = 8*Math.atan(1);
-
-
-
-    /**
-     * Generates the next pseudorandom double value vector, with
-     * equal probability of picking any vector on the unit
-     * d-dimensional hypersphere.
-     *
-     * The algorithm is based on the work of Marsaglia in
-     * Marsaglia, G. "Choosing a Point from the Surface of a Sphere."
-     * Ann. Math. Stat. 43, 645-646, 1972
-     *
-     * and Muller in
-     * Muller, M. E. "A Note on a Type for Generating Points Uniformly on N-Dimensional Spheres."
-     * Comm. Assoc. Comput. Mach. 2, 19-20, Apr. 1959.
-     *
-     * See also:
-     * Weisstein, Eric W. "Sphere Point Picking."
-     * From MathWorld--A Wolfram Web Resource.
-     * http://mathworld.wolfram.com/SpherePointPicking.html and
-     * http://mathworld.wolfram.com/HyperspherePointPicking.html
-     *
-     * @return the next pseudorandom vector on the d-dimensional unit hypersphere
-     */
-
-    public RandomPoint(){
-        this(System.currentTimeMillis());
-    }
-
-    public RandomPoint(long seed){
-        setSeed(seed);
-    }
-
-    public double[] nextSpherePt(int d){
-
-        double ret[] = new double[d];
-
-        if (d == 1){
-            ret[0] = -1;
-            if(nextDouble() > 0.5)
-                ret[0] = 1;
-        }
-        else if (d == 2){
-            ret = new double[2];
-            double theta = nextDouble()*twopi;
-            ret[0] = Math.cos(theta);
-            ret[1] = Math.sin(theta);
-            return ret;
-        }
-        else if (d == 3){
-            double x, y, z;
-            ret = new double[3];
-            x = 2*(nextDouble() - 0.5);
-            y = 2*(nextDouble() - 0.5);
-            while ((x*x + y*y) >= 1)
-                y = 2*(nextDouble() - 0.5);
-            z = 1 - 2*(x*x+y*y);
-            ret[0] = x;
-            ret[1] = y;
-            ret[2] = z;
-        }
-        else{
-            ret = new double[d];
-            double nrm = 0;
-            for (int jj = 0 ; jj < d ; jj ++){
-                ret[jj] = nextGaussian();
-                nrm += ret[jj]+ret[jj];
-            }
-            nrm = Math.sqrt(nrm);
-            for (int jj = 0 ; jj < d ; jj ++){
-                ret[jj] = ret[jj] / nrm;
-            }
-        }
-
-        return ret;
-    }
-
-    /**
-     * Generates the next pseudorandom double value vector, with
-     * equal probability of picking any vector on the  d-dimensional
-     * hypersphere of radius RR.
-     *
-     * The algorithm is based on the work of Marsaglia in
-     * Marsaglia, G. "Choosing a Point from the Surface of a Sphere."
-     * Ann. Math. Stat. 43, 645-646, 1972
-     *
-     * and Muller in
-     * Muller, M. E. "A Note on a Type for Generating Points Uniformly on N-Dimensional Spheres."
-     * Comm. Assoc. Comput. Mach. 2, 19-20, Apr. 1959.
-     *
-     * See also:
-     * Weisstein, Eric W. "Sphere Point Picking."
-     * From MathWorld--A Wolfram Web Resource.
-     * http://mathworld.wolfram.com/SpherePointPicking.html and
-     * http://mathworld.wolfram.com/HyperspherePointPicking.html
-     *
-     * @return the next pseudorandom vector on the d-dimensional hypersphere of radius RR.
-     */
-
-    public double[] nextSpherePt(int d, double RR){
-
-        double ret[] = new double[d];
-
-        if (d == 1){
-            ret[0] = -1*RR;
-            if(nextDouble() > 0.5)
-                ret[0] = RR;
-        }
-        else if (d == 2){
-            ret = new double[2];
-            double theta = nextDouble()*twopi;
-            ret[0] = RR*Math.cos(theta);
-            ret[1] = RR*Math.sin(theta);
-            return ret;
-        }
-        else{
-            ret = new double[d];
-            double nrm = 0;
-            for (int jj = 0 ; jj < d ; jj ++){
-                ret[jj] = nextGaussian();
-                nrm += ret[jj]*ret[jj];
-            }
-            nrm = Math.sqrt(nrm);
-            for (int jj = 0 ; jj < d ; jj ++){
-                ret[jj] = RR*(ret[jj] / nrm);
-            }
-        }
-
-        return ret;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties b/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties
deleted file mode 100644
index 94d160c..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties
+++ /dev/null
@@ -1 +0,0 @@
-urls=http://localhost:8098/riak
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/spatial/build.gradle b/libraries/spatial/build.gradle
index 9d6bed3..49bd90a 100644
--- a/libraries/spatial/build.gradle
+++ b/libraries/spatial/build.gradle
@@ -1,14 +1,14 @@
 description = "Qi4j Spatial Library contains various spatial related services and tools."
 
-jar { manifest { name = "Qi4j Library - Spatial" }}
+jar { manifest { name = "Qi4j Library - Spatial" } }
 
 dependencies {
-  compile(project(":org.qi4j.core:org.qi4j.core.bootstrap"))
-  compile libraries.geojackson
-  compile libraries.ctsVersion
+    compile(project(":org.qi4j.core:org.qi4j.core.bootstrap"))
+    compile libraries.geojackson
+    compile libraries.ctsVersion
 
-  testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
+    testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
 
-  testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
-  testRuntime(libraries.logback)
+    testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
+    testRuntime(libraries.logback)
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/dev-status.xml
----------------------------------------------------------------------
diff --git a/libraries/spatial/dev-status.xml b/libraries/spatial/dev-status.xml
index 91abd4f..93a3d5a 100644
--- a/libraries/spatial/dev-status.xml
+++ b/libraries/spatial/dev-status.xml
@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<module xmlns="http://www.qi4j.org/schemas/2008/dev-status/1"
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xmlns="http://www.qi4j.org/schemas/2008/dev-status/1"
         xsi:schemaLocation="http://www.qi4j.org/schemas/2008/dev-status/1
         http://www.qi4j.org/schemas/2008/dev-status/1/dev-status.xsd">
-  <status>
-    <!--none,early,beta,stable,mature-->
-    <codebase>none</codebase>
+    <status>
+        <!--none,early,beta,stable,mature-->
+        <codebase>none</codebase>
 
-    <!-- none, brief, good, complete -->
-    <documentation>none</documentation>
+        <!-- none, brief, good, complete -->
+        <documentation>none</documentation>
 
-    <!-- none, some, good, complete -->
-    <unittests>none</unittests>
-  </status>
-  <licenses>
-    <license>ALv2</license>
-  </licenses>
+        <!-- none, some, good, complete -->
+        <unittests>none</unittests>
+    </status>
+    <licenses>
+        <license>ALv2</license>
+    </licenses>
 </module>

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java
deleted file mode 100644
index a75f9e1..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions.from;
-
-import org.geojson.*;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.structure.Module;
-
-import java.util.List;
-
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-import static org.qi4j.api.geometry.TGeometryFactory.TLinearRing;
-
-
-public class GeoJsonFromConverter {
-
-    private Module module;
-
-    public GeoJsonFromConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert(GeoJsonObject geojson)
-
-    {
-        return transform(geojson);
-    }
-
-    private TGeometry transform(GeoJsonObject geojson)
-    {
-        if (geojson instanceof Point)
-        {
-            return createTPoint((Point) geojson);
-        }
-        else if ( (geojson instanceof MultiPoint) && !(geojson instanceof LineString) )
-        {
-            return createTMultiPoint((MultiPoint)geojson);
-        }
-        else if (geojson instanceof LineString)
-        {
-            return createTLineString((LineString)geojson);
-        }
-        else if (geojson instanceof MultiLineString)
-        {
-            return createTMultiLineString((MultiLineString)geojson);
-        }
-        else if (geojson instanceof Polygon)
-        {
-            return createTPolygon((Polygon) geojson);
-        }
-        else if (geojson instanceof MultiPolygon)
-        {
-            return createTMultiPolygon((MultiPolygon) geojson);
-        }
-        else if (geojson instanceof Feature)
-        {
-            return createTFeature((Feature)geojson);
-        }
-        else if (geojson instanceof FeatureCollection)
-        {
-            return createTFeatureCollection((FeatureCollection)geojson);
-        }
-        else throw new RuntimeException("Unknown GeoJSON type - " + geojson);
-    }
-
-
-    private TGeometry createTPoint(Point point)
-    {
-        return TPoint(module)
-                .x(point.getCoordinates().getLatitude())
-                .y(point.getCoordinates().getLongitude())
-                .z(point.getCoordinates().getAltitude())
-                .geometry();
-    }
-    private TGeometry createTMultiPoint(MultiPoint multiPoint)
-    {
-        TMultiPoint tMultiPoint = TMultiPoint(module).geometry();
-        for (LngLatAlt xyz : multiPoint.getCoordinates() )
-        {
-            tMultiPoint.of
-                    (
-                            TPoint(module)
-                                    .x(xyz.getLatitude())
-                                    .y(xyz.getLongitude())
-                                    .z(xyz.getAltitude())
-                                    .geometry()
-                    );
-        }
-        return tMultiPoint;
-    }
-
-    private TGeometry createTLineString(LineString lineString)
-    {
-        TLineString tLineString = TLineString(module).of().geometry();
-
-        for (LngLatAlt xyz : lineString.getCoordinates() ) {
-            tLineString.of(
-                    TPoint(module)
-                            .x(xyz.getLatitude())
-                            .y(xyz.getLongitude())
-                            .z(xyz.getAltitude())
-                            .geometry()
-            );
-        }
-        return tLineString;
-    }
-
-    private TGeometry createTMultiLineString(MultiLineString multiLineString)
-    {
-        TMultiLineString tMultiLineString = TMultiLineString(module).of().geometry();
-        for (List<LngLatAlt> coordinates : multiLineString. getCoordinates())
-        {
-            tMultiLineString.of(getLine(coordinates));
-        }
-        return tMultiLineString;
-    }
-
-    private TGeometry createTPolygon(Polygon polygon)
-    {
-        TPolygon tPolygon;
-        TLinearRing ring = getRing((polygon).getExteriorRing());
-        if (!ring.isValid())
-            throw  new RuntimeException("Polygon shell not valid");
-        else
-            tPolygon = TPolygon(module).shell(ring).geometry();
-        for (int i = 0; i < (polygon).getInteriorRings().size(); i++)
-        {
-            tPolygon.withHoles(getRing((polygon).getInteriorRings().get(i)));
-        }
-        return tPolygon;
-    }
-
-    private TGeometry createTMultiPolygon(MultiPolygon multiPolygon)
-    {
-        TMultiPolygon tMultiPolygon = TMultiPolygon(module).of().geometry();
-        for (List<List<LngLatAlt>> polygons : multiPolygon.getCoordinates() )
-        {
-            for (List<LngLatAlt> polygon : polygons  )
-            {
-                tMultiPolygon.of(TPolygon(module).shell(getRing(polygon)).geometry());
-            }
-        }
-        return tMultiPolygon;
-    }
-
-    private TGeometry createTFeature(Feature feature)
-    {
-        return TFeature(module).of(new GeoJsonFromConverter(module).transform(feature.getGeometry())).geometry();
-    }
-
-    private TGeometry createTFeatureCollection(FeatureCollection featurecollection)
-    {
-        TFeatureCollection tFeatureCollection = TFeatureCollection(module).of().geometry();
-        for (Feature feature : featurecollection.getFeatures())
-        {
-            tFeatureCollection.of((TFeature)createTFeature(feature));
-        }
-        return tFeatureCollection;
-    }
-
-    private TLineString getLine(List<LngLatAlt> coordinates)
-    {
-        TLineString tLineString = TLineString(module).of().geometry();
-        for (LngLatAlt xyz :coordinates )
-        {
-            tLineString.yx(xyz.getLatitude(), xyz.getLongitude());
-        }
-        return tLineString;
-    }
-    private TLinearRing getRing(List<LngLatAlt> coordinates)
-    {
-
-        TLinearRing tLinearRing = TLinearRing(module).of().geometry();
-        for (LngLatAlt xyz :coordinates ) {
-            tLinearRing.yx(xyz.getLatitude(), xyz.getLongitude());
-        }
-
-        if (!tLinearRing.isClosed())
-        {
-            tLinearRing.of(tLinearRing.getStartPoint()); // hack here - we are closing the ring, of not closed.
-        }
-
-        return tLinearRing;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java
deleted file mode 100644
index 2c66b42..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions.from;
-
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-
-public class TGeometryFromConverter {
-
-    private Module module;
-
-    public TGeometryFromConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert(TGeometry tGeometry)
-    {
-        return tGeometry;
-    }
-}


[13/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/vd-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/vd-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/vd-municipalities.json
deleted file mode 100644
index de1234b..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/vd-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":5401,"properties":{"name":"Aigle"},"arcs":[[[297,298,-271,-71,-79]]]},{"type":"MultiPolygon","id":5402,"properties":{"name":"Bex"},"arcs":[[[62,63,64,65,66,67]]]},{"type":"MultiPolygon","id":5403,"properties":{"name":"Chessel"},"arcs":[[[-460,-738,-383,1007]]]},{"type":"MultiPolygon","id":5404,"properties":{"name":"Corbeyrier"},"arcs":[[[-73,238,239,240,-167]]]},{"type":"MultiPolygon","id":5405,"properties":{"name":"Gryon"},"arcs":[[[-66,-80,-75]]]},{"type":"MultiPolygon","id":5406,"properties":{"name":"Lavey-Morcles"},"arcs":[[[-63,332]]]},{"type":"MultiPolygon","id":5407,"properties":{"name":"Leysin"},"arcs":[[[270,271,-239,-72]]]},{"type":"MultiPolygon","id":5408,"properties":{"name":"Noville"},"arcs":[[[-42,-41,-170,457,458,459,460]]]},{"type":"MultiPolygon","id":5409,"properties":{"name":"Ollon"},"arcs":[[[-65,77,78,-70,-76,79]]]},{"type":"MultiPolygon","id":541
 0,"properties":{"name":"Ormont-Dessous"},"arcs":[[[68,69,70,71,72,73,-45]]]},{"type":"MultiPolygon","id":5411,"properties":{"name":"Ormont-Dessus"},"arcs":[[[-67,74,75,-69,-44,76]]]},{"type":"MultiPolygon","id":5412,"properties":{"name":"Rennaz"},"arcs":[[[-739,-458,-169]]]},{"type":"MultiPolygon","id":5413,"properties":{"name":"Roche (VD)"},"arcs":[[[-241,-384,737,-459,738,-168]]]},{"type":"MultiPolygon","id":5414,"properties":{"name":"Villeneuve (VD)"},"arcs":[[[-74,166,167,168,169,-40,170,171,-46]]]},{"type":"MultiPolygon","id":5415,"properties":{"name":"Yvorne"},"arcs":[[[381,382,383,-240,-272,-299]]]},{"type":"MultiPolygon","id":5421,"properties":{"name":"Apples"},"arcs":[[[368,369,370,371,372,373,374,375]]]},{"type":"MultiPolygon","id":5422,"properties":{"name":"Aubonne"},"arcs":[[[506,507,508,-269,509,510,511,512,513]]]},{"type":"MultiPolygon","id":5423,"properties":{"name":"Ballens"},"arcs":[[[-441,-375,-500,-186,-185,-498]]]},{"type":"MultiPolygon","id":5424,"properties":{"
 name":"Berolle"},"arcs":[[[-182,-442,497,-184,-183,-55]]]},{"type":"MultiPolygon","id":5425,"properties":{"name":"Bière"},"arcs":[[[182,183,184,185,186,187,188,189,190,-56]]]},{"type":"MultiPolygon","id":5426,"properties":{"name":"Bougy-Villars"},"arcs":[[[-980,-669,-508,-1074,-1060]]]},{"type":"MultiPolygon","id":5427,"properties":{"name":"Féchy"},"arcs":[[[-1061,1073,-507,1074]]]},{"type":"MultiPolygon","id":5428,"properties":{"name":"Gimel"},"arcs":[[[263,264,265,-57,-191,266,267,268,269]]]},{"type":"MultiPolygon","id":5429,"properties":{"name":"Longirod"},"arcs":[[[-59,-381,-265,504,505,-402]]]},{"type":"MultiPolygon","id":5430,"properties":{"name":"Marchissy"},"arcs":[[[-252,-60,401,402,403,404]]]},{"type":"MultiPolygon","id":5431,"properties":{"name":"Mollens (VD)"},"arcs":[[[-181,-419,-376,440,441]]]},{"type":"MultiPolygon","id":5432,"properties":{"name":"Montherod"},"arcs":[[[-268,864,-189,-575,-510]]]},{"type":"MultiPolygon","id":5434,"properties":{"name":"Saint-George"},
 "arcs":[[[-58,-266,380]]]},{"type":"MultiPolygon","id":5435,"properties":{"name":"Saint-Livres"},"arcs":[[[-511,574,-188,-499,575]]]},{"type":"MultiPolygon","id":5436,"properties":{"name":"Saint-Oyens"},"arcs":[[[-782,-505,-264,-668]]]},{"type":"MultiPolygon","id":5437,"properties":{"name":"Saubraz"},"arcs":[[[-190,-865,-267]]]},{"type":"MultiPolygon","id":5451,"properties":{"name":"Avenches"},"arcs":[[[-249,260,261,262]]]},{"type":"MultiPolygon","id":5456,"properties":{"name":"Cudrefin"},"arcs":[[[-246,-245,-244,243,-244,-243,-202,313]]]},{"type":"MultiPolygon","id":5458,"properties":{"name":"Faoug"},"arcs":[[[-262,-638,993]]]},{"type":"MultiPolygon","id":5464,"properties":{"name":"Vully-les-Lacs"},"arcs":[[[241,-203,242,243,-244,243,244,245,246,247,248]]]},{"type":"MultiPolygon","id":5471,"properties":{"name":"Bettens"},"arcs":[[[997,998,-964,-963,-802,-757,-947]]]},{"type":"MultiPolygon","id":5472,"properties":{"name":"Bournens"},"arcs":[[[960,961,-803,962,963,964]]]},{"type":"Mu
 ltiPolygon","id":5473,"properties":{"name":"Boussens"},"arcs":[[[-968,-965,-999,1039,-996,-908]]]},{"type":"MultiPolygon","id":5474,"properties":{"name":"La Chaux (Cossonay)"},"arcs":[[[695,696,697,698,-574,699,700,701,702,-647]]]},{"type":"MultiPolygon","id":5475,"properties":{"name":"Chavannes-le-Veyron"},"arcs":[[[-648,-703,-702,-787,-415,-302,-301]]]},{"type":"MultiPolygon","id":5476,"properties":{"name":"Chevilly"},"arcs":[[[-707,970,-622,971,-698,-697]]]},{"type":"MultiPolygon","id":5477,"properties":{"name":"Cossonay"},"arcs":[[[567,568,569,570,571,572,573]]]},{"type":"MultiPolygon","id":5478,"properties":{"name":"Cottens (VD)"},"arcs":[[[-789,-683,-359,-1094,-1093,-1092,-1091,-1090,-417]]]},{"type":"MultiPolygon","id":5479,"properties":{"name":"Cuarnens"},"arcs":[[[-259,645,646,647,-300]]]},{"type":"MultiPolygon","id":5480,"properties":{"name":"Daillens"},"arcs":[[[-763,-758,801,802,803,804,805]]]},{"type":"MultiPolygon","id":5481,"properties":{"name":"Dizy"},"arcs":[[[-972,
 -621,-620,-1000,-568,-699]]]},{"type":"MultiPolygon","id":5482,"properties":{"name":"Eclépens"},"arcs":[[[-618,761,-523,-522,-521,-520,-759,762,763]]]},{"type":"MultiPolygon","id":5483,"properties":{"name":"Ferreyres"},"arcs":[[[-664,-623,-971,-706,1038]]]},{"type":"MultiPolygon","id":5484,"properties":{"name":"Gollion"},"arcs":[[[-572,-571,827,828,829,830,-680,831]]]},{"type":"MultiPolygon","id":5485,"properties":{"name":"Grancy"},"arcs":[[[786,-701,787,-678,788,-416]]]},{"type":"MultiPolygon","id":5486,"properties":{"name":"L'Isle"},"arcs":[[[-142,-260,299,300,301,302,303,-178]]]},{"type":"MultiPolygon","id":5487,"properties":{"name":"Lussery-Villars"},"arcs":[[[-619,-764,-806,-976,-569,999]]]},{"type":"MultiPolygon","id":5488,"properties":{"name":"Mauraz"},"arcs":[[[-304,-420,-179]]]},{"type":"MultiPolygon","id":5489,"properties":{"name":"Mex (VD)"},"arcs":[[[1070,-846,-966,-811]]]},{"type":"MultiPolygon","id":5490,"properties":{"name":"Moiry"},"arcs":[[[-258,703,-516,-666,704,7
 05,706,-696,-646]]]},{"type":"MultiPolygon","id":5491,"properties":{"name":"Mont-la-Ville"},"arcs":[[[254,255,256,257,258,259,-141]]]},{"type":"MultiPolygon","id":5492,"properties":{"name":"Montricher"},"arcs":[[[-143,177,178,179,180,181,-54]]]},{"type":"MultiPolygon","id":5493,"properties":{"name":"Orny"},"arcs":[[[794,-524,-762,-617]]]},{"type":"MultiPolygon","id":5494,"properties":{"name":"Pampigny"},"arcs":[[[-303,414,415,416,417,-369,418,-180,419]]]},{"type":"MultiPolygon","id":5495,"properties":{"name":"Penthalaz"},"arcs":[[[975,-805,976,-828,-570]]]},{"type":"MultiPolygon","id":5496,"properties":{"name":"Penthaz"},"arcs":[[[-829,-977,-804,-962,-967,-844,-843]]]},{"type":"MultiPolygon","id":5497,"properties":{"name":"Pompaples"},"arcs":[[[-629,-525,-795,-616]]]},{"type":"MultiPolygon","id":5498,"properties":{"name":"La Sarraz"},"arcs":[[[613,614,615,616,617,618,619,620,621,622,623,624]]]},{"type":"MultiPolygon","id":5499,"properties":{"name":"Senarclens"},"arcs":[[[-700,-573,-
 832,-679,-788]]]},{"type":"MultiPolygon","id":5500,"properties":{"name":"Sévery"},"arcs":[[[-418,1089,1090,1091,1092,1093,-358,1094,-370]]]},{"type":"MultiPolygon","id":5501,"properties":{"name":"Sullens"},"arcs":[[[965,-845,966,-961,967,-907,905,-906,-905,-904,-903,-814,-813,-812]]]},{"type":"MultiPolygon","id":5503,"properties":{"name":"Vufflens-la-Ville"},"arcs":[[[839,840,841,-830,842,843,844,845,846]]]},{"type":"MultiPolygon","id":5511,"properties":{"name":"Assens"},"arcs":[[[847,848,849,850,851,852,-708,-675]]]},{"type":"MultiPolygon","id":5512,"properties":{"name":"Bercher"},"arcs":[[[-644,-643,929,930,931,-152,-151,150,932]]]},{"type":"MultiPolygon","id":5513,"properties":{"name":"Bioley-Orjulaz"},"arcs":[[[-997,-1040,-998,-946,-852,-851]]]},{"type":"MultiPolygon","id":5514,"properties":{"name":"Bottens"},"arcs":[[[-126,-125,-124,-123,-122,671,672,673,674,675,-406,676,-651]]]},{"type":"MultiPolygon","id":5515,"properties":{"name":"Bretigny-sur-Morrens"},"arcs":[[[-121,-1056
 ,-1005,-848,-674,-673,-672]]]},{"type":"MultiPolygon","id":5516,"properties":{"name":"Cugy (VD)"},"arcs":[[[-120,-119,118,-119,-118,-117,-486,-485,-484,-483,-482,481,-482,-481,-915,-1004,1055]]]},{"type":"MultiPolygon","id":5518,"properties":{"name":"Echallens"},"arcs":[[[707,708,-450,-649,-407,-676]]]},{"type":"MultiPolygon","id":5520,"properties":{"name":"Essertines-sur-Yverdon"},"arcs":[[[487,488,489,490,491,-349,492,493,494,495]]]},{"type":"MultiPolygon","id":5521,"properties":{"name":"Etagnières"},"arcs":[[[994,-909,995,996,-850]]]},{"type":"MultiPolygon","id":5522,"properties":{"name":"Fey"},"arcs":[[[-409,638,639,-553,640,641,642,643,644,-149]]]},{"type":"MultiPolygon","id":5523,"properties":{"name":"Froideville"},"arcs":[[[-128,-127,650,651,-279,-583,652]]]},{"type":"MultiPolygon","id":5527,"properties":{"name":"Morrens (VD)"},"arcs":[[[1003,-914,-910,-995,-849,1004]]]},{"type":"MultiPolygon","id":5529,"properties":{"name":"Oulens-sous-Echallens"},"arcs":[[[755,756,757,758,
 -519,-446]]]},{"type":"MultiPolygon","id":5530,"properties":{"name":"Pailly"},"arcs":[[[-552,-551,-496,769,770,771,-641]]]},{"type":"MultiPolygon","id":5531,"properties":{"name":"Penthéréaz"},"arcs":[[[-448,-518,-438,-437,435,-436,-435,-434,-433,-432,-431,-430,-429,-428,-427,785,-549,-548,-650]]]},{"type":"MultiPolygon","id":5533,"properties":{"name":"Poliez-Pittet"},"arcs":[[[-677,-410,-280,-652]]]},{"type":"MultiPolygon","id":5534,"properties":{"name":"Rueyres"},"arcs":[[[-642,-772,-1007,-930]]]},{"type":"MultiPolygon","id":5535,"properties":{"name":"Saint-Barthélemy (VD)"},"arcs":[[[-853,945,946,-756,-445,-444,-443,-709]]]},{"type":"MultiPolygon","id":5537,"properties":{"name":"Villars-le-Terroir"},"arcs":[[[648,-449,649,-547,-546,-640,-639,-408]]]},{"type":"MultiPolygon","id":5539,"properties":{"name":"Vuarrens"},"arcs":[[[545,546,547,548,549,-489,-488,550,551,552]]]},{"type":"MultiPolygon","id":5540,"properties":{"name":"Montilliez"},"arcs":[[[405,406,407,408,-148,-281,409]]
 ]},{"type":"MultiPolygon","id":5541,"properties":{"name":"Goumoëns"},"arcs":[[[442,443,444,445,446,447,448,449]]]},{"type":"MultiPolygon","id":5551,"properties":{"name":"Bonvillars"},"arcs":[[[631,632,-98,-582,633,-329,-174,-412]]]},{"type":"MultiPolygon","id":5552,"properties":{"name":"Bullet"},"arcs":[[[-90,287,288,289,290,291,292]]]},{"type":"MultiPolygon","id":5553,"properties":{"name":"Champagne"},"arcs":[[[-330,-634,-581,959,-600,-599]]]},{"type":"MultiPolygon","id":5554,"properties":{"name":"Concise"},"arcs":[[[-102,-101,410,411,-173,412,413]]]},{"type":"MultiPolygon","id":5555,"properties":{"name":"Corcelles-près-Concise"},"arcs":[[[-100,-854,-632,-411]]]},{"type":"MultiPolygon","id":5556,"properties":{"name":"Fiez"},"arcs":[[[912,-605,-288,-89]],[[-960,-580,-896,-601]]]},{"type":"MultiPolygon","id":5557,"properties":{"name":"Fontaines-sur-Grandson"},"arcs":[[[596,597,-331,598,599,600,601,602,603,-289,604]]]},{"type":"MultiPolygon","id":5559,"properties":{"name":"Giez"},"a
 rcs":[[[894,-602,895,-579,896,897,898,899]]]},{"type":"MultiPolygon","id":5560,"properties":{"name":"Grandevent"},"arcs":[[[-604,1020,-290]]]},{"type":"MultiPolygon","id":5561,"properties":{"name":"Grandson"},"arcs":[[[576,577,578,579,580,581,-97]]]},{"type":"MultiPolygon","id":5562,"properties":{"name":"Mauborget"},"arcs":[[[806,-332,-598]]]},{"type":"MultiPolygon","id":5563,"properties":{"name":"Mutrux"},"arcs":[[[-413,-177,1034]]]},{"type":"MultiPolygon","id":5564,"properties":{"name":"Novalles"},"arcs":[[[-291,-1021,-603,-895,-1045]]]},{"type":"MultiPolygon","id":5565,"properties":{"name":"Onnens (VD)"},"arcs":[[[-99,-633,853]]]},{"type":"MultiPolygon","id":5566,"properties":{"name":"Provence"},"arcs":[[[172,173,174,175,176]]]},{"type":"MultiPolygon","id":5568,"properties":{"name":"Sainte-Croix"},"arcs":[[[87,88,89,90,91]]]},{"type":"MultiPolygon","id":5571,"properties":{"name":"Tévenon"},"arcs":[[[327,-175,328,329,330,331]]]},{"type":"MultiPolygon","id":5581,"properties":{"nam
 e":"Belmont-sur-Lausanne"},"arcs":[[[1078,-760,-309,-562]]]},{"type":"MultiPolygon","id":5582,"properties":{"name":"Cheseaux-sur-Lausanne"},"arcs":[[[-815,902,903,904,905,-906,906,907,908,909,910]]]},{"type":"MultiPolygon","id":5583,"properties":{"name":"Crissier"},"arcs":[[[-777,807,808,809,810,811,812,813,814,815,816,817,818]]]},{"type":"MultiPolygon","id":5584,"properties":{"name":"Epalinges"},"arcs":[[[-487,-115,-114,-113,-112,-111]]]},{"type":"MultiPolygon","id":5585,"properties":{"name":"Jouxtens-Mézery"},"arcs":[[[-817,-917,-1064,-1103,-1053]]]},{"type":"MultiPolygon","id":5586,"properties":{"name":"Lausanne"},"arcs":[[[-20,-19,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,-119,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135]],[[-816,-911,913,914,-480,-479,-478,-477,915,916]]]},{"type":"MultiPolygon","id":5587,"properties":{"name":"Le Mont-sur-Lausanne"},"arcs":[[[475,476,477,478,479,480,481,-482,481,482,483,484,485,-116,486,-110]]]}
 ,{"type":"MultiPolygon","id":5588,"properties":{"name":"Paudex"},"arcs":[[[-22,-761,-1079,-561]]]},{"type":"MultiPolygon","id":5589,"properties":{"name":"Prilly"},"arcs":[[[-1054,1102,-1063,-108,-107]]]},{"type":"MultiPolygon","id":5590,"properties":{"name":"Pully"},"arcs":[[[-21,-136,-310,759,760]]]},{"type":"MultiPolygon","id":5591,"properties":{"name":"Renens (VD)"},"arcs":[[[-778,-819,-818,1052,1053,-106,1054]]]},{"type":"MultiPolygon","id":5592,"properties":{"name":"Romanel-sur-Lausanne"},"arcs":[[[1062,1063,-916,-476,-109]]]},{"type":"MultiPolygon","id":5601,"properties":{"name":"Chexbres"},"arcs":[[[1105,-228,1106,1107]]]},{"type":"MultiPolygon","id":5604,"properties":{"name":"Forel (Lavaux)"},"arcs":[[[272,273,274,275,276,277,-207,-231]]]},{"type":"MultiPolygon","id":5606,"properties":{"name":"Lutry"},"arcs":[[[-23,560,561,-308,-497]]]},{"type":"MultiPolygon","id":5607,"properties":{"name":"Puidoux"},"arcs":[[[226,227,228,-25,229,230,-206,-205,231,232]]]},{"type":"MultiPolyg
 on","id":5609,"properties":{"name":"Rivaz"},"arcs":[[[-26,-229,-1106,-1135]]]},{"type":"MultiPolygon","id":5610,"properties":{"name":"Saint-Saphorin (Lavaux)"},"arcs":[[[-27,1134,-1108,-1107,-227,-462]]]},{"type":"MultiPolygon","id":5611,"properties":{"name":"Savigny"},"arcs":[[[307,308,309,-135,-134,-133,-132,-131,-130,310,311,-274,312]]]},{"type":"MultiPolygon","id":5613,"properties":{"name":"Bourg-en-Lavaux"},"arcs":[[[-24,496,-313,-273,-230]]]},{"type":"MultiPolygon","id":5621,"properties":{"name":"Aclens"},"arcs":[[[-361,-682,-681,-831,-842,-880,968,969]]]},{"type":"MultiPolygon","id":5622,"properties":{"name":"Bremblens"},"arcs":[[[-363,1056,-969,-879,-975,-1001]]]},{"type":"MultiPolygon","id":5623,"properties":{"name":"Buchillon"},"arcs":[[[-1081,-870,-796,-11]]]},{"type":"MultiPolygon","id":5624,"properties":{"name":"Bussigny-près-Lausanne"},"arcs":[[[877,878,879,-841,-840,880,-808,-776]]]},{"type":"MultiPolygon","id":5625,"properties":{"name":"Bussy-Chardonney"},"arcs":[[[
 -501,-373,1045,1046,1047,1048,-1030]]]},{"type":"MultiPolygon","id":5627,"properties":{"name":"Chavannes-près-Renens"},"arcs":[[[-779,-1055,-105]]]},{"type":"MultiPolygon","id":5628,"properties":{"name":"Chigny"},"arcs":[[[-1116,-1111,-984,-1133]]]},{"type":"MultiPolygon","id":5629,"properties":{"name":"Clarmont"},"arcs":[[[-1095,-357,-356,-1115,-1134,-371]]]},{"type":"MultiPolygon","id":5631,"properties":{"name":"Denens"},"arcs":[[[1028,-502,1029,1030,1031,1032]]]},{"type":"MultiPolygon","id":5632,"properties":{"name":"Denges"},"arcs":[[[-1124,-1002,-973,-774,-1127]]]},{"type":"MultiPolygon","id":5633,"properties":{"name":"Echandens"},"arcs":[[[972,973,974,-878,-775]]]},{"type":"MultiPolygon","id":5634,"properties":{"name":"Echichens"},"arcs":[[[353,354,355,356,357,358,359,360,361,362,363,364]]]},{"type":"MultiPolygon","id":5635,"properties":{"name":"Ecublens (VD)"},"arcs":[[[772,773,774,775,776,777,778]]]},{"type":"MultiPolygon","id":5636,"properties":{"name":"Etoy"},"arcs":[[[86
 5,-513,866,867,868,-797,869]]]},{"type":"MultiPolygon","id":5637,"properties":{"name":"Lavigny"},"arcs":[[[-512,-576,-504,953,-867]]]},{"type":"MultiPolygon","id":5638,"properties":{"name":"Lonay"},"arcs":[[[-986,-364,1000,-974,1001,1002]]]},{"type":"MultiPolygon","id":5639,"properties":{"name":"Lully (VD)"},"arcs":[[[-800,-1102,-1101,-1100,-1032,-1109,1115,1116]]]},{"type":"MultiPolygon","id":5640,"properties":{"name":"Lussy-sur-Morges"},"arcs":[[[-1052,-1033,1099,1100,1101,-799]]]},{"type":"MultiPolygon","id":5642,"properties":{"name":"Morges"},"arcs":[[[982,983,984,-365,985,986,-16,-15,-14]]]},{"type":"MultiPolygon","id":5643,"properties":{"name":"Préverenges"},"arcs":[[[-987,-1003,1123,1124,-17]]]},{"type":"MultiPolygon","id":5644,"properties":{"name":"Reverolle"},"arcs":[[[1133,-1114,-1046,-372]]]},{"type":"MultiPolygon","id":5645,"properties":{"name":"Romanel-sur-Morges"},"arcs":[[[-362,-970,-1057]]]},{"type":"MultiPolygon","id":5646,"properties":{"name":"Saint-Prex"},"arcs":
 [[[795,796,797,798,799,800,-12]]]},{"type":"MultiPolygon","id":5648,"properties":{"name":"Saint-Sulpice (VD)"},"arcs":[[[-18,-1125,1126,-773,-104]]]},{"type":"MultiPolygon","id":5649,"properties":{"name":"Tolochenaz"},"arcs":[[[-801,-1117,1132,-983,-13]]]},{"type":"MultiPolygon","id":5650,"properties":{"name":"Vaux-sur-Morges"},"arcs":[[[-1110,-1047,1113,1114,-355]]]},{"type":"MultiPolygon","id":5651,"properties":{"name":"Villars-Sainte-Croix"},"arcs":[[[-881,-847,-1071,-810,-809]]]},{"type":"MultiPolygon","id":5652,"properties":{"name":"Villars-sous-Yens"},"arcs":[[[-869,-868,-954,-503,-1029,1051,-798]]]},{"type":"MultiPolygon","id":5653,"properties":{"name":"Vufflens-le-Château"},"arcs":[[[1108,-1031,-1049,-1048,1109,-354,-985,1110]]]},{"type":"MultiPolygon","id":5654,"properties":{"name":"Vullierens"},"arcs":[[[677,678,679,680,681,-360,682]]]},{"type":"MultiPolygon","id":5655,"properties":{"name":"Yens"},"arcs":[[[498,-187,499,-374,500,501,502,503]]]},{"type":"MultiPolygon","id"
 :5661,"properties":{"name":"Boulens"},"arcs":[[[-645,-933,-151,150,-151,-150]]]},{"type":"MultiPolygon","id":5662,"properties":{"name":"Brenles"},"arcs":[[[-857,987,988,989,990]]]},{"type":"MultiPolygon","id":5663,"properties":{"name":"Bussy-sur-Moudon"},"arcs":[[[-320,-162,-591,-590]]]},{"type":"MultiPolygon","id":5665,"properties":{"name":"Chavannes-sur-Moudon"},"arcs":[[[854,-719,-315,855,856]]]},{"type":"MultiPolygon","id":5666,"properties":{"name":"Chesalles-sur-Moudon"},"arcs":[[[-856,-323,-864,1129,-988]]]},{"type":"MultiPolygon","id":5668,"properties":{"name":"Cremin"},"arcs":[[[-594,-1069,1131]]]},{"type":"MultiPolygon","id":5669,"properties":{"name":"Curtilles"},"arcs":[[[-322,-596,-556,859,860,861,862,863]]]},{"type":"MultiPolygon","id":5671,"properties":{"name":"Dompierre (VD)"},"arcs":[[[1035,-1014,-860,-555,1036]]]},{"type":"MultiPolygon","id":5672,"properties":{"name":"Forel-sur-Lucens"},"arcs":[[[1068,-593,-941,1069]]]},{"type":"MultiPolygon","id":5673,"properties":{
 "name":"Hermenches"},"arcs":[[[890,-584,-286,-285,-284,-283,-319,891,892,893]]]},{"type":"MultiPolygon","id":5674,"properties":{"name":"Lovatens"},"arcs":[[[-990,1012,861,-862,-861,1013,1014,1015]]]},{"type":"MultiPolygon","id":5675,"properties":{"name":"Lucens"},"arcs":[[[-321,589,590,-161,591,592,593,594,-557,595]]]},{"type":"MultiPolygon","id":5678,"properties":{"name":"Moudon"},"arcs":[[[314,315,316,317,318,-282,-146,319,320,321,322]]]},{"type":"MultiPolygon","id":5680,"properties":{"name":"Ogens"},"arcs":[[[-153,-932,-1006,-923,-922]]]},{"type":"MultiPolygon","id":5683,"properties":{"name":"Prévonloup"},"arcs":[[[-1015,-1036,1127]]]},{"type":"MultiPolygon","id":5684,"properties":{"name":"Rossenges"},"arcs":[[[-1084,-892,-318]]]},{"type":"MultiPolygon","id":5686,"properties":{"name":"Sarzens"},"arcs":[[[-1130,-863,-862,-1013,-989]]]},{"type":"MultiPolygon","id":5688,"properties":{"name":"Syens"},"arcs":[[[-718,-1034,-893,1083,-317]]]},{"type":"MultiPolygon","id":5690,"propertie
 s":{"name":"Villars-le-Comte"},"arcs":[[[-160,939,940,-592]]]},{"type":"MultiPolygon","id":5692,"properties":{"name":"Vucherens"},"arcs":[[[-839,-902,-894,1033,-717]]]},{"type":"MultiPolygon","id":5693,"properties":{"name":"Montanaire"},"arcs":[[[145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161]]]},{"type":"MultiPolygon","id":5701,"properties":{"name":"Arnex-sur-Nyon"},"arcs":[[[1117,1118,-1097,-1096,-920]]]},{"type":"MultiPolygon","id":5702,"properties":{"name":"Arzier"},"arcs":[[[80,-62,81,82,83,84,85]]]},{"type":"MultiPolygon","id":5703,"properties":{"name":"Bassins"},"arcs":[[[249,250,-82,-61,251,252,253]]]},{"type":"MultiPolygon","id":5704,"properties":{"name":"Begnins"},"arcs":[[[886,887,-254,888,-780,889,-565]]]},{"type":"MultiPolygon","id":5705,"properties":{"name":"Bogis-Bossey"},"arcs":[[[-885,1084,-1067,1085,1086,1087]]]},{"type":"MultiPolygon","id":5706,"properties":{"name":"Borex"},"arcs":[[[-1122,-457,-1083,1122,-1098,-1119]]]},{"type":"MultiPolygon"
 ,"id":5707,"properties":{"name":"Chavannes-de-Bogis"},"arcs":[[[-733,1065,1066,1067,-883]]]},{"type":"MultiPolygon","id":5708,"properties":{"name":"Chavannes-des-Bois"},"arcs":[[[1111,-731,1112,-1018]]]},{"type":"MultiPolygon","id":5709,"properties":{"name":"Chéserex"},"arcs":[[[454,-296,-380,455,456]]]},{"type":"MultiPolygon","id":5710,"properties":{"name":"Coinsins"},"arcs":[[[-949,-874,1057,-754]]]},{"type":"MultiPolygon","id":5711,"properties":{"name":"Commugny"},"arcs":[[[727,728,729,730,731,732,733]]]},{"type":"MultiPolygon","id":5712,"properties":{"name":"Coppet"},"arcs":[[[-387,1125,-728,-882]]]},{"type":"MultiPolygon","id":5713,"properties":{"name":"Crans-près-Céligny"},"arcs":[[[918,919,920,-684,-1]]]},{"type":"MultiPolygon","id":5714,"properties":{"name":"Crassier"},"arcs":[[[1119,-1087,1120,-297,-455,1121,-1118]]]},{"type":"MultiPolygon","id":5715,"properties":{"name":"Duillier"},"arcs":[[[-689,-769,947,-871,948,-753]]]},{"type":"MultiPolygon","id":5716,"properties":{
 "name":"Eysins"},"arcs":[[[1095,1096,1097,1098,-685,-921]]]},{"type":"MultiPolygon","id":5717,"properties":{"name":"Founex"},"arcs":[[[-388,881,-734,882,883,884,885]]]},{"type":"MultiPolygon","id":5718,"properties":{"name":"Genolier"},"arcs":[[[870,871,-84,872,873]]]},{"type":"MultiPolygon","id":5719,"properties":{"name":"Gingins"},"arcs":[[[376,-214,377,378,379,-295]]]},{"type":"MultiPolygon","id":5720,"properties":{"name":"Givrins"},"arcs":[[[-768,-212,-85,-872,-948]]]},{"type":"MultiPolygon","id":5721,"properties":{"name":"Gland"},"arcs":[[[562,563,564,565,566,-4]]]},{"type":"MultiPolygon","id":5722,"properties":{"name":"Grens"},"arcs":[[[-456,-379,-767,-687,1081,1082]]]},{"type":"MultiPolygon","id":5723,"properties":{"name":"Mies"},"arcs":[[[1016,1017,1018,1019,-385]]]},{"type":"MultiPolygon","id":5724,"properties":{"name":"Nyon"},"arcs":[[[683,684,685,686,687,688,689,-2]]]},{"type":"MultiPolygon","id":5725,"properties":{"name":"Prangins"},"arcs":[[[-690,752,753,754,-563,-3]]]},
 {"type":"MultiPolygon","id":5726,"properties":{"name":"La Rippe"},"arcs":[[[293,294,295,296]]]},{"type":"MultiPolygon","id":5727,"properties":{"name":"Saint-Cergue"},"arcs":[[[210,-86,211,212,213]]]},{"type":"MultiPolygon","id":5728,"properties":{"name":"Signy-Avenex"},"arcs":[[[-1099,-1123,-1082,-686]]]},{"type":"MultiPolygon","id":5729,"properties":{"name":"Tannay"},"arcs":[[[-386,-1020,-1019,-1113,-730,-729,-1126]]]},{"type":"MultiPolygon","id":5730,"properties":{"name":"Trélex"},"arcs":[[[-688,766,-378,-213,767,768]]]},{"type":"MultiPolygon","id":5731,"properties":{"name":"Le Vaud"},"arcs":[[[-253,-405,-781,-889]]]},{"type":"MultiPolygon","id":5732,"properties":{"name":"Vich"},"arcs":[[[-755,-1058,-873,-83,-251,-250,-888,-887,-564]]]},{"type":"MultiPolygon","id":5741,"properties":{"name":"L'Abergement"},"arcs":[[[764,-238,-475,765,-654,-452]]]},{"type":"MultiPolygon","id":5742,"properties":{"name":"Agiez"},"arcs":[[[-657,824,-401,-628,825,826]]]},{"type":"MultiPolygon","id":574
 3,"properties":{"name":"Arnex-sur-Orbe"},"arcs":[[[627,-400,-440,-526,628,-615,629,630]]]},{"type":"MultiPolygon","id":5744,"properties":{"name":"Ballaigues"},"arcs":[[[526,-454,527,-223]]]},{"type":"MultiPolygon","id":5745,"properties":{"name":"Baulmes"},"arcs":[[[233,-92,234,235,236,237]]]},{"type":"MultiPolygon","id":5746,"properties":{"name":"Bavois"},"arcs":[[[-439,517,-447,518,519,520,521,522,523,524,525]]]},{"type":"MultiPolygon","id":5747,"properties":{"name":"Bofflens"},"arcs":[[[-826,-631,933,-662,-833]]]},{"type":"MultiPolygon","id":5748,"properties":{"name":"Bretonnières"},"arcs":[[[-658,-827,832,-661,-752]]]},{"type":"MultiPolygon","id":5749,"properties":{"name":"Chavornay"},"arcs":[[[-399,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,-436,436,437,438,439]]]},{"type":"MultiPolygon","id":5750,"properties":{"name":"Les Clées"},"arcs":[[[-528,-453,653,654,655,656,657,658,-224]]]},{"type":"MultiPolygon","id":5751,"properties":{"name":"Corcelles-sur-Chavo
 rnay"},"arcs":[[[548,-786,-426,-425,-424,-423,-713,-490,-550,-549]]]},{"type":"MultiPolygon","id":5752,"properties":{"name":"Croy"},"arcs":[[[-934,-630,-614,-663]],[[-665,-1039,-705]]]},{"type":"MultiPolygon","id":5754,"properties":{"name":"Juriens"},"arcs":[[[-368,514,515,516,-256]]]},{"type":"MultiPolygon","id":5755,"properties":{"name":"Lignerolle"},"arcs":[[[450,451,452,453]]]},{"type":"MultiPolygon","id":5756,"properties":{"name":"Montcherand"},"arcs":[[[1043,-741,-740,-394,-825,-656]]]},{"type":"MultiPolygon","id":5757,"properties":{"name":"Orbe"},"arcs":[[[393,394,395,396,397,398,399,400]]]},{"type":"MultiPolygon","id":5758,"properties":{"name":"La Praz"},"arcs":[[[-517,-704,-257]]]},{"type":"MultiPolygon","id":5759,"properties":{"name":"Premier"},"arcs":[[[-659,751,-660,-366,-225]]]},{"type":"MultiPolygon","id":5760,"properties":{"name":"Rances"},"arcs":[[[-237,470,471,472,473,474]]]},{"type":"MultiPolygon","id":5761,"properties":{"name":"Romainmôtier-Envy"},"arcs":[[[659,6
 60,661,662,-625,-624,663,664,665,-515,-367]]]},{"type":"MultiPolygon","id":5762,"properties":{"name":"Sergey"},"arcs":[[[-766,-474,-742,-1044,-655]]]},{"type":"MultiPolygon","id":5763,"properties":{"name":"Valeyres-sous-Rances"},"arcs":[[[-473,-723,-395,739,740,741]]]},{"type":"MultiPolygon","id":5764,"properties":{"name":"Vallorbe"},"arcs":[[[221,222,223,224,225,-139,-145]]]},{"type":"MultiPolygon","id":5765,"properties":{"name":"Vaulion"},"arcs":[[[-226,365,366,367,-255,-140]]]},{"type":"MultiPolygon","id":5766,"properties":{"name":"Vuiteboeuf"},"arcs":[[[-91,-293,857,858,-533,-532,-531,-530,-529,-235]]]},{"type":"MultiPolygon","id":5782,"properties":{"name":"Carrouge (VD)"},"arcs":[[[833,834,835,836,837,838,-716,714]]]},{"type":"MultiPolygon","id":5785,"properties":{"name":"Corcelles-le-Jorat"},"arcs":[[[582,-287,583,584,585,586,587,588]]]},{"type":"MultiPolygon","id":5788,"properties":{"name":"Essertes"},"arcs":[[[-208,-278,-745,-744,-743,1130]]]},{"type":"MultiPolygon","id":578
 9,"properties":{"name":"Ferlens (VD)"},"arcs":[[[-748,-1012,834,-835,-834,-715,-714,1103]]]},{"type":"MultiPolygon","id":5790,"properties":{"name":"Maracon"},"arcs":[[[-210,917]]]},{"type":"MultiPolygon","id":5791,"properties":{"name":"Mézières (VD)"},"arcs":[[[-747,-945,-836,-835,1011]]]},{"type":"MultiPolygon","id":5792,"properties":{"name":"Montpreveyres"},"arcs":[[[-311,-129,-653,-589,943,-587,-901,-837,944,-746]]]},{"type":"MultiPolygon","id":5798,"properties":{"name":"Ropraz"},"arcs":[[[-838,900,-586,-585,-891,901]],[[-588,-944]]]},{"type":"MultiPolygon","id":5799,"properties":{"name":"Servion"},"arcs":[[[742,743,744,-277,-276,-275,-312,745,746,747,748]]]},{"type":"MultiPolygon","id":5803,"properties":{"name":"Vulliens"},"arcs":[[[713,714,-715,715,716,717,-316,718,719]]]},{"type":"MultiPolygon","id":5804,"properties":{"name":"Jorat-Menthue"},"arcs":[[[278,279,280,-147,281,282,283,284,285,286]]]},{"type":"MultiPolygon","id":5805,"properties":{"name":"Oron"},"arcs":[[[203,204,
 205,206,207,208,209]]]},{"type":"MultiPolygon","id":5812,"properties":{"name":"Champtauroz"},"arcs":[[[-196,1049,-928,-927,1050,-955,-1042]]]},{"type":"MultiPolygon","id":5813,"properties":{"name":"Chevroux"},"arcs":[[[-469,792,-635,793]]]},{"type":"MultiPolygon","id":5816,"properties":{"name":"Corcelles-près-Payerne"},"arcs":[[[-218,389,390,391,392]]]},{"type":"MultiPolygon","id":5817,"properties":{"name":"Grandcour"},"arcs":[[[-217,467,468,469,-390]]]},{"type":"MultiPolygon","id":5819,"properties":{"name":"Henniez"},"arcs":[[[-626,-559,1079,-193]]]},{"type":"MultiPolygon","id":5821,"properties":{"name":"Missy"},"arcs":[[[-392,1040]]]},{"type":"MultiPolygon","id":5822,"properties":{"name":"Payerne"},"arcs":[[[214,215,216,217,218]]]},{"type":"MultiPolygon","id":5827,"properties":{"name":"Trey"},"arcs":[[[-199,991,-215,992]]]},{"type":"MultiPolygon","id":5828,"properties":{"name":"Treytorrens (Payerne)"},"arcs":[[[-197,1041,-959,1042]]]},{"type":"MultiPolygon","id":5830,"properties"
 :{"name":"Villarzel"},"arcs":[[[-560,625,-192,626]]]},{"type":"MultiPolygon","id":5831,"properties":{"name":"Valbroye"},"arcs":[[[191,192,193,-158,194,195,196,197,198,199]],[[553,554,555,556,557,558,559]]]},{"type":"MultiPolygon","id":5841,"properties":{"name":"Château-d'Oex"},"arcs":[[[43,44,45,46,47,48,49]]]},{"type":"MultiPolygon","id":5842,"properties":{"name":"Rossinière"},"arcs":[[[-172,219,220,-47]]]},{"type":"MultiPolygon","id":5843,"properties":{"name":"Rougemont"},"arcs":[[[-49,86]]]},{"type":"MultiPolygon","id":5851,"properties":{"name":"Allaman"},"arcs":[[[-1062,-1075,-514,-866,1080,-10]]]},{"type":"MultiPolygon","id":5852,"properties":{"name":"Bursinel"},"arcs":[[[1128,-1026,-1025,-613,-1072,-6]]]},{"type":"MultiPolygon","id":5853,"properties":{"name":"Bursins"},"arcs":[[[1022,1023,-783,-606,1024,1025,1026]]]},{"type":"MultiPolygon","id":5854,"properties":{"name":"Burtigny"},"arcs":[[[779,780,-404,-403,-506,781,-667,-607,782,783,784]]]},{"type":"MultiPolygon","id":585
 5,"properties":{"name":"Dully"},"arcs":[[[-567,-1078,-1077,-1027,-1129,-5]]]},{"type":"MultiPolygon","id":5856,"properties":{"name":"Essertines-sur-Rolle"},"arcs":[[[666,667,-270,-509,668,669,670,-608]]]},{"type":"MultiPolygon","id":5857,"properties":{"name":"Gilly"},"arcs":[[[605,606,607,608,609,610,611,612]]]},{"type":"MultiPolygon","id":5858,"properties":{"name":"Luins"},"arcs":[[[-566,-890,-785,1075,-1023,1076,1077]]]},{"type":"MultiPolygon","id":5859,"properties":{"name":"Mont-sur-Rolle"},"arcs":[[[977,978,-670,979,980,981]]]},{"type":"MultiPolygon","id":5860,"properties":{"name":"Perroy"},"arcs":[[[1058,-982,-981,1059,1060,1061,-9]]]},{"type":"MultiPolygon","id":5861,"properties":{"name":"Rolle"},"arcs":[[[1071,-612,1072,-978,-1059,-8,-7]]]},{"type":"MultiPolygon","id":5862,"properties":{"name":"Tartegnin"},"arcs":[[[-611,-610,-609,-671,-979,-1073]]]},{"type":"MultiPolygon","id":5863,"properties":{"name":"Vinzel"},"arcs":[[[-1076,-784,-1024]]]},{"type":"MultiPolygon","id":5871
 ,"properties":{"name":"L'Abbaye"},"arcs":[[[136,137,138,139,140,141,142,-53]]]},{"type":"MultiPolygon","id":5872,"properties":{"name":"Le Chenit"},"arcs":[[[50,51,52,53,54,55,56,57,58,59,60,61]]]},{"type":"MultiPolygon","id":5873,"properties":{"name":"Le Lieu"},"arcs":[[[143,144,-138,-137,-52]]]},{"type":"MultiPolygon","id":5881,"properties":{"name":"Blonay"},"arcs":[[[-164,304,305,306]]]},{"type":"MultiPolygon","id":5882,"properties":{"name":"Chardonne"},"arcs":[[[-28,461,-233,462,463,464,465,466]]]},{"type":"MultiPolygon","id":5883,"properties":{"name":"Corseaux"},"arcs":[[[-30,-29,-467,-692,-1089]]]},{"type":"MultiPolygon","id":5884,"properties":{"name":"Corsier-sur-Vevey"},"arcs":[[[691,-466,692,693,-325,694]]]},{"type":"MultiPolygon","id":5885,"properties":{"name":"Jongny"},"arcs":[[[-465,-464,1104,-693]]]},{"type":"MultiPolygon","id":5886,"properties":{"name":"Montreux"},"arcs":[[[-38,-37,35,-36,-35,-34,162,163,164,165]]]},{"type":"MultiPolygon","id":5888,"properties":{"name":
 "Saint-Légier-La Chiésaz"},"arcs":[[[323,324,325,-306,326]]]},{"type":"MultiPolygon","id":5889,"properties":{"name":"La Tour-de-Peilz"},"arcs":[[[-33,1021,-327,-305,-163]]]},{"type":"MultiPolygon","id":5890,"properties":{"name":"Vevey"},"arcs":[[[-32,-31,1088,-695,-324,-1022]]]},{"type":"MultiPolygon","id":5891,"properties":{"name":"Veytaux"},"arcs":[[[-171,-39,-166,690,-220]]]},{"type":"MultiPolygon","id":5902,"properties":{"name":"Belmont-sur-Yverdon"},"arcs":[[[-350,-492,-712,734,735,-736,735,736]]]},{"type":"MultiPolygon","id":5903,"properties":{"name":"Bioley-Magnoux"},"arcs":[[[-154,921,922,923,924,-540]]]},{"type":"MultiPolygon","id":5904,"properties":{"name":"Chamblon"},"arcs":[[[-537,-1010,1064,-942]]]},{"type":"MultiPolygon","id":5905,"properties":{"name":"Champvent"},"arcs":[[[-236,528,529,530,531,532,533,534,535,536,537,538,-471]]]},{"type":"MultiPolygon","id":5907,"properties":{"name":"Chavannes-le-Chêne"},"arcs":[[[954,955,-822,-821,956,957,958]]]},{"type":"MultiPol
 ygon","id":5908,"properties":{"name":"Chêne-Pâquier"},"arcs":[[[-1051,-926,-823,-822,821,-956]]]},{"type":"MultiPolygon","id":5909,"properties":{"name":"Cheseaux-Noréaz"},"arcs":[[[-344,-343,-342,749,750,-345,-94]]]},{"type":"MultiPolygon","id":5910,"properties":{"name":"Cronay"},"arcs":[[[723,724,725,726,-339,-542]]]},{"type":"MultiPolygon","id":5911,"properties":{"name":"Cuarny"},"arcs":[[[-340,-727,-790,-346,-751,911]]]},{"type":"MultiPolygon","id":5912,"properties":{"name":"Démoret"},"arcs":[[[-156,-545,-824,925,926,927,928]]]},{"type":"MultiPolygon","id":5913,"properties":{"name":"Donneloye"},"arcs":[[[-155,539,540,541,-338,542,543,544]]]},{"type":"MultiPolygon","id":5914,"properties":{"name":"Ependes (VD)"},"arcs":[[[874,875,-351,-737,-736,735,-736,-735,-711,876,-397,-722]]]},{"type":"MultiPolygon","id":5915,"properties":{"name":"Essert-Pittet"},"arcs":[[[-398,-877,-710,-421]]]},{"type":"MultiPolygon","id":5919,"properties":{"name":"Mathod"},"arcs":[[[-539,720,721,-396,722
 ,-472]]]},{"type":"MultiPolygon","id":5921,"properties":{"name":"Molondin"},"arcs":[[[-544,-543,-337,-336,819,820,821,822,823]]]},{"type":"MultiPolygon","id":5922,"properties":{"name":"Montagny-près-Yverdon"},"arcs":[[[-353,1008,1009,-536,1010,-577,-96]]]},{"type":"MultiPolygon","id":5923,"properties":{"name":"Oppens"},"arcs":[[[1005,-931,1006,-771,-936,-935,-924]]]},{"type":"MultiPolygon","id":5924,"properties":{"name":"Orges"},"arcs":[[[-859,949,950,-899,-898,951,952,-534]]]},{"type":"MultiPolygon","id":5925,"properties":{"name":"Orzens"},"arcs":[[[-925,934,935,-770,-495,936,937,938,-724,-541]]]},{"type":"MultiPolygon","id":5926,"properties":{"name":"Pomy"},"arcs":[[[789,-726,790,791,-347]]]},{"type":"MultiPolygon","id":5928,"properties":{"name":"Rovray"},"arcs":[[[-957,-820,-335,1037]]]},{"type":"MultiPolygon","id":5929,"properties":{"name":"Suchy"},"arcs":[[[709,710,711,-491,712,-422]]]},{"type":"MultiPolygon","id":5930,"properties":{"name":"Suscévaz"},"arcs":[[[-538,941,942,-
 875,-721]]]},{"type":"MultiPolygon","id":5931,"properties":{"name":"Treycovagnes"},"arcs":[[[-1065,-1009,-352,-876,-943]]]},{"type":"MultiPolygon","id":5932,"properties":{"name":"Ursins"},"arcs":[[[-939,-938,-937,-494,1027,-791,-725]]]},{"type":"MultiPolygon","id":5933,"properties":{"name":"Valeyres-sous-Montagny"},"arcs":[[[-953,-952,-897,-578,-1011,-535]]]},{"type":"MultiPolygon","id":5934,"properties":{"name":"Valeyres-sous-Ursins"},"arcs":[[[-792,-1028,-493,-348]]]},{"type":"MultiPolygon","id":5935,"properties":{"name":"Villars-Epeney"},"arcs":[[[-341,-912,-750]]]},{"type":"MultiPolygon","id":5937,"properties":{"name":"Vugelles-La Mothe"},"arcs":[[[-292,1044,-900,-951,-950,-858]]]},{"type":"MultiPolygon","id":5938,"properties":{"name":"Yverdon-les-Bains"},"arcs":[[[344,345,346,347,348,349,350,351,352,-95]]]},{"type":"MultiPolygon","id":5939,"properties":{"name":"Yvonand"},"arcs":[[[333,334,335,336,337,338,339,340,341,342,343,-93]]]},{"type":"MultiPolygon","id":9154,"properties":
 {"name":"Lac de Neuchâtel (VD)"},"arcs":[[[92,93,94,95,96,97,98,99,100,101,102]],[[200,201,202]],[[634,635]]]},{"type":"MultiPolygon","id":9296,"properties":{"name":"Lac de Morat (VD)"},"arcs":[[[-261,-248,636,637]]]},{"type":"MultiPolygon","id":9758,"properties":{"name":"Lac Léman (VD)"},"arcs":[[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,-36,36,37,38,39,40,41,42]],[[384,385,386,387,388]]]}]}},"arcs":[[[1242,2150],[25,34],[9,36],[25,21],[7,27],[56,48]],[[1364,2316],[27,24],[35,50],[7,40],[23,17],[72,78],[15,43]],[[1543,2568],[95,74],[50,-3],[27,-22],[64,8],[21,43]],[[1800,2668],[40,27],[5,34],[-11,41],[3,34],[42,50],[32,62],[0,79],[19,29],[36,7]],[[1966,3031],[29,29],[53,34],[24,32]],[[2072,3126],[16,26],[54,61],[12,47],[15,9]],[[2169,3269],[26,12],[42,46],[26,7],[27,32],[34,63],[49,41]],[[2373,3470],[28,17],[33,-6]],[[2434,3481],[30,14],[69,4],[84,35],[53,-12]],[[2670,3522],[23,6],[34,-18],[43,-41]],[[2770,3469],[35,-18],[5
 5,-3],[55,28],[9,24],[107,72],[114,19]],[[3145,3591],[106,38],[13,24],[41,37],[63,-3],[-10,40],[11,48],[62,65],[54,-3],[32,10]],[[3517,3847],[24,16],[8,68],[30,40]],[[3579,3971],[17,-4]],[[3596,3967],[11,19],[51,23]],[[3658,4009],[39,49],[17,59],[44,33],[44,-11]],[[3802,4139],[58,4],[53,-27],[14,-20],[40,-23],[23,-30],[33,-5]],[[4023,4038],[54,11],[37,-8],[80,2],[51,56],[60,11],[43,52],[38,9],[35,-9]],[[4421,4162],[25,7]],[[4446,4169],[48,-16],[79,-70],[2,15],[69,-21],[35,-32],[51,-9],[33,-31],[9,16],[39,7],[75,-24]],[[4886,4004],[90,4],[19,-6],[42,8],[70,-19]],[[5107,3991],[33,-11],[32,7]],[[5172,3987],[31,-5],[38,-33],[33,4],[33,-24],[47,-7],[50,-30]],[[5404,3892],[78,-75],[47,-28],[25,-26],[78,2],[20,24],[44,8],[60,-9],[45,-28]],[[5801,3760],[82,-81],[56,-32],[87,-42]],[[6026,3605],[45,-10],[24,7]],[[6095,3602],[25,4],[83,-30]],[[6203,3576],[74,-22],[47,-5]],[[6324,3549],[52,-5]],[[6376,3544],[37,-23],[34,7],[33,-15]],[[6480,3513],[22,-48],[7,-41],[45,-16]],[[6554,3408],[97,-27]]
 ,[[6651,3381],[21,-71],[39,-30],[8,-24],[32,17],[72,-10],[40,-22]],[[6863,3241],[12,-35],[27,-17],[20,8]],[[6922,3197],[8,-16]],[[6930,3181],[-3,-1]],[[6930,3181],[36,-22],[99,16],[52,-47],[15,-28],[-4,-51],[25,-21],[31,14],[22,-5],[33,-48]],[[7239,2989],[11,-20],[-1,-39]],[[7249,2930],[29,-29],[6,-49],[21,-40],[2,-40]],[[7307,2772],[-22,-50],[-24,-24],[3,-30],[-27,-40],[-28,3]],[[7209,2631],[-10,-27],[-63,10],[-21,12],[-65,-1]],[[7050,2625],[-39,-25],[-70,28],[-26,-14],[-53,0],[-38,-13],[31,-59],[31,-13],[-18,-10],[-18,15],[-29,71],[-66,-23],[-54,22]],[[6701,2604],[-29,40],[-255,338],[-30,32],[-279,82],[-893,268],[-1370,40],[-794,-497],[-765,-140],[-16,-14],[-686,-517],[-102,-209],[-240,123]],[[9526,2392],[-19,-21],[-47,-22],[-34,39],[-28,16],[-31,-3],[-33,14],[-32,-3],[-24,15],[-101,17],[-46,-10],[-32,-24],[-44,5]],[[9055,2415],[-13,69],[-31,88],[-20,23],[-46,135],[-47,30],[-12,38],[-26,4],[-91,45],[-62,20],[-82,-61],[-51,-79],[-28,-14],[-14,68],[1,81],[-32,99],[-44,27],[-191,-6],
 [-30,-27]],[[8236,2955],[-1,14],[-59,-17],[-69,-10],[-75,2],[-3,91],[-7,40],[22,45],[31,33],[29,14]],[[8104,3167],[29,-39],[22,9],[52,59],[52,-12],[34,-25],[64,54],[42,4],[32,15],[18,37],[36,10],[30,29],[55,26],[40,34],[31,2],[38,21],[28,44],[44,48],[-6,15],[20,18],[20,55],[-9,25],[27,-2],[-20,74],[0,33],[-38,46]],[[8745,3747],[41,29],[12,36],[29,32],[107,48],[32,51],[37,24],[45,49],[7,55],[24,47],[8,44],[20,19],[18,65],[26,18],[37,-16],[52,-4],[38,20],[65,54]],[[9343,4318],[6,-94],[32,-30],[-38,-76],[-50,-58],[36,-43],[-9,-24],[4,-52],[69,-40],[59,-59],[3,-76],[-17,-11],[-20,-61],[18,-52],[-24,-17],[27,-74],[28,-54],[6,-35],[-18,-15],[86,-91],[43,-25],[-18,-20],[-8,-57],[-12,-28],[5,-26],[-13,-36]],[[9538,3164],[-19,-67],[2,-20],[60,-68],[4,-28],[26,-49],[24,-10],[3,-25],[25,-39],[-24,-97],[6,-68],[-26,-32],[-8,-41],[-74,-152],[-11,-76]],[[808,4560],[-241,248],[-142,148],[40,43],[57,50],[41,73],[28,20],[83,75],[19,5],[53,50],[48,18],[65,78],[35,0],[115,70],[6,54],[33,15],[19,29],[4
 4,21],[49,40],[35,61],[-9,12],[38,21],[13,-16],[20,11],[43,51],[-1,12],[38,15],[15,35]],[[1352,5799],[114,-143],[71,-80],[25,26],[23,1],[32,-21],[25,23],[4,-17],[59,-38]],[[1705,5550],[-90,-97],[166,-210],[2,-43],[60,-53],[28,-14],[64,-58],[-7,42],[10,8],[16,-41],[58,-35]],[[2012,5049],[-2,-7]],[[2010,5042],[-48,-54]],[[1962,4988],[-38,3],[-114,-103],[-53,-153],[-39,-7]],[[1718,4728],[-22,-17],[-57,-24],[-62,-79],[-35,-21],[-45,-53]],[[1497,4534],[-37,-62],[-13,-40],[-48,-70]],[[1399,4362],[-48,-85]],[[1351,4277],[-85,34],[-10,-31]],[[1256,4280],[-20,3],[-21,27],[-30,14],[-71,52]],[[1114,4376],[-36,42],[-27,-21],[-42,-5],[-69,16],[-16,12],[-116,140]],[[8483,173],[-18,25],[22,57],[-14,44],[-69,44],[-27,49],[3,33],[-24,49],[-53,-13],[-40,27],[-104,23],[-112,-37],[-97,-61]],[[7950,413],[-41,43],[-7,27],[1,76],[-19,37],[-32,18],[-23,54],[-38,50],[-8,81],[-15,31],[-90,78],[-45,55]],[[7633,963],[106,44],[203,18],[76,32],[58,46],[51,72],[33,-2],[17,22],[75,52],[79,-18],[4,-15],[50,-16]],[[
 8385,1198],[-2,-40],[-30,-17],[-24,-75],[1,-25],[36,-5],[4,-49],[60,1],[50,23],[30,0],[23,25],[-7,19],[43,59],[136,43],[26,17],[77,-12],[53,27],[49,15],[1,110],[11,20],[56,20],[46,36],[120,52],[21,-1]],[[9165,1441],[40,25],[279,-11]],[[9484,1455],[2,-109],[65,-77],[-27,-9],[9,-33],[-39,-9],[-34,-27],[26,-119],[-8,-32],[-41,-28],[-46,2],[-22,-37],[-89,-117],[-38,-38],[-47,-6],[-23,-43],[-9,-57],[-10,-21],[-46,-20],[-20,-34],[-61,-27],[-76,9],[-17,-16],[-26,-83],[0,-56],[9,-18],[-30,-19],[-64,-97],[-42,-39],[-35,-14],[-22,-24],[-24,-2],[-26,-36],[-45,-41],[-102,-32],[-43,27]],[[9055,2415],[-53,-42],[-99,15],[-60,-16],[-78,-47],[-61,-15],[38,-21],[-6,-32],[-32,-28],[-1,-53],[28,-26],[11,-40],[-64,3],[-12,-66],[47,-24],[42,0],[14,-68],[-9,-60],[40,-30],[61,26],[59,-20]],[[8920,1871],[-13,-15],[9,-29],[-26,-68],[-62,-21],[-22,9],[-41,-12],[-30,-26],[-36,-7],[5,66],[-40,14],[-24,33],[-63,-24],[-35,-1],[-10,29],[-33,19],[-48,-10],[-88,46],[-80,26],[-55,-10],[-21,11],[-23,-21]],[[8184,1880]
 ,[-35,53]],[[8149,1933],[-20,38],[26,20],[-12,11],[0,78],[66,156],[2,36],[22,103],[-68,80],[-76,22],[-77,-7]],[[8012,2470],[15,34],[-1,40],[-30,37],[24,35],[3,26],[-19,26],[-8,57]],[[7996,2725],[20,35],[60,47],[75,77],[38,29],[38,47],[9,-5]],[[9165,1441],[-39,25]],[[9126,1466],[-3,47],[24,1],[-9,65],[-38,15],[21,58],[-13,72],[-14,15],[-58,14],[-116,118]],[[9526,2392],[82,-2],[20,11],[16,-19],[-3,-58],[25,-29],[5,-43],[43,-71],[27,-1],[60,37],[13,-31],[-15,-42],[-13,3],[-48,-23],[31,-111],[-9,-242],[-276,-316]],[[7633,963],[-33,42],[-20,47],[-24,138],[-22,40],[-76,77]],[[7458,1307],[69,68],[85,24],[-1,15],[49,14],[-2,27],[78,59],[46,22],[82,13],[67,39],[2,18],[110,70],[64,64],[11,22],[47,50],[25,0],[35,-21],[-8,22],[-43,54],[10,13]],[[9126,1466],[-64,38],[-88,11],[-33,13],[-26,-10],[-30,18],[-55,-1],[-141,-51],[-52,-64],[-62,-45],[-13,-31],[-63,-52],[-11,-52],[-66,-41],[-37,-1]],[[292,3768],[17,41],[43,118],[55,125],[22,68],[75,97],[144,166],[47,-41],[84,112],[-40,33],[69,73]],[[1114
 ,4376],[-18,-39],[-83,-131],[-90,-99],[-162,-125],[32,-38],[26,-16],[44,-43],[54,-38],[45,-51],[7,-26],[32,-15],[7,-39],[30,-16],[27,-44],[96,-26],[56,-51],[30,-13],[52,-10],[51,8],[29,-19],[10,-25],[3,-47],[12,-13],[15,-52],[0,-78],[7,-18]],[[1426,3312],[-4,-30]],[[1422,3282],[-36,-24],[-52,-7],[-17,22],[5,53],[-46,-2],[-47,-15],[-4,10],[-36,-60],[-49,-37]],[[1140,3222],[-72,-18],[-24,39],[-2,43],[-28,46],[-20,11]],[[994,3343],[-20,19],[-42,-1],[-3,21],[51,1],[24,27],[-29,28],[-51,2],[-43,29],[-37,-18],[-18,21],[-26,3],[3,23],[-59,0],[-114,43],[-29,-17],[-22,2],[-40,-17],[-78,18],[-3,56],[-20,52],[-30,5],[-88,33],[-15,28],[-13,67]],[[9343,4318],[93,69],[84,101],[72,-60],[2,-22],[56,-88],[55,60],[29,49],[36,43],[28,51],[57,22],[43,35],[0,-93],[15,-10],[59,-101],[-10,-54],[18,-30],[18,-117],[-1,-52],[-13,-34],[11,-20],[-32,-96],[2,-35],[-32,-66],[-35,-21],[-40,-9],[28,-44],[3,-40],[-102,-15],[7,-117],[19,-63],[30,-74],[-17,-52],[0,-44],[-21,-17],[50,-44],[-55,-29],[10,-27],[-16,-66],
 [-22,-28],[-80,-30],[-68,-5],[-24,21],[-62,-2]],[[3188,7728],[-30,135],[83,43],[-10,102],[32,109],[143,231],[46,-7],[8,-37],[35,-9],[96,-8],[270,99],[76,21],[36,26]],[[3973,8433],[67,-54]],[[4040,8379],[-27,-20],[-54,-66],[-2,-31],[-21,-29],[-12,-76],[17,0],[67,-54],[-1,-31],[12,-65],[69,-73],[12,-25],[36,0],[74,23]],[[4210,7932],[-28,-49],[4,-21],[-66,-65],[-116,6],[-30,-15]],[[3974,7788],[-27,7],[-97,-34],[-107,-31],[-91,-46],[-19,-21],[-131,-68],[-42,-10],[-36,21],[-84,124],[-41,69],[-37,34],[-7,-19],[-47,-46],[-20,-40]],[[5962,7800],[-117,-57],[-48,-18],[-28,41],[-45,0],[-21,-11],[-45,11],[-10,23],[-23,0],[-67,-20],[16,-9]],[[5574,7760],[-45,-24],[-144,-61],[-89,-45],[-13,-16],[-60,-23],[-102,-62],[-49,-17]],[[5072,7512],[-53,-16],[-17,16],[-40,7],[-26,23],[16,18],[-25,36],[-23,-8],[-33,43]],[[4871,7631],[-4,3]],[[4867,7634],[14,6],[-9,66],[11,31],[85,53],[88,73],[12,17],[44,13],[74,43],[32,7],[53,49]],[[5271,7992],[37,32],[6,25]],[[5314,8049],[48,21],[0,11],[76,47]],[[5438,8128
 ],[34,31],[23,40],[55,71]],[[5550,8270],[34,20]],[[5584,8290],[35,25],[50,11],[29,42],[41,25],[6,17],[65,21],[31,26],[32,45],[6,58]],[[5879,8560],[204,-224],[-318,-313],[197,-223]],[[4421,4162],[-19,41]],[[4402,4203],[23,1],[-9,18],[9,42],[21,24]],[[4446,4288],[49,-43],[41,-11],[17,15]],[[4553,4249],[14,6],[3,47],[29,-5],[-2,30],[47,55],[-21,56]],[[4623,4438],[13,6],[-3,57],[9,66]],[[4642,4567],[19,-13],[45,26]],[[4706,4580],[16,-29],[4,-40],[20,-13],[6,-43],[17,0],[11,-30],[21,33],[45,1],[23,25],[26,0],[8,28],[29,10]],[[4932,4522],[52,-35],[21,-26],[19,10],[86,-49],[51,-13],[27,49],[6,32],[58,58],[-5,21],[20,42],[-14,32],[-31,-13],[-45,16],[-57,67],[23,44]],[[5143,4757],[-14,13]],[[5129,4770],[-11,-1]],[[5118,4769],[-2,-2]],[[5116,4767],[-63,-51],[1,-27]],[[5054,4689],[-33,18],[5,34],[19,34],[-11,70],[7,24],[-20,13]],[[5021,4882],[-5,40],[-29,71],[-8,42]],[[4979,5035],[-35,18]],[[4944,5053],[-1,0]],[[4943,5053],[-9,13],[55,47]],[[4989,5113],[33,2],[25,24],[-20,38]],[[5027,5177],[25
 ,42],[18,-5]],[[5070,5214],[2,0]],[[5072,5214],[11,-2]],[[5083,5212],[14,-9]],[[5097,5203],[4,-6]],[[5101,5197],[18,-46],[36,8],[8,-44],[20,13],[36,1]],[[5219,5129],[18,-11],[-5,-38],[37,-15],[13,-25],[102,-93],[52,3]],[[5436,4950],[121,-13],[-14,-28],[-10,-71]],[[5533,4838],[-43,-80],[-27,-19],[1,-18],[-24,-58]],[[5440,4663],[-2,-6]],[[5438,4657],[-1,-7]],[[5437,4650],[-20,-44]],[[5417,4606],[-30,-35],[-8,-31]],[[5379,4540],[-16,-75]],[[5363,4465],[-19,-1],[-37,27],[-55,-84],[-46,-14],[-17,-29],[-36,-6],[-27,-20],[0,-48],[-13,-24],[-32,1],[-35,-39],[-9,-35],[-48,-30],[-3,-60],[-74,-6],[-47,-28],[21,-65]],[[1705,5550],[94,64],[303,241],[165,180],[-23,31]],[[2244,6066],[-39,26],[24,40],[63,76],[-5,14],[62,64]],[[2349,6286],[112,-17]],[[2461,6269],[-1,-75],[-9,-58],[5,-56]],[[2456,6080],[-17,-65],[1,-127],[11,-63],[-7,-38],[-21,-32],[-1,-26],[20,-81]],[[2442,5648],[-24,13],[-16,-22],[-69,-38],[-53,-84]],[[2280,5517],[-37,-60],[69,-30],[-118,-118],[-71,-50],[-126,-120],[38,-46],[-23,-4
 4]],[[1352,5799],[40,14],[31,23],[45,78],[46,38],[36,41],[93,78],[119,111],[26,29],[-13,19],[4,31],[83,60],[27,40],[126,43],[86,56]],[[2101,6460],[6,-8],[173,-111],[69,-55]],[[6166,6260],[-3,23],[-42,2],[-61,48],[-28,-57],[10,-10],[-8,-44],[10,-18],[-25,-3],[-37,-40],[-50,-40],[-30,33],[-59,-2],[-35,-23],[-3,-44],[65,-47],[-10,-31],[50,-38],[-13,-50],[13,-35],[-23,2]],[[5887,5886],[-55,7],[-21,11],[-4,23],[-38,20],[-62,4],[-58,17],[-16,-18],[-51,19],[-60,-50],[16,-24],[-27,-12],[-16,-49],[-31,14]],[[5464,5848],[0,27],[-29,0],[-53,34],[1,40],[13,22],[-36,59]],[[5360,6030],[23,45],[34,22]],[[5417,6097],[27,-30],[35,11],[22,-57],[-12,-28],[33,20],[28,-4],[-1,27],[38,49],[22,-11],[17,55],[35,9],[25,-9],[5,25],[-38,-2],[-7,25],[-12,-25],[-15,7],[23,28],[-15,62],[-14,34],[-33,19],[-2,43],[-37,33]],[[5541,6378],[-1,0]],[[5540,6378],[16,43]],[[5556,6421],[14,11],[44,-23],[24,45],[65,27],[32,41],[-24,26],[11,27],[-72,8],[-15,15],[14,50]],[[5649,6648],[26,47],[-15,18],[6,61]],[[5666,6774],[22
 ,-15],[0,34],[14,13],[30,-3],[28,58],[19,19]],[[5779,6880],[29,-52]],[[5808,6828],[25,-46],[51,-27],[21,-37],[-14,-15],[31,-57],[70,41],[56,67],[-4,33],[44,46],[20,37]],[[6108,6870],[43,8],[34,-5]],[[6185,6873],[-22,-37],[1,-22],[-28,-20],[5,-17],[39,-31],[23,9],[51,-1],[36,8]],[[6290,6762],[-111,-132],[-28,-41],[-34,-28],[-17,-50],[3,-36],[60,-36],[56,52],[22,-33]],[[6241,6458],[18,-18],[33,-2],[-30,-30],[17,-20]],[[6279,6388],[-18,-14],[-65,-86],[-30,-28]],[[6863,3241],[22,30],[38,34],[7,36]],[[6930,3341],[18,23],[28,-6],[45,16],[55,54],[59,-9],[29,5],[43,30],[49,1],[12,12],[13,77],[-12,22],[6,71],[102,37],[33,-5],[77,8],[4,-11],[70,29],[2,21],[25,30],[25,-10],[2,-31],[-14,-43],[8,-32],[30,-36],[49,-17],[24,2]],[[7712,3579],[7,-35],[0,-113],[17,-31],[71,-72],[23,-54],[-68,-113],[-2,-22]],[[7760,3139],[-56,-63],[-46,21],[-98,-29],[-22,-20],[-33,-4],[-33,-26],[-25,6],[-59,-37],[-52,-17],[-87,-40]],[[7996,2725],[-56,-12],[-38,-30],[-21,-43],[-17,-13],[-15,17],[-39,-58],[-83,-77],[-80
 ,-23],[-7,-16],[-39,5],[-58,-33],[-30,-52],[-59,-54],[-19,2],[-14,-22],[-48,-19]],[[7373,2297],[-47,-6],[-67,19]],[[7259,2310],[24,92],[4,75],[-7,13]],[[7280,2490],[-27,46],[-8,42],[-36,53]],[[7307,2772],[33,-8],[29,11],[49,59],[49,26],[37,44],[152,111],[37,47],[40,-8],[62,36],[31,2],[43,29],[55,13],[65,6],[98,63]],[[8087,3203],[17,-36]],[[5335,8688],[-103,-48]],[[5232,8640],[-3,10],[-72,-22],[-43,-29],[-43,-7]],[[5071,8592],[-27,10],[-87,59],[-79,95],[-43,79]],[[4835,8835],[130,181],[15,56],[179,122],[175,79],[220,95],[44,16],[-5,-35],[28,-28],[-24,-66],[-30,-124],[2,-52],[-10,-70],[37,-9],[46,-44],[113,-90],[-19,-128]],[[5736,8738],[-41,25],[-28,-6],[-75,27],[-45,4],[-65,-22],[-20,10],[-70,-18],[-47,-22],[-29,14],[-15,-10],[34,-52]],[[2280,5517],[74,20],[102,9],[74,-21],[82,-10],[74,-34],[59,0],[21,-37],[47,-46],[-4,-10],[67,-50],[-29,-21],[45,-59],[35,-24]],[[2927,5234],[10,-20]],[[2937,5214],[1,-45],[-26,-22],[-15,-34],[-1,-57],[-30,-26],[-32,-44],[-77,-22]],[[2757,4964],[-47,40
 ],[-48,27],[-12,22],[-88,37],[-61,14],[-71,-2],[-69,-12],[-224,9],[-64,-36]],[[2073,5063],[-63,-21]],[[1962,4988],[-16,-22],[70,-35],[99,-17],[20,2],[-42,-61],[148,-181],[28,-30],[98,-70],[37,45],[25,-25],[12,11],[29,-22]],[[2470,4583],[0,1]],[[2470,4584],[0,-1]],[[2470,4583],[-9,-22],[70,-51],[36,-38],[62,-36]],[[2629,4436],[-26,-11]],[[2603,4425],[-50,-33],[12,-11],[-52,-42],[13,-12],[-8,-30],[11,-21],[-25,-38],[0,-35]],[[2504,4203],[-51,0],[-18,-20]],[[2435,4183],[-36,22],[-62,-3],[-41,12],[-59,37],[-44,60],[-46,37],[-21,50]],[[2126,4398],[-25,16],[-86,2],[-9,33],[-19,16],[-5,26],[-34,37],[-28,12],[-27,71],[-13,14],[-83,7],[6,11],[-41,50],[-44,35]],[[7167,7085],[-3,-19],[-27,13],[-47,6],[-17,21],[-35,-21],[-16,-24]],[[7022,7061],[-11,-12],[-49,44],[-34,-50]],[[6928,7043],[-17,26],[-36,26],[12,25],[-63,33],[-35,51],[-18,13],[-36,-20],[11,53],[-25,20],[-8,35],[-41,21],[8,26],[-27,14],[-21,-58],[19,4],[-42,-80],[-61,-45],[-71,-82],[19,-7],[-29,-44],[-41,-41],[-10,-33],[-50,-47],[10,
 -30],[-38,-6],[-49,-29],[-17,19],[-50,-35],[-12,29],[-25,-8]],[[6108,6870],[-8,6],[14,124],[11,22]],[[6125,7022],[9,22],[48,40],[37,52],[-25,33],[27,31]],[[6221,7200],[20,9],[55,56],[44,51],[-3,14],[24,31],[37,20],[-1,15]],[[6397,7396],[42,-31],[19,-29],[20,46],[41,-26],[28,19],[28,61],[30,-28],[44,26],[20,29],[-13,11],[83,48],[39,-46],[-15,-14],[24,-33],[65,-23],[57,-44],[72,37],[51,-13],[8,23],[39,12],[-5,19],[50,-1],[19,28],[30,-51]],[[7173,7416],[-26,-54],[32,-17],[-10,-40],[43,-22],[-17,-20],[25,-28],[-20,-32]],[[7200,7203],[-42,-47],[-10,-21],[20,-15],[-13,-17],[12,-18]],[[7600,9272],[-266,306],[618,421],[251,-71],[26,-9]],[[8229,9919],[24,-19],[-19,-77],[-31,-51],[-32,-31],[-5,-19],[-33,-38],[-19,4],[-14,-31],[-35,-7],[-19,-19],[-61,-38],[4,-10],[-33,-23],[-21,5],[-49,-31],[-17,-28],[-52,-19],[-37,-34],[11,-18]],[[7791,9435],[-38,-27],[-56,-65],[-31,-2],[-66,-69]],[[6794,4441],[-33,-43],[-6,-40],[-11,3],[-4,-48],[-26,-4],[-2,29],[13,32],[-26,11],[-15,41],[-19,20],[-103,-42],[
 -82,-8],[-49,7],[-4,17],[25,42],[-18,11],[-6,-25],[-55,-65],[-9,-57],[-42,-73]],[[6322,4249],[-10,7]],[[6312,4256],[-38,32],[-22,7],[19,22],[57,162],[-22,19],[-58,28]],[[6248,4526],[-57,27],[-57,55],[8,19]],[[6142,4627],[-7,24],[64,81],[-15,19],[33,66],[-15,8],[16,27]],[[6218,4852],[26,9],[21,39],[24,-5],[14,16],[31,-8],[-13,36],[22,35],[-1,22],[55,-25],[28,-78],[24,6],[20,-20],[47,-15],[45,49],[20,41],[50,12],[22,-30],[13,11],[108,-60],[19,-26],[32,-69]],[[6825,4792],[-4,-21],[-24,-3],[-36,-31],[14,-24],[25,-10],[-46,-33],[-5,-20],[20,-43],[-23,-55],[24,16],[7,-65],[17,-62]],[[174,3248],[15,15],[7,39],[-16,45],[-49,38],[-34,39],[22,50],[-29,29],[4,46],[-9,25],[35,24],[74,77],[98,93]],[[994,3343],[-39,-37],[-57,8],[-13,10],[-19,-29],[57,-19],[20,-16],[21,-45]],[[964,3215],[-32,-68],[-31,-38],[39,-1],[37,-43],[5,-50]],[[982,3015],[-58,30],[-43,-1],[-40,38],[-83,48],[-24,7],[-26,25],[-51,31],[-59,1],[-27,23],[-129,27],[-9,-9],[-59,64],[-34,25],[-48,22],[-31,-27],[-50,-28],[-6,-33],[-3
 1,-10]],[[7405,7436],[-11,57],[-23,14],[-43,-39],[-20,-2],[-45,-30],[-30,13],[4,56],[-17,2]],[[7220,7507],[45,127],[34,14],[14,39],[24,16],[11,34],[-34,45],[-43,-5],[-20,24],[-44,-39],[9,-10],[-37,-44],[-54,32],[50,86],[-27,66],[0,25],[-22,66],[18,44],[3,70],[24,57],[86,116],[86,64],[-6,8]],[[7337,8342],[87,70],[35,2],[49,24]],[[7508,8438],[5,-53],[37,-85],[-27,-21],[-75,-155],[15,-25],[55,-60],[-36,-43],[16,-5],[25,-38],[34,-17],[-10,-20],[25,-8]],[[7572,7908],[17,-19],[-31,-35],[22,-35],[-13,-12],[58,-72],[-11,-14],[27,-22],[-6,-19],[-47,-44],[-37,-53],[8,-9],[0,-65],[-46,-26],[-12,-33],[-37,24],[-33,-12],[-26,-26]],[[8087,3203],[-6,32],[-34,4],[-2,15]],[[8045,3254],[21,81],[9,59],[-7,12],[55,59],[15,33],[85,93],[46,27],[59,66],[69,42],[17,25],[40,23],[54,-34],[45,30],[94,-23],[78,18],[20,-18]],[[2101,6460],[70,46],[82,47],[17,-3],[119,46],[69,53],[22,5],[16,42],[29,19],[24,41],[39,-16],[17,16],[42,12],[-3,63],[-30,0],[28,18],[36,6],[32,-9],[50,16]],[[2760,6862],[45,-18],[35,-76],
 [19,-25],[66,-2],[21,-44],[56,8],[41,28],[18,-10],[16,19],[55,14]],[[3132,6756],[46,-47],[15,15]],[[3193,6724],[24,-30],[-70,-87],[-206,-78],[-19,-14]],[[2922,6515],[-48,-39],[-66,-43],[-66,37],[-13,-42],[-19,-10],[-41,10],[-50,-9],[-56,-46],[3,-18],[-24,-26],[-81,-60]],[[6205,3678],[-17,-4],[-20,23],[-21,52],[-33,47]],[[6114,3796],[-8,16],[-45,12],[-27,-4],[-35,22],[-2,-79],[-15,17],[-26,0],[-9,-24],[-45,-8],[60,-37],[19,-22],[19,1],[13,-23]],[[6013,3667],[-13,-16],[17,-14],[9,-32]],[[5801,3760],[23,62],[2,119],[17,59]],[[5843,4000],[14,53],[47,127],[80,43],[30,-2],[38,36],[39,81],[47,44],[52,91],[58,53]],[[6322,4249],[-13,-10],[37,-47],[24,-61],[38,-30],[16,-25]],[[6424,4076],[-53,-18],[-15,-14],[-2,-49],[-44,-60],[-24,-17],[-10,-24],[1,-63],[15,-13],[-17,-32],[12,-42],[-55,-18],[-29,11],[-12,-36],[14,-23]],[[3330,7385],[-4,55],[58,126],[-196,162]],[[3974,7788],[16,-46],[77,-26],[10,-22],[32,-22],[48,-66]],[[4157,7606],[12,-14],[-27,-60],[10,-10],[-29,-36],[-15,8],[-8,-24],[-31,-3
 4],[-32,-6],[-20,-41]],[[4017,7389],[-30,-14],[-16,11],[-34,-36],[1,-29],[-43,31],[-17,-25],[-26,19],[-36,-51],[-74,29],[-34,22],[-72,30],[-83,19],[-34,14],[-30,-29],[-14,16],[-52,-42],[-41,13],[4,-14],[-30,-51],[-9,0]],[[3347,7302],[-13,35],[-4,48]],[[8012,2470],[-11,-27],[-8,-54],[-23,-32],[-69,-41],[-27,1],[-14,-20],[9,-60],[23,-43],[-7,-12],[3,-87],[-20,-48],[-35,-4],[-49,-54]],[[7784,1989],[-3,44],[-148,-95],[-39,-58],[-27,10],[-30,-26],[-29,9],[-38,102],[-14,65],[19,30],[37,16],[-14,35],[3,28],[-45,8],[-17,13]],[[7439,2170],[47,47],[-13,14],[-38,-11],[-23,33],[10,29],[-28,18],[-21,-3]],[[8006,8777],[-180,186],[-25,41],[-30,30],[27,31],[-22,21],[47,57],[-10,24],[-67,42],[-33,-29],[-22,1],[-20,26],[-36,15],[-35,50]],[[7791,9435],[77,-102],[60,-43],[18,8]],[[7946,9298],[0,1]],[[7946,9299],[63,43]],[[8009,9342],[63,-44],[13,-23],[48,41],[8,-12],[28,17],[-21,35],[-23,17],[225,124],[-5,8],[82,51]],[[8427,9556],[10,-31],[5,-76],[-29,-54],[20,-29]],[[8433,9366],[-89,-55],[3,-15],[-66,
 -68],[-30,-6],[-8,-18],[-26,-2],[-2,-30],[52,-133]],[[8267,9039],[-42,-40],[-39,-51],[-7,10],[-35,-39],[-4,7],[-45,-51],[-12,15],[-8,-47],[-30,17],[-39,-83]],[[1464,3283],[-22,5]],[[1442,3288],[-16,24]],[[1256,4280],[-22,-38],[-7,-45],[-63,-70],[-26,-37],[36,-77],[-9,-18],[30,-22]],[[1195,3973],[-24,-48],[38,-52],[7,3],[113,-152],[45,-8],[-3,-27],[43,-33],[42,-15],[12,-31],[34,-42],[11,-37],[47,-39]],[[1560,3492],[-6,-39],[-20,-32],[-1,-53],[-67,-54],[-2,-31]],[[2456,6080],[63,32],[62,-45],[19,-35],[71,20],[62,33],[62,17]],[[2795,6102],[60,13]],[[2855,6115],[31,-29],[63,-29],[215,-137]],[[3164,5920],[-42,-86]],[[3122,5834],[-77,-106],[-68,-75]],[[2977,5653],[-61,61],[-75,-3],[-89,-27],[-237,39],[-2,-9],[-71,-66]],[[8267,9039],[37,-38],[43,2],[34,-21]],[[8381,8982],[17,-40],[22,-79],[16,-19],[31,-6],[32,9],[14,20],[36,-14]],[[8549,8853],[4,-17],[40,3],[-88,-83],[-39,-18],[-23,-29],[-2,-52],[39,13],[4,-25],[-17,-4],[38,-23],[15,-38],[-36,-59],[-57,-56],[-40,-65],[-18,-43],[-34,-9],[-3
 2,-73],[-20,-26],[-29,18],[-18,-35],[-35,40],[-10,-11],[-24,38],[6,23],[37,33],[-8,21],[46,24],[7,20],[-23,13],[-57,58],[37,73],[13,12],[-30,35],[-13,-6],[-43,17],[-4,14],[-31,-14],[-43,52],[-7,-50],[-12,9],[-19,-29],[-17,2],[-22,-29],[-64,17],[-47,58],[51,36],[82,89]],[[2146,3961],[-16,-1],[-14,33],[-18,11],[-52,2],[-47,-6],[-21,22],[-44,-18],[2,-31],[-29,-48]],[[1907,3925],[-3,17],[-46,22],[-26,27],[28,34],[-67,48]],[[1793,4073],[84,47],[7,68],[-75,35],[24,50],[29,44],[-36,24],[-1,25],[-24,24],[-50,11],[-22,46],[-57,2],[-24,13],[-12,25],[-48,25],[-23,22],[-68,0]],[[2126,4398],[-53,-67],[41,-76],[43,-93],[45,-33],[32,-39],[85,-68]],[[2319,4022],[13,-9],[-27,-24]],[[2305,3989],[-41,-31]],[[2264,3958],[-34,-16],[-84,19]],[[8149,1933],[-16,-30],[-106,-106],[-71,-47],[-194,-70],[-11,-7],[-48,22],[-8,33],[8,56]],[[7703,1784],[-2,14],[65,106],[18,85]],[[5843,4000],[-124,67],[-144,136]],[[5575,4203],[31,8],[-3,14],[52,47],[23,11],[21,34],[60,45],[-7,4],[30,45],[2,40],[43,39],[-16,11],[20,
 15],[-28,51],[27,24],[18,30],[-57,49],[-54,31],[-4,25],[21,43],[26,-8],[9,20]],[[5789,4781],[75,-53]],[[5864,4728],[2,-8]],[[5866,4720],[22,35],[48,-26],[82,-32]],[[6018,4697],[80,-64],[44,-6]],[[5477,5165],[9,20],[-46,51],[-9,30]],[[5431,5266],[14,35],[-4,29],[-43,39],[4,28],[-13,30],[15,29],[-9,16],[-16,96]],[[5379,5568],[-1,51],[55,55],[25,85],[-32,35],[38,54]],[[5887,5886],[7,-38],[15,-18]],[[5909,5830],[-27,-34],[-40,0],[-51,-83],[-39,-38]],[[5752,5675],[-19,0],[3,-44]],[[5736,5631],[-23,-44]],[[5713,5587],[8,-20],[-11,-90]],[[5710,5477],[-41,-80],[-44,-56],[-24,3],[-27,-39],[-53,-29],[-20,-45],[10,-32],[-11,-42],[-23,8]],[[4040,8379],[27,-25],[41,17],[35,32],[15,-16],[34,36],[72,39],[-14,13],[147,106]],[[4397,8581],[7,7],[40,-60],[-21,-23]],[[4423,8505],[-19,-34],[8,-15],[-25,-20],[13,-45],[33,18],[20,-32],[12,2],[23,-33],[-42,-54],[22,-23],[51,-9],[5,-30],[-34,-25]],[[4490,8205],[-92,-64]],[[4398,8141],[-1,10],[-98,-58],[1,-24],[-21,-46],[-29,-32],[-27,-50]],[[4223,7941],[-13
 ,-9]],[[786,2484],[-9,-19],[-61,-1],[-8,12],[-117,129],[-30,21],[-150,123],[5,-39],[-40,35],[-28,-1],[-45,66],[-20,54],[-128,43],[-125,35],[-30,20],[59,112],[27,36],[8,47]],[[94,3157],[80,-54],[32,16],[25,27],[53,-37],[-15,-28],[31,-17]],[[300,3064],[116,-8],[65,-52],[83,-84],[14,-63],[119,-96],[22,-47],[22,29],[13,-18],[25,19],[22,-41],[88,-100],[-20,-18]],[[869,2585],[-21,-7],[-34,19],[-12,-67],[-23,-37],[7,-9]],[[7458,1307],[-53,29],[-45,39],[-16,42],[0,51],[-14,55],[-20,119],[7,49],[-4,45]],[[7313,1736],[30,-15],[41,-6],[74,5],[97,18],[22,-19],[23,4],[103,61]],[[2977,5653],[-8,-27],[92,-41],[53,-40],[-39,-14],[37,-26],[-33,-22],[63,-50],[-4,-24],[34,-15]],[[3172,5394],[-8,-25],[27,-25],[-15,-17]],[[3176,5327],[-29,-15],[-23,3]],[[3124,5315],[-43,-44]],[[3081,5271],[-36,32],[-32,-25],[-18,0],[-12,-36],[-27,15],[-29,-23]],[[6930,3341],[-32,20],[-2,30],[-24,30],[-18,48],[-55,-10]],[[6799,3459],[12,13],[77,48],[47,16],[18,-9],[42,46],[-12,11],[-17,122],[-9,-8],[-9,43],[9,10],[109,-1
 ],[8,42],[20,-10],[43,-2],[61,-15],[66,6],[7,15],[69,32],[32,35],[22,1],[28,21],[77,12],[68,-29],[13,17]],[[7580,3875],[30,-45],[66,-48],[-8,-64],[27,-74],[45,-38],[-28,-27]],[[5540,4160],[-31,10],[21,59],[-32,46],[24,24],[-34,19],[-36,34],[24,11],[-8,30]],[[5468,4393],[-35,11],[-7,21],[-30,-6]],[[5396,4419],[-9,27],[-24,19]],[[5533,4838],[67,16],[35,-50],[26,33],[75,6],[5,8]],[[5741,4851],[48,-70]],[[5575,4203],[-35,-43]],[[8229,9919],[135,-40],[72,-51],[22,-27],[-23,-29],[8,-25],[-28,-17],[15,-29],[-18,-12],[12,-25],[-13,-7],[18,-47],[-25,-6],[23,-48]],[[6444,6114],[-58,-39],[-6,-30],[-40,-42],[-32,-14],[-69,-80],[-32,-73],[10,-47]],[[6217,5789],[-17,-7],[-16,40],[-19,2],[-19,-36]],[[6146,5788],[-23,26],[-20,4],[0,63],[-21,18]],[[6082,5899],[-37,32],[-31,-4],[-45,-38],[-15,-78]],[[5954,5811],[-45,19]],[[6166,6260],[25,-27],[58,-16],[33,-23],[43,10],[49,30],[78,93]],[[6452,6327],[24,-13]],[[6476,6314],[50,-39],[25,-33],[1,-26]],[[6552,6216],[-32,-24],[-32,-49],[-27,4],[-17,-33]],[[
 6743,3464],[-22,16],[-36,-9],[-25,53],[12,39],[42,75],[-12,12]],[[6702,3650],[59,37],[16,-3],[10,32],[59,40],[13,38],[32,37],[12,34],[18,10],[20,46],[86,83],[-4,12]],[[7023,4016],[34,33],[11,36],[76,-12],[55,-23],[27,-22],[44,-14],[20,-38],[28,1],[22,-39],[22,-9],[98,4],[21,16],[33,-9],[18,-32],[48,-33]],[[6799,3459],[-27,16],[-29,-11]],[[4637,8775],[68,28],[104,-4],[26,36]],[[5071,8592],[-92,-3],[56,-22],[16,-39],[-12,-9],[11,-48],[43,34],[19,-7],[-21,-39],[-12,-61],[12,-81],[-25,-2],[-15,-50]],[[5051,8265],[-27,-5],[-8,-19],[-14,41],[-94,-15],[6,-47],[-20,-57]],[[4894,8163],[-15,20],[-44,6],[-27,-20],[-40,28],[-22,-10],[-31,96],[12,16],[-9,29]],[[4718,8328],[44,9],[-16,33],[55,24],[13,13],[-5,31],[-25,-4],[-18,29],[-9,42],[52,21],[-21,46],[-74,-43],[-31,6],[-20,34],[29,19],[-16,39],[-4,39],[-48,48],[-1,34],[14,27]],[[8483,173],[-62,-21],[-42,-43],[-25,-3],[-36,-34],[-29,-7],[-39,-28],[-90,-37],[-13,35],[-21,21],[-35,77],[-37,47],[-65,41],[-14,27],[-25,165]],[[5962,7800],[89,-90]],
 [[6051,7710],[-32,-33],[5,-17],[-39,-43],[-29,-17],[-15,-39],[-37,-6],[-39,-18],[-54,-44],[-12,-37],[21,-20],[19,13],[24,-20],[-13,-9]],[[5850,7420],[-36,-10],[-42,-56],[-9,1]],[[5763,7355],[-36,-38],[-26,-7]],[[5701,7310],[-74,35],[-12,-6]],[[5615,7339],[-1,28],[-38,5],[-64,-42],[-22,11]],[[5490,7341],[9,53],[-16,46],[-39,1]],[[5444,7441],[3,46],[-22,5],[23,30],[0,33]],[[5448,7555],[13,18]],[[5461,7573],[14,33],[28,24],[21,-7],[31,27]],[[5555,7650],[42,37],[-23,73]],[[5072,7512],[24,-42],[29,-25],[-45,-27],[24,-3],[15,-36],[1,-31],[32,20]],[[5152,7368],[8,-23]],[[5160,7345],[-68,-38],[-28,-1],[-83,-98],[35,-18],[-24,-43]],[[4992,7147],[-65,-78],[-20,0],[6,-22],[-4,-65]],[[4909,6982],[-37,-57]],[[4872,6925],[-27,-2],[16,58],[-35,8],[3,46],[-28,30],[17,11],[-17,21],[53,24],[6,28],[-23,41],[-25,6],[-13,-17],[-36,47],[-85,-80]],[[4678,7146],[-16,-16],[-31,64]],[[4631,7194],[-28,58],[35,23],[4,24],[88,43],[13,15],[-33,60],[3,32]],[[4713,7449],[33,6],[-15,21],[53,34],[-20,36],[81,72],[26
 ,13]],[[3534,4245],[-51,80],[-11,2]],[[3472,4327],[11,36],[-12,33],[9,14],[-14,27],[-13,77],[-40,15],[-41,-26],[-16,26],[-33,0]],[[3323,4529],[-12,35],[-13,1],[-12,47]],[[3286,4612],[7,47],[-26,40]],[[3267,4699],[10,14]],[[3277,4713],[15,-12],[2,34],[32,18],[46,48]],[[3372,4801],[7,-18],[43,-15],[4,14],[45,-9],[9,-12],[76,-46],[-4,-15],[34,-27],[21,1],[-4,-33],[34,-13],[16,82]],[[3653,4710],[28,-7]],[[3681,4703],[17,-26],[-9,-34],[43,-7],[13,-14],[-18,-48],[22,-23]],[[3749,4551],[-37,-69],[44,-31]],[[3756,4451],[-26,-115],[15,-5],[-13,-54],[19,-8],[5,-30]],[[3756,4239],[-27,-8],[-11,17],[-51,-16],[-10,11],[-56,-20],[-54,-7],[-13,29]],[[2922,6515],[19,-14],[47,4],[52,38],[37,-65],[30,15],[14,-41],[22,-19]],[[3143,6433],[-39,-8],[-6,-13]],[[3098,6412],[-1,-34],[-33,1],[-49,-36],[-61,-5],[-18,-13],[-44,12],[-41,-63],[-9,-28],[14,-11],[-38,-48],[-23,-85]],[[2756,4910],[59,44],[-3,-22],[23,-33],[47,4],[9,-24],[27,-1],[18,-18],[75,-39],[97,-13],[34,-19]],[[3142,4789],[14,-13],[-11,-46],[4
 5,-7],[26,-21],[31,14],[-1,-20]],[[3246,4696],[8,-16],[-7,-70],[-24,-34],[15,-14]],[[3238,4562],[-12,-24],[-43,24],[-17,-35],[-18,5],[-22,-20],[12,-22],[6,-48],[-29,-29]],[[3115,4413],[-41,-49],[-15,11],[-31,-21]],[[3028,4354],[-4,45],[-50,4],[-66,44],[-50,13]],[[2858,4460],[18,111],[-16,36],[-73,36],[-13,-1],[5,53],[32,126],[-12,37],[-33,17]],[[2766,4875],[-10,35]],[[94,3157],[80,91]],[[982,3015],[19,-14],[52,-98],[66,-67]],[[1119,2836],[-32,-32],[-9,-24],[-35,3],[-35,-12]],[[1008,2771],[-93,30],[-21,-14],[-37,47],[-44,133],[-30,37],[-56,2],[-42,29],[-27,30],[-37,17],[-36,-16],[-24,21],[-22,-16],[-57,27],[-49,31],[-17,-5],[-19,27],[-41,35],[-38,-70],[-18,-52]],[[1793,4073],[-71,-59],[-34,-51],[-16,17],[-82,41],[-10,31],[-27,34],[-8,38],[-22,36],[3,46],[-22,74],[-14,25],[9,29],[-63,22],[-37,6]],[[7313,1736],[-22,65],[-74,96],[-31,16],[-103,-13],[-32,1],[-41,25]],[[7010,1926],[122,87]],[[7132,2013],[38,-7],[146,32],[19,1],[-11,35],[57,24],[58,72]],[[873,1427],[28,42],[14,-3],[58,81]]
 ,[[973,1547],[44,73]],[[1017,1620],[17,33],[46,35],[38,74],[13,43]],[[1131,1805],[27,75],[-2,43],[35,49]],[[1191,1972],[213,-107],[-111,-232],[-181,-340],[-239,134]],[[7508,8438],[100,49],[22,-3]],[[7630,8484],[39,24]],[[7669,8508],[28,18],[31,-45],[31,14]],[[7759,8495],[-28,-73],[31,-31],[-24,-38],[12,-21],[-15,-43],[25,-21],[8,-30],[25,11],[36,-40],[-24,-43],[-23,-3],[32,-33],[-8,-31],[52,-19],[0,-35],[-23,-28],[0,-22],[-35,-36],[-6,-19],[-83,14],[-17,21],[-25,1],[-15,28],[-24,15],[-35,-53],[-23,-58]],[[3904,6800],[-7,18],[25,72],[18,-1],[15,40]],[[3955,6929],[6,66],[43,7],[12,27],[25,17],[41,-19],[37,-28],[18,-29],[69,49],[60,-92],[122,83]],[[4388,7010],[24,-16]],[[4412,6994],[-37,-25]],[[4375,6969],[-38,-40]],[[4337,6929],[-41,-83],[-28,-33],[21,-5],[-29,-39],[-69,-109],[-39,24],[-12,-25],[-69,-65],[-7,-21],[-16,-156]],[[4048,6417],[-29,5],[0,22],[-38,25],[-52,56]],[[3929,6525],[7,18],[-35,9],[19,61],[8,59],[-6,29],[13,21],[3,60],[-27,-4],[-7,22]],[[1351,4277],[-18,-34],[47,-117
 ],[53,-74],[12,-43],[28,-31],[34,-9],[83,-35],[21,-24],[43,-129],[74,-6],[-8,-31]],[[1720,3744],[-33,9],[-49,-25],[-20,-21],[-42,-9]],[[1576,3698],[-2,-1]],[[1574,3697],[-6,35],[-43,10],[-26,21],[-43,0],[-37,-23],[-125,42],[-51,106],[-48,85]],[[5160,5521],[-18,-38],[-46,42],[-64,33],[-11,-24],[-38,29],[-1,12]],[[4982,5575],[8,46],[-25,10],[63,77],[32,61],[-32,17]],[[5028,5786],[24,22],[-9,53],[31,39]],[[5074,5900],[40,36],[-1,36],[55,5],[30,-17],[-3,-18],[61,-38],[22,4],[20,63],[32,41],[30,18]],[[5379,5568],[-30,10],[12,20],[-44,10],[-98,56],[-18,-31],[-15,6],[-33,-36],[10,-23],[-21,-25],[18,-34]],[[5550,8270],[-18,45],[-36,34],[-27,59],[-22,-11],[-11,33],[-18,13],[-32,105],[-35,4],[-11,28],[-16,-12],[-27,10],[-25,-7]],[[5272,8571],[-27,3],[-13,66]],[[5335,8688],[88,34],[15,-12],[42,7],[56,-37],[48,-65],[23,-18],[66,37],[48,42],[26,-5]],[[5747,8671],[-31,-83],[-14,-9],[-13,-42],[62,44],[128,-21]],[[3124,5315],[2,-13],[67,-49],[26,-56]],[[3219,5197],[22,-98],[3,-35]],[[3244,5064],[-2
 1,-5],[6,-32]],[[3229,5027],[-22,-2],[5,-37],[-12,-38],[-18,-11],[-13,-50],[-27,-30],[0,-70]],[[2756,4910],[1,54]],[[2937,5214],[13,15],[38,-30],[19,28],[22,4],[20,27],[32,13]],[[4337,6929],[48,-28],[-104,-102],[16,-47],[30,-34],[75,-20],[26,-14]],[[4428,6684],[8,-9]],[[4436,6675],[-13,-6],[-19,-64],[43,-39]],[[4447,6566],[-5,-1]],[[4442,6565],[-15,-10]],[[4427,6555],[32,-29],[0,-42],[-17,-49],[48,-14],[6,9],[34,-35],[52,-16],[2,-55]],[[4584,6324],[-96,-9]],[[4488,6315],[-6,7]],[[4482,6322],[-4,5]],[[4478,6327],[-6,10]],[[4472,6337],[-27,-22]],[[4445,6315],[10,-35]],[[4455,6280],[6,-22]],[[4461,6258],[0,-7]],[[4461,6251],[0,-2]],[[4461,6249],[0,2]],[[4461,6249],[1,0]],[[4462,6249],[-32,-36]],[[4430,6213],[-19,18],[-10,79],[-19,2],[-18,36],[-33,28],[-35,46],[-11,-22],[-139,40],[-19,-45]],[[4127,6395],[-79,22]],[[2766,4875],[-39,-26],[-17,-27],[-34,8],[-10,-29],[-50,-37],[-32,-36],[-49,40],[-22,-28],[-17,11]],[[2496,4751],[-94,79],[-2,20],[-73,90],[-59,35],[-59,20],[-59,42],[-77,26]],
 [[4661,5737],[-57,21],[-30,-2],[-19,-29],[-23,11],[-7,-23],[-19,5],[-15,-48],[-23,15],[-13,-12]],[[4455,5675],[-1,0]],[[4454,5675],[-11,-10]],[[4443,5665],[-22,13],[17,16],[9,43],[-25,25],[11,39],[17,16],[-19,19],[17,15],[-34,29],[5,21],[-16,59],[-21,9]],[[4382,5969],[5,24],[22,-4],[-3,58],[45,66],[-13,76]],[[4438,6189],[29,-21],[35,-72],[28,2],[71,-27],[0,30],[32,-8],[48,22],[30,3]],[[4711,6118],[46,-32],[15,-31],[10,13],[51,-32],[-1,-25],[-20,-27],[-31,-15],[-35,-36],[52,-17],[-7,-40],[-35,-77]],[[4756,5799],[-11,-25],[-36,44],[-48,-81]],[[3031,7120],[64,21],[49,28],[75,74],[-11,5],[10,49]],[[3218,7297],[61,-71],[55,-3],[89,-57],[63,-85],[38,-31],[-14,-28],[27,5]],[[3537,7027],[-11,-88],[-15,-38],[-43,-27],[-48,38],[-33,8],[-7,-14],[-97,10],[-20,-22],[-20,-52],[-57,-22]],[[3186,6820],[-6,40],[-42,87],[-78,39],[-9,59],[-14,31],[-6,44]],[[883,2571],[-14,14]],[[1008,2771],[27,-27],[-25,-21],[24,-23],[-68,-80],[-26,-22]],[[940,2598],[-16,18],[-41,-45]],[[7280,2490],[-60,-18],[-56,-45]
 ,[7,-23],[-59,-30],[6,-40],[-14,-106]],[[7104,2228],[-25,-2],[-9,-38]],[[7070,2188],[-15,-22],[-9,21],[-36,-14],[-9,44],[-25,15],[-40,4]],[[6936,2236],[-6,91],[-22,58],[-69,53],[-49,60],[-62,66],[-27,40]],[[6203,3576],[2,102]],[[6424,4076],[49,3],[19,-92]],[[6492,3987],[0,-20],[32,-54],[13,-51],[25,-25],[7,-41],[-19,-29],[22,-55],[-25,-38]],[[6547,3674],[-6,-21],[10,-42]],[[6551,3611],[-3,-13]],[[6548,3598],[-99,3],[-36,-10],[-4,-16],[-66,19],[-16,-15],[-3,-30]],[[7337,8342],[-22,8],[-26,62],[-35,12],[-18,35],[-17,-2],[-23,37],[-137,-58],[-38,47],[55,25],[19,-8],[37,27],[36,11],[18,-29],[41,20],[-7,9],[45,23],[-85,116]],[[7180,8677],[57,42],[33,43],[-1,24],[38,41]],[[7307,8827],[26,8],[35,-10],[23,-47],[20,15],[6,-35],[20,-16],[7,-28],[28,-8],[23,-51],[25,-15],[5,-40],[16,9],[32,-57],[20,8],[37,-76]],[[4017,7389],[24,-11],[48,0],[31,-97]],[[4120,7281],[-7,-19],[37,-39],[-49,-54]],[[4101,7169],[-60,-50],[-58,20],[-3,28],[-16,-15],[-43,-10],[-20,28],[-34,8],[-70,-35]],[[3797,7143],[-2
 4,36],[-3,31],[-27,-1],[-18,-20]],[[3725,7189],[-51,26],[-5,11],[-93,45],[-25,-25],[-43,-25],[-37,42],[-14,30],[-99,-44],[-31,19],[20,34]],[[4706,4580],[-20,50],[15,29],[0,45],[-22,22],[10,41]],[[4689,4767],[42,25],[45,53],[6,24]],[[4782,4869],[2,3]],[[4784,4872],[7,10]],[[4791,4882],[3,40]],[[4794,4922],[5,0]],[[4799,4922],[1,0]],[[4800,4922],[5,2]],[[4805,4924],[21,-3],[15,-30],[28,-21],[-6,-27],[11,-31],[37,14]],[[4911,4826],[46,32],[1,17]],[[4958,4875],[14,19],[49,-12]],[[5054,4689],[-25,-41],[4,-36],[-13,-24],[2,-34],[-17,-25],[-35,-6],[-23,12],[-15,-13]],[[5053,6451],[-48,28],[-44,-25]],[[4961,6454],[-36,42],[-10,-45],[-47,47],[-12,-49],[-26,-5]],[[4830,6444],[-42,1],[-11,-18],[-54,34],[21,55],[-31,2]],[[4713,6518],[18,17],[21,79]],[[4752,6614],[21,-7],[9,16],[29,-9],[23,59],[26,20],[-6,48],[10,61],[-9,40],[13,8],[4,75]],[[4909,6982],[42,-17],[28,-45],[4,-33],[47,-47]],[[5030,6840],[14,-15],[-5,-33],[77,-85],[18,-11]],[[5134,6696],[-26,-52],[15,-5],[-5,-39]],[[5118,6600],[-22,
 -4],[-31,-64],[-12,-81]],[[5404,3892],[22,26],[4,33],[40,83],[43,46],[27,80]],[[2496,4751],[-18,-22],[24,-20],[-27,-42],[29,-19],[-17,-17],[17,-10],[-34,-37]],[[2879,4122],[9,9],[-33,33],[-29,44],[-21,62],[-63,29],[-12,35],[-45,15],[-15,61],[-67,15]],[[2629,4436],[34,16],[32,51],[42,47],[42,-36],[8,-38],[21,8],[9,-24],[41,0]],[[3028,4354],[17,-29],[12,9],[35,-47],[22,-9],[44,-37]],[[3158,4241],[36,-39],[-14,-8]],[[3180,4194],[-16,-10],[-6,-43],[-35,25],[-29,-41],[-24,22],[-43,-54],[-40,6],[-5,-14]],[[2982,4085],[-34,17],[-16,-12],[-53,32]],[[1907,3925],[-58,-83],[-40,-2]],[[1809,3840],[-23,-27],[-11,-55],[-37,-23],[-18,9]],[[2736,3647],[-24,64],[-14,-5],[-13,30],[-27,3],[-53,49],[2,12],[-31,46],[-26,20],[-30,-35]],[[2520,3831],[-50,-47],[-59,-16],[-54,72],[1,28],[-35,39],[-28,-14],[-11,-22]],[[2284,3871],[-26,11],[-22,32],[39,23],[-11,21]],[[2305,3989],[66,-15],[-4,-16],[69,-36],[44,-42],[41,27],[48,46],[43,-13],[4,36],[-53,88],[36,31]],[[2599,4095],[36,-28],[-2,-24],[23,-2],[79,-88
 ],[41,2],[36,-30]],[[2812,3925],[45,-25],[33,-67],[-15,-17],[17,-25],[4,-36]],[[2896,3755],[-21,-9],[24,-31]],[[2899,3715],[-27,-15],[-13,-24],[-46,-17],[-77,-12]],[[3098,6412],[33,-22],[25,9],[24,-26],[37,21],[54,-12],[45,0],[37,-32],[-14,-8],[7,-66],[16,-27],[11,31],[34,-27],[-22,-57],[21,-15],[-18,-46],[-28,18],[-2,20],[-79,-84],[-18,-69],[3,-38]],[[3264,5982],[-26,-1]],[[3238,5981],[-19,63],[21,31],[-24,4],[18,26],[-26,41],[-64,26],[-71,48],[-71,-18],[-147,-87]],[[4430,6213],[8,-24]],[[4382,5969],[-35,-3],[-17,-21],[-25,27]],[[4305,5972],[-11,10]],[[4294,5982],[-18,5]],[[4276,5987],[-5,6]],[[4271,5993],[-28,31],[-24,-16]],[[4219,6008],[-40,-13],[-48,16],[23,64],[-15,9],[4,40],[-9,107]],[[4134,6231],[-5,83]],[[4129,6314],[-2,81]],[[2760,6862],[38,40],[22,49],[-31,55],[59,63],[183,51]],[[3186,6820],[-54,-64]],[[4157,7606],[35,-5],[31,18]],[[4223,7619],[33,35],[3,-31],[26,9],[-10,13],[30,7],[31,-19],[11,16],[-12,26]],[[4335,7675],[-1,15]],[[4334,7690],[-6,4]],[[4328,7694],[-15,26],
 [17,19]],[[4330,7739],[41,5],[18,-17],[41,-5]],[[4430,7722],[-5,-35],[20,-37],[33,22],[17,-22]],[[4495,7650],[37,-93],[-36,-15],[1,-32]],[[4497,7510],[-25,-16],[24,-27],[-35,-32]],[[4461,7435],[-32,19],[-36,-47],[2,-51],[-25,-5]],[[4370,7351],[-52,36],[-52,-17],[-17,24],[-22,5],[-42,-49],[-7,-45],[-58,-24]],[[5666,6774],[-44,24],[-19,-2],[14,27],[-25,31],[-35,5],[-34,53],[-45,10],[-23,-43],[-62,16],[-16,-25]],[[5377,6870],[-42,22],[21,20],[-29,18],[-14,-22],[-13,17]],[[5300,6925],[28,29],[59,38],[43,4],[12,-14],[33,48],[40,35],[-14,34],[48,57],[-5,10],[32,24],[40,102],[-13,36],[12,11]],[[5701,7310],[-5,-43],[16,-21],[1,-28],[-23,-25],[29,-24],[-35,-19],[26,-26],[-17,-19],[31,-29],[-34,-33],[42,-29]],[[5732,7014],[-19,-55],[31,-11]],[[5744,6948],[28,-35],[7,-33]],[[5102,6141],[-64,-35],[-22,-26],[-43,6],[-8,-48],[-63,1],[1,36],[-64,5],[1,33]],[[4840,6113],[-56,29],[0,53],[12,26],[-34,9]],[[4762,6230],[12,27],[-8,45],[11,17]],[[4777,6319],[1,0]],[[4778,6319],[21,2],[15,53],[15,24],[1,
 46]],[[5053,6451],[-7,-55],[11,-6],[-21,-50],[73,-59]],[[5109,6281],[25,-27]],[[5134,6254],[2,-40],[-34,-73]],[[7250,6689],[-26,-36],[-53,-10],[-88,-81],[-23,-37]],[[7060,6525],[-40,20],[7,24],[-21,6],[8,25],[-21,9],[-11,-21],[-7,41],[-72,39],[-9,21],[-16,-14],[-41,10],[-42,-57]],[[6795,6628],[-21,44],[-14,-19],[-14,13]],[[6746,6666],[23,57],[-13,6]],[[6756,6729],[24,8],[27,40],[-20,11],[10,44]],[[6797,6832],[40,-29],[88,130],[17,-14],[34,10],[10,-39],[38,-18],[26,18]],[[7050,6890],[46,-28],[51,-44],[5,-36],[20,4],[27,41],[4,-31],[30,-11],[33,-35],[-16,-61]],[[5172,3987],[0,61],[22,16],[0,21],[-24,23]],[[5170,4108],[78,75],[12,-7],[41,21],[13,62],[15,24],[45,33],[17,38],[77,39]],[[1800,2668],[-44,72],[1,19],[-51,54],[-3,27],[-58,48],[-30,11]],[[1615,2899],[30,33],[-24,28],[-3,46],[15,87],[-38,60]],[[1595,3153],[65,45],[66,25]],[[1726,3223],[12,-4],[39,-80],[-6,-14],[45,-29]],[[1816,3096],[43,-22],[40,27],[20,-3],[9,-26],[27,-16],[11,-25]],[[3596,5539],[3,7],[97,-37],[19,73],[30,-10]
 ,[13,31],[51,-10]],[[3809,5593],[12,-5],[-3,-37],[21,-4],[-27,-59],[59,-34]],[[3871,5454],[-35,-73],[25,-61],[-11,-24],[36,-40],[-15,-5],[24,-67]],[[3895,5184],[-7,-16],[-37,-3],[-22,-26],[-28,-5],[0,-18]],[[3801,5116],[-59,19],[-34,-9]],[[3708,5126],[-33,31],[14,43],[-25,15],[10,59],[9,11],[-34,11],[9,21],[-21,7],[-15,-30],[-48,14]],[[3574,5308],[16,55],[-32,19],[14,48],[-18,10],[42,99]],[[2599,4095],[-57,60],[-6,25],[-32,23]],[[2879,4122],[-37,-8],[9,-11],[-60,-34],[13,-18],[1,-42],[32,-30],[-24,-17],[-1,-37]],[[4867,7634],[-43,-19],[-35,17],[-42,-6]],[[4747,7626],[0,49],[-17,47]],[[4730,7722],[6,35],[70,31],[-19,18],[-13,81],[58,60],[-48,1],[4,14]],[[4788,7962],[34,-5],[28,27],[54,13],[25,26]],[[4929,8023],[48,18],[69,-22],[6,-13],[51,-11],[50,7],[-4,31]],[[5149,8033],[29,25],[27,-8],[66,-58]],[[5467,5109],[10,56]],[[5710,5477],[30,-22],[23,18],[49,4]],[[5812,5477],[-2,-2]],[[5810,5475],[-47,-87],[-8,-34],[21,-16],[-15,-40],[27,-11],[-29,-57],[-9,-39],[2,-51],[9,-22],[-9,-74]],[[
 5752,5044],[-11,1]],[[5741,5045],[-25,28],[-25,-42],[-6,-37]],[[5685,4994],[-36,-26],[-24,9],[-29,-32],[-13,3],[1,33],[-40,9],[-29,23],[4,39],[-20,34],[7,22],[-39,1]],[[6452,6327],[-30,55],[-57,20],[9,18],[-44,18],[-48,-43]],[[6282,6395],[-3,-7]],[[6241,6458],[34,31],[24,37],[12,-13],[37,29],[25,34],[-10,18],[32,38]],[[6395,6632],[36,6],[27,-9],[2,29],[28,12]],[[6488,6670],[44,3],[-15,-21],[29,-35],[18,-6],[21,28],[30,9],[34,45],[-6,35],[28,26]],[[6671,6754],[47,-6],[38,-19]],[[6746,6666],[-11,-34],[-38,-44],[-50,-86],[-15,-33],[-30,18],[-44,-33],[11,-56],[-9,-16],[-41,-9],[-43,-59]],[[4270,8640],[100,61],[104,45]],[[4474,8746],[7,-41],[22,-43],[-13,-9],[103,-54],[27,-43],[-4,-23],[-59,-32],[-12,-52],[27,-34],[38,5],[12,-21],[-7,-45],[35,-32],[-13,-27],[81,33]],[[4894,8163],[7,-20]],[[4901,8143],[-4,-19]],[[4897,8124],[-53,0],[-15,-25],[-61,-16],[-77,-29],[3,-10],[-39,-18],[-10,-23]],[[4645,8003],[-33,-3]],[[4612,8000],[-6,50],[11,0],[-12,65]],[[4605,8115],[15,17],[94,20],[-19,34],[
 14,9],[-21,32],[-44,-11],[-44,61],[-3,20],[-40,46],[-24,11],[-34,83],[-32,8],[-44,60]],[[4397,8581],[-21,15],[-75,33],[-16,-12],[-15,23]],[[1987,3286],[-57,99],[-38,94],[-46,58],[-22,64]],[[1824,3601],[37,10],[-9,47],[5,55]],[[1857,3713],[25,17],[61,-12],[37,4],[51,-11]],[[2031,3711],[-4,-20],[8,-48],[43,-55],[-14,-12],[7,-37]],[[2071,3539],[6,-17]],[[2077,3522],[46,-3],[38,-36]],[[2161,3483],[31,-38],[-26,-27],[38,-43],[-18,-16],[18,-21],[-53,-47]],[[2151,3291],[-21,25],[-20,-18],[-18,17],[-31,-17],[-16,24],[-58,-36]],[[3585,6126],[29,-17]],[[3614,6109],[56,-30]],[[3670,6079],[14,-30],[34,-9],[11,-19],[80,-47],[32,20]],[[3841,5994],[58,-21],[50,-29],[92,-8],[0,-9]],[[4041,5927],[-17,-32],[-51,2],[-1,-30],[-59,34],[-26,-26],[-17,-54],[19,-3],[-13,-84]],[[3876,5734],[-11,-19],[-10,-59],[-72,14],[-6,-17]],[[3777,5653],[-16,5],[3,29],[-24,7],[2,22]],[[3742,5716],[9,12],[-42,20],[-30,-41],[-66,21],[-19,-7],[-6,23]],[[3588,5744],[10,33],[54,35],[8,86]],[[3660,5898],[56,2],[14,35],[-37,34
 ],[-71,40],[-44,-31],[-82,75],[8,7]],[[3504,6060],[40,55],[27,0]],[[3571,6115],[14,11]],[[7050,6890],[29,66],[-38,11],[18,48],[-37,46]],[[7167,7085],[11,17],[24,-17],[16,17],[28,-42],[87,36],[38,-47],[25,-13],[13,-47],[13,-7],[-13,-44],[-38,-72],[14,-18],[-53,-53],[-82,-106]],[[3822,6500],[42,11],[6,26],[59,-12]],[[4129,6314],[-89,27],[-4,-38],[-46,8],[-39,-24],[-39,4],[-59,-100],[-73,-22],[-14,-68],[-27,31],[-40,-62],[-29,9]],[[3614,6109],[18,60],[46,18],[30,-24],[11,60],[-13,9],[4,38]],[[3710,6270],[34,89],[-20,23],[29,13],[-1,23],[40,21],[30,61]],[[5272,8571],[3,-12]],[[5275,8559],[-65,-6],[9,-39],[-36,-9],[40,-158],[33,-51],[-42,-48],[56,-93],[-18,-26],[40,-60],[22,-20]],[[5149,8033],[-25,26],[-44,70],[-5,61],[16,6],[4,29],[-44,40]],[[7270,8989],[-20,14],[-133,-67],[-45,0],[-39,-32],[-12,-149]],[[7021,8755],[-83,113],[-132,173],[255,196],[209,-248]],[[8433,9366],[198,-290]],[[8631,9076],[-40,-27],[-55,-20],[-17,11],[-31,-22],[10,-15],[-87,-2],[-30,-19]],[[5074,5900],[-41,23],[-1
 0,26],[9,31]],[[5032,5980],[61,82],[6,36],[27,30],[5,20],[-29,-7]],[[5134,6254],[42,4],[20,24],[21,-1],[45,34]],[[5262,6315],[14,-28],[46,-39]],[[5322,6248],[56,-77]],[[5378,6171],[15,-24],[20,-5],[19,-27]],[[5432,6115],[-15,-18]],[[3122,5834],[107,-75],[-13,-19],[20,-35],[-5,-23],[49,1]],[[3280,5683],[-16,-34],[71,-37],[-43,-137],[37,-33]],[[3329,5442],[-49,-61],[-11,19],[-55,-1],[-4,-18],[-38,13]],[[5028,5786],[-12,-19],[-15,24],[-51,-23],[-63,48],[-16,-47],[-3,31],[-40,22],[-18,-40],[-54,17]],[[4711,6118],[36,90],[15,22]],[[5101,5197],[21,42],[19,13],[20,49],[43,16],[10,22],[66,-47],[10,21]],[[5290,5313],[38,-7],[14,18],[54,-28],[35,-30]],[[5467,5109],[-3,-66],[-17,-39],[-11,-54]],[[3537,7027],[70,4],[-1,-18],[50,-15]],[[3656,6998],[67,25],[21,-51]],[[3744,6972],[13,-32],[-58,-77],[-25,-54]],[[3674,6809],[-42,-4]],[[3632,6805],[-35,-31],[-52,2],[-51,19],[-8,-23],[14,-39],[-28,32],[-46,17],[-56,-14],[-56,2]],[[3314,6770],[-68,16],[-53,-62]],[[3143,6433],[65,39],[58,-19],[81,-4],[5
 0,30],[29,-6]],[[3426,6473],[65,5],[51,15]],[[3542,6493],[27,-17],[16,-27],[-7,-26]],[[3578,6423],[-93,-40],[-8,-29],[29,10],[12,-38],[-14,-52],[-21,-25],[9,-40],[21,-38],[72,-45]],[[3504,6060],[-52,15]],[[3452,6075],[48,47],[-30,1],[-62,20],[-8,-17],[10,-33]],[[3410,6093],[-30,1],[-33,-40],[-83,-72]],[[1857,3713],[-25,38],[3,31]],[[1835,3782],[75,49],[14,-12],[35,30],[22,7],[43,-38],[85,53],[-35,24],[5,21],[29,1],[38,44]],[[2284,3871],[21,-20]],[[2305,3851],[-14,-17],[-23,12],[-13,-17],[16,-34],[-28,-12],[10,-21],[-34,-5],[10,-24],[-19,-15],[-6,-29],[31,-135],[-31,-43]],[[2204,3511],[-47,16],[-25,47],[-26,83],[-40,29],[-12,37],[-23,-12]],[[5027,5177],[-69,41],[8,18],[-22,4],[-9,22],[24,35],[-6,33],[-27,20]],[[4926,5350],[-2,5]],[[4924,5355],[-27,30]],[[4897,5385],[30,42],[-2,30],[23,45]],[[4948,5502],[13,55],[21,18]],[[5160,5521],[26,-16],[-9,-73],[45,-17],[75,-60],[-7,-42]],[[3385,4966],[64,8],[-2,15],[30,9],[-3,38],[38,5],[10,33]],[[3522,5074],[36,-10],[2,-13],[85,-10],[13,-56]],
 [[3658,4985],[1,-27],[18,-28],[-13,-20],[10,-33]],[[3674,4877],[-33,-42],[20,-37]],[[3661,4798],[17,-7],[-25,-81]],[[3372,4801],[19,17],[-22,27],[-4,40],[18,8],[6,33],[-4,40]],[[1364,2316],[-47,56],[-58,27]],[[1259,2399],[10,21],[-12,30],[43,25],[-50,-1],[2,38],[34,42],[-28,23]],[[1258,2577],[31,44],[-39,23],[-20,25],[36,71],[-19,14],[-47,1]],[[1200,2755],[-8,19]],[[1192,2774],[44,13],[-5,14],[29,15]],[[1260,2816],[29,-39],[-13,-16],[40,-11],[24,4],[42,-44],[22,29],[47,-47]],[[1451,2692],[14,-61],[24,-27],[54,-36]],[[7760,3139],[74,11],[83,56],[48,18],[76,37],[4,-7]],[[6522,3535],[48,32],[-22,31]],[[6551,3611],[86,48],[13,52],[22,4],[10,59],[19,9],[4,54]],[[6705,3837],[38,8],[31,85],[51,45],[80,103],[112,81],[14,16],[8,-69],[-14,-25],[-9,-47],[7,-18]],[[6702,3650],[-45,-68],[-41,-21],[-27,-31],[-28,-1],[-25,-16],[-14,22]],[[3280,5683],[44,32]],[[3324,5715],[6,-32]],[[3330,5683],[7,-40],[36,25],[58,-35],[16,18],[31,-30],[-3,-15],[34,-22],[4,43],[32,14]],[[3545,5641],[17,-20],[11,-66]
 ,[23,-16]],[[3574,5308],[-48,0],[-28,25],[-13,-35],[-75,12]],[[3410,5310],[-31,-12]],[[3379,5298],[-7,11]],[[3372,5309],[-22,20],[-6,40],[17,-1],[12,57],[-44,17]],[[3164,5920],[52,48],[22,13]],[[3410,6093],[5,-2]],[[3415,6091],[11,-65],[-13,-52],[-14,-16],[51,-45],[21,-35],[22,22],[22,-36],[-28,-32],[6,-16]],[[3493,5816],[-58,-21],[-45,-39],[-66,-41]],[[4948,5502],[-74,45],[-45,-1],[-11,-10],[-71,2],[-42,-25],[-34,19]],[[4671,5532],[16,36],[17,102],[15,25],[-58,42]],[[4428,6684],[25,23],[-16,62],[45,58],[30,70]],[[4512,6897],[20,23],[10,-32],[28,-12],[16,13],[31,-10],[25,-25],[27,-10],[10,13]],[[4679,6857],[7,-26],[52,-79],[2,-72],[-19,-45],[31,-21]],[[4713,6518],[-17,-23],[-44,-8],[-23,10],[-13,52],[18,34],[-11,15],[-84,30],[-25,-21],[-78,68]],[[6211,5174],[-31,-9]],[[6180,5165],[0,-1]],[[6180,5165],[-63,24],[8,54],[-53,10],[23,52],[-11,52],[-25,20]],[[6059,5377],[9,49],[35,16],[1,26],[20,31],[8,35],[-13,12],[-1,78],[5,47]],[[6123,5671],[12,63],[-10,7],[21,47]],[[6217,5789],[4,2]],
 [[6221,5791],[-1,-17],[40,-27],[-16,-19],[-24,-57],[-17,-80],[12,-38],[18,-3],[15,-27],[-4,-35],[12,-33],[-14,-86],[17,-80],[-18,-104],[-30,-11]],[[4370,7351],[-22,-61],[12,-30],[-18,-14],[10,-50],[128,-146],[17,-10]],[[4497,7040],[-85,-46]],[[4388,7010],[-173,93],[-41,-37],[-20,16],[-14,-19],[-38,33],[-9,31],[23,23],[-15,19]],[[5300,6925],[-26,18],[-16,-7]],[[5258,6936],[-54,78]],[[5204,7014],[23,29],[8,-44],[63,119],[10,30]],[[5308,7148],[30,64],[13,-8],[24,26],[77,46],[-8,25],[46,40]],[[952,1853],[-5,-18],[59,-42],[-26,-18],[35,-20],[-15,-12],[-11,-42],[-31,-40]],[[958,1661],[-8,-12],[-52,19],[-15,-21]],[[883,1647],[-34,11],[-11,-14],[-47,34],[-52,-9],[-73,38]],[[666,1707],[21,55],[-61,50],[-24,-35],[-49,32]],[[553,1809],[61,100],[4,23]],[[618,1932],[52,-41],[32,32],[54,-45],[21,33],[15,-11],[20,30]],[[812,1930],[61,-52],[10,-20],[31,33],[38,-38]],[[4679,6857],[-13,30],[27,24],[0,38]],[[4693,6949],[0,1]],[[4693,6950],[-16,20],[33,23],[-2,24],[46,32],[-17,0],[-35,35],[-24,62]],[[7
 132,2013],[-49,29],[35,14],[-6,18],[22,9],[-5,20],[-59,85]],[[7104,2228],[77,69],[9,-19],[21,10],[15,-27],[33,49]],[[3955,6929],[-37,1],[7,22],[-27,25],[-31,-16],[-32,0]],[[3835,6961],[-43,30],[-11,-22],[-29,7]],[[3752,6976],[29,81],[7,55],[22,18],[-13,13]],[[6180,4869],[-23,-50]],[[6157,4819],[-2,-4]],[[6155,4815],[-25,-22],[-18,-36],[-30,6],[-64,-66]],[[5741,4851],[16,40],[36,39]],[[5793,4930],[44,-20],[13,15],[51,-18],[25,3],[25,-18],[12,-34],[38,42],[14,39],[-11,30],[12,30]],[[6016,4999],[36,-16],[49,7],[54,-35],[5,-20],[25,-2],[1,36],[32,1]],[[6218,4970],[-28,-52],[-10,-49]],[[5448,7555],[-42,-12],[-17,-24],[-65,-51],[26,-11]],[[5350,7457],[-101,-58],[-35,6],[-62,-37]],[[3314,6770],[-15,-21],[2,-60],[19,-17],[32,3],[-2,-42],[17,-27],[37,3],[-4,-50],[26,-86]],[[1451,2692],[23,32],[-3,39],[51,77],[-13,28],[36,10],[-20,32],[11,18]],[[1536,2928],[40,-2]],[[1576,2926],[43,-7],[-4,-20]],[[4443,5665],[6,-22],[-20,-14],[-21,-47]],[[4408,5582],[-24,18],[2,22],[-33,12],[-17,-10],[-21,12]
 ,[-48,-34]],[[4267,5602],[-16,32],[-28,8],[6,37],[-49,18],[23,54],[-17,9],[2,28]],[[4188,5788],[10,17],[-15,30],[31,14],[42,39],[5,44],[44,40]],[[5396,4419],[-18,-6],[-12,-28],[-27,-22],[-29,5],[-41,-27],[-42,-61],[-20,-20],[-46,-18],[-14,-33],[-20,-14],[27,-94]],[[5154,4101],[-28,-48],[5,-13],[-24,-49]],[[4041,5927],[88,31],[57,1],[12,44],[21,5]],[[4188,5788],[-54,-11],[-35,-103],[-30,14]],[[4069,5688],[-82,50],[-13,-37],[-98,33]],[[3218,7297],[84,76],[28,12]],[[3725,7189],[-48,-101],[14,-21],[-16,-14],[-19,-55]],[[1192,2774],[-10,33],[-27,-13],[-36,42]],[[964,3215],[11,-22],[48,-39],[26,-36],[46,-25],[35,-2],[30,-20],[42,-51],[5,-16],[51,-44]],[[1258,2960],[7,-14],[42,-12],[-23,-33],[28,-35],[-52,-50]],[[5118,6600],[66,-20],[14,13]],[[5198,6593],[88,-54],[35,-28],[-8,-28],[16,1]],[[5329,6484],[-5,-52],[-53,-82],[-9,-35]],[[4402,4203],[-52,-14],[-59,-25],[-63,-11],[-65,-33],[-81,9],[-38,-11]],[[4044,4118],[23,17],[-14,26],[23,27],[-7,25],[13,34],[-15,4],[27,37],[-10,29]],[[4084,431
 7],[46,31],[8,31],[-19,12],[8,27],[-3,47]],[[4124,4465],[53,-23],[9,21],[63,26]],[[4249,4489],[35,-14],[62,-49]],[[4346,4426],[-3,-10]],[[4343,4416],[-16,-40],[-26,12],[-48,-96],[2,-48],[20,-24],[56,11],[18,17],[43,-1],[10,-44]],[[1705,3453],[-21,-10],[-13,28],[-34,-2],[5,15],[-61,-4],[-18,16]],[[1563,3496],[8,64],[-11,27],[2,42],[12,31],[0,37]],[[1809,3840],[26,-58]],[[1824,3601],[-41,-24],[10,-46],[-18,-35],[-19,-16]],[[1756,3480],[-32,-13]],[[1724,3467],[-19,-14]],[[4584,6324],[26,-12],[42,38],[48,-8],[10,29],[69,3],[-9,-28],[8,-27]],[[3219,5197],[32,-8],[19,51],[24,-14],[44,66],[41,6]],[[3410,5310],[-2,-20],[33,-8],[9,-48],[22,-4],[3,-30],[31,4],[-11,-34],[27,-13],[-26,-14],[11,-50],[15,-19]],[[3385,4966],[-58,0],[-36,8],[3,19],[-18,68],[-32,3]],[[5160,7345],[27,-23],[15,15],[10,-47],[46,-29],[-33,-25],[38,-27],[-18,-24],[-1,-27],[39,-23],[25,13]],[[5204,7014],[-28,-45],[-39,43],[-12,-6]],[[5125,7006],[-6,26],[-35,-2],[-24,23],[-26,49],[-10,41],[-32,4]],[[7180,8677],[-33,-25],[-
 13,22],[-15,-11],[-21,34],[-31,23],[-7,-12],[-39,47]],[[7270,8989],[48,-59],[24,-22],[-52,-46],[17,-35]],[[3841,5994],[36,13],[-5,49],[25,20],[53,79],[42,91],[36,-27],[4,39],[102,-27]],[[3145,3591],[-23,50],[-41,0]],[[3081,3641],[-1,23],[40,21],[-13,19],[39,32],[-25,35],[20,16],[-10,15],[48,29],[-31,42],[16,16],[-16,29]],[[3148,3918],[1,29]],[[3149,3947],[25,-13],[8,-27],[28,-25],[49,-4],[12,-10],[31,12],[26,34],[40,34]],[[3368,3948],[48,-24],[-31,-16],[8,-15],[59,-43],[47,35]],[[3499,3885],[18,-38]],[[4267,5602],[-19,-8],[-8,-31],[-23,-29],[-10,-49],[8,-15],[-10,-57]],[[4205,5413],[-25,-40],[-19,-6],[-31,17],[-17,-56]],[[4113,5328],[-18,25]],[[4095,5353],[11,26],[-41,20],[-3,25],[-24,29],[-30,-5],[-21,18],[-11,39],[-17,10]],[[3959,5515],[48,40],[-14,12],[42,42],[30,46],[4,33]],[[4474,8746],[52,2],[45,-10],[66,37]],[[4249,4489],[-21,20],[36,12],[-14,48],[16,79],[-24,21],[-3,24]],[[4239,4693],[18,32],[22,11],[-7,21],[31,30],[13,40]],[[4316,4827],[15,44]],[[4331,4871],[-15,24],[20,66]
 ],[[4336,4961],[10,38]],[[4346,4999],[22,0]],[[4368,4999],[8,-14]],[[4376,4985],[-24,-22],[-17,-47],[23,-32],[21,15],[5,31],[21,-30],[-38,-19],[13,-14],[43,10],[48,-32]],[[4471,4845],[-28,-85],[-21,-25],[-19,-143],[20,-1]],[[4423,4591],[14,-18],[8,-61]],[[4445,4512],[-43,14],[-23,-25]],[[4379,4501],[1,-38],[-34,-37]],[[5850,7420],[30,-19],[25,-1],[24,-20]],[[5929,7380],[12,-6]],[[5941,7374],[0,-1]],[[5941,7373],[-8,-96],[-28,-28],[24,-34]],[[5929,7215],[-27,-21],[-35,-44],[-26,-47],[-39,-49],[-58,-106]],[[3674,6809],[25,-18],[37,0],[26,-13],[39,14],[55,-17],[48,25]],[[3822,6500],[-9,-5],[3,61],[-26,10],[-35,-4],[-44,25],[3,24],[-68,14],[18,34],[-39,7]],[[3625,6666],[2,16],[-29,42],[34,81]],[[3895,5184],[33,11],[22,-7]],[[3950,5188],[-9,-35],[13,-57],[-22,-32]],[[3932,5064],[-15,14],[-6,-62],[25,-24],[-19,-24],[20,-35],[-17,-34]],[[3920,4899],[-31,-1],[-7,26],[-23,-23],[-24,-3],[-13,-20],[-52,42],[-31,-9],[-23,-27],[-42,-7]],[[3658,4985],[-12,96],[16,24],[46,21]],[[3625,6666],[-11,-3
 0],[-36,-21],[0,-44],[-14,-38],[-21,-2],[-1,-38]],[[6180,5164],[7,-10],[5,-67],[-19,-11],[-34,24],[-22,-17],[-26,9],[-70,1]],[[6021,5093],[0,1]],[[6021,5094],[28,51],[-23,8],[5,17],[-38,15],[-25,-18],[-14,-29],[-24,16],[-23,-12],[2,-17],[-24,-

<TRUNCATED>

[44/50] [abbrv] zest-qi4j git commit: Final cleanup

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/WKTFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/WKTFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/WKTFromConverter.java
deleted file mode 100644
index 169c311..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/WKTFromConverter.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions.from;
-
-import com.spatial4j.core.context.SpatialContext;
-import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
-import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
-import com.spatial4j.core.io.jts.JtsWktShapeParser;
-import com.spatial4j.core.shape.Circle;
-import com.spatial4j.core.shape.Point;
-import com.spatial4j.core.shape.Shape;
-import com.spatial4j.core.shape.jts.JtsGeometry;
-import com.spatial4j.core.shape.jts.JtsPoint;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.MultiPolygon;
-import com.vividsolutions.jts.geom.Polygon;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.structure.Module;
-import org.qi4j.api.value.ValueBuilder;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
-
-
-public class WKTFromConverter {
-
-
-    final SpatialContext ctx;
-    {
-        JtsSpatialContextFactory factory = new JtsSpatialContextFactory();
-        factory.srid = 4326;
-        factory.datelineRule = JtsWktShapeParser.DatelineRule.ccwRect;
-        factory.wktShapeParserClass = JtsWKTReaderShapeParser.class;
-        ctx = factory.newSpatialContext();
-    }
-
-
-
-    private Module module;
-
-    public WKTFromConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert(String wkt, String crs) throws ParseException
-    {
-
-        Shape sNoDL = ctx.readShapeFromWkt(wkt);
-
-
-    if (!sNoDL.hasArea()) {
-        System.out.println("Its a JtsGeometry " + ((JtsPoint) sNoDL).getGeom().getGeometryType());
-        return buildPoint(module,sNoDL);
-    } else {
-        System.out.println("Its a JtsGeometry " + ((JtsGeometry) sNoDL).getGeom().getGeometryType());
-
-        Geometry jtsGeometry = ((JtsGeometry) sNoDL).getGeom();
-
-        if (jtsGeometry instanceof Polygon) {
-            System.out.println("Polygon");
-            return buildPolygon(module,sNoDL);
-        }
-        else if (jtsGeometry instanceof MultiPolygon) {
-            System.out.println("MultiPolygon");
-        }
-        else if (jtsGeometry instanceof LineString) {
-            System.out.println("LineString");
-        }
-
-
-
-
-    }
-
-
-
-    if (sNoDL instanceof Point)
-    {
-
-        // ctx.makeCircle(0,0,0).getBoundingBox().
-        // System.out.println("Shape is point ");
-
-        ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
-
-        builder.prototype().x(((Point) sNoDL).getX()).y(((Point) sNoDL).getY());
-/**
- builder.prototype().of
- (
- module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getX()),  //x
- module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getY())   //y
- );
- */
-        return builder.newInstance();
-
-
-//          ValueBuilder<TGeomPoint> builder = module.newValueBuilder( TGeomPoint.class );
-//          TGeomPoint proto = builder.prototype();
-//          List<Double> coordinates = new ArrayList<Double>();
-////
-//          Double lat =  3.138722;  // 3.138722;// Double.parseDouble(query.nextToken());
-//          Double lon =  101.386849; // Double.parseDouble(query.nextToken());
-////
-////
-//          coordinates.add(3.138722);
-//          coordinates.add(101.386849);
-//          proto.coordinates().set(coordinates);
-//
-//          return builder.newInstance();
-
-    } else
-
-            if (sNoDL instanceof Circle) {
-
-    } else
-    {
-        System.out.println("Its a shape");
-        if (sNoDL.hasArea() ) System.out.println("Shape With area..");
-
-        if (sNoDL instanceof JtsGeometry) {
-
-            System.out.println("Its a JtsGeometry " + ((JtsGeometry) sNoDL).getGeom().getGeometryType());
-            // ((JtsGeometry) sNoDL).getGeom()
-        }
-
-    }
-
-    System.out.println("sNoDL " + sNoDL);
-
-    return null;
-}
-
-
-    private TPoint buildPoint(Module module, Shape sNoDL) {
-        ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
-
-
-        builder.prototype().x(((Point) sNoDL).getX()).y(((Point) sNoDL).getY());
-        /**
-         builder.prototype().of
-         (
-         module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getX()),  //x
-         module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getY())   //y
-         );
-         */
-
-        return builder.newInstance();
-    }
-
-    private TPolygon buildPolygon(Module module, Shape sNoDL) {
-
-        Geometry jtsGeometry = ((JtsGeometry) sNoDL).getGeom();
-        Polygon jtsPolygon = (Polygon)jtsGeometry;
-
-        // Polygon jtsPolygon = ((JtsGeometry) sNoDL).getGeom();
-
-        // Polygon jtsPolygon = (Polygon)sNoDL;
-
-        System.out.println("Get Coordinates " + jtsPolygon.getExteriorRing().getCoordinates() );
-
-        com.vividsolutions.jts.geom.Coordinate[] coordinates = jtsPolygon.getExteriorRing().getCoordinates();
-
-        ValueBuilder<TPolygon> polygonBuilder = module.newValueBuilder(TPolygon.class);
-        ValueBuilder<TLinearRing> tLinearRingBuilder  = module.newValueBuilder(TLinearRing.class);
-
-        List<TPoint> points = new ArrayList<>();
-        for (int i = 0; i < coordinates.length; i++) {
-/**
- TPoint point = module.newValueBuilder(TPoint.class).prototype().of
- (
- module.newValueBuilder(Coordinate.class).prototype().of( coordinates[i].x),  //x
- module.newValueBuilder(Coordinate.class).prototype().of( coordinates[i].y)   //y
- );*/
-            points.add
-                    (
-                            TPoint(module)
-
-                                    .x(coordinates[i].x)
-                                    .y(coordinates[i].y).geometry()
-                    );
-        }
-        tLinearRingBuilder.prototype().of(points);
-
-        // tLinearRingBuilder.prototype().of(points);
-        // tLinearRingBuilder.prototype().type()
-
-        // TLinearRing tLinearRing = tLinearRingBuilder.newInstance();
-        // System.out.println("tLinearRing .." + tLinearRing);
-
-
-        ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
-
-        builder.prototype().of
-                (
-                        // tLinearRingBuilder.newInstance().of(points)
-                        tLinearRingBuilder.newInstance()
-                );
-
-        return builder.newInstance();
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/GeoJsonToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/GeoJsonToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/GeoJsonToConverter.java
deleted file mode 100644
index 595431a..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/GeoJsonToConverter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions.to;
-
-import org.geojson.GeoJsonObject;
-import org.geojson.Point;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-
-public class GeoJsonToConverter {
-
-
-    private Module module;
-
-    public GeoJsonToConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public GeoJsonObject convert(TGeometry intemediate)
-    {
-        return transform(intemediate);
-    }
-
-    private GeoJsonObject transform(TGeometry intemediate)
-    {
-
-        switch(intemediate.getType())
-        {
-            case POINT              : return buildPoint((TPoint)intemediate);
-            case MULTIPOINT         : return null;
-            case LINESTRING         : return null;
-            case MULTILINESTRING    : return null;
-            case POLYGON            : return null;
-            case MULTIPOLYGON       : return null;
-            case FEATURE            : return null;
-            case FEATURECOLLECTION  : return null;
-            default : throw new RuntimeException("Unknown TGeometry Type.");
-        }
-
-    }
-
-    private Point buildPoint(TPoint point)
-    {
-        return new Point(point.x(), point.y());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/Spatial4JToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/Spatial4JToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/Spatial4JToConverter.java
deleted file mode 100644
index e60f30c..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/Spatial4JToConverter.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions.to;
-
-import com.spatial4j.core.context.SpatialContext;
-import com.spatial4j.core.context.jts.JtsSpatialContext;
-import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
-import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
-import com.spatial4j.core.io.jts.JtsWktShapeParser;
-import com.spatial4j.core.shape.Circle;
-import com.spatial4j.core.shape.Shape;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.util.GeometricShapeFactory;
-import org.geojson.GeoJsonObject;
-import org.geojson.Point;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.internal.TCircle;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-
-public class Spatial4JToConverter {
-
-    // http://code.google.com/p/shape-metrics/source/browse/trunk/src/main/java/edu/psu/geovista/ian/utils/Circle.java?r=2
-
-    final SpatialContext ctx;
-    {
-        JtsSpatialContextFactory factory = new JtsSpatialContextFactory();
-        factory.srid = 4326;
-        factory.datelineRule = JtsWktShapeParser.DatelineRule.ccwRect;
-        factory.wktShapeParserClass = JtsWKTReaderShapeParser.class;
-        ctx = factory.newSpatialContext();
-    }
-
-    public static final double DATELINE = 180;
-    public static final JtsSpatialContext SPATIAL_CONTEXT = JtsSpatialContext.GEO;
-    public static final GeometryFactory FACTORY = SPATIAL_CONTEXT.getGeometryFactory();
-    public static final GeometricShapeFactory SHAPE_FACTORY = new GeometricShapeFactory();
-
-    protected final boolean multiPolygonMayOverlap = false;
-    protected final boolean autoValidateJtsGeometry = true;
-    protected final boolean autoIndexJtsGeometry = true;
-
-    protected final boolean wrapdateline = SPATIAL_CONTEXT.isGeo();
-
-
-    private Module module;
-
-    public Spatial4JToConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public GeoJsonObject convert(TGeometry intemediate)
-    {
-        // return transform(intemediate);
-        return null;
-    }
-
-    private Shape transform(TGeometry intermediate)
-    {
-
-        switch(intermediate.getType())
-        {
-            case POINT              : return null; // return newPoint((TPoint) intemediate);
-            case MULTIPOINT         : return null;
-            case LINESTRING         : return null;
-            case MULTILINESTRING    : return null;
-            case POLYGON            : return null;
-            case MULTIPOLYGON       : return null;
-            case FEATURE            : return null;
-            case FEATURECOLLECTION  : return null;
-        }
-
-        if (intermediate instanceof TCircle)
-        {
-            return newCircle((TCircle)intermediate);
-        }
-        else
-            return null;
-
-
-    }
-
-    private Point newPoint(TPoint point)
-    {
-        // SPATIAL_CONTEXT.makeCircle(0,0,0).
-
-        // SHAPE_FACTORY.set
-
-        System.out.println("point.x() " + point.x());
-        System.out.println("point.y() " + point.y());
-        return new Point(point.x(), point.y());
-    }
-
-    private Circle newCircle(TCircle circle)
-    {
-        return ctx.makeCircle(circle.getCentre().x(), circle.getCentre().y(), circle.radius().get());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/TGeometryToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/TGeometryToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/TGeometryToConverter.java
deleted file mode 100644
index 01eaeed..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/TGeometryToConverter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions.to;
-
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class TGeometryToConverter {
-
-    private Module module;
-
-    public TGeometryToConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert (TGeometry tGeometry, String CRS)
-    {
-        return tGeometry;
-    }
-
-    public TGeometry convert(TGeometry tGeometry)
-    {
-        return convert(tGeometry, tGeometry.getCRS());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/TConversions.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/TConversions.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/TConversions.java
new file mode 100644
index 0000000..e8881ae
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/TConversions.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions;
+
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.formats.conversions.from.FromHelper;
+
+public class TConversions
+{
+
+    public static FromHelper Convert(Module module)
+    {
+        return new FromHelper(module);
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/TGeometryFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/TGeometryFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/TGeometryFromConverter.java
new file mode 100644
index 0000000..2c05866
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/TGeometryFromConverter.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions.from;
+
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+
+public class TGeometryFromConverter
+{
+
+    private Module module;
+
+    public TGeometryFromConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public TGeometry convert(TGeometry tGeometry)
+    {
+        return tGeometry;
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/WKTFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/WKTFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/WKTFromConverter.java
new file mode 100644
index 0000000..5719376
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/from/WKTFromConverter.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions.from;
+
+import com.spatial4j.core.context.SpatialContext;
+import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
+import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
+import com.spatial4j.core.io.jts.JtsWktShapeParser;
+import com.spatial4j.core.shape.Circle;
+import com.spatial4j.core.shape.Point;
+import com.spatial4j.core.shape.Shape;
+import com.spatial4j.core.shape.jts.JtsGeometry;
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.MultiPolygon;
+import com.vividsolutions.jts.geom.Polygon;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.TPolygon;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.internal.TLinearRing;
+import org.qi4j.api.structure.Module;
+import org.qi4j.api.value.ValueBuilder;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
+
+
+public class WKTFromConverter
+{
+
+
+    final SpatialContext ctx;
+
+    {
+        JtsSpatialContextFactory factory = new JtsSpatialContextFactory();
+        factory.srid = 4326;
+        factory.datelineRule = JtsWktShapeParser.DatelineRule.ccwRect;
+        factory.wktShapeParserClass = JtsWKTReaderShapeParser.class;
+        ctx = factory.newSpatialContext();
+    }
+
+
+    private Module module;
+
+    public WKTFromConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public TGeometry convert(String wkt, String crs) throws ParseException
+    {
+
+        Shape sNoDL = ctx.readShapeFromWkt(wkt);
+
+
+        if (!sNoDL.hasArea())
+        {
+            return buildPoint(module, sNoDL);
+        } else
+        {
+
+            Geometry jtsGeometry = ((JtsGeometry) sNoDL).getGeom();
+
+            if (jtsGeometry instanceof Polygon)
+            {
+                return buildPolygon(module, sNoDL);
+            } else if (jtsGeometry instanceof MultiPolygon)
+            {
+            } else if (jtsGeometry instanceof LineString)
+            {
+            }
+        }
+
+
+        if (sNoDL instanceof Point)
+        {
+
+
+            ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
+            builder.prototype().x(((Point) sNoDL).getX()).y(((Point) sNoDL).getY());
+            return builder.newInstance();
+        } else if (sNoDL instanceof Circle)
+        {
+
+        } else
+        {
+            if (sNoDL.hasArea()) System.out.println("Shape With area..");
+
+            if (sNoDL instanceof JtsGeometry)
+            {
+
+            }
+
+        }
+
+
+        return null;
+    }
+
+
+    private TPoint buildPoint(Module module, Shape sNoDL)
+    {
+        ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
+        builder.prototype().x(((Point) sNoDL).getX()).y(((Point) sNoDL).getY());
+        return builder.newInstance();
+    }
+
+    private TPolygon buildPolygon(Module module, Shape sNoDL)
+    {
+
+        Geometry jtsGeometry = ((JtsGeometry) sNoDL).getGeom();
+        Polygon jtsPolygon = (Polygon) jtsGeometry;
+
+        com.vividsolutions.jts.geom.Coordinate[] coordinates = jtsPolygon.getExteriorRing().getCoordinates();
+
+        ValueBuilder<TPolygon> polygonBuilder = module.newValueBuilder(TPolygon.class);
+        ValueBuilder<TLinearRing> tLinearRingBuilder = module.newValueBuilder(TLinearRing.class);
+
+        List<TPoint> points = new ArrayList<>();
+        for (int i = 0; i < coordinates.length; i++)
+        {
+
+            points.add
+                    (
+                            TPoint(module)
+
+                                    .x(coordinates[i].x)
+                                    .y(coordinates[i].y).geometry()
+                    );
+        }
+        tLinearRingBuilder.prototype().of(points);
+
+
+        ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
+
+        builder.prototype().of
+                (
+                        tLinearRingBuilder.newInstance()
+                );
+
+        return builder.newInstance();
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/Spatial4JToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/Spatial4JToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/Spatial4JToConverter.java
new file mode 100644
index 0000000..27e2237
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/Spatial4JToConverter.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions.to;
+
+import com.spatial4j.core.context.SpatialContext;
+import com.spatial4j.core.context.jts.JtsSpatialContext;
+import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
+import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
+import com.spatial4j.core.io.jts.JtsWktShapeParser;
+import com.spatial4j.core.shape.Circle;
+import com.spatial4j.core.shape.Shape;
+import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.util.GeometricShapeFactory;
+import org.geojson.GeoJsonObject;
+import org.geojson.Point;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.internal.TCircle;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+
+public class Spatial4JToConverter
+{
+
+
+    public static final double DATELINE = 180;
+    public static final JtsSpatialContext SPATIAL_CONTEXT = JtsSpatialContext.GEO;
+    public static final GeometryFactory FACTORY = SPATIAL_CONTEXT.getGeometryFactory();
+    public static final GeometricShapeFactory SHAPE_FACTORY = new GeometricShapeFactory();
+    protected final boolean multiPolygonMayOverlap = false;
+    protected final boolean autoValidateJtsGeometry = true;
+    protected final boolean autoIndexJtsGeometry = true;
+    protected final boolean wrapdateline = SPATIAL_CONTEXT.isGeo();
+    final SpatialContext ctx;
+    {
+        JtsSpatialContextFactory factory = new JtsSpatialContextFactory();
+        factory.srid = 4326;
+        factory.datelineRule = JtsWktShapeParser.DatelineRule.ccwRect;
+        factory.wktShapeParserClass = JtsWKTReaderShapeParser.class;
+        ctx = factory.newSpatialContext();
+    }
+    private Module module;
+
+    public Spatial4JToConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public GeoJsonObject convert(TGeometry intemediate)
+    {
+        // return transform(intemediate);
+        return null;
+    }
+
+    private Shape transform(TGeometry intermediate)
+    {
+
+        switch (intermediate.getType())
+        {
+            case POINT:
+                return null; // return newPoint((TPoint) intemediate);
+            case MULTIPOINT:
+                return null;
+            case LINESTRING:
+                return null;
+            case MULTILINESTRING:
+                return null;
+            case POLYGON:
+                return null;
+            case MULTIPOLYGON:
+                return null;
+            case FEATURE:
+                return null;
+            case FEATURECOLLECTION:
+                return null;
+        }
+
+        if (intermediate instanceof TCircle)
+        {
+            return newCircle((TCircle) intermediate);
+        } else
+            return null;
+
+
+    }
+
+    private Point newPoint(TPoint point)
+    {
+
+        return new Point(point.x(), point.y());
+    }
+
+    private Circle newCircle(TCircle circle)
+    {
+        return ctx.makeCircle(circle.getCentre().x(), circle.getCentre().y(), circle.radius().get());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/TGeometryToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/TGeometryToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/TGeometryToConverter.java
new file mode 100644
index 0000000..c80c06c
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/TGeometryToConverter.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions.to;
+
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+/**
+ * Created by jj on 04.12.14.
+ */
+public class TGeometryToConverter
+{
+
+    private Module module;
+
+    public TGeometryToConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public TGeometry convert(TGeometry tGeometry, String CRS)
+    {
+        return tGeometry;
+    }
+
+    public TGeometry convert(TGeometry tGeometry)
+    {
+        return convert(tGeometry, tGeometry.getCRS());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/ToHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/ToHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/ToHelper.java
new file mode 100644
index 0000000..4103075
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/formats/conversions/to/ToHelper.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions.to;
+
+import org.geojson.GeoJsonObject;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+import static org.qi4j.library.spatial.projections.transformations.TTransformations.Transform;
+
+/**
+ * Created by jj on 04.12.14.
+ */
+public class ToHelper
+{
+
+    private Module module;
+    private TGeometry intermediate;
+
+    public ToHelper(Module module, TGeometry intermediate)
+    {
+        this.module = module;
+        this.intermediate = intermediate;
+    }
+
+    private ToHelper()
+    {
+    }
+
+    public TGeometry toTGeometry()
+    {
+        return new TGeometryToConverter(module).convert(intermediate);
+    }
+
+    public TGeometry toTGeometry(String CRS) throws Exception
+    {
+        if (!intermediate.getCRS().equalsIgnoreCase(CRS))
+            Transform(module).from(intermediate).to(CRS);
+
+        return new TGeometryToConverter(module).convert(intermediate, CRS);
+    }
+
+    public GeoJsonObject toGeoJson()
+    {
+        return new GeoJsonToConverter(module).convert(intermediate);
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/ToHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/ToHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/ToHelper.java
deleted file mode 100644
index 752dffd..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/ToHelper.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.projection.transformations.fromto;
-
-import org.cts.IllegalCoordinateException;
-import org.cts.crs.GeodeticCRS;
-import org.cts.op.CoordinateOperation;
-import org.cts.op.CoordinateOperationFactory;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.projection.ProjectionsRegistry;
-
-import java.util.List;
-
-
-public class ToHelper
-{
-
-    private Module module;
-    private TGeometry intermediate;
-    private double maxPrecisionMeanConversionError = Double.MAX_VALUE;
-
-    public ToHelper(Module module, TGeometry intermediate)
-    {
-        this.module = module;
-        this.intermediate = intermediate;
-    }
-
-    private ToHelper() {}
-
-
-    public  void to(String CRS, double maxPrecisionMeanConversionError) throws RuntimeException
-    {
-        this.maxPrecisionMeanConversionError = maxPrecisionMeanConversionError;
-        to(CRS);
-    }
-
-    public  void to(String CRS) throws RuntimeException
-    {
-    try
-    {
-        GeodeticCRS sourceCRS = (GeodeticCRS) new ProjectionsRegistry().getCRS(intermediate.getCRS());
-        GeodeticCRS targetCRS = (GeodeticCRS) new ProjectionsRegistry().getCRS(CRS);
-
-
-        if (sourceCRS.equals(targetCRS)) {
-            return;
-        }
-        switch (intermediate.getType()) {
-            case POINT:
-                transform(sourceCRS, targetCRS, new Coordinate[]{((TPoint) intermediate).getCoordinate()});
-                break;
-            case MULTIPOINT:
-                transform(sourceCRS, targetCRS, ((TMultiPoint) intermediate).getCoordinates());
-                break;
-            case LINESTRING:
-                transform(sourceCRS, targetCRS, ((TLineString) intermediate).getCoordinates());
-                break;
-            case MULTILINESTRING:
-                transform(sourceCRS, targetCRS, ((TMultiLineString) intermediate).getCoordinates());
-                break;
-            case POLYGON:
-                transform(sourceCRS, targetCRS, ((TPolygon) intermediate).getCoordinates());
-                break;
-            case MULTIPOLYGON:
-                transform(sourceCRS, targetCRS, ((TMultiPolygon) intermediate).getCoordinates());
-                break;
-            case FEATURE:
-                transform(sourceCRS, targetCRS, ((TFeature) intermediate).getCoordinates());
-                break;
-            case FEATURECOLLECTION:
-                transform(sourceCRS, targetCRS, ((TFeatureCollection) intermediate).getCoordinates());
-                break;
-        }
-
-        // JJ TODO - Set nested TGeometries CRSs as well
-        intermediate.setCRS(targetCRS.getCode());
-    } catch(Exception _ex)
-    {
-        throw new RuntimeException(_ex);
-    }
-    }
-
-
-
-    private void transformTPoint(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TPoint tPoint ) throws Exception
-    {
-        transform(sourceCRS, targetCRS, new Coordinate[] { tPoint.getCoordinate() });
-        tPoint.setCRS(targetCRS.getCode());
-    }
-
-    private void transformTMultiPoint(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TMultiPoint tMultiPoint ) throws Exception
-    {
-        transform(sourceCRS, targetCRS, tMultiPoint.getCoordinates());
-        tMultiPoint.setCRS(targetCRS.getCode());
-        // tMultiPoint.
-    }
-
-    private void transformTLineString(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TLineString tLineString ) throws Exception
-    {
-
-        transform(sourceCRS, targetCRS, tLineString.getCoordinates());
-        tLineString.setCRS(targetCRS.getCode());
-        // tMultiPoint.
-    }
-
-
-    private void transform(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, Coordinate... coordinates) throws IllegalCoordinateException
-    {
-        List<CoordinateOperation> ops;
-        ops = CoordinateOperationFactory.createCoordinateOperations(sourceCRS, targetCRS);
-
-        if (!ops.isEmpty()) {
-            if (true) {
-                 System.out.println("Number of Operations " + ops.size());
-                 System.out.println("Precision " + ops.get(0).getPrecision() + " m.");
-                 System.out.println(ops.get(0));
-            }
-
-            if (maxPrecisionMeanConversionError < Double.MAX_VALUE && maxPrecisionMeanConversionError < ops.get(0).getPrecision())
-                throw new RuntimeException("Transformation from " + sourceCRS.getCode() + " to " + targetCRS.getCode() +
-                        " can not be done with the requested precision of " + maxPrecisionMeanConversionError + " meters." +
-                        " Current precision mean conversion error is " + ops.get(0).getPrecision() + " meters.");
-
-            for (Coordinate coordinate : coordinates)
-            {
-                double[] c = ops.get(0).transform(new double[]{coordinate.y(), coordinate.x() /** z */} );
-                coordinate.y(c[0]).x(c[1]);
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/TTransformations.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/TTransformations.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/TTransformations.java
new file mode 100644
index 0000000..657c377
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/transformations/TTransformations.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.projections.transformations;
+
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.projections.transformations.fromto.FromHelper;
+
+
+public class TTransformations
+{
+
+    public static FromHelper Transform(Module module)
+    {
+        return new FromHelper(module);
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConvertFromGeoJsonToTGeometryTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConvertFromGeoJsonToTGeometryTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConvertFromGeoJsonToTGeometryTest.java
deleted file mode 100644
index 377eebc..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConvertFromGeoJsonToTGeometryTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.geojson.*;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.qi4j.api.geometry.*;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.spatial.assembly.TGeometryAssembler;
-import org.qi4j.test.AbstractQi4jTest;
-
-import java.util.Arrays;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-
-
-public class ConvertFromGeoJsonToTGeometryTest extends AbstractQi4jTest {
-
-    private final String CRS_EPSG_4326_ = "EPSG:4326";
-    private final String CRS_EPSG_27572 = "EPSG:27572";
-    private ObjectMapper geoJsonMapper = new ObjectMapper();
-
-    @Override
-    public void assemble(ModuleAssembly module)
-            throws AssemblyException {
-        new TGeometryAssembler().assemble(module);
-    }
-
-    @Ignore("Benchmarking is not in scope for this test.")
-    @Test
-    public void whenConvertFromTGeometryToTGeometry() throws Exception {
-        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
-        for (int i = 0; i < 1000000; i++) {
-            TPoint tPoint2 = (TPoint) TConversions.Convert(module).from(tPoint1).toTGeometry(CRS_EPSG_27572);
-            TPoint tPoint3 = (TPoint) TConversions.Convert(module).from(tPoint1).toTGeometry(CRS_EPSG_4326_);
-
-        }
-    }
-
-    @Test
-    public void whenConvertPointFromGeoJsonToTGeometry() {
-        TPoint tPoint = TPoint(module).y(100).x(0).geometry();
-        Point gPoint = new Point(100, 0);
-        TPoint convTPoint = (TPoint) TConversions.Convert(module).from(gPoint).toTGeometry();
-        assertTrue(tPoint.compareTo(convTPoint) == 0);
-    }
-
-    @Test
-    public void whenConvertMultiPointFromGeoJsonToTGeometry() {
-        TMultiPoint tMultiPoint = TMultiPoint(module).of
-                (
-                        TPoint(module).y(1).x(1).geometry(),
-                        TPoint(module).y(2).x(2).geometry()
-                ).geometry();
-        MultiPoint multiPoint = new MultiPoint(new LngLatAlt(1, 1), new LngLatAlt(2, 2));
-        TMultiPoint convTMultiPoint = (TMultiPoint) TConversions.Convert(module).from(multiPoint).toTGeometry();
-        assertTrue(((TPoint) tMultiPoint.getGeometryN(0)).compareTo(convTMultiPoint.getGeometryN(0)) == 0);
-    }
-
-
-    @Test
-    public void whenConvertLineStringFromGeoJsonToTGeometry() throws Exception {
-        LineString lineString = geoJsonMapper.readValue("{\"type\":\"LineString\",\"coordinates\":[[100.0,0.0],[101.0,1.0]]}",
-                LineString.class);
-        TLineString convTLineString = (TLineString) TConversions.Convert(module).from(lineString).toTGeometry();
-        assertTrue(TLineString(module).points(new double[][]{{100, 0}, {101, 1}}).geometry().compareTo(convTLineString) == 0);
-    }
-
-    @Test
-    public void whenConvertMultiLineStringFromGeoJsonToTGeometry() throws Exception {
-        MultiLineString multiLineString = new MultiLineString();
-        multiLineString.add(Arrays.asList(new LngLatAlt(100, 0), new LngLatAlt(101, 1)));
-        TMultiLineString convTMultiLineString = (TMultiLineString) TConversions.Convert(module).from(multiLineString).toTGeometry();
-        TMultiLineString compTMultiLineString = TMultiLineString(module).of
-                (
-                        TLineString(module).points(new double[][]
-                                {
-                                        {0, 100},
-                                        {1, 101}
-                                }).geometry()
-                ).geometry();
-        assertTrue(((TLineString) compTMultiLineString.getGeometryN(0)).compareTo((TLineString) convTMultiLineString.getGeometryN(0)) == 0);
-    }
-
-    @Test
-    public void whenConvertPolygonFromGeoJsonToTGeometry() throws Exception {
-        Polygon polygon = geoJsonMapper.readValue("{\"type\":\"Polygon\",\"coordinates\":"
-                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
-                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]}", Polygon.class);
-        TPolygon convTPolygon = (TPolygon) TConversions.Convert(module).from(polygon).toTGeometry();
-
-        TPolygon compTPolygon = TPolygon(module)
-                .shell
-                        (
-                                TLinearRing(module).ring(new double[][]
-                                        {
-                                                {0, 100},
-                                                {0, 101},
-                                                {1, 101},
-                                                {1, 100},
-                                                {0, 100}
-                                        }).geometry()
-                        )
-                .withHoles
-                        (
-                                TLinearRing(module).ring(new double[][]
-                                        {
-                                                {0.2, 100.2},
-                                                {0.2, 100.8},
-                                                {0.8, 100.8},
-                                                {0.8, 100.2},
-                                                {0.2, 100.2}
-                                        }).geometry()
-                        )
-                .geometry();
-
-        assertEquals(compTPolygon.getNumPoints(), convTPolygon.getNumPoints());
-        assertTrue(compTPolygon.shell().get().compareTo(convTPolygon.shell().get()) == 0);
-    }
-
-    @Test
-    public void whenConvertMultiPolygonFromGeoJsonToTGeometry() throws Exception {
-        MultiPolygon multiPolygon = geoJsonMapper.readValue("{\"type\":\"MultiPolygon\",\"coordinates\":[[[[102.0,2.0],[103.0,2.0],[103.0,3.0],[102.0,3.0],[102.0,2.0]]],"
-                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
-                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]]}", MultiPolygon.class);
-        TMultiPolygon convTMultiPolygon = (TMultiPolygon) TConversions.Convert(module).from(multiPolygon).toTGeometry();
-        assertEquals(15, convTMultiPolygon.getNumPoints());
-    }
-
-    @Test
-    public void whenConvertFeatureFromGeoJsonToTGeometry() throws Exception {
-        Feature feature = new Feature();
-        feature.setGeometry(new Point(100, 0));
-        TFeature convTFeature = (TFeature) TConversions.Convert(module).from(feature).toTGeometry();
-        TFeature compTFeature = TFeature(module).of(TPoint(module).y(100).x(0).geometry()).geometry();
-        assertTrue(convTFeature.getNumPoints() == compTFeature.getNumPoints());
-    }
-
-    @Test
-    public void whenConvertFeatureCollectionFromGeoJsonToTGeometry() throws Exception {
-        Feature f1 = new Feature();
-        f1.setGeometry(geoJsonMapper.readValue("{\"type\":\"MultiPolygon\",\"coordinates\":[[[[102.0,2.0],[103.0,2.0],[103.0,3.0],[102.0,3.0],[102.0,2.0]]],"
-                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
-                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]]}", MultiPolygon.class));
-
-        Feature f2 = new Feature();
-        f2.setGeometry(geoJsonMapper.readValue("{\"type\":\"LineString\",\"coordinates\":[[100.0,0.0],[101.0,1.0]]}",
-                LineString.class));
-
-        FeatureCollection featureCollection = new FeatureCollection();
-        featureCollection.add(f1);
-        featureCollection.add(f2);
-
-        TFeatureCollection convTFeatureCollection = (TFeatureCollection) TConversions.Convert(module).from(featureCollection).toTGeometry();
-        System.out.println(convTFeatureCollection);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/conversions/ConversionsFromWktTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/conversions/ConversionsFromWktTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/conversions/ConversionsFromWktTest.java
new file mode 100644
index 0000000..512de6a
--- /dev/null
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/conversions/ConversionsFromWktTest.java
@@ -0,0 +1,33 @@
+package org.qi4j.library.spatial.formats.conversions;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.junit.Test;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
+import org.qi4j.test.AbstractQi4jTest;
+import static org.junit.Assert.assertTrue;
+
+
+public class ConversionsFromWktTest extends AbstractQi4jTest
+{
+
+    private final String CRS_EPSG_4326 = "EPSG:4326";
+    private final String CRS_EPSG_27572 = "EPSG:27572";
+    private ObjectMapper GeoJsonMapper = new ObjectMapper();
+
+    @Override
+    public void assemble(ModuleAssembly module)
+            throws AssemblyException
+    {
+        new TGeometryAssembler().assemble(module);
+    }
+
+    @Test
+    public void WhenConvertFromWktToTGeometry() throws Exception
+    {
+        TPoint tPoint = (TPoint) TConversions.Convert(module).from("POINT(11.57958981111 48.13905780941111 )", CRS_EPSG_27572).toTGeometry();
+        assertTrue(tPoint != null);
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/conversions/ConvertFromGeoJsonToTGeometryTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/conversions/ConvertFromGeoJsonToTGeometryTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/conversions/ConvertFromGeoJsonToTGeometryTest.java
new file mode 100644
index 0000000..d63a23e
--- /dev/null
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/conversions/ConvertFromGeoJsonToTGeometryTest.java
@@ -0,0 +1,189 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.formats.conversions;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.geojson.*;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.qi4j.api.geometry.*;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
+import org.qi4j.test.AbstractQi4jTest;
+
+import java.util.Arrays;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.qi4j.api.geometry.TGeometryFactory.*;
+
+
+public class ConvertFromGeoJsonToTGeometryTest extends AbstractQi4jTest
+{
+
+    private final String CRS_EPSG_4326_ = "EPSG:4326";
+    private final String CRS_EPSG_27572 = "EPSG:27572";
+    private ObjectMapper geoJsonMapper = new ObjectMapper();
+
+    @Override
+    public void assemble(ModuleAssembly module)
+            throws AssemblyException
+    {
+        new TGeometryAssembler().assemble(module);
+    }
+
+    @Ignore("Benchmarking is not in scope for this test.")
+    @Test
+    public void whenConvertFromTGeometryToTGeometry() throws Exception
+    {
+        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
+        for (int i = 0; i < 1000000; i++)
+        {
+            TPoint tPoint2 = (TPoint) TConversions.Convert(module).from(tPoint1).toTGeometry(CRS_EPSG_27572);
+            TPoint tPoint3 = (TPoint) TConversions.Convert(module).from(tPoint1).toTGeometry(CRS_EPSG_4326_);
+        }
+    }
+
+    @Test
+    public void whenConvertPointFromGeoJsonToTGeometry()
+    {
+        TPoint tPoint = TPoint(module).y(100).x(0).geometry();
+        Point gPoint = new Point(100, 0);
+        TPoint convTPoint = (TPoint) TConversions.Convert(module).from(gPoint).toTGeometry();
+        assertTrue(tPoint.compareTo(convTPoint) == 0);
+    }
+
+    @Test
+    public void whenConvertMultiPointFromGeoJsonToTGeometry()
+    {
+        TMultiPoint tMultiPoint = TMultiPoint(module).of
+                (
+                        TPoint(module).y(1).x(1).geometry(),
+                        TPoint(module).y(2).x(2).geometry()
+                ).geometry();
+        MultiPoint multiPoint = new MultiPoint(new LngLatAlt(1, 1), new LngLatAlt(2, 2));
+        TMultiPoint convTMultiPoint = (TMultiPoint) TConversions.Convert(module).from(multiPoint).toTGeometry();
+        assertTrue(((TPoint) tMultiPoint.getGeometryN(0)).compareTo(convTMultiPoint.getGeometryN(0)) == 0);
+    }
+
+
+    @Test
+    public void whenConvertLineStringFromGeoJsonToTGeometry() throws Exception
+    {
+        LineString lineString = geoJsonMapper.readValue("{\"type\":\"LineString\",\"coordinates\":[[100.0,0.0],[101.0,1.0]]}",
+                LineString.class);
+        TLineString convTLineString = (TLineString) TConversions.Convert(module).from(lineString).toTGeometry();
+        assertTrue(TLineString(module).points(new double[][]{{100, 0}, {101, 1}}).geometry().compareTo(convTLineString) == 0);
+    }
+
+    @Test
+    public void whenConvertMultiLineStringFromGeoJsonToTGeometry() throws Exception
+    {
+        MultiLineString multiLineString = new MultiLineString();
+        multiLineString.add(Arrays.asList(new LngLatAlt(100, 0), new LngLatAlt(101, 1)));
+        TMultiLineString convTMultiLineString = (TMultiLineString) TConversions.Convert(module).from(multiLineString).toTGeometry();
+        TMultiLineString compTMultiLineString = TMultiLineString(module).of
+                (
+                        TLineString(module).points(new double[][]
+                                {
+                                        {0, 100},
+                                        {1, 101}
+                                }).geometry()
+                ).geometry();
+        assertTrue(((TLineString) compTMultiLineString.getGeometryN(0)).compareTo((TLineString) convTMultiLineString.getGeometryN(0)) == 0);
+    }
+
+    @Test
+    public void whenConvertPolygonFromGeoJsonToTGeometry() throws Exception
+    {
+        Polygon polygon = geoJsonMapper.readValue("{\"type\":\"Polygon\",\"coordinates\":"
+                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
+                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]}", Polygon.class);
+        TPolygon convTPolygon = (TPolygon) TConversions.Convert(module).from(polygon).toTGeometry();
+
+        TPolygon compTPolygon = TPolygon(module)
+                .shell
+                        (
+                                TLinearRing(module).ring(new double[][]
+                                        {
+                                                {0, 100},
+                                                {0, 101},
+                                                {1, 101},
+                                                {1, 100},
+                                                {0, 100}
+                                        }).geometry()
+                        )
+                .withHoles
+                        (
+                                TLinearRing(module).ring(new double[][]
+                                        {
+                                                {0.2, 100.2},
+                                                {0.2, 100.8},
+                                                {0.8, 100.8},
+                                                {0.8, 100.2},
+                                                {0.2, 100.2}
+                                        }).geometry()
+                        )
+                .geometry();
+
+        assertEquals(compTPolygon.getNumPoints(), convTPolygon.getNumPoints());
+        assertTrue(compTPolygon.shell().get().compareTo(convTPolygon.shell().get()) == 0);
+    }
+
+    @Test
+    public void whenConvertMultiPolygonFromGeoJsonToTGeometry() throws Exception
+    {
+        MultiPolygon multiPolygon = geoJsonMapper.readValue("{\"type\":\"MultiPolygon\",\"coordinates\":[[[[102.0,2.0],[103.0,2.0],[103.0,3.0],[102.0,3.0],[102.0,2.0]]],"
+                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
+                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]]}", MultiPolygon.class);
+        TMultiPolygon convTMultiPolygon = (TMultiPolygon) TConversions.Convert(module).from(multiPolygon).toTGeometry();
+        assertEquals(15, convTMultiPolygon.getNumPoints());
+    }
+
+    @Test
+    public void whenConvertFeatureFromGeoJsonToTGeometry() throws Exception
+    {
+        Feature feature = new Feature();
+        feature.setGeometry(new Point(100, 0));
+        TFeature convTFeature = (TFeature) TConversions.Convert(module).from(feature).toTGeometry();
+        TFeature compTFeature = TFeature(module).of(TPoint(module).y(100).x(0).geometry()).geometry();
+        assertTrue(convTFeature.getNumPoints() == compTFeature.getNumPoints());
+    }
+
+    @Test
+    public void whenConvertFeatureCollectionFromGeoJsonToTGeometry() throws Exception
+    {
+        Feature f1 = new Feature();
+        f1.setGeometry(geoJsonMapper.readValue("{\"type\":\"MultiPolygon\",\"coordinates\":[[[[102.0,2.0],[103.0,2.0],[103.0,3.0],[102.0,3.0],[102.0,2.0]]],"
+                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
+                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]]}", MultiPolygon.class));
+
+        Feature f2 = new Feature();
+        f2.setGeometry(geoJsonMapper.readValue("{\"type\":\"LineString\",\"coordinates\":[[100.0,0.0],[101.0,1.0]]}",
+                LineString.class));
+
+        FeatureCollection featureCollection = new FeatureCollection();
+        featureCollection.add(f1);
+        featureCollection.add(f2);
+
+        TFeatureCollection convTFeatureCollection = (TFeatureCollection) TConversions.Convert(module).from(featureCollection).toTGeometry();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/684bb9eb/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/data/GeoJSONSpec20080616.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/data/GeoJSONSpec20080616.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/data/GeoJSONSpec20080616.java
new file mode 100644
index 0000000..803ec99
--- /dev/null
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/data/GeoJSONSpec20080616.java
@@ -0,0 +1,28 @@
+package org.qi4j.library.spatial.formats.data;
+
+/**
+ * http://geojson.org/geojson-spec.html
+ */
+public class GeoJSONSpec20080616
+{
+
+
+    // Version 1.0
+
+    public static final String LineString = "{ \"type\": \"LineString\",\r\n    \"coordinates\": [ [100.0, 0.0], [101.0, 1.0] ]\r\n }";
+
+    public static final String Polygon = "{ \"type\": \"Polygon\",\r\n    \"coordinates\": [\r\n      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]\r\n      ]\r\n }";
+
+    public static final String Polygon_with_Holes = "{ \\\"type\\\": \\\"Polygon\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],\\r\\n      [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]\\r\\n      ]\\r\\n  }";
+
+    public static final String Multipoint = "{ \\\"type\\\": \\\"MultiPoint\\\",\\r\\n    \\\"coordinates\\\": [ [100.0, 0.0], [101.0, 1.0] ]\\r\\n  }";
+
+    public static final String MultiLineString = "{ \\\"type\\\": \\\"MultiLineString\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n        [ [100.0, 0.0], [101.0, 1.0] ],\\r\\n        [ [102.0, 2.0], [103.0, 3.0] ]\\r\\n      ]\\r\\n    }";
+
+    public static final String MultiPolygon = "{ \\\"type\\\": \\\"MultiPolygon\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n      [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],\\r\\n      [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],\\r\\n       [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]\\r\\n      ]\\r\\n  }";
+
+    public static final String GeometryCollection = "{ \\\"type\\\": \\\"GeometryCollection\\\",\\r\\n    \\\"geometries\\\": [\\r\\n      { \\\"type\\\": \\\"Point\\\",\\r\\n        \\\"coordinates\\\": [100.0, 0.0]\\r\\n        },\\r\\n      { \\\"type\\\": \\\"LineString\\\",\\r\\n        \\\"coordinates\\\": [ [101.0, 0.0], [102.0, 1.0] ]\\r\\n        }\\r\\n    ]\\r\\n  }";
+
+    public static final String FeatureCollection = "{ \"type\": \"FeatureCollection\",\r\n    \"features\": [\r\n      { \"type\": \"Feature\",\r\n        \"geometry\": {\"type\": \"Point\", \"coordinates\": [102.0, 0.5]},\r\n        \"properties\": {\"prop0\": \"value0\"}\r\n        },\r\n      { \"type\": \"Feature\",\r\n        \"geometry\": {\r\n          \"type\": \"LineString\",\r\n          \"coordinates\": [\r\n            [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]\r\n            ]\r\n          },\r\n        \"properties\": {\r\n          \"prop0\": \"value0\",\r\n          \"prop1\": 0.0\r\n          }\r\n        },\r\n      { \"type\": \"Feature\",\r\n         \"geometry\": {\r\n           \"type\": \"Polygon\",\r\n           \"coordinates\": [\r\n             [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],\r\n               [100.0, 1.0], [100.0, 0.0] ]\r\n             ]\r\n         },\r\n         \"properties\": {\r\n           \"prop0\": \"value0\",\r\n          
  \"prop1\": {\"this\": \"that\"}\r\n           }\r\n         }\r\n       ]\r\n     }";
+
+}


[14/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ti-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ti-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ti-municipalities.json
deleted file mode 100644
index beca2c9..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ti-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":5001,"properties":{"name":"Arbedo-Castione"},"arcs":[[[-139,233,234,235,236,237,238]]]},{"type":"MultiPolygon","id":5002,"properties":{"name":"Bellinzona"},"arcs":[[[247,248,249,250,-234,-138]]]},{"type":"MultiPolygon","id":5003,"properties":{"name":"Cadenazzo"},"arcs":[[[-70,-320,-261,-305,327,-275,-118]]]},{"type":"MultiPolygon","id":5004,"properties":{"name":"Camorino"},"arcs":[[[-277,328,329,330]]]},{"type":"MultiPolygon","id":5005,"properties":{"name":"Giubiasco"},"arcs":[[[-330,-340,-303,-332,-312,-249,-333]]]},{"type":"MultiPolygon","id":5006,"properties":{"name":"Gnosca"},"arcs":[[[-321,-272,-240,-236]]]},{"type":"MultiPolygon","id":5007,"properties":{"name":"Gorduno"},"arcs":[[[-251,-311,-273,320,-235]]]},{"type":"MultiPolygon","id":5008,"properties":{"name":"Gudo"},"arcs":[[[-260,301,302,303,304]]]},{"type":"MultiPolygon","id":5009,"properties":{"name":"Iso
 ne"},"arcs":[[[-128,-119,274,275,276,277,278]]]},{"type":"MultiPolygon","id":5010,"properties":{"name":"Lumino"},"arcs":[[[-238,-244,300]]]},{"type":"MultiPolygon","id":5012,"properties":{"name":"Moleno"},"arcs":[[[-144,-266,-271]]]},{"type":"MultiPolygon","id":5013,"properties":{"name":"Monte Carasso"},"arcs":[[[-258,-274,310,-250,311,312]]]},{"type":"MultiPolygon","id":5014,"properties":{"name":"Pianezzo"},"arcs":[[[-331,332,-248,-137,333]]]},{"type":"MultiPolygon","id":5015,"properties":{"name":"Preonzo"},"arcs":[[[-209,-65,-145,270,-265,-241,271,272,273,-257]]]},{"type":"MultiPolygon","id":5017,"properties":{"name":"Sant'Antonino"},"arcs":[[[-328,-304,339,-329,-276]]]},{"type":"MultiPolygon","id":5018,"properties":{"name":"Sant'Antonio"},"arcs":[[[134,135,136,137,138,139]]]},{"type":"MultiPolygon","id":5019,"properties":{"name":"Sementina"},"arcs":[[[-259,-313,331,-302]]]},{"type":"MultiPolygon","id":5048,"properties":{"name":"Acquarossa"},"arcs":[[[-26,-3,-44,52]]]},{"type":"Mu
 ltiPolygon","id":5049,"properties":{"name":"Blenio"},"arcs":[[[0,1,2,3,4]]]},{"type":"MultiPolygon","id":5050,"properties":{"name":"Serravalle"},"arcs":[[[40,41,42,43,-2,44,45]]]},{"type":"MultiPolygon","id":5061,"properties":{"name":"Airolo"},"arcs":[[[46,47,48,-8]]]},{"type":"MultiPolygon","id":5063,"properties":{"name":"Bedretto"},"arcs":[[[49,-47,-7,-16]]]},{"type":"MultiPolygon","id":5064,"properties":{"name":"Bodio"},"arcs":[[[-108,-247,340,-42,341]]]},{"type":"MultiPolygon","id":5071,"properties":{"name":"Dalpe"},"arcs":[[[-11,-270,-23]]]},{"type":"MultiPolygon","id":5072,"properties":{"name":"Faido"},"arcs":[[[-12,22,23,24,-4,25,26,27,28,29]]]},{"type":"MultiPolygon","id":5073,"properties":{"name":"Giornico"},"arcs":[[[-28,245,246,-107,-183]]]},{"type":"MultiPolygon","id":5076,"properties":{"name":"Personico"},"arcs":[[[-62,105,106,107,108,109]]]},{"type":"MultiPolygon","id":5077,"properties":{"name":"Pollegio"},"arcs":[[[-109,-342,-41,-55]]]},{"type":"MultiPolygon","id":507
 8,"properties":{"name":"Prato (Leventina)"},"arcs":[[[-52,-24,269,-10]]]},{"type":"MultiPolygon","id":5079,"properties":{"name":"Quinto"},"arcs":[[[-49,50,-5,-25,51,-9]]]},{"type":"MultiPolygon","id":5081,"properties":{"name":"Sobrio"},"arcs":[[[-27,-53,-43,-341,-246]]]},{"type":"MultiPolygon","id":5091,"properties":{"name":"Ascona"},"arcs":[[[-79,-317,-306,-92,-91,-385,-263]]]},{"type":"MultiPolygon","id":5095,"properties":{"name":"Brione (Verzasca)"},"arcs":[[[-14,80,81,-60,82,-32]]]},{"type":"MultiPolygon","id":5096,"properties":{"name":"Brione sopra Minusio"},"arcs":[[[-361,414,-359,-177,-281,415]]]},{"type":"MultiPolygon","id":5097,"properties":{"name":"Brissago"},"arcs":[[[261,-80,262,263,-89]]]},{"type":"MultiPolygon","id":5099,"properties":{"name":"Cavigliano"},"arcs":[[[-77,-268,-36,366,-314]]]},{"type":"MultiPolygon","id":5102,"properties":{"name":"Corippo"},"arcs":[[[-282,-181,-58,-208]]]},{"type":"MultiPolygon","id":5105,"properties":{"name":"Frasco"},"arcs":[[[-29,182,-
 106,183,-111]]]},{"type":"MultiPolygon","id":5108,"properties":{"name":"Gordola"},"arcs":[[[-98,337,-283,-211,-256,338,-318]]]},{"type":"MultiPolygon","id":5109,"properties":{"name":"Gresso"},"arcs":[[[-39,-174,-102]],[[-104,-173]]]},{"type":"MultiPolygon","id":5112,"properties":{"name":"Lavertezzo"},"arcs":[[[57,58,59,60,61,62,63,64,65]],[[-339,-255,-319]]]},{"type":"MultiPolygon","id":5113,"properties":{"name":"Locarno"},"arcs":[[[305,306,307,-179,308,309,-93]],[[-100,-99,317,318,-254,319,-69]]]},{"type":"MultiPolygon","id":5115,"properties":{"name":"Losone"},"arcs":[[[-78,313,314,315,-307,316]]]},{"type":"MultiPolygon","id":5117,"properties":{"name":"Mergoscia"},"arcs":[[[279,280,-182,281,-207,282]]]},{"type":"MultiPolygon","id":5118,"properties":{"name":"Minusio"},"arcs":[[[-96,-95,356,357,-178,358,359,360,361,362]]]},{"type":"MultiPolygon","id":5119,"properties":{"name":"Mosogno"},"arcs":[[[-176,-269,-75]]]},{"type":"MultiPolygon","id":5120,"properties":{"name":"Muralto"},"arcs
 ":[[[-310,-463,-357,-94]]]},{"type":"MultiPolygon","id":5121,"properties":{"name":"Orselina"},"arcs":[[[-309,-358,462]]]},{"type":"MultiPolygon","id":5125,"properties":{"name":"Ronco sopra Ascona"},"arcs":[[[-264,384,-90]]]},{"type":"MultiPolygon","id":5129,"properties":{"name":"Sonogno"},"arcs":[[[-13,-30,110,111,-81]]]},{"type":"MultiPolygon","id":5130,"properties":{"name":"Tegna"},"arcs":[[[-316,-428,-34,-180,-308]]]},{"type":"MultiPolygon","id":5131,"properties":{"name":"Tenero-Contra"},"arcs":[[[-97,-363,-362,-416,-280,-338]]]},{"type":"MultiPolygon","id":5132,"properties":{"name":"Vergeletto"},"arcs":[[[100,-87,-40,101,102,103,104]]]},{"type":"MultiPolygon","id":5133,"properties":{"name":"Verscio"},"arcs":[[[-367,-35,427,-315]]]},{"type":"MultiPolygon","id":5135,"properties":{"name":"Vogorno"},"arcs":[[[206,207,-66,208,209,210]]]},{"type":"MultiPolygon","id":5136,"properties":{"name":"Onsernone"},"arcs":[[[171,-105,172,-103,173,-38,174,175,-74]]]},{"type":"MultiPolygon","id":5
 137,"properties":{"name":"Isorno"},"arcs":[[[-175,-37,267,-76,268]]]},{"type":"MultiPolygon","id":5138,"properties":{"name":"Cugnasco-Gerra"},"arcs":[[[253,254,255,-210,256,257,258,259,260]],[[-112,-184,-61,-82]]]},{"type":"MultiPolygon","id":5141,"properties":{"name":"Agno"},"arcs":[[[438,439,440,-343,441,-156]]]},{"type":"MultiPolygon","id":5143,"properties":{"name":"Aranno"},"arcs":[[[-405,-383,-221,-414,-346,435]]]},{"type":"MultiPolygon","id":5144,"properties":{"name":"Arogno"},"arcs":[[[321,322,323,324,325,326]]]},{"type":"MultiPolygon","id":5146,"properties":{"name":"Astano"},"arcs":[[[416,-410,417,418,419]]]},{"type":"MultiPolygon","id":5148,"properties":{"name":"Bedano"},"arcs":[[[464,465,-216,-377]]]},{"type":"MultiPolygon","id":5149,"properties":{"name":"Bedigliora"},"arcs":[[[-431,442,-407,443,444,-398]],[[-409,-487,-418]]]},{"type":"MultiPolygon","id":5151,"properties":{"name":"Bioggio"},"arcs":[[[342,343,344,345,346,-219,347,348,-198,349]]]},{"type":"MultiPolygon","id"
 :5154,"properties":{"name":"Bissone"},"arcs":[[[-169,469,-323,470]]]},{"type":"MultiPolygon","id":5155,"properties":{"name":"Bogno"},"arcs":[[[410,-293,411]]]},{"type":"MultiPolygon","id":5160,"properties":{"name":"Brusino Arsizio"},"arcs":[[[412,-149,-356,-336]]]},{"type":"MultiPolygon","id":5161,"properties":{"name":"Cademario"},"arcs":[[[413,-220,-347]]]},{"type":"MultiPolygon","id":5162,"properties":{"name":"Cadempino"},"arcs":[[[-481,-448,-468,-484]]]},{"type":"MultiPolygon","id":5163,"properties":{"name":"Cadro"},"arcs":[[[-205,391,-134,-297,392,393]]]},{"type":"MultiPolygon","id":5167,"properties":{"name":"Canobbio"},"arcs":[[[-204,-477,-460,-123,-392]]]},{"type":"MultiPolygon","id":5170,"properties":{"name":"Carona"},"arcs":[[[385,386,387,-191]]]},{"type":"MultiPolygon","id":5171,"properties":{"name":"Caslano"},"arcs":[[[431,-426,432,-154,-153,-152]]]},{"type":"MultiPolygon","id":5173,"properties":{"name":"Certara"},"arcs":[[[-373,-294,-411,434]]]},{"type":"MultiPolygon","id
 ":5174,"properties":{"name":"Cimadera"},"arcs":[[[-298,-295,372,373]]]},{"type":"MultiPolygon","id":5176,"properties":{"name":"Comano"},"arcs":[[[457,458,-454,-124,459]]]},{"type":"MultiPolygon","id":5178,"properties":{"name":"Croglio"},"arcs":[[[394,395,396,397,398,399,400]]]},{"type":"MultiPolygon","id":5180,"properties":{"name":"Cureglia"},"arcs":[[[-476,-482,483,-467,-455,-459]]]},{"type":"MultiPolygon","id":5181,"properties":{"name":"Curio"},"arcs":[[[-444,-406,-436,-345,451,452,-424]],[[-419,486,-408,-443,-430]],[[-399,-445,-423]]]},{"type":"MultiPolygon","id":5186,"properties":{"name":"Grancia"},"arcs":[[[-355,-194]]]},{"type":"MultiPolygon","id":5187,"properties":{"name":"Gravesano"},"arcs":[[[-217,-466,-469,-446]]]},{"type":"MultiPolygon","id":5189,"properties":{"name":"Lamone"},"arcs":[[[466,467,-447,468,-465,-376,-456]]]},{"type":"MultiPolygon","id":5192,"properties":{"name":"Lugano"},"arcs":[[[-165,188,-163,189,190,191,-159,192,193,194,195,196,197,198,199,200,201,202,203
 ,204,205]],[[-325,388,-167,389]],[[-393,-300,450]]]},{"type":"MultiPolygon","id":5193,"properties":{"name":"Magliaso"},"arcs":[[[-433,482,-439,-155]]]},{"type":"MultiPolygon","id":5194,"properties":{"name":"Manno"},"arcs":[[[-348,-218,445,446,447,448]]]},{"type":"MultiPolygon","id":5195,"properties":{"name":"Maroggia"},"arcs":[[[-170,-471,-322,-365,-391]]]},{"type":"MultiPolygon","id":5196,"properties":{"name":"Massagno"},"arcs":[[[-201,-486]]]},{"type":"MultiPolygon","id":5197,"properties":{"name":"Melano"},"arcs":[[[-230,-171,390,-364,-284]]]},{"type":"MultiPolygon","id":5198,"properties":{"name":"Melide"},"arcs":[[[-162,-464,-386,-190]]]},{"type":"MultiPolygon","id":5199,"properties":{"name":"Mezzovico-Vira"},"arcs":[[[-121,-127]]]},{"type":"MultiPolygon","id":5200,"properties":{"name":"Miglieglia"},"arcs":[[[381,-222,382,383]]]},{"type":"MultiPolygon","id":5202,"properties":{"name":"Monteggio"},"arcs":[[[420,421,-396]]]},{"type":"MultiPolygon","id":5203,"properties":{"name":"Mor
 cote"},"arcs":[[[-160,-192,-388,433]]]},{"type":"MultiPolygon","id":5205,"properties":{"name":"Muzzano"},"arcs":[[[-442,-350,-197,477,-353,-157]]]},{"type":"MultiPolygon","id":5206,"properties":{"name":"Neggio"},"arcs":[[[-425,-453,-479,-440,-483]]]},{"type":"MultiPolygon","id":5207,"properties":{"name":"Novaggio"},"arcs":[[[403,-384,404,405,406,407,408,409]]]},{"type":"MultiPolygon","id":5208,"properties":{"name":"Origlio"},"arcs":[[[453,454,455,-375,456,-125]]]},{"type":"MultiPolygon","id":5210,"properties":{"name":"Paradiso"},"arcs":[[[-164,-189]]]},{"type":"MultiPolygon","id":5212,"properties":{"name":"Ponte Capriasca"},"arcs":[[[-129,-279,401,-135,402,-291]],[[-457,-378,-115,471,-113,-126]]]},{"type":"MultiPolygon","id":5213,"properties":{"name":"Ponte Tresa"},"arcs":[[[487,-401,-427,-432,-151]]]},{"type":"MultiPolygon","id":5214,"properties":{"name":"Porza"},"arcs":[[[-203,473,474,475,-458,476]]]},{"type":"MultiPolygon","id":5216,"properties":{"name":"Pura"},"arcs":[[[-400,422
 ,423,424,425,426]]]},{"type":"MultiPolygon","id":5219,"properties":{"name":"Rovio"},"arcs":[[[363,364,-327,365,-285]]]},{"type":"MultiPolygon","id":5221,"properties":{"name":"Savosa"},"arcs":[[[-202,485,-200,-480,-474]]]},{"type":"MultiPolygon","id":5222,"properties":{"name":"Sessa"},"arcs":[[[428,-420,429,430,-397,-422]]]},{"type":"MultiPolygon","id":5224,"properties":{"name":"Sonvico"},"arcs":[[[296,-133,-296,297,298,299]]]},{"type":"MultiPolygon","id":5225,"properties":{"name":"Sorengo"},"arcs":[[[-478,-196,-354]]]},{"type":"MultiPolygon","id":5226,"properties":{"name":"Capriasca"},"arcs":[[[122,123,124,125,-122,126,-120,127,128,129,130,131,132,133]],[[-472,-114]]]},{"type":"MultiPolygon","id":5227,"properties":{"name":"Torricella-Taverne"},"arcs":[[[374,375,376,-215,-116,377]]]},{"type":"MultiPolygon","id":5229,"properties":{"name":"Valcolla"},"arcs":[[[-132,289,-130,290,291,292,293,294,295]]]},{"type":"MultiPolygon","id":5230,"properties":{"name":"Vernate"},"arcs":[[[-452,-344,
 -441,478]]]},{"type":"MultiPolygon","id":5231,"properties":{"name":"Vezia"},"arcs":[[[479,-199,-349,-449,480,481,-475]]]},{"type":"MultiPolygon","id":5233,"properties":{"name":"Vico Morcote"},"arcs":[[[-161,-434,-387,463]]]},{"type":"MultiPolygon","id":5236,"properties":{"name":"Collina d'Oro"},"arcs":[[[352,353,-195,354,-193,-158]]]},{"type":"MultiPolygon","id":5237,"properties":{"name":"Alto Malcantone"},"arcs":[[[213,-72,-117,214,215,216,217,218,219,220,221]]]},{"type":"MultiPolygon","id":5238,"properties":{"name":"Monteceneri"},"arcs":[[[112,113,114,115,116,-71,117,118,119,120,121]]]},{"type":"MultiPolygon","id":5242,"properties":{"name":"Balerna"},"arcs":[[[-381,436,-288,437,-369]]]},{"type":"MultiPolygon","id":5243,"properties":{"name":"Besazio"},"arcs":[[[484,-226,-462]]]},{"type":"MultiPolygon","id":5249,"properties":{"name":"Castel San Pietro"},"arcs":[[[-231,283,284,285,-185,286,287,288]]]},{"type":"MultiPolygon","id":5250,"properties":{"name":"Chiasso"},"arcs":[[[367,368,
 369,370,371]]]},{"type":"MultiPolygon","id":5251,"properties":{"name":"Coldrerio"},"arcs":[[[-232,-289,-437,-380]]]},{"type":"MultiPolygon","id":5253,"properties":{"name":"Ligornetto"},"arcs":[[[460,461,-225,-352]]]},{"type":"MultiPolygon","id":5254,"properties":{"name":"Mendrisio"},"arcs":[[[222,223,224,225,226,227,228,-146,229,230,231,232]]]},{"type":"MultiPolygon","id":5255,"properties":{"name":"Meride"},"arcs":[[[334,335,336,-228]]]},{"type":"MultiPolygon","id":5257,"properties":{"name":"Morbio Inferiore"},"arcs":[[[-438,-287,-188,449,-370]]]},{"type":"MultiPolygon","id":5260,"properties":{"name":"Novazzano"},"arcs":[[[378,-233,379,380,-368]]]},{"type":"MultiPolygon","id":5263,"properties":{"name":"Riva San Vitale"},"arcs":[[[-229,-337,355,-148,-147]]]},{"type":"MultiPolygon","id":5266,"properties":{"name":"Stabio"},"arcs":[[[350,351,-224]]]},{"type":"MultiPolygon","id":5268,"properties":{"name":"Vacallo"},"arcs":[[[-450,-187,472,-371]]]},{"type":"MultiPolygon","id":5269,"proper
 ties":{"name":"Breggia"},"arcs":[[[184,185,186,187]]]},{"type":"MultiPolygon","id":5281,"properties":{"name":"Biasca"},"arcs":[[[53,54,-46,55,56]]]},{"type":"MultiPolygon","id":5282,"properties":{"name":"Claro"},"arcs":[[[-237,239,240,241,242,243]]]},{"type":"MultiPolygon","id":5283,"properties":{"name":"Cresciano"},"arcs":[[[-242,264,265,-143,-252,266]]]},{"type":"MultiPolygon","id":5284,"properties":{"name":"Iragna"},"arcs":[[[-63,-110,-54,-141]]]},{"type":"MultiPolygon","id":5285,"properties":{"name":"Lodrino"},"arcs":[[[-64,140,141,142,143,144]]]},{"type":"MultiPolygon","id":5286,"properties":{"name":"Osogna"},"arcs":[[[251,-142,-57,252]]]},{"type":"MultiPolygon","id":5304,"properties":{"name":"Bosco/Gurin"},"arcs":[[[211,-22,212,-85]]]},{"type":"MultiPolygon","id":5307,"properties":{"name":"Campo (Vallemaggia)"},"arcs":[[[83,84,85,-18,-31,86]]]},{"type":"MultiPolygon","id":5309,"properties":{"name":"Cerentino"},"arcs":[[[-213,-21,244,-19,-86]]]},{"type":"MultiPolygon","id":5310
 ,"properties":{"name":"Cevio"},"arcs":[[[14,15,-6,16,17,18,19,20,21]]]},{"type":"MultiPolygon","id":5315,"properties":{"name":"Linescio"},"arcs":[[[-20,-245]]]},{"type":"MultiPolygon","id":5317,"properties":{"name":"Maggia"},"arcs":[[[30,-17,31,32,33,34,35,36,37,38,39]]]},{"type":"MultiPolygon","id":5323,"properties":{"name":"Lavizzara"},"arcs":[[[5,6,7,8,9,10,11,12,13]]]},{"type":"MultiPolygon","id":5324,"properties":{"name":"Avegno Gordevio"},"arcs":[[[176,177,178,179,-33,-83,-59,180,181]]]},{"type":"MultiPolygon","id":5391,"properties":{"name":"Comunanza Cadenazzo/Monteceneri"},"arcs":[[[-278,-334,-136,-402]]]},{"type":"MultiPolygon","id":5394,"properties":{"name":"Comunanza Capriasca/Valcolla"},"arcs":[[[-131,-290]]]},{"type":"MultiPolygon","id":5397,"properties":{"name":"Centovalli"},"arcs":[[[72,73,74,75,76,77,78,79]]]},{"type":"MultiPolygon","id":5398,"properties":{"name":"Gambarogno"},"arcs":[[[66,67,68,69,70,71]]]},{"type":"MultiPolygon","id":9710,"properties":{"name":"Lago
  di Lugano"},"arcs":[[[145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170]]]},{"type":"MultiPolygon","id":9711,"properties":{"name":"Lago Maggiore"},"arcs":[[[87,88,89,90,91,92,93,94,95,96,97,98,99,-68]]]}]}},"arcs":[[[5089,9177],[199,-52],[363,104],[17,-82],[35,-15],[123,0],[156,87],[77,13],[13,22],[36,0],[143,23],[30,36],[124,20],[58,36],[123,27],[111,70],[44,40],[-12,36],[21,10],[-28,36],[-66,42],[-52,78],[12,72],[46,19],[12,25],[82,12],[40,34],[42,10],[16,-19],[91,-7],[107,-29],[112,69],[12,52],[-9,18],[24,35],[65,-31],[70,-144],[-40,-92],[34,-98],[57,14],[82,-12],[133,77],[146,38],[111,-3],[98,-41],[59,-57],[57,1],[57,-21],[26,-25],[87,9],[3,-77],[16,-22],[73,-21],[35,-36],[-18,-23],[22,-24],[-75,-11],[-22,-29],[-5,-56],[-72,-54],[-37,-65],[1,-53],[-43,-47],[18,-33],[-66,-97],[51,-118],[-15,-49],[-62,-24],[7,-36],[36,-5],[6,-40],[38,-77],[-13,-81],[23,-46],[62,-61],[78,-32],[75,-86],[-13,-29]],[[8336,8282],[-38,11],[-88,-5],[
 -125,6],[9,-31],[-16,-48],[-40,-31],[-64,-11],[-34,-19],[-70,-18],[-60,-27],[-64,-86]],[[7746,8023],[-104,10],[-68,-26],[-8,-17],[-308,72],[-97,20],[-107,6],[25,23],[3,41],[52,26],[-18,30],[27,29],[2,34],[22,13],[-7,42],[-45,27],[-73,-9],[-21,7],[-91,-102],[-43,11],[-1,-26],[-127,2],[-82,-5],[-51,16],[-83,41],[-27,44],[-6,99],[-69,-10],[-87,0],[-87,-25],[-23,8],[-40,-27],[-63,5],[-43,-7]],[[6098,8375],[-18,28],[-77,31],[-54,-11],[-70,48],[-91,21],[-74,37],[-112,20],[-91,30],[-67,0],[-43,-12],[-36,33],[-59,19],[-100,-7],[-104,-44],[-6,-16],[-70,2],[-79,40],[-18,30],[-46,27]],[[4883,8651],[37,23],[15,40],[-31,45],[50,51],[38,21],[-27,34],[30,27],[92,198],[-77,75],[53,-1],[26,13]],[[3845,6179],[-143,66],[-94,39],[-92,14],[-70,51],[-88,49],[-49,55],[-12,57],[-24,35],[-63,-23],[-146,-20],[-56,-44],[-163,128],[41,32],[27,41],[-6,47],[39,59],[67,74],[-94,73],[-39,11],[-119,-38],[-85,-7],[-163,81],[-52,14],[14,28],[-8,45],[16,55],[-45,68],[-54,25],[-64,15],[20,72],[-48,13],[-7,21],[-52,25],
 [-73,14],[-50,24],[4,47],[-65,78],[21,62],[47,72],[2,53],[-40,13],[-70,47],[-32,0],[-29,50],[-41,15],[-7,24],[48,31],[31,37]],[[1979,7907],[71,36],[54,17],[51,34],[20,37],[47,25],[-16,28],[6,76],[27,56]],[[2239,8216],[8,-10],[73,4],[70,17],[68,6],[40,15],[-5,23],[31,37],[82,2],[136,17],[133,-41],[130,-15],[79,-43],[102,-13]],[[3186,8215],[43,-37],[65,-28],[32,-4],[26,-30],[140,-22],[91,15],[92,-19],[87,-33],[35,-21],[106,-17],[24,26]],[[3927,8045],[28,-15],[119,-20],[-7,-11],[43,-43],[33,-66],[59,-55]],[[4202,7835],[-68,-74]],[[4134,7761],[4,-73],[-13,-26],[45,-58],[44,-8],[70,-49],[57,-17],[37,-57],[75,-7],[82,-21],[11,-96],[18,-80],[15,-20],[12,-68]],[[4591,7181],[-56,-95],[-51,-34],[1,-20],[-31,-36],[7,-64],[54,-51],[0,-68],[-40,-6],[-60,-89],[-116,-85],[-80,-28],[25,-59]],[[4244,6546],[-106,-24],[-48,-28],[-86,-31],[-20,-56],[10,-38],[-27,-42],[-8,-38],[-42,-14],[-50,-30],[-22,-66]],[[1074,6387],[-3,40],[-35,78],[35,32],[0,21],[66,41],[1,23],[-39,63],[3,71],[-17,87],[-64,76],[70
 ,70],[56,37],[-97,83],[-5,41],[46,37],[17,31],[-67,72],[-61,27],[-20,39],[3,27],[44,44],[-42,74],[23,29],[53,26],[33,46],[-19,31],[-43,10],[6,54]],[[1018,7697],[72,60],[117,19],[99,33],[-5,47],[44,6],[119,37],[21,-19],[57,13],[73,5],[38,28],[41,12],[32,29],[78,29],[22,-32],[95,-20],[58,-37]],[[3845,6179],[-201,-15],[-3,-25],[-33,-20],[-154,8],[-66,-9],[-18,-13],[-82,-13],[-98,-5],[-111,18],[66,-51],[-108,-54],[20,-37],[58,-42],[-1,-57],[-76,-46],[-150,-70],[-11,-30],[-61,-9],[-61,-83],[-146,-51],[-96,5],[-23,-14]],[[2490,5566],[-55,2],[-106,45]],[[2329,5613],[9,22],[-21,20],[39,13],[-1,44],[32,8],[-11,33]],[[2376,5753],[129,25],[98,12],[18,-34],[40,18],[59,101],[-36,109],[32,11],[-63,40],[26,54],[-117,59],[-105,99],[-64,-15],[-98,15]],[[2295,6247],[-47,7],[-56,37],[-75,37],[-21,21],[-91,30],[-77,-44],[-108,-38],[-27,-1]],[[1793,6296],[-65,-7],[-37,32],[-119,14],[-87,-16],[-56,15],[-73,4],[-38,15],[-142,1],[-102,33]],[[4134,7761],[186,-31],[204,-20],[40,-11],[9,-31],[118,-14],[44,11]
 ,[32,-22],[86,-25],[3,-25],[75,-95],[90,22],[91,57],[67,79],[-152,64],[-20,22],[-21,60],[49,29],[18,46],[199,26],[20,67],[-93,8],[-3,54],[-31,-1],[-9,42],[-42,15],[-58,0],[-13,22],[-92,64]],[[4931,8174],[-111,3],[-7,7],[-121,16],[-49,0],[-40,43],[-30,50]],[[4573,8293],[76,28],[43,85],[-49,23],[15,31],[-15,66],[8,43],[56,34],[-3,43],[69,5],[68,-10],[42,10]],[[6098,8375],[37,-46],[-21,-36],[19,-65],[-39,-37],[8,-42],[61,-19],[33,-43],[-71,-71],[36,-81],[44,-33],[43,-96],[67,-64],[103,-75],[24,-4],[55,-56],[55,-42],[-7,-29],[30,-33],[45,-7],[45,-59],[63,-25],[31,-45]],[[6759,7367],[-79,-29],[-31,-27],[-197,-103],[11,-21],[-67,-23]],[[6396,7164],[-133,80],[-34,48],[-70,78],[-51,5],[-34,27],[-61,23],[31,-39],[-40,-16],[39,-84],[-3,-47],[-64,11],[-67,-34],[-33,-47],[-47,-26],[-20,-27],[0,-36],[-28,-32],[114,-42],[-34,-54],[17,-27],[-46,-30],[-120,-38]],[[5712,6857],[-77,19],[-51,33],[-55,14],[-37,46],[-127,13],[-101,24],[-89,32]],[[5175,7038],[-66,-6],[-123,44],[-32,-6],[-61,26],[-58,-4],
 [-44,47],[-50,36],[-70,10],[-80,-4]],[[2429,5456],[25,26],[36,84]],[[3845,6179],[43,-42],[38,0],[29,-21],[4,-47],[90,-34],[101,-22],[51,-23],[86,0],[140,-61],[81,-27],[-5,-30],[45,-50],[232,-109],[-6,-53],[40,-27],[65,-16],[52,1],[83,-85],[52,-41],[-16,-20],[4,-48],[-28,-42]],[[5026,5382],[-60,-5],[-62,-36],[-152,-29],[-43,11],[-49,-41],[-39,-47],[-30,-56],[51,-35],[-54,-56],[-70,-39],[16,-4],[-52,-63],[158,-84],[-12,-36],[70,-10],[-71,-68],[12,-34],[-11,-35]],[[4628,4715],[-114,-4]],[[4514,4711],[-88,-11],[-63,10],[-64,-9],[-58,9]],[[4241,4710],[-46,3]],[[4195,4713],[9,52],[-71,16],[-35,46],[5,25],[-24,28],[-8,36],[-69,26],[-56,-11],[-131,38],[-66,55],[-123,-9],[-46,39],[-55,-23],[-63,-9]],[[3462,5022],[-86,24],[-29,27]],[[3347,5073],[-64,48],[-77,24],[-37,25],[2,68],[-41,77],[-34,15],[-177,25],[-103,26]],[[2816,5381],[-27,9],[-58,-15],[-244,56],[-58,25]],[[7294,6872],[-48,-4],[-25,24],[-29,104],[-73,5]],[[7119,7001],[-70,67],[-49,32],[-31,108]],[[6969,7208],[-57,55],[-46,14],[-45,
 39],[-2,19]],[[6819,7335],[101,61],[107,26],[-61,13],[150,84],[107,-43],[30,-2],[60,59],[44,-13],[89,-44],[96,-10],[24,-51],[22,35],[109,10],[17,57],[-8,50],[16,47],[77,18],[53,37],[19,34],[-10,39],[-31,32],[13,27],[-12,35],[-39,56],[15,72],[-61,59]],[[8336,8282],[16,-24],[60,-16],[40,-56],[-29,-30],[66,-21],[40,-32],[87,-5],[58,25],[107,26],[55,-25],[59,-13],[37,-21],[-4,-53],[112,-94],[20,-35],[-35,-87],[-3,-56],[-58,-63],[36,-83],[-6,-59],[24,-15],[58,-66],[44,-71],[31,-25],[30,-72],[-25,-18],[-131,-44],[-9,-17],[26,-32],[56,-34],[-5,-15],[-56,-36],[-49,-87]],[[8988,7028],[-60,-14],[-51,19],[-103,5],[-78,28],[-43,26],[-127,21],[-68,-4],[-62,20],[-48,3],[-62,24],[-55,3],[-44,-16],[-82,13],[-78,-5],[-138,-89],[-33,-3],[-105,23],[-48,-73],[37,-8],[91,-47],[-16,-20],[59,-58],[-31,-31],[-125,17],[-146,58],[3,88],[-84,6],[-39,11],[-81,5],[-103,-52],[-11,-37],[37,-69]],[[2239,8216],[-44,48],[-15,36],[-3,82],[-40,71],[-21,-6],[-41,49],[10,19],[-91,79],[70,18],[-12,38],[-102,85],[-22,30],
 [-48,14],[-105,-1],[-49,10]],[[1726,8788],[11,45],[-35,32],[-43,78],[17,36],[-37,44],[61,90],[38,20],[-12,72],[21,22],[-9,33],[49,7],[24,53],[55,31],[64,5],[32,19],[87,-32],[6,-13],[79,-24],[79,11],[82,-2],[92,31],[62,-26],[53,-56],[29,1],[87,-44],[95,9],[36,-6],[126,18],[52,40],[69,1],[79,-21],[39,-32],[-10,-32],[26,-66],[47,-16],[81,-3],[134,33],[74,30],[32,57],[38,3],[49,35],[79,24],[96,-2],[62,27],[89,-9],[73,18],[12,-20],[47,-8],[27,-27],[4,-33]],[[4074,9241],[-56,-23],[-77,-5],[-35,-11],[17,-60],[-29,-13],[-49,-69],[-50,-44],[-11,-26],[-100,-73],[-9,-58],[-17,-24],[-44,-20],[-37,-34],[20,-22],[-29,-82],[3,-27],[-27,-51],[-14,4],[-41,-48],[-40,-3],[-21,-55],[-38,10],[-72,-30],[25,-26],[59,-14],[20,-33],[-61,-23],[-102,-63],[-39,-72],[-34,-31]],[[1018,7697],[-82,32],[-43,40],[11,19],[-40,46],[-51,22],[-83,-13],[-18,18],[-87,-13],[-47,-20],[-82,-9],[-49,-27],[-81,2],[-82,-24],[-24,-29],[-76,-1],[-44,-40],[-49,14],[-55,-7],[-36,89],[47,31],[-6,46],[88,30],[-3,19],[-38,16],[1,25],[
 -44,33],[50,46],[17,39],[43,31],[-14,45],[-26,37],[6,37],[32,-10],[52,5],[29,-23],[126,6],[46,24],[62,-25],[35,17],[66,13],[52,25],[38,2],[105,-19],[109,152],[52,6],[56,37],[29,39],[84,57],[44,53],[67,24],[-7,31],[38,20],[24,39],[110,9],[47,19],[67,-2],[65,10],[73,31],[104,17]],[[4074,9241],[155,-32],[60,26],[70,44],[122,-39],[21,-15],[68,4],[79,48],[57,-25],[47,-8],[39,10],[297,-77]],[[4573,8293],[-50,-3],[-20,-21],[-106,54],[-89,-57],[-74,-9],[-48,-16],[-33,-33],[-12,-33],[-67,-22],[-37,-33],[-65,-26],[-45,-49]],[[6819,7335],[-60,32]],[[7633,6232],[-47,68],[-117,151],[-27,24],[-56,1],[-30,56],[-50,70]],[[7306,6602],[51,53],[23,0],[43,134],[31,28],[-56,17],[-55,-1],[-30,40],[-19,-1]],[[8988,7028],[36,-30],[43,-82],[0,-33],[34,-48],[-33,-28],[-2,-39],[24,-43],[-32,-105],[-40,-38],[-1,-41],[-81,-4],[-20,-18],[-50,-11],[-51,-36],[-37,-4]],[[8778,6468],[-42,-1],[-128,16],[-30,9],[-53,-8],[-42,10],[-76,-15],[-54,-25],[-71,13],[-40,-5],[-55,26],[-102,-12],[-38,-27],[-79,-112],[12,-26],[-
 182,-51],[-23,6],[-79,-8],[-63,-26]],[[5955,5212],[3,24],[-65,2],[-68,-27],[-64,6],[-25,19],[-95,12],[-49,-9],[-48,15],[-18,-25],[-86,-48],[-89,-32],[-3,-12]],[[5348,5137],[-36,42],[-55,39]],[[5257,5218],[53,63],[55,32],[15,77],[78,102],[89,36],[-19,17],[131,95],[80,-10],[46,11],[8,30],[-45,64],[-36,18],[3,49],[-49,-7]],[[5666,5795],[6,27],[49,44],[-6,57],[9,30],[61,18],[6,30],[32,21],[10,30],[46,29],[67,61],[-15,63],[21,22]],[[5952,6227],[61,-62],[70,-12],[92,11],[94,-12],[64,-65],[64,-16],[36,-38],[-2,-68],[43,-1],[146,32]],[[6620,5996],[69,-18],[79,-33],[16,-48]],[[6784,5897],[-43,-40],[-22,-57],[-15,-90],[3,-76],[28,-44],[64,-25],[18,-33],[-2,-65],[-14,-20],[19,-60],[43,-32],[64,-18],[34,3]],[[6961,5340],[18,-19],[-7,-44],[-25,-46],[-73,-77]],[[6874,5154],[-39,-9],[-93,5],[-47,15],[-79,3],[-45,-8],[-46,48],[-59,11],[-60,-10],[-88,7],[-45,38],[-59,-2],[-52,-35],[-31,21],[-92,11],[-10,-40],[-74,3]],[[6101,3141],[-58,0],[-89,60],[-52,9],[-62,31],[-71,65],[-28,-7],[-43,54],[-44,11],
 [-28,35],[-124,49],[-77,-83],[-104,1],[-110,-9],[-96,33],[-29,18],[-78,23],[-91,13],[-55,39]],[[4862,3483],[31,0],[140,93],[49,51],[112,61],[11,28],[35,0],[57,40],[94,33],[13,25],[61,22],[34,32],[155,47],[61,10],[139,13],[46,17],[31,31],[55,0],[113,32],[24,30],[26,-10],[99,14],[0,10]],[[6248,4062],[53,-4],[-4,50],[106,7],[250,41],[94,-12],[41,41],[62,-40],[0,-18],[88,-6],[7,46]],[[6945,4167],[168,-25],[6,-38],[42,-3],[9,-57],[31,-42],[-21,-4]],[[7180,3998],[-223,1],[-95,6],[-97,20],[-103,-3],[-48,-78],[4,-28],[-37,-49],[5,-28],[-68,-27],[-2,-24],[-86,-111],[-34,-36],[-60,-143],[-67,-8],[24,-64],[-45,-91],[24,-87]],[[6272,3248],[-61,-31],[-64,-80],[6,-16],[-52,20]],[[3475,3698],[-27,4],[-151,-19],[-85,3],[-88,-15],[-111,0],[4,20],[-31,41],[8,24],[-11,53],[-65,29],[-29,35],[-53,25],[-38,30],[-32,2],[-2,35],[46,35],[39,9],[16,53],[30,-1],[-30,27],[-75,-2],[-48,15],[-39,-4],[-3,54],[-41,20],[-84,-10],[-72,40],[-43,145]],[[2460,4346],[44,16],[32,32],[50,-15],[93,-52],[76,26],[85,-10],[74
 ,4],[141,54]],[[3055,4401],[75,16],[62,-13],[149,12],[203,47]],[[3544,4463],[56,15],[425,31]],[[4025,4509],[30,-34],[-18,-8],[11,-36],[42,-33],[200,11],[100,-21]],[[4390,4388],[-18,-37],[3,-34],[-24,-24],[8,-50],[-48,-65],[-40,-9],[56,-58]],[[4327,4111],[-87,-34],[-81,-21],[-74,-38]],[[4085,4018],[-54,14],[-46,-11],[-74,23],[-58,-26],[-84,3],[-49,-50],[-10,-41],[24,-50],[-67,-20],[-17,-51],[-56,-97],[-119,-14]],[[4244,6546],[51,-105],[43,-54],[52,-23],[74,-48],[90,6],[47,-7],[45,-52],[119,-55],[130,1]],[[4895,6209],[16,-17],[-3,-46],[15,-23],[87,-34],[59,-62],[-9,-20],[54,-30],[-2,-26],[109,21],[80,-12],[55,9],[9,21],[85,-3],[-24,-26],[32,-51],[100,-122],[53,-3],[55,10]],[[5257,5218],[-60,-15],[-85,26],[-36,70],[-19,13],[-31,70]],[[1091,5165],[-41,1],[-26,18],[-111,23],[-34,-4],[-51,31],[-14,46],[44,42],[25,6],[1,32],[101,40],[-81,128],[-201,165],[-6,49],[-79,79],[18,24],[44,22],[99,27]],[[779,5894],[90,-47],[154,1],[27,-14],[91,40],[61,-12],[104,56],[62,9],[81,-5],[17,-10],[91,2]],
 [[1557,5914],[201,-116],[43,10],[33,40],[58,-27],[62,-47],[49,-6],[46,-34],[10,-72],[118,-60],[88,-9],[53,6],[11,14]],[[2429,5456],[-50,-5],[-126,15],[-67,-53],[-64,-23],[-145,-18],[-53,3],[-32,-17],[-143,-23],[-61,22],[-69,-16],[-53,-66],[-87,-2],[-166,-20],[-54,19],[-35,-40],[-133,-67]],[[4862,3483],[-180,213],[-226,-148],[-129,-163],[-223,56]],[[4104,3441],[6,22],[83,90],[38,11],[36,73],[50,29],[28,101],[39,57]],[[4384,3824],[19,36],[100,74],[33,50],[37,24],[72,16]],[[4645,4024],[97,27],[35,-1],[119,40],[46,-15],[42,25],[48,-24],[27,-32]],[[5059,4044],[89,-38],[72,-17],[64,1],[76,42]],[[5360,4032],[86,17],[27,37],[-18,16],[13,51],[-3,57],[-44,90]],[[5421,4300],[13,9],[101,3]],[[5535,4312],[137,27],[36,19],[28,-3],[82,62],[92,-9],[23,-43],[30,-18]],[[5963,4347],[-2,-4]],[[5961,4343],[71,-54],[42,-49],[46,17],[42,54]],[[6162,4311],[-19,-41]],[[6143,4270],[1,-37],[-39,-35],[87,31],[-85,-58],[12,-26],[75,-5],[11,-18],[-95,-16],[22,-40],[39,-7],[39,26],[14,33]],[[6224,4118],[-10,-47],
 [34,-9]],[[1974,4850],[-49,22],[-120,15],[-30,-17],[-76,13],[-116,58],[-122,37],[-71,13],[-118,1],[-115,31],[-34,40],[-6,62],[-26,40]],[[2816,5381],[21,-49],[3,-70],[-27,-39],[-12,-63],[-84,-1],[31,-34],[47,-24],[33,-49],[76,-38],[-15,-26],[63,-12],[0,-36],[-154,-142]],[[2798,4798],[-148,76],[-96,-2]],[[2554,4872],[34,194],[-28,-2],[-33,37],[-84,22],[8,-27],[-3,-109],[-28,-92]],[[2420,4895],[-61,3],[-58,16],[-100,-1],[-38,-24],[-58,7],[-4,-12],[-127,-34]],[[5952,6227],[17,39],[65,35],[79,74],[-13,34],[35,19],[-2,77],[-53,4],[-75,29],[-16,35],[-90,75],[-7,24]],[[5892,6672],[173,23],[88,52],[70,34],[76,13],[106,44],[1,11],[85,64],[37,-35]],[[6528,6878],[103,-25],[-3,32],[64,-7],[78,-40],[41,-31],[101,-7],[59,-41]],[[6971,6759],[26,-60],[158,-47],[61,-11],[90,-39]],[[7306,6602],[-66,-50],[-213,-151],[-111,-68],[-69,-84],[-30,-68],[-34,-32],[-48,-4],[-62,-32],[-24,-79],[-29,-38]],[[5175,7038],[16,-154],[32,-3],[72,-31],[35,-68],[15,-70],[-39,-25],[-25,-62],[-32,-31],[-41,-97],[32,-43],[
 -24,3],[-104,-43],[-26,-19],[-35,-72]],[[5051,6323],[-30,-32],[-61,-28],[-14,-30],[-51,-24]],[[7134,3193],[21,-44],[-6,-23]],[[7149,3126],[-3,-17],[58,-22]],[[7204,3087],[0,-5]],[[7204,3082],[-154,13],[-140,22],[-84,20],[-95,31],[-109,-31],[-58,14],[-24,40],[9,39],[-131,-7]],[[6418,3223],[-74,23],[-72,2]],[[7180,3998],[-28,-10],[-104,-9],[10,-37],[41,-9],[20,-24],[61,-20],[124,-11],[31,-10],[16,-35],[117,38],[132,-6],[47,9]],[[7647,3874],[-23,-23],[-19,-94],[98,-51],[30,3],[43,-59],[19,-1]],[[7795,3649],[-146,-85],[-73,-20],[-31,-50],[-49,-28],[-24,-35],[-113,-40],[-85,21],[-3,-21]],[[7271,3391],[-95,43],[-30,27],[-52,8],[6,58],[-123,3],[-65,52],[-59,-6],[-69,-37],[-160,7],[-39,-7],[-57,16],[-70,-11],[-58,-33],[146,-102],[-30,-9],[-9,-40],[124,-36],[77,-51],[130,-17],[58,-16],[9,17],[147,12],[116,2],[42,19]],[[7210,3290],[6,-34],[27,2],[-109,-65]],[[7648,2792],[-79,14]],[[7569,2806],[-44,-1],[-60,25]],[[7465,2830],[0,18],[-39,-4],[14,23],[-33,18],[-8,27]],[[7399,2912],[9,41],[-17,57
 ],[-126,51],[-24,86],[-43,27],[-64,19]],[[7210,3290],[61,101]],[[7795,3649],[39,28],[21,45],[-23,7],[28,32],[111,62],[66,22],[140,-39],[6,-14],[90,-2],[18,-12]],[[8291,3778],[-6,-68],[9,-34],[52,-15],[56,0],[8,34],[30,10],[31,-28],[103,-7],[34,15],[40,-49]],[[8648,3636],[-140,-5],[-92,-23],[-36,-46],[-14,-41],[-60,-48],[15,-18]],[[8321,3455],[-5,-42],[-28,-31],[12,-14]],[[8300,3368],[12,-65],[-35,-3],[-7,-24],[-63,5],[17,-62]],[[8224,3219],[-43,-17],[-84,-11],[-71,-47],[-105,-18],[-116,-44],[-90,-79],[-13,-47],[19,-47],[-39,-23],[9,-33],[-40,-58]],[[7651,2795],[-3,-3]],[[8982,3738],[-5,26],[-83,58],[-6,31],[-27,12],[-25,36]],[[8836,3901],[10,14]],[[8846,3915],[41,41],[28,118],[-97,55],[-3,21],[-63,48],[36,42],[-33,34],[-59,1],[-24,-15],[-56,15],[-35,-24],[-31,13],[12,36],[-51,1],[5,33],[22,-5],[102,14],[-18,20],[86,53],[-9,43]],[[8699,4459],[58,8],[86,45],[36,8],[85,-5]],[[8964,4515],[85,-13],[40,7],[188,-21],[77,-33],[47,-10],[59,9],[86,-12],[125,-9],[64,21]],[[9735,4454],[33,-8],[
 72,-52],[78,-41],[75,-5],[-6,-58],[-22,-33],[-63,-15],[-95,-36],[-51,-45],[-73,-20],[-24,-46],[-43,-26],[-26,-54],[-72,-107],[-48,11],[-64,-10],[-41,-25],[-48,-10],[-50,-34],[-14,-32],[-27,7],[-93,-21],[-67,-35],[-84,-21]],[[6784,5897],[133,15],[19,13],[98,9],[99,22],[1,22],[180,137],[97,49],[120,17],[102,51]],[[7633,6232],[15,-61],[24,-145],[43,-66],[66,-21]],[[7781,5939],[56,-52],[35,-73]],[[7872,5814],[-66,-33],[10,-28],[-21,-69],[18,-52],[-37,-16],[-170,4],[-69,-47],[-56,9],[-16,-32],[-63,-40],[-55,0],[-35,-14],[-16,54],[-34,-50],[-83,-39],[-121,-43],[-6,-76]],[[7052,5342],[-32,10],[-59,-12]],[[7834,1152],[-9,-49],[-30,-36],[-40,-2]],[[7755,1065],[-34,23],[-33,2],[18,36],[-37,49]],[[7669,1175],[12,23],[-16,93],[-30,29],[-118,64],[-85,24],[-21,15]],[[7411,1423],[-31,19],[-78,-64],[-37,-4],[-52,-78],[-68,-36],[-16,-35],[-41,-27],[-104,-38]],[[6984,1160],[-33,49],[-88,0],[-32,33],[-114,77],[-49,72],[7,51],[45,59],[-7,159],[-40,52],[-78,-17],[-119,-14],[-45,29],[-95,25],[-35,52],[-7
 3,17]],[[6228,1804],[17,32],[30,10]],[[6275,1846],[73,23],[70,-52]],[[6418,1817],[-34,-30]],[[6384,1787],[-22,-53],[81,-25],[118,16],[41,36],[-53,53],[-6,29],[67,36],[43,-2],[21,32]],[[6674,1909],[9,61],[-8,50],[-25,40],[11,16]],[[6661,2076],[42,48],[45,-10],[90,46]],[[6838,2160],[37,-25],[15,-30]],[[6890,2105],[-4,-45],[-60,-89],[-61,-52],[-23,-67],[-16,-16],[24,-53]],[[6750,1783],[21,-47],[3,-41],[39,-31],[-23,-37],[27,-27],[-15,-24]],[[6802,1576],[-4,-38],[-34,-58],[-32,-88],[85,-57],[49,-22],[34,-35],[43,-13],[42,4],[126,93]],[[7111,1362],[111,115]],[[7222,1477],[49,65],[-4,20],[23,45],[79,38],[124,7],[2,7],[-121,26],[-17,35],[5,74],[21,63],[75,80]],[[7458,1937],[6,93]],[[7464,2030],[0,50],[-81,35],[-43,29]],[[7340,2144],[16,55],[24,14],[7,44],[96,21],[54,-25],[10,29],[28,13],[62,-5],[11,-25],[78,-35],[57,0],[115,34],[37,18],[118,14],[59,29],[94,67],[99,52]],[[8305,2444],[32,-196]],[[8337,2248],[-104,-32],[-60,-6],[-56,-45],[-58,-23],[-174,-42],[-109,-43],[-42,-35]],[[7734,2022]
 ,[-132,10],[-27,-61],[-6,-38],[-34,-51],[-33,-89],[123,-19]],[[7625,1774],[-11,-10],[-33,-109],[-74,6],[1,-11],[61,-9],[36,-62],[-27,-60],[8,-30]],[[7586,1489],[50,-21],[-3,-57],[63,-37]],[[7696,1374],[43,-8],[7,-63],[67,-51],[31,-37],[-14,-19],[4,-44]],[[2460,4346],[-76,71],[-3,14],[-125,27],[11,9],[-14,55],[-40,27],[-105,45],[-23,-1],[-58,83],[-51,140],[-2,34]],[[2420,4895],[83,-3],[51,-20]],[[2798,4798],[178,73],[38,7],[35,34],[52,-3],[62,13],[0,19],[63,7],[93,57],[28,68]],[[3462,5022],[-23,-69],[-26,-27],[-17,-115]],[[3396,4811],[-55,-15],[-80,30],[-31,0],[-73,-55],[9,-33],[67,-64],[-15,-38],[-52,5],[-76,-25],[-38,14],[-52,-16],[17,-112],[38,-101]],[[5293,4761],[-15,-74]],[[5278,4687],[-15,-16],[6,-55]],[[5269,4616],[-49,-7],[-32,14],[-44,-1],[-61,-61],[-111,10],[43,-36],[-52,-7],[-131,4]],[[4832,4532],[0,24],[-44,11],[-17,52],[-33,-7],[-95,50],[6,46],[-21,7]],[[5348,5137],[-20,-36],[-6,-57],[37,-55]],[[5359,4989],[30,-54],[-24,-10],[-28,-67],[-25,-9],[-43,-65],[24,-23]],[[5712,
 6857],[18,-68],[29,-38],[-20,-35],[18,-16],[135,-28]],[[5952,6227],[-124,36],[-86,-5],[-43,17],[-74,-2],[-62,11],[-89,-22],[-83,18],[-340,43]],[[8258,481],[12,36],[37,40],[65,42],[43,40],[-23,26],[65,69],[39,25],[-22,36],[20,1],[37,70],[40,11],[36,68],[-8,50],[-67,-8],[-131,-58],[-46,-5],[-18,33],[15,13],[-52,55],[22,21],[-34,31],[-46,12],[-9,23],[41,7],[-10,17],[47,24],[-11,38],[-39,27],[-3,35],[67,48],[35,-29],[32,25],[33,4],[4,28]],[[8429,1336],[91,-1],[72,13],[92,-64],[-4,-19],[80,-2],[58,7],[-10,-52],[123,-44],[-9,-26],[70,27],[55,-43],[-23,-38],[20,-84],[127,39],[30,-21],[-20,-26],[18,-18],[-47,-13],[-14,-33],[-30,-19],[-46,2],[-9,-18],[29,-26],[-20,-42],[-73,-35],[-37,-53],[-43,-25],[-69,-15],[-32,3],[-38,-20],[10,-23],[-25,-26],[-53,-83],[5,-54],[28,-37]],[[8735,467],[-45,-4],[-74,-38],[-99,20]],[[8517,445],[-97,20],[-34,-11],[-32,36],[-96,-9]],[[7340,2144],[-30,-7],[-65,-43],[59,-45],[26,6],[23,-25],[64,-16],[47,16]],[[7458,1937],[-44,17]],[[7414,1954],[-24,20],[-95,-20],[-
 21,21],[-28,-20],[6,-90],[-33,-57],[9,-6],[-85,-51],[-49,-75],[-24,-20],[-186,-66],[-22,-26]],[[6862,1564],[-60,12]],[[6750,1783],[64,11],[3,-23],[-33,-14],[79,-49],[15,45],[37,-8],[17,42],[52,-24],[46,48]],[[7030,1811],[37,12],[18,-88],[15,31],[58,49],[-13,13],[13,67],[-42,8]],[[7116,1903],[-5,62],[-59,59],[39,40],[45,22],[89,6],[9,62]],[[7234,2154],[29,10],[-12,22],[29,16],[8,28],[-60,21],[-40,61],[-24,-39],[-28,6],[7,-35],[-55,-34]],[[7088,2210],[-152,61]],[[6936,2271],[63,94],[96,96]],[[7095,2461],[34,-26],[23,3]],[[7152,2438],[91,-25]],[[7243,2413],[-51,-39],[9,-23],[58,-27],[47,3],[61,42],[24,31],[-20,28]],[[7371,2428],[22,22],[-20,10],[49,52]],[[7422,2512],[56,-10],[24,27],[36,4],[34,25]],[[7572,2558],[34,8],[18,33],[37,12],[5,37],[-15,26],[3,50]],[[7654,2724],[155,-15],[70,-18],[20,-23],[89,-22],[118,-45]],[[8106,2601],[20,-35],[68,-34],[14,-24],[43,-21],[54,-43]],[[6095,4738],[-12,37],[17,16],[25,72],[-9,52],[-45,39]],[[6071,4954],[-43,47],[-65,51],[-1,38],[-34,46],[27,48],
 [0,28]],[[6874,5154],[62,-29],[88,-11],[34,-24]],[[7058,5090],[-59,-142],[-27,-45],[-19,-81],[-63,0],[-58,-30],[-39,2],[-52,-25],[-95,-12],[-33,-19],[-89,16],[-83,-34],[-20,-46],[8,-34],[-23,-17]],[[6406,4623],[-80,43],[-81,26],[-131,24],[-19,22]],[[779,5894],[-18,15],[6,41],[27,17],[-6,68],[37,53],[121,18],[25,75],[46,9],[71,72],[-23,31],[9,94]],[[1793,6296],[68,-117],[-38,-132],[-39,-101],[-38,-19],[-67,5],[-58,-17],[-64,-1]],[[5897,2745],[-91,33],[26,11],[50,50],[125,-35],[130,162],[-8,87],[-28,88]],[[6418,3223],[13,-29],[47,-52],[61,-43],[56,-26],[116,19],[33,-55],[31,-17]],[[6775,3020],[50,-63],[10,-42],[49,-31],[-13,-107]],[[6871,2777],[19,-68],[15,-9]],[[6905,2700],[-85,-11]],[[6820,2689],[-74,12],[-41,-31]],[[6705,2670],[-37,-6],[-76,-49],[-40,19]],[[6552,2634],[-64,-5],[-69,-57],[-73,-18],[-8,-23]],[[6338,2531],[-61,32],[-5,59],[-16,27],[-97,42],[-46,-5],[-73,33],[-79,21],[-64,5]],[[7517,280],[0,23],[-42,-13],[-46,12],[-36,-10]],[[7393,292],[-25,33],[67,12],[0,32],[49,9],[-
 18,30],[36,30]],[[7502,438],[3,25],[30,16],[28,-12],[41,39],[23,53],[30,15],[-27,11],[-54,51]],[[7576,636],[27,19],[-22,34],[-97,-8],[-71,9],[-30,-48],[-48,-27]],[[7335,615],[-10,15],[-60,-37],[-49,36],[12,19],[-21,36],[-3,75],[-15,51],[-70,83]],[[7119,893],[94,1],[107,-62],[121,-47],[21,24],[58,32],[78,19]],[[7598,860],[35,-46],[113,61],[-26,25],[0,56],[32,37],[3,72]],[[7834,1152],[46,-22],[85,0],[55,-19],[67,42],[39,52],[58,21],[28,31]],[[8212,1257],[55,-18],[-36,-14],[21,-37],[-47,7],[-58,-26],[14,-43],[30,-29],[10,-42],[24,-13],[-10,-23],[22,-24],[-50,-60],[21,-78],[-25,-110],[-54,-30],[-43,-37],[-45,-23],[22,-42],[-55,24],[-68,-36],[-17,-37],[-79,-37],[18,-22]],[[7862,507],[-130,-3],[-24,-25],[-32,-2]],[[7676,477],[-51,-59],[-37,-18],[14,-50],[-45,-22],[-40,-48]],[[8964,4515],[-56,32],[-124,9],[-61,45],[-22,29],[-10,89],[-37,39],[-31,9],[-85,-15],[-82,2],[-13,14],[2,63],[20,57],[-30,6]],[[8435,4894],[6,29],[-26,29],[-12,59],[-32,78]],[[8371,5089],[-19,43],[-37,23]],[[8315,5155]
 ,[31,28],[55,-46],[174,48],[39,-1]],[[8614,5184],[-27,-79],[-14,-16],[17,-73],[69,-34],[229,-90],[-7,-8],[88,-49],[25,11],[49,-14],[37,28]],[[9080,4860],[248,-80],[38,-7],[101,-55],[51,-59],[37,-14],[71,-74],[2,-39],[58,-57],[49,-21]],[[8315,5155],[-128,55],[-35,22],[-67,93]],[[8085,5325],[-26,57],[32,105],[8,55],[-38,31],[-59,11]],[[8002,5584],[59,24],[-50,80],[45,41],[134,39],[38,5],[63,23],[44,33],[68,17],[56,45],[81,9],[64,-34]],[[8604,5866],[-6,-21],[61,-144],[53,-43],[6,-22]],[[8718,5636],[-13,-24],[22,-20],[-9,-41],[14,-97],[-29,-41],[-37,-111],[-36,-29],[8,-41],[-24,-48]],[[2295,6247],[5,-51],[-15,-27],[62,-124],[67,-73],[67,-57],[18,-3],[-12,-65],[-26,-42],[-85,-52]],[[6396,7164],[53,-50],[41,-14],[132,-115]],[[6622,6985],[-61,-23],[22,-20],[-34,-26],[3,-29],[-24,-9]],[[8699,4459],[-58,-2],[-72,-14],[-125,30]],[[8444,4473],[-36,10],[-239,-2],[-23,-23],[-42,3],[-26,-26],[-79,0]],[[7999,4435],[28,102],[48,81],[-19,5],[-353,214],[-103,-12],[-47,31],[-115,44],[-9,26],[-54,48]],
 [[7375,4974],[115,-25],[55,-25],[97,-14],[125,17],[18,10],[69,-30],[96,12],[87,3],[168,-29],[33,9],[93,-18],[41,17],[60,-27],[3,20]],[[8739,6228],[-73,17],[-65,-3],[-52,-13],[-140,-20],[-85,-24],[-24,-39],[-60,-14],[-13,-23],[-72,-20],[-16,-28],[-151,-106],[-63,3],[-64,-20],[-80,1]],[[8778,6468],[3,-29],[-37,-61],[42,-46],[-65,-58],[18,-46]],[[6924,4221],[-61,-17],[-34,55],[21,10],[-3,36],[43,71],[-122,-24],[-103,10]],[[6665,4362],[-22,72],[-161,18],[-39,9]],[[6443,4461],[-56,19],[19,5],[33,103],[-33,35]],[[7058,5090],[91,-2],[35,-59],[22,-12]],[[7206,5017],[-16,-52],[-32,-50],[9,-30],[-18,-26]],[[7149,4859],[1,-47],[-25,-70]],[[7125,4742],[-34,-43],[-19,-48],[25,-34],[-34,-222],[-11,-38],[-19,3],[6,-42],[31,6],[-3,-36],[-95,-17],[17,-40]],[[6989,4231],[-65,-10]],[[4104,3441],[-97,-5],[-43,6],[-81,76],[9,18],[-60,8],[-69,-21],[-36,17],[-127,28],[-17,39],[-97,73],[-11,18]],[[4085,4018],[-9,-15]],[[4076,4003],[10,-17],[73,-38],[46,-15],[33,-30],[146,-79]],[[8002,5584],[-46,1]],[[7956,
 5585],[-51,28],[-17,36],[-16,165]],[[8739,6228],[90,-63],[34,-52],[-35,-74],[-49,-15],[-96,-125],[-62,-17],[-17,-16]],[[4195,4713],[4,-19],[-62,-58],[-52,-3],[-66,-31],[-10,-47],[16,-46]],[[3544,4463],[7,70],[17,19],[-55,41],[-24,40],[-14,67],[-29,56],[0,38],[-50,17]],[[4931,8174],[-24,-34],[-60,-44],[-6,-75],[-26,-35],[14,-57],[-13,-26],[28,-39],[-97,20],[-52,-34],[-55,2],[-79,-21],[-174,26],[-39,-33],[-64,11],[-82,0]],[[7052,5342],[45,-7],[34,-30],[52,-24],[103,42],[107,53],[36,48],[52,24],[36,-13],[46,8],[74,30],[36,-8],[55,7],[51,-15],[31,7],[3,32],[106,45],[37,44]],[[8085,5325],[-123,-49],[-43,9],[-71,-7],[-36,-16],[-146,-7],[-39,-10],[-76,-45],[-9,-14]],[[7542,5186],[-64,-109],[-67,-27],[-44,-30]],[[7367,5020],[-69,14],[-92,-17]],[[7647,3874],[-30,20],[111,20]],[[7728,3914],[60,21],[168,81]],[[7956,4016],[119,35],[39,4],[15,-22],[147,-31],[16,20],[92,23]],[[8384,4045],[18,-56],[47,-5],[22,25],[57,-4],[93,-39],[-6,-60],[102,-43],[25,8]],[[8742,3871],[-76,-108],[-62,-19],[-64,25
 ],[-34,-10],[-17,17],[-100,-23],[-28,22],[-70,3]],[[6007,4648],[-155,20],[-1,-27],[-78,-21],[-43,11]],[[5730,4631],[-58,83],[-223,54],[-156,-7]],[[5359,4989],[142,22],[-5,19],[79,11],[85,-15],[66,-31],[95,-18],[72,-6],[79,-25],[72,-7],[27,15]],[[6095,4738],[-39,-15],[-49,-75]],[[8212,1257],[6,59],[21,19]],[[8239,1335],[55,23]],[[8294,1358],[92,4],[43,-26]],[[8258,481],[-37,-24],[-18,-31]],[[8203,426],[-50,-13],[-27,22],[-47,3]],[[8079,438],[7,48],[-42,10],[-29,-12],[-20,23],[-100,-13],[-33,13]],[[8300,3368],[37,40],[-16,47]],[[8648,3636],[103,48],[107,26],[45,-14]],[[8903,3696],[21,-47],[49,-44],[32,-62]],[[9005,3543],[-105,-49],[6,-11],[-55,-16],[10,-30],[-83,-13],[-41,-16],[-2,-42],[-73,-35]],[[8662,3331],[-46,-18],[53,-23],[-22,-39]],[[8647,3251],[-15,-16],[-64,23],[-27,-4],[-54,-49],[-58,39],[-55,8],[-38,-22],[-31,1],[-59,-20]],[[8246,3211],[-22,8]],[[7855,2872],[-137,-55],[-34,0],[-33,-22]],[[8246,3211],[12,-23],[61,-44],[91,26],[121,-48],[23,-39],[33,-29],[-10,-15],[63,-30]],[
 [8640,3009],[-68,-43],[-71,-2],[-52,-34],[-79,-40],[-75,-1],[-26,-15]],[[8269,2874],[-94,52],[-40,1],[-70,19],[-81,10],[-95,-40],[-34,-44]],[[8718,5636],[14,-35],[111,-64],[73,-91],[-6,-20],[-7,-255],[-58,-24],[42,-52],[64,20],[44,-98],[4,-31],[51,-103],[30,-23]],[[7125,4742],[82,32],[79,-55],[18,-65],[20,-23],[67,-19],[8,-44],[130,-176],[3,-58]],[[7532,4334],[19,-57],[-80,-22]],[[7471,4255],[-54,-14],[-12,19],[-52,-15],[-55,-2],[-6,21],[-207,-22]],[[7085,4242],[-96,-11]],[[5360,4032],[-194,160],[-80,49]],[[5086,4241],[-8,15],[-122,84],[-55,52],[-78,49]],[[4823,4441],[-70,35],[91,26],[-12,30]],[[5269,4616],[-11,-31],[0,-97],[-28,-64],[43,-55],[60,-25]],[[5333,4344],[88,-44]],[[7367,5020],[8,-46]],[[7999,4435],[-17,-19]],[[7982,4416],[-35,54],[9,26],[-88,21],[-58,43],[-34,4],[-85,42],[-143,41],[-70,48],[-19,47],[-72,67],[-83,2],[-83,11],[-72,37]],[[4390,4388],[43,-7]],[[4433,4381],[88,11],[54,29],[49,13]],[[4624,4434],[64,1],[76,-16],[59,22]],[[5086,4241],[-78,-56],[-222,-23],[-91,-2
 1],[-154,-6],[-172,-27],[-42,3]],[[6143,4270],[95,4],[0,23],[46,1],[1,89],[11,27],[117,-24]],[[6413,4390],[252,-28]],[[6924,4221],[21,-54]],[[7542,5186],[46,-24],[32,-33],[128,-16],[61,-16],[65,-1],[120,-25],[73,-25],[9,15],[53,-40],[55,-16],[121,16],[14,73],[52,-5]],[[7793,1543],[-84,-18]],[[7709,1525],[18,176],[27,31],[-30,27]],[[7724,1759],[18,79],[23,36],[-26,11],[-13,48],[12,80]],[[7738,2013],[43,-33],[116,-29],[16,-14],[-10,-42],[13,-11]],[[7916,1884],[-36,8],[9,-24],[70,-49],[195,-46],[61,-22],[21,-117],[25,-22],[-45,-58],[-19,-8]],[[8197,1546],[-19,9],[-49,-9],[-97,13],[-73,-26],[-58,4],[-85,24],[-23,-18]],[[7085,4242],[15,-28],[55,2],[18,-28],[121,21],[23,-22],[60,9],[28,-69],[49,17],[24,-49],[12,3],[238,-184]],[[7956,4016],[-4,45],[-66,92],[-64,14],[-51,-23],[-67,86]],[[7704,4230],[170,66],[67,6],[21,-15],[52,18],[70,13],[65,-20],[88,4]],[[8237,4302],[37,5],[39,-27],[107,12],[7,-48],[-26,-65],[7,-28],[-19,-17],[11,-54],[-16,-35]],[[7982,4416],[-60,-26],[-173,1],[-113,-8],[
 35,-48],[-60,-15],[-12,25],[-67,-11]],[[8237,4302],[-4,36],[96,20],[73,44],[-10,25],[52,46]],[[8846,3915],[-23,59],[-73,63],[-5,24],[-31,-18],[-38,39],[-120,-7],[-101,4],[-71,-34]],[[7119,893],[-34,3],[-24,55],[33,51],[-13,60],[-51,40]],[[7030,1102],[101,25],[18,14],[61,-7],[27,41],[52,14],[31,-41],[57,3],[31,19]],[[7408,1170],[33,-48],[28,-17],[63,-110],[25,-20],[43,-105],[-2,-10]],[[6162,4311],[10,55],[-13,36],[-39,29],[-129,54],[-24,58],[42,43],[-2,62]],[[6443,4461],[-30,-71]],[[7471,4255],[22,-38],[88,29],[30,-38],[93,22]],[[6622,6985],[98,5],[70,36],[19,40],[36,32],[18,47],[55,43],[51,20]],[[7119,7001],[-4,-39],[-57,-56],[-87,-40],[32,-25],[-48,-29],[50,-22],[-34,-31]],[[6892,2272],[-41,-18],[-22,7],[49,48],[-43,26],[-71,66],[-32,-48],[8,-20],[-70,-89],[-20,-47],[-31,-19]],[[6619,2178],[-6,21],[-58,4],[-33,15],[-141,12],[-25,-3]],[[6356,2227],[29,38],[-18,19],[14,22]],[[6381,2306],[80,46],[55,0]],[[6516,2352],[43,-34],[45,-11],[21,14],[19,56],[59,-12],[-2,41],[61,5],[37,56],[-5
 2,14],[0,48],[21,75],[-18,25],[-40,-39],[-27,9],[22,71]],[[6820,2689],[33,-63],[52,-71],[-12,-34],[34,-11],[-10,-17],[146,-12],[20,-10]],[[7083,2471],[12,-10]],[[6936,2271],[-44,1]],[[7393,292],[-93,-17],[-93,-45],[2,-16],[-41,-15],[2,-25],[-110,10],[-106,-49],[1,77],[22,68],[80,90],[147,143],[86,36]],[[7290,549],[136,-68],[76,-43]],[[6890,2105],[77,36],[42,8],[24,22],[16,-21],[78,20]],[[7127,2170],[107,-16]],[[7116,1903],[-34,4],[-52,-96]],[[7408,1170],[46,29],[9,43],[-16,66],[-1,64],[-49,21],[14,30]],[[5535,4312],[-12,42],[-18,0],[-18,41]],[[5487,4395],[-16,26],[-46,24],[-27,63],[-58,31],[-28,64],[-43,13]],[[5278,4687],[107,6],[86,-16],[134,-66],[-41,-24],[35,-74],[-79,-18],[31,-62],[53,11],[32,32],[51,17],[43,-13],[145,7]],[[5875,4487],[1,9]],[[5876,4496],[-12,15]],[[5864,4511],[97,-30],[31,-52],[-19,-13],[-10,-69]],[[5963,4347],[-2,-4]],[[8239,1335],[-76,-6],[-18,-15],[-95,-4],[-49,36],[-1,42],[-85,1],[-38,-25],[-64,7],[-46,27],[-24,31]],[[7743,1429],[40,33],[11,33],[-18,18],[17
 ,30]],[[8197,1546],[36,-39],[66,-13],[32,-28],[-24,-50],[-13,-58]],[[4241,4710],[116,-74],[66,-66],[-11,-31],[51,-71],[8,-31],[-38,-56]],[[8049,203],[51,0]],[[8100,203],[205,-28],[4,24],[-35,14],[47,57],[37,1]],[[8358,271],[19,-5]],[[8377,266],[130,-3],[27,7]],[[8534,270],[33,-52],[-41,-40],[4,-26],[-46,-68],[46,-18],[-36,-26],[-36,-5],[-75,17],[-59,-35],[-5,-16],[-190,28],[-63,28],[-58,-12],[-14,16],[55,142]],[[8647,3251],[23,7],[110,-103],[178,-58],[41,-7]],[[8999,3090],[0,-41],[-55,-34],[-102,-7],[-73,-19],[-63,19],[-66,1]],[[7179,2958],[-27,-27],[12,-24]],[[7164,2907],[-65,5]],[[7099,2912],[-120,18],[-30,-4],[-68,42],[-79,29],[-27,23]],[[7204,3082],[-15,-36],[-31,-24],[20,-14],[1,-50]],[[8049,203],[-42,-6],[-54,21],[-44,31],[-63,-36],[-53,13],[-34,-14],[14,-15],[-33,-26],[-43,-2],[-39,28],[-74,19],[7,35],[-74,29]],[[7676,477],[33,-21],[0,-34],[70,-22],[71,-53],[36,40],[122,-38]],[[8008,349],[22,-21],[100,-23],[-12,-12],[-18,-90]],[[5806,2627],[22,91],[35,-12],[34,39]],[[6338,253
 1],[-29,-27],[-24,-62],[-32,-31],[1,-22]],[[6254,2389],[-24,-3],[-65,72],[-42,12],[-34,36],[-61,15],[-76,41],[-79,19],[-46,20],[-21,26]],[[4076,4003],[65,15],[20,31],[96,20],[77,35],[250,20],[141,-41],[-79,-33],[-1,-26]],[[7414,1954],[6,-12],[-52,-58],[-40,-29],[-24,-42],[13,-63],[-40,-103],[-44,-44],[-63,-87]],[[7170,1516],[-46,-8],[-27,-28],[-97,21]],[[7000,1501],[-88,52],[-50,11]],[[7738,2013],[-4,9]],[[8337,2248],[49,-87],[-70,-13],[-3,-38],[-57,-26],[-62,14],[-23,-11],[-1,-58],[-35,-30],[-82,-16],[-3,8],[-82,3],[12,-89],[-18,-22],[-46,1]],[[7696,1374],[47,55]],[[7654,2724],[-6,68]],[[7855,2872],[16,-24],[36,16],[119,-9],[1,-51],[53,-24],[46,-2],[0,16],[83,16]],[[8209,2810],[12,-42],[-92,-73],[-7,-73],[-16,-21]],[[6156,1848],[-55,29],[-36,40],[-46,18],[-9,44],[-34,4],[-21,33],[-54,9],[-46,34],[-49,-10],[-42,4]],[[5764,2053],[15,70],[24,13]],[[5803,2136],[22,72]],[[5825,2208],[56,12],[56,0],[3,-30],[42,-4],[49,48],[41,2],[28,-84],[-28,-44],[33,-23]],[[6105,2085],[15,-29]],[[6120,
 2056],[94,-85],[-10,-60]],[[6204,1911],[-48,-19],[28,-39],[-28,-5]],[[8742,3871],[50,31],[44,-1]],[[8982,3738],[-79,-42]],[[5702,2519],[92,84],[12,24]],[[6254,2389],[46,-29]],[[6300,2360],[15,-22],[-26,-54],[-66,-10],[-55,19],[-84,8]],[[6084,2301],[-7,25],[-140,63],[-15,1]],[[5922,2390],[0,49],[-43,17],[-24,78]],[[5855,2534],[-38,-47],[-36,-7]],[[5781,2480],[-79,39]],[[9041,3197],[-53,52],[-165,47],[7,12],[-168,23]],[[9005,3543],[14,-36],[108,-150],[6,-54],[-92,-106]],[[7030,1102],[-46,58]],[[6516,2352],[8,27],[-39,118],[9,38],[-9,50],[67,49]],[[5876,4496],[-1,-9]],[[5730,4631],[-4,-65],[138,-55]],[[5417,2350],[91,88],[18,34],[176,47]],[[5781,2480],[36,-23]],[[5817,2457],[52,-51],[-45,-18],[6,-24],[48,-38],[-21,-20]],[[5857,2306],[-21,17],[-43,0],[-49,-46],[-64,1],[-48,26],[-82,17],[-95,5],[-38,24]],[[5764,2053],[-58,1],[-68,40],[-52,-15],[-30,9],[-194,13],[3,-25],[-37,-18],[-47,9],[16,27],[70,206]],[[5367,2300],[53,-11],[42,3],[37,-35],[-11,-37],[47,-26],[122,-17],[12,-30],[79,1],[
 55,-12]],[[6120,2056],[60,19],[-9,26]],[[6171,2101],[107,27],[85,-11]],[[6363,2117],[-17,-16],[42,-4],[55,-44],[-9,-25],[38,-35]],[[6472,1993],[-61,-67],[-100,-63],[-27,-8]],[[6284,1855],[-72,60],[-8,-4]],[[4514,4711],[44,-28],[-9,-31],[17,-42],[-11,-18],[35,-63],[4,-45],[30,-50]],[[5367,2300],[50,50]],[[5857,2306],[13,-12]],[[5870,2294],[-7,-31],[-38,-55]],[[6275,1846],[9,9]],[[6472,1993],[74,-43],[61,-23],[24,4],[43,-22]],[[7000,1501],[-28,-28],[-15,-61],[-31,-26],[19,-11],[-15,-43],[43,-26],[36,26],[18,-13],[70,47],[14,-4]],[[9041,3197],[-42,-28],[0,-79]],[[6381,2306],[-21,26],[-60,28]],[[8008,349],[42,24],[29,65]],[[8203,426],[43,-15],[-27,-27],[29,-59],[43,-10],[67,-44]],[[6661,2076],[-17,8],[-40,-18]],[[6604,2066],[-39,18]],[[6565,2084],[51,43],[-24,8],[27,43]],[[6892,2272],[-18,-37],[-37,1],[-23,-44],[39,-2],[-15,-30]],[[5870,2294],[30,30],[-3,39],[25,27]],[[6084,2301],[-10,-13],[18,-50],[43,6],[34,-31],[-6,-75],[8,-37]],[[6171,2101],[-66,-16]],[[6905,2700],[68,1],[71,-17]],[
 [7044,2684],[45,-10],[-8,-35]],[[7081,2639],[-2,-55]],[[7079,2584],[18,-38],[-14,-75]],[[8517,445],[-24,-35],[-28,-13],[14,-25],[-23,-42],[-79,-64]],[[8269,2874],[-47,-26],[-13,-38]],[[6356,2227],[-10,-36]],[[6346,2191],[-22,-17],[39,-57]],[[7465,2830],[-97,-43]],[[7368,2787],[-46,-8],[-12,-25],[-47,-13],[-32,8]],[[7231,2749],[-2,40],[-22,39],[-43,27],[0,52]],[[7179,2958],[42,-17],[59,-5],[70,-23],[49,-1]],[[7493,2627],[-59,-20],[-57,7],[-45,-7]],[[7332,2607],[24,92],[12,88]],[[7569,2806],[15,-54],[-70,-72],[-21,-53]],[[7290,549],[77,40]],[[7367,589],[142,30],[35,-9],[32,26]],[[5487,4395],[-154,-51]],[[7170,1516],[52,-39]],[[7099,2912],[-32,-61],[-23,-10],[-10,-38],[11,-33]],[[7045,2770],[-33,7],[-88,-6],[-53,6]],[[7231,2749],[-3,-47]],[[7228,2702],[-88,6],[6,-22],[-65,-47]],[[7044,2684],[1,86]],[[7625,1774],[11,-14],[88,-1]],[[7709,1525],[-67,-14],[-56,-22]],[[7204,3087],[-25,37],[-30,2]],[[8735,467],[4,-14],[-45,-13],[2,-19],[-36,-27],[-20,-37],[-39,0],[-26,-32],[2,-27],[-34,-5],[
 -9,-23]],[[7422,2512],[-32,12],[-60,-30],[-93,-26]],[[7237,2468],[-3,26],[43,45],[15,37]],[[7292,2576],[40,31]],[[7493,2627],[79,-34],[0,-35]],[[7088,2210],[46,7],[18,-13],[-25,-34]],[[6565,2084],[-49,-18],[9,43],[-94,4],[-57,32],[-5,33],[-23,13]],[[7237,2468],[-85,-30]],[[7079,2584],[51,1],[37,23],[40,-10],[45,10]],[[7252,2608],[40,-32]],[[6472,1993],[47,44],[91,20],[-6,9]],[[7252,2608],[-11,41],[-25,7],[12,46]],[[7367,589],[-32,26]],[[7371,2428],[-15,9],[-82,-29],[-31,5]],[[5817,2457],[19,15],[19,62]],[[6228,1804],[-72,44]]],"transform":{"scale":[0.032085757317910114,-0.048004800480048],"translate":[319.5872562891084,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ur-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ur-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ur-municipalities.json
deleted file mode 100644
index ba806e6..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ur-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":1201,"properties":{"name":"Altdorf (UR)"},"arcs":[[[-58,-60,-38,-46]]]},{"type":"MultiPolygon","id":1202,"properties":{"name":"Andermatt"},"arcs":[[[-10,-19,26,27]]]},{"type":"MultiPolygon","id":1203,"properties":{"name":"Attinghausen"},"arcs":[[[43,-34,44,45,-37,46,-35,-14]]]},{"type":"MultiPolygon","id":1204,"properties":{"name":"Bauen"},"arcs":[[[-31,-56,-51,-59]]]},{"type":"MultiPolygon","id":1205,"properties":{"name":"Bürglen (UR)"},"arcs":[[[36,37,38,39,40,-22,41,42]]]},{"type":"MultiPolygon","id":1206,"properties":{"name":"Erstfeld"},"arcs":[[[-15,34,35,-2,-17]]]},{"type":"MultiPolygon","id":1207,"properties":{"name":"Flüelen"},"arcs":[[[-32,58,-54,-39,59,-57]]]},{"type":"MultiPolygon","id":1208,"properties":{"name":"Göschenen"},"arcs":[[[6,7,8,9,10,11]]]},{"type":"MultiPolygon","id":1209,"properties":{"name":"Gurtnellen"},"arcs":[[[-16,16,-1,17,18,-9]]]},{
 "type":"MultiPolygon","id":1210,"properties":{"name":"Hospental"},"arcs":[[[-11,-28,48,-25]]]},{"type":"MultiPolygon","id":1211,"properties":{"name":"Isenthal"},"arcs":[[[28,29,30,31,32,33]]]},{"type":"MultiPolygon","id":1212,"properties":{"name":"Realp"},"arcs":[[[-12,24,25]]]},{"type":"MultiPolygon","id":1213,"properties":{"name":"Schattdorf"},"arcs":[[[-47,-43,-50,-20,-3,-36]]]},{"type":"MultiPolygon","id":1214,"properties":{"name":"Seedorf (UR)"},"arcs":[[[-33,56,57,-45]]]},{"type":"MultiPolygon","id":1215,"properties":{"name":"Seelisberg"},"arcs":[[[54,-52,55,-30]]]},{"type":"MultiPolygon","id":1216,"properties":{"name":"Silenen"},"arcs":[[[0,1,2,3,4,5]]]},{"type":"MultiPolygon","id":1217,"properties":{"name":"Sisikon"},"arcs":[[[50,51,52,-40,53]]]},{"type":"MultiPolygon","id":1218,"properties":{"name":"Spiringen"},"arcs":[[[-5,-24,47]],[[-42,-21,49]]]},{"type":"MultiPolygon","id":1219,"properties":{"name":"Unterschächen"},"arcs":[[[19,20,21,22,23,-4]]]},{"type":"MultiPolygon"
 ,"id":1220,"properties":{"name":"Wassen"},"arcs":[[[12,13,14,15,-8]]]}]}},"arcs":[[[5313,3778],[16,59],[-24,33],[-48,16],[-25,36],[-43,27],[-10,26],[-38,32],[24,23],[9,41],[-24,22],[-1,81],[-30,4],[-62,76],[48,52],[21,1],[51,33],[-7,52],[-50,54],[-15,71],[-120,90],[-111,63],[-44,45],[-41,15],[-4,18],[-42,17],[-41,-7],[-66,24],[-52,3],[-74,31],[-72,17],[-11,42],[40,28],[11,55],[37,35],[116,22],[24,29],[49,35],[20,48],[77,21],[52,22],[25,45],[-19,73],[-30,27],[-27,43],[-1,53],[38,76],[-2,44],[-36,82],[3,67],[-36,179]],[[4768,5859],[-55,77],[-11,40],[17,52],[-1,34],[-30,30],[51,97],[42,30],[11,34],[18,-6],[21,40],[36,31],[114,43],[7,54],[26,59],[-9,31],[36,35],[28,-5]],[[5069,6535],[65,-20],[113,-12],[87,27],[19,15],[76,5],[49,-4]],[[5478,6546],[23,0],[31,-32],[-31,-81],[8,-41],[85,-62],[64,-19],[155,-57],[105,0],[49,22],[96,-16],[12,-36],[-9,-37],[6,-48],[52,7],[61,-25],[3,-15],[81,-37],[65,-9],[58,-18],[86,13],[92,7],[17,29],[65,16],[19,-5],[178,41],[11,32],[42,39],[47,15],[42,39],[7
 6,98],[78,-1],[24,31],[48,23],[124,21],[90,58],[56,23],[73,-16],[36,-1],[26,22],[40,-8],[79,-38],[85,-1],[97,94],[52,117],[19,16],[-1,28],[86,60]],[[8079,6794],[54,32],[66,-37],[44,23],[40,1],[84,32],[96,-19]],[[8463,6826],[31,-14],[21,-36],[8,-95],[50,-37],[84,-93],[-23,-193],[-68,-68],[-12,-22],[27,-64],[-26,-34],[-23,-53],[-51,-22],[-33,-27],[-61,0],[-110,-23],[-43,-38],[1,-17],[-48,-41],[-65,-42],[-69,-30],[-4,-34],[23,-64],[-128,4],[-45,30],[-82,-3],[-59,-54],[-46,-10],[-31,-82],[29,-45],[21,-57],[3,-38],[-20,-55],[37,-75],[12,-51],[-2,-46],[22,-34],[56,-57],[-50,-55],[-115,35],[-41,-30],[-8,-23],[-72,-25],[9,-55],[-6,-32],[-23,-8],[-49,-60],[-14,-53],[10,-61],[-65,-109],[15,-71],[34,-91],[-78,-49],[-33,-1],[-56,-24],[-72,-55],[-86,4],[-59,-11],[-39,-19],[-57,-12],[-73,-34],[-27,62],[-58,20],[-36,60],[3,18],[-40,39],[-13,43],[-54,14],[-5,84],[-64,8],[-90,-40],[-86,-49],[-58,-56],[-58,-37],[-36,-12],[-6,-56],[-31,-38],[-18,-58],[75,-135],[13,-38],[-27,-50],[-32,-28],[-48,-22],[-
 40,-33],[-60,-13],[-80,-52],[-58,-64],[-36,-28],[-57,-18],[-77,6],[-45,-19],[-6,-75],[-37,-23],[-92,-30],[-18,-27],[-74,42],[-16,23],[-53,27],[-46,3],[-107,-37]],[[469,2124],[-24,10],[-7,45],[-16,22],[1,48],[-21,59],[26,28],[-6,27],[15,30],[-1,50],[10,50],[-14,44],[24,28],[-29,17],[-41,75],[-144,15],[-19,81],[-6,58],[1,81],[-13,51],[-24,25],[-75,28],[-34,50],[-11,42],[-46,37],[-4,27],[21,64],[-32,124],[24,29],[14,57],[-15,13],[-1,60],[16,26],[157,-49],[67,6],[54,-43],[-3,-29],[93,-7],[0,7],[148,-27],[62,20],[111,-12],[50,-16],[72,32],[139,39],[14,58],[-8,32],[20,39],[23,89],[-25,24],[-32,89],[25,72],[8,71]],[[1013,3920],[93,65],[108,50],[34,8],[76,-4],[112,-50],[34,3],[31,19],[36,39],[55,12],[34,-32],[39,-79],[59,-30],[81,-76],[19,-39],[4,-40],[84,-73],[29,-37],[68,-50],[59,-16],[34,-23],[110,-54],[42,-7],[12,-42],[50,-75],[124,-45],[97,-6],[35,7],[67,-16],[52,-22],[45,6],[58,26],[107,-9],[110,23],[104,-100],[158,-50],[244,76],[71,-35],[142,-25],[39,15],[187,23],[86,18],[242,90]],[[
 4284,3365],[25,-44],[72,-46],[31,-101]],[[4412,3174],[-13,-69],[-51,-62],[-71,-36],[-65,-22],[-93,-108],[-50,-16],[-41,-53],[-24,-3],[-128,-54],[-31,-24],[-45,-14],[-67,-38],[-28,-8],[-7,-23],[-36,-24],[-84,13],[-82,-13],[-51,34],[-64,-6],[-87,-43],[-23,-3],[-150,33],[-39,-12],[-53,-93],[-73,-26],[-97,-6],[-73,-14],[-68,-42],[-13,-33]],[[2705,2409],[-84,-36],[-43,3],[-44,-42],[-75,0],[-53,-53],[-48,-35],[-30,-1],[-81,18],[-92,-14],[-65,1],[-111,-67],[-4,-38],[-38,-29],[-34,-3],[6,-18]],[[1909,2095],[-65,-6],[-27,-16],[-48,-6],[-22,-35],[-82,-35],[-34,-28],[-60,-19],[-64,28],[-48,37],[-14,-6],[-58,33],[-52,16],[-38,32],[-66,-27],[-75,-13],[-44,-41],[-67,-28],[-18,9],[-109,0],[-40,-12],[-49,6],[-77,-15],[-41,9],[-61,47],[-49,17],[-82,61],[-50,21]],[[1013,3920],[-93,28],[-32,57],[-8,261],[8,25],[33,13],[6,22],[-51,67],[-57,27],[-33,29],[-20,48],[-1,47],[11,28],[-24,27],[10,41],[53,55],[-43,68],[-32,22],[-11,37],[37,24],[43,-6],[9,32],[60,65],[-10,10],[24,98],[106,58],[31,26],[77,40],[4
 4,-11],[31,22],[93,-13],[17,-22],[63,-3],[85,23],[72,13],[27,27],[76,13],[50,31]],[[1664,5249],[66,31],[59,53],[83,-20],[14,6],[44,62],[40,19],[38,0],[35,-16],[19,23],[38,19],[30,0]],[[2130,5426],[49,-9],[88,-32],[65,-41],[90,19],[53,-23]],[[2475,5340],[63,-29],[7,-23],[-34,-11],[-33,-94],[2,-37],[54,-32],[50,-60],[-5,-28],[36,-32],[0,-35],[22,-46],[0,-75],[39,-27],[34,-59],[34,-25],[103,-37],[28,-29],[57,-28],[40,1],[47,-13],[63,-7],[68,-37],[27,-68],[51,-54],[79,-53],[6,-16],[49,-9],[66,-95],[64,-66],[94,-22],[77,-39],[35,-30],[54,-25],[28,2],[44,-19],[10,-23],[51,-9],[30,-19],[76,6],[81,-22],[91,14],[43,-3],[42,-29],[48,9],[7,-41],[23,-30],[-7,-56],[-27,-27],[-32,-63],[13,-49],[-7,-50],[28,-53],[-17,-30],[27,-80],[-29,-49],[2,-93],[7,-21]],[[2475,5340],[20,16],[82,35],[34,-1],[59,14],[24,42],[45,34],[22,-1],[35,-28],[34,-7],[48,40],[79,7],[70,-8],[31,-13],[50,7],[13,21],[96,18],[37,-22],[49,-11],[26,33],[48,21],[19,44],[-11,22],[99,34],[55,4],[55,33],[22,-8],[59,15],[61,-11],[61,
 4],[37,39],[53,-40],[87,-6],[40,-32],[45,-2],[19,-51],[64,-20],[39,1],[54,23],[68,44],[28,27],[70,47],[115,29],[114,48],[51,42],[87,36]],[[5313,3778],[-18,-20],[-39,-102],[-54,-44],[-70,4],[-33,14],[-41,-4],[-35,-15],[-48,-72],[4,-57],[25,-63],[-39,-88],[26,-69],[-9,-19]],[[4982,3243],[-133,-28],[-6,-32],[-29,-31],[-13,-35],[-25,-3],[-117,13],[-58,56],[-46,13],[-87,11],[-55,-19],[-1,-14]],[[5478,6546],[35,55],[-3,22],[94,-13],[5,47],[32,55],[-41,73],[13,38]],[[5613,6823],[55,4],[58,-43],[94,-7],[108,19],[69,113],[42,10],[67,52],[-5,10],[46,19],[66,-20],[52,13],[89,166],[0,25],[22,81],[-49,15],[49,65],[-9,39],[9,39],[-14,35],[21,25],[68,31],[43,30],[43,76],[62,52],[58,75],[89,54],[87,129],[-72,61]],[[6761,7991],[30,28],[-10,30],[10,33],[53,42],[112,58],[-13,60],[32,33],[68,3],[126,-18],[72,5],[58,15],[18,18],[6,43],[92,43],[62,39],[36,35],[127,78]],[[7640,8536],[7,-65],[43,-56],[61,-112],[34,-36],[16,-44],[62,15],[56,25],[18,36],[42,21],[16,36],[31,-21],[15,-47],[-4,-53],[-16,-58],[2
 ,-63],[16,-53],[-9,-104],[-13,-47],[3,-42],[32,-59],[74,-61]],[[8126,7748],[18,-35],[34,-31],[53,-17],[-75,-57],[-67,0],[-54,-33],[64,-29],[56,-41],[-11,-50],[11,-52],[20,-37],[34,-131],[31,-52],[-51,-29],[-22,-28],[-37,-9],[-80,-57],[-13,-36],[14,-10],[48,-116],[2,-36],[-30,-38],[8,-30]],[[1909,2095],[77,-20],[35,-18],[115,-130],[144,-215],[-9,-27],[68,23],[25,-62],[29,-39],[11,-37],[75,-117],[99,-107],[14,-67]],[[2592,1279],[-52,-42],[-89,-8],[-48,-31],[-15,-30],[-15,7],[-34,-57],[0,-33],[-69,-13],[16,-21],[-2,-37],[-35,-42],[19,-52],[2,-70],[-54,-34],[-22,-54],[-44,-55],[-20,-48],[10,-32],[31,-21],[9,-23],[-23,-64],[39,-85],[27,-17],[-5,-33],[49,-56],[-18,-22],[3,-57],[-60,-2],[-86,-27],[-107,-55],[-72,-1],[-29,-20],[-86,6],[-65,-32],[-157,-15],[-33,-67],[-57,-36],[-74,20],[-32,19],[-11,32],[-58,61],[-20,-3],[-37,41],[-22,3],[-52,-41],[-49,-13],[-91,32],[-98,22],[-2,17],[-41,-1],[-50,46],[-48,21],[-34,-6],[-50,14],[-32,43],[-43,20],[-40,3],[-13,42],[-36,40],[4,27],[-20,47],[-16,6
 ],[-31,105],[6,79],[-32,22],[-37,60],[-9,69],[-41,92],[-129,135],[8,48],[-52,70],[5,33],[-34,31],[35,79],[-6,15],[16,59],[4,49],[24,32],[-49,57],[9,40],[40,17],[39,49],[27,6],[16,37],[20,9],[18,57],[-5,66],[25,46],[34,35],[0,57],[10,15],[-10,43],[-3,83],[36,37]],[[4982,3243],[9,-33],[-11,-63],[5,-34],[63,-62],[28,-81],[-57,-31],[-68,-86],[-95,-64],[-87,0],[-115,-131],[21,-31],[47,-28],[-38,-85],[20,-35],[-31,-40],[-34,-9],[-34,-31],[-13,-71],[47,-40],[54,-29],[-4,-24],[30,-35],[0,-51],[23,-26],[86,-38],[2,-32],[68,-32],[66,-10],[96,10],[39,-85],[-8,-33],[-9,-109],[15,-11],[22,-69],[-40,-66],[1,-92],[60,-68],[0,-43],[27,-98],[-53,-200],[-25,-12],[-85,-4],[-28,-21],[-77,-19],[-34,-41],[-53,-26],[-35,1],[-5,-30],[-38,-65],[-117,-58],[-94,-31],[-41,1],[-49,-27],[-116,7],[-14,22],[-51,6],[-8,49],[-29,64],[13,57],[-45,19],[-10,36],[-113,37],[-48,-11],[-50,10]],[[3962,1111],[-26,20],[-19,54],[-50,63],[22,28],[12,77],[-33,29],[8,42],[20,34],[-55,38],[-33,58],[-122,136],[-51,48],[-32,16],[-3
 2,37],[-42,30],[10,10],[-35,91],[-82,83],[-21,57],[-27,21],[-65,25],[-27,48],[14,2],[-14,36],[-71,14],[-42,27],[-79,38],[-116,81],[-149,17],[-26,23],[-44,13],[-50,2]],[[1916,6814],[-79,53],[-8,33],[-67,58],[-11,31],[-82,-22],[-55,6],[-65,20],[-25,23],[-53,6],[-41,39],[-33,-6],[-33,-42],[-32,-11],[-67,6],[1,32],[-34,36],[1,25],[-23,31],[25,28],[-3,46],[38,86],[-22,24],[-7,50],[-48,59],[11,60],[71,17],[36,39],[92,62],[-39,77],[-5,46],[-34,19],[-34,48],[19,42],[-65,26],[-3,14],[-55,49],[-109,-11],[-46,18],[-8,16],[40,47],[48,38],[18,44],[40,12],[23,-9],[122,51],[50,7],[68,23],[13,30],[38,44],[14,112],[19,28],[113,-1],[64,-9],[38,18],[30,-46],[56,-45],[110,28],[125,72],[50,23],[18,60],[83,1],[9,7],[121,10],[48,29],[118,34],[53,32]],[[2553,8587],[83,-12],[91,-2],[-9,-22],[28,-65],[21,-9]],[[2767,8477],[19,-21],[76,0],[59,-34],[35,-2],[29,-46],[49,13],[58,30],[27,3],[31,38],[72,28],[55,-5],[27,9],[46,-31],[-11,-29],[15,-38],[42,-18],[39,22],[47,-23],[220,0]],[[3702,8373],[0,-120]],[[3702,
 8253],[-279,0],[-58,-2],[-26,23],[-8,-16],[18,-34],[-24,-21],[-88,-40],[19,-4],[-37,-30],[-62,-25],[10,-21],[-38,-25],[-28,-34],[-98,-83],[55,-20],[16,-44],[-55,-35],[-20,-72],[20,-27],[-29,-30],[58,-8],[5,-18],[44,-32],[71,-5],[12,-82],[-6,-23],[-42,-40],[8,-23],[-38,-44],[-9,-34],[-41,-14],[-38,3],[-86,-54],[-37,-39],[-27,-9],[-11,-40],[-23,-26],[11,-22],[-4,-57],[-37,-32],[-5,-24],[-40,-53],[-12,-33],[27,-37],[-56,-34]],[[2714,6933],[14,-40],[-64,-37],[-30,-39],[-36,-12],[-43,-32],[-13,-37],[-42,-11],[-54,-1],[-24,-17],[-41,24],[-47,-10],[-20,26],[-75,32],[-7,21],[-53,36],[-29,7],[-59,-14],[-28,18],[-84,-17],[-22,-22],[-41,6]],[[2130,5426],[98,84],[27,50],[-28,48],[19,27],[-10,25],[30,62],[9,51],[19,4],[9,49],[-8,27],[11,29],[-15,16],[24,32],[104,79],[51,53],[30,42],[58,42],[18,32],[70,47],[-11,64],[14,46],[-1,43],[75,61],[-13,18],[0,47],[16,29],[-39,61],[-60,24],[162,80],[65,-18],[95,-14],[39,30],[34,0],[58,-19],[25,-23],[58,-1],[89,-20],[84,8],[76,18],[152,62],[37,-1],[15,-26],
 [58,-11],[38,-18],[41,23],[101,-9],[33,20],[79,29],[57,45],[63,22],[64,95]],[[4150,6890],[15,-32],[19,6],[-7,27],[90,34],[39,-152],[32,20],[55,7],[10,32],[95,-52],[98,0],[24,-8],[1,-60],[138,-62],[60,-2],[88,6],[57,-28],[73,-1],[49,-38],[-17,-52]],[[4170,7226],[-2,4]],[[4168,7230],[44,34],[2,25],[53,35],[0,19],[48,12],[-10,17],[44,38],[63,25],[96,11],[1,30],[53,-11],[40,53],[-12,30],[-22,10],[30,38],[-45,56],[40,55],[19,84],[37,16],[-12,65],[47,48],[39,0],[35,27],[19,-3]],[[4777,7944],[70,84],[49,35],[27,85],[22,23],[27,78],[7,106],[67,43]],[[5046,8398],[32,-15],[43,20],[11,-13],[136,-19],[44,-12],[20,8],[41,-19],[63,-10],[29,5],[30,51]],[[5495,8394],[19,0],[68,32],[51,-10],[39,9],[2,16],[49,27],[-2,29],[37,17],[37,39],[13,34],[17,-4],[40,25],[-2,32],[52,0],[20,29],[73,18],[9,37],[41,-10],[28,21],[18,-14],[47,24],[6,45],[74,-31],[174,84],[14,-6],[42,23],[37,2],[41,37],[38,6],[39,25],[66,-37],[-3,-31],[65,-109],[180,-57],[74,11],[-2,19],[47,32],[31,34],[-2,18],[39,30],[103,32],[83,41
 ],[33,27],[63,-60],[106,-25],[21,-24],[100,-10],[9,-44],[49,-43],[-2,-77],[-20,-65],[25,-20],[-41,-36]],[[6761,7991],[-57,-10],[-108,-8],[-53,-30],[-13,-36],[-56,-2],[-34,-23],[-87,2],[-115,47],[-30,22],[-73,17],[-17,34],[-39,-7],[-114,34],[-118,90],[-48,84],[1,93],[-67,14],[-81,-4],[-15,-26],[9,-104],[-13,-23],[-8,-67],[10,-24],[9,-82],[15,-27],[11,-101],[14,-49],[-19,-33],[-10,-64],[-70,-146],[-43,-16],[-13,12],[-35,-14],[5,-70],[-95,-62],[-26,-24],[-42,-3],[43,-46],[42,-9],[-5,-30],[67,-27],[14,-18],[50,16],[49,-19],[2,-57],[19,-52],[29,-42],[3,-61],[28,-48],[-3,-82],[-31,-11]],[[5643,6899],[-65,25],[-117,25],[-36,-8],[-33,19],[-9,-15],[-40,-12],[-39,8],[-17,24],[-53,1],[-34,12],[13,57],[-30,13],[-37,78],[-37,6],[-6,-21],[-43,28],[-9,44],[-48,24],[-26,45],[-30,-1],[-40,-25],[-111,40],[-102,57],[-24,54],[-20,-9],[-63,61],[-97,-50],[-251,-140],[-69,-13]],[[1664,5249],[-54,179],[-58,50],[-33,64],[-92,62],[10,55],[48,46],[-15,96],[-60,-27],[-42,-8],[-52,-30],[-78,47],[-64,17],[20,5],
 [-29,38],[106,-23],[39,0],[72,32],[41,11],[60,42],[24,31],[-12,43],[9,44],[-48,42],[0,14],[-44,26],[-1,23],[34,19],[21,36],[-2,29],[35,30],[9,59],[-8,113],[36,47],[15,60],[26,30],[20,50],[38,23],[126,49],[77,23],[44,35],[15,26],[-5,44],[24,13]],[[2714,6933],[55,-41],[90,-42],[40,36],[64,18],[163,87],[29,45],[33,27],[25,40],[34,21],[99,85],[53,14],[82,65],[25,51],[36,49],[129,122],[42,5],[77,-17],[65,-3],[92,9],[65,32]],[[4012,7536],[94,-191],[62,-115]],[[4170,7226],[39,-40],[0,-36],[-19,-47],[-40,-213]],[[8126,7748],[40,71],[43,14],[51,57],[15,43],[-17,17],[44,11],[63,-6],[25,-12],[104,19],[118,64],[25,24],[16,39],[62,33],[89,15],[61,1],[12,33],[52,5],[-2,35],[60,37],[56,10],[38,-20],[-2,23],[41,4],[29,45],[66,8],[80,63],[29,-9],[31,44],[31,-6],[35,16],[124,75],[32,10],[84,-163],[44,-53],[25,-76],[40,-25],[21,-48],[30,-23],[58,1],[29,-20],[-9,-50],[26,-28],[9,-55],[51,-139],[-8,-34],[22,-147],[-33,-89],[-97,-48],[-80,-23],[-10,-16],[-65,-12],[-52,-50],[-55,-27],[-39,-44],[-120,-26],
 [-64,-21],[-94,-62],[-34,-7],[-84,2],[-32,14],[-33,-17],[-27,-34],[-104,-91],[-16,-43],[-51,-38],[-11,-25],[-76,-27],[-27,1],[-66,-26],[-39,-24],[-78,-26],[-33,-20],[-44,-10],[-32,-28],[-40,-8]],[[3962,1111],[-7,-27],[-58,-43],[-209,-30],[-24,8],[-140,-15],[-124,76],[-44,-1],[-54,78],[-87,64],[-21,1],[-92,-43],[-50,-12],[-107,4],[-66,-19],[-45,0],[-108,36],[-18,30],[-58,21],[-58,40]],[[5613,6823],[-7,16],[39,24],[-2,36]],[[3533,8601],[-61,75],[90,256]],[[3562,8932],[64,184]],[[3626,9116],[346,16],[65,-35],[2,-22],[33,9],[58,-9],[150,-1],[88,-13],[48,-21],[74,-21],[61,-9],[20,-13],[34,12],[108,-18],[72,-27],[33,-2],[52,21],[36,-1],[27,16],[72,10],[65,-12],[77,30],[70,3],[34,-70],[38,-31],[-5,-41],[60,-117],[10,-46],[-67,-83],[57,-124],[78,-38],[38,-34],[35,-51]],[[5046,8398],[12,38],[-112,29],[-50,-21],[-86,16],[-29,20],[-34,58],[-92,12],[-52,34],[-40,1],[-67,29],[-56,3],[-29,14],[-21,-19],[-49,41],[-63,41],[-137,1],[-74,-18],[-59,-26],[-38,-72],[-30,-1],[-4,-23],[20,-32],[-25,-19],[
 -63,10],[-14,36],[3,38],[-38,13],[-286,0]],[[2553,8587],[-5,23],[54,68],[14,59],[-10,22],[-31,11],[-20,65],[80,-16],[18,15],[108,-1],[46,15],[-6,22],[-40,-4],[-6,29],[8,47],[18,23],[-24,4],[27,42],[-32,83],[-1,109],[8,73],[-18,28],[-5,42],[63,21],[31,31],[48,100],[-16,58],[85,38],[27,20],[35,59],[39,38],[39,65],[-14,16],[-59,135],[203,72],[264,-65],[110,-71],[19,-97],[-51,-152],[45,-143],[22,-355]],[[3562,8932],[-286,0],[-24,5],[6,-29],[-74,-5],[-49,-11],[-16,9],[-47,-47],[-43,12],[-17,-78],[-42,-5],[-65,7],[-61,-6],[-59,16],[-14,-9],[15,-33],[107,-58],[9,-52],[-25,-25],[-18,-60],[-46,-32],[-5,-19],[-41,-35]],[[3702,8253],[0,-92],[147,-300]],[[3849,7861],[163,-325]],[[3702,8373],[0,19],[-169,209]],[[4777,7944],[-54,30],[8,20],[-86,9],[-31,19],[11,36],[-15,46],[-51,39],[16,27],[-21,24],[-41,-5],[-68,28],[-33,-3],[-8,-25],[-32,6],[-11,22],[-61,-7],[-19,-51],[13,-42],[-23,-31],[-67,-18],[-40,-26],[-5,-80],[-47,-6],[-4,-31],[-26,-22],[-11,44],[-20,2],[-33,-31],[5,-20],[-67,-20],[-33,-18
 ],[-1,30],[-73,-9],[0,-20]]],"transform":{"scale":[0.039272657559093094,-0.048004800480048015],"translate":[283.6563485333141,490]}}


[36/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
Updates, Cleanup and preparation for a pull request.


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/d305f9da
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/d305f9da
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/d305f9da

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: d305f9dabdbf3cb024b20645796a20acba46788b
Parents: 9d71ec3
Author: jj <ju...@gmail.com>
Authored: Thu Jan 15 18:26:34 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Thu Jan 15 18:26:34 2015 +0100

----------------------------------------------------------------------
 build.gradle                                    |    9 +-
 .../java/org/qi4j/api/geometry/TFeature.java    |    6 +
 .../qi4j/api/geometry/internal/Coordinate.java  |    6 -
 .../geometry/internal/GeometryCollections.java  |    6 +-
 .../qi4j/api/geometry/internal/TGeometry.java   |    2 +-
 .../predicate/ST_DisjointSpecification.java     |   12 +-
 .../predicate/ST_IntersectsSpecification.java   |   12 +-
 .../test/indexing/AbstractAnyQueryTest.java     |    2 +-
 extensions/indexing-elasticsearch/build.gradle  |    8 +-
 .../elasticsearch/ElasticSearchIndexer.java     |    6 +-
 .../spatial/ElasticSearchSpatialIndexer.java    |    4 +-
 .../functions/convert/ST_GeometryFromText.java  |    2 +-
 .../AbstractElasticSearchSpatialFunction.java   |    4 +-
 .../spatial/ElasticSearchSpatialBench.java      |   23 +-
 .../ElasticSearchSpatialClusterQueryTest.java   |  132 +
 ...chSpatialQueryTestUsingGeoPointIndexing.java |    4 +-
 ...chSpatialQueryTestUsingGeoShapeIndexing.java |    3 +-
 ...earchSpatialQueryTestUsingUsingDefaults.java |    2 +-
 ...SearchSpatialRegressionQueryClusterTest.java |    3 +-
 .../resources/ElasticSearchBenchmark.properties |   30 +
 .../src/test/resources/RIAKBenchmark.properties |    1 +
 .../spatial/assembly/TGeometryAssembler.java    |   80 +
 .../spatial/conversions/TConversions.java       |   30 +
 .../spatial/conversions/from/FromHelper.java    |   58 +
 .../conversions/from/GeoJsonFromConverter.java  |  204 +
 .../from/TGeometryFromConverter.java            |   38 +
 .../conversions/from/WKTFromConverter.java      |  226 +
 .../conversions/to/GeoJsonToConverter.java      |   66 +
 .../conversions/to/Spatial4JToConverter.java    |  117 +
 .../conversions/to/TGeometryToConverter.java    |   46 +
 .../spatial/conversions/to/ToHelper.java        |   62 +
 .../geometry/geojson/types/Coordinates.java     |   14 -
 .../spatial/incubator/geometry/topojson/_._     |    0
 .../spatial/parser/geojson/GeoJSONParser.java   |   51 -
 .../spatial/projection/ProjectionsRegistry.java |   75 +
 .../transformations/TTransformations.java       |   31 +
 .../transformations/fromto/FromHelper.java      |   41 +
 .../transformations/fromto/ToHelper.java        |  150 +
 .../spatial/projections/ProjectionService.java  |  117 -
 .../spatial/projections/Projections.java        |   29 -
 .../projections/ProjectionsTransformation.java  |  133 -
 .../transformations/GeoJsonTransformator.java   |   17 -
 .../geojson/GeoJSONParserV2.java                |   23 -
 .../geojson/internal/ParserBuilder.java         |   78 -
 .../geojson/internal/TransformationBuilder.java |  140 -
 .../spatial/v2/assembly/TGeometryAssembler.java |   70 -
 .../spatial/v2/conversions/TConversions.java    |   16 -
 .../spatial/v2/conversions/from/FromHelper.java |   42 -
 .../conversions/from/GeoJsonFromConverter.java  |  159 -
 .../from/TGeometryFromConverter.java            |   22 -
 .../v2/conversions/from/WKTFromConverter.java   |  210 -
 .../v2/conversions/to/GeoJsonToConverter.java   |   52 -
 .../v2/conversions/to/Spatial4JToConverter.java |  101 -
 .../v2/conversions/to/TGeometryToConverter.java |   28 -
 .../spatial/v2/conversions/to/ToHelper.java     |   44 -
 .../v2/projections/ProjectionsRegistry.java     |   61 -
 .../v2/projections/SpatialRefSysManager.java    |   37 -
 .../spatial/v2/transformations/FromHelper.java  |   27 -
 .../v2/transformations/TTransformations.java    |   14 -
 .../spatial/v2/transformations/ToHelper.java    |  168 -
 .../spatial/SpatialRefSysManagerTest.java       |   93 -
 .../conversions/ConversionsFromWktTest.java     |   33 +
 .../ConversionsWithProjectionsTest.java         |   86 +
 .../ConvertFromGeoJsonToTGeometryTest.java      |  179 +
 .../spatial/geojson/SimpleGeoJsonTest.java      |  108 -
 .../parser/geojson/SimpleGeoJSONParser.java     |  303 -
 .../projections/ProjectionServiceTest.java      |  109 -
 .../ProjectionsTransformationTest.java          |   56 -
 .../repository/SimpleSpatialRepositoryTest.java |  164 -
 .../spatial/topo/GeoJSONSpec20080616.java       |   16 +-
 .../spatial/topo/GeoJSONSwissLakes2013.java     |   71 +-
 .../transformations/TransformationsTest.java    |   74 +
 .../v2/conversions/ConversionsFromWktTest.java  |   49 -
 .../spatial/v2/conversions/ConversionsTest.java |  117 -
 .../ConversionsWithProjectionsTest.java         |   55 -
 .../ConvertFromGeoJsonToTGeometry.java          |   65 -
 .../v2/transformations/TransformationsTest.java |  105 -
 .../topo/geojson/swiss/FeatureCollection.json   |  109 +-
 .../resources/topo/geojson/swiss/ch-lakes.json  | 6124 +++++++++++++++++-
 .../topo/topojson/swiss/ag-municipalities.json  |    1 -
 .../topo/topojson/swiss/ai-municipalities.json  |    1 -
 .../topo/topojson/swiss/ar-municipalities.json  |    1 -
 .../topo/topojson/swiss/be-municipalities.json  |    1 -
 .../topo/topojson/swiss/bl-municipalities.json  |    1 -
 .../topo/topojson/swiss/bs-municipalities.json  |    1 -
 .../topo/topojson/swiss/ch-cantons.json         |    1 -
 .../topo/topojson/swiss/ch-country.json         |    1 -
 .../topo/topojson/swiss/ch-districts.json       |    1 -
 .../topo/topojson/swiss/ch-lakes.jj.json        |  200 -
 .../resources/topo/topojson/swiss/ch-lakes.json |   37 -
 .../topo/topojson/swiss/ch-municipalities.json  |   11 -
 .../test/resources/topo/topojson/swiss/ch.json  |    1 -
 .../topo/topojson/swiss/fr-municipalities.json  |    1 -
 .../topo/topojson/swiss/ge-municipalities.json  |    1 -
 .../topo/topojson/swiss/gl-municipalities.json  |    1 -
 .../topo/topojson/swiss/gr-municipalities.json  |    1 -
 .../topo/topojson/swiss/ju-municipalities.json  |    1 -
 .../topo/topojson/swiss/lu-municipalities.json  |    1 -
 .../topo/topojson/swiss/ne-municipalities.json  |    1 -
 .../topo/topojson/swiss/nw-municipalities.json  |    1 -
 .../topo/topojson/swiss/ow-municipalities.json  |    1 -
 .../topo/topojson/swiss/sg-municipalities.json  |    1 -
 .../topo/topojson/swiss/sh-municipalities.json  |    1 -
 .../topo/topojson/swiss/so-municipalities.json  |    1 -
 .../topo/topojson/swiss/sz-municipalities.json  |    1 -
 .../topo/topojson/swiss/tg-municipalities.json  |    1 -
 .../topo/topojson/swiss/ti-municipalities.json  |    1 -
 .../topo/topojson/swiss/ur-municipalities.json  |    1 -
 .../topo/topojson/swiss/vd-municipalities.json  |    1 -
 .../topo/topojson/swiss/vs-municipalities.json  |    1 -
 .../topo/topojson/swiss/zg-municipalities.json  |    1 -
 .../topo/topojson/swiss/zh-municipalities.json  |    1 -
 .../openstreetmap/model/test/TestOSMModel.java  |    1 -
 113 files changed, 8099 insertions(+), 3250 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index c8fdcd3..660f461 100644
--- a/build.gradle
+++ b/build.gradle
@@ -175,7 +175,7 @@ allprojects {
   if( ext.javaDir.isDirectory() || ext.scalaDir.isDirectory() ||
       ext.testJavaDir.isDirectory() || ext.testScalaDir.isDirectory() )
   {
-    apply plugin: 'jacoco'
+    // apply plugin: 'jacoco'
     apply plugin: 'osgi'
     apply plugin: VersionClass
     apply plugin: AsciidocBuildInfo
@@ -340,10 +340,10 @@ test {
 
 // Jacoco
 configurations {
-  jacoco
+  //jacoco
 }
 dependencies {
-  jacoco 'org.jacoco:org.jacoco.ant:0.7.1.201405082137'
+  // jacoco 'org.jacoco:org.jacoco.ant:0.7.1.201405082137'
 }
 // Generate a global code codeverage report
 task coverageReport {
@@ -356,6 +356,7 @@ task coverageReport {
   def toolsProjects = coveredProjects.findAll { p -> p.name.startsWith( 'org.qi4j.tool' ) }
   def tutoProjects = coveredProjects.findAll { p -> p.name.startsWith( 'org.qi4j.tuto' ) }
   def samplesProjects = coveredProjects.findAll { p -> p.name.startsWith( 'org.qi4j.sample' ) }
+  /**
   ant {
     taskdef name:'jacocoreport', classname: 'org.jacoco.ant.ReportTask', classpath: configurations.jacoco.asPath
     mkdir dir: outputPath
@@ -396,9 +397,11 @@ task coverageReport {
   }
   inputs.dir coveredProjects.collect { p -> "${p.buildDir.path}/jacoco" }
   outputs.dir outputPath
+   */
 }
 
 
+
 // Build the whole SDK public Javadoc
 task javadocs( type: Javadoc ) {
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java b/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
index f899d0b..cf983e9 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
@@ -15,6 +15,7 @@
 package org.qi4j.api.geometry;
 
 import org.qi4j.api.common.Optional;
+import org.qi4j.api.geometry.internal.Coordinate;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.api.injection.scope.Structure;
@@ -90,6 +91,11 @@ public interface TFeature extends TGeometry {
             return (self.geometry() == null) || (self.geometry().get() == null) || (self.geometry().get().isEmpty()) ? true : false;
         }
 
+
+        public Coordinate[] getCoordinates()
+        {
+            return self.geometry().get().getCoordinates();
+        }
         public int getNumPoints() {
             return isEmpty() ? 0 : self.geometry().get().getNumPoints();
         }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java
index c986788..ac01539 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/Coordinate.java
@@ -39,22 +39,16 @@ public interface Coordinate extends Comparable, ValueComposite, TGeometryRoot {
     Property<List<Double>> coordinate();
 
     Coordinate of();
-
     Coordinate of(double x, double y, double z);
-
     Coordinate of(double... coordinates);
 
 
     Coordinate x(double x);
-
     Coordinate y(double y);
-
     Coordinate z(double z);
 
     double x();
-
     double y();
-
     double z();
 
     double getOrdinate(int ordinateIndex);

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
index e99831c..48b0537 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
@@ -72,9 +72,9 @@ public interface GeometryCollections extends TGeometry {
             int k = -1;
             for (int i = 0; i < self.getNumGeometries(); i++) {
                 Coordinate[] childCoordinates = self.geometries().get().get(i).getCoordinates();
-                for (int j = 0; j < childCoordinates.length; j++) {
-                    k++;
-                    coordinates[k] = childCoordinates[j];
+                    for (int j = 0; j < childCoordinates.length; j++) {
+                        k++;
+                        coordinates[k] = childCoordinates[j];
                 }
             }
             return coordinates;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
index 5138596..18c273c 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
@@ -93,7 +93,7 @@ public interface TGeometry extends TGeometryRoot {
         }
 
         public Coordinate[] getCoordinates() {
-            return null;
+            throw new RuntimeException("Should never be called");
         }
 
         public boolean isEmpty() {

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
index b3c95a3..3d85281 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
@@ -47,6 +47,16 @@ public class ST_DisjointSpecification<T extends TGeometry>
     @Override
     public String toString()
     {
-        return "ST_DisjointSpecification"; // property.toString() + " is within " + value.toString();
+        StringBuffer spec = new StringBuffer();
+        spec.append("ST_DISJOINT").append("( ").append(property.toString()).append(" IS NOT WITHIN ");
+        spec.append(param.toString());
+
+        if (distance > 0)
+        {
+            spec.append(" WITH RADIUS ").append(distance).append(" ").append(unit);
+        }
+
+        spec.append(" ) ");
+        return spec.toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
index b7f40c4..90cb3ab 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
@@ -48,6 +48,16 @@ public class ST_IntersectsSpecification<T extends TGeometry>
     @Override
     public String toString()
     {
-        return "ST_IntersectsSpecification"; // property.toString() + " is within " + value.toString();
+        StringBuffer spec = new StringBuffer();
+        spec.append("ST_INTERSECTS").append("( ").append(property.toString()).append(" INTERSECTS ");
+        spec.append(param.toString());
+
+        if (distance > 0)
+        {
+            spec.append(" WITH RADIUS ").append(distance).append(" ").append(unit);
+        }
+
+        spec.append(" ) ");
+        return spec.toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
index 1c5ba2e..21d701d 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
@@ -79,7 +79,7 @@ public class AbstractAnyQueryTest
         TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
         tGeometry.CRS().set(CRS_EPSG_4326);
 
-        new EntityTestAssembler().assemble( module );
+        // new EntityTestAssembler().assemble( module );
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/build.gradle b/extensions/indexing-elasticsearch/build.gradle
index 525bf4e..883ef33 100644
--- a/extensions/indexing-elasticsearch/build.gradle
+++ b/extensions/indexing-elasticsearch/build.gradle
@@ -9,7 +9,8 @@ dependencies {
   compile project(":org.qi4j.libraries:org.qi4j.library.spatial")
   compile project(":org.qi4j.libraries:org.qi4j.library.sql")
   compile project(":org.qi4j.extensions:org.qi4j.extension.entitystore-sql")
-  compile(project(":org.qi4j.extensions:org.qi4j.extension.entitystore-riak"))
+  compile project(":org.qi4j.extensions:org.qi4j.extension.entitystore-riak")
+  compile project(":org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson")
 
 
 
@@ -23,3 +24,8 @@ dependencies {
 
 }
 
+// test {
+//  jacoco {
+//    enabled = false
+//  }
+// }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
index e651ee3..0e7edd4 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
@@ -127,10 +127,10 @@ public interface ElasticSearchIndexer
                             index( bulkBuilder, changedState.identity().identity(), updatedJson );
                             break;
                         case NEW:
-                            LOGGER.trace( "Creating Entity State in Index: {}", changedState );
+                            // LOGGER.trace( "Creating Entity State in Index: {}", changedState );
                             String newJson = toJSON(changedState, newStates, uow );
-                            System.out.println("#Will index: {}  : " + newJson);
-                            LOGGER.trace( "Will index: {}", newJson );
+                            // System.out.println("#Will index: {} : " + newJson);
+                            // LOGGER.trace( "Will index: {}", newJson );
                             index( bulkBuilder, changedState.identity().identity(), newJson );
                             break;
                         case LOADED:

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
index e77e6fe..7fd7a2a 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
@@ -28,7 +28,7 @@ import org.qi4j.index.elasticsearch.ElasticSearchIndexException;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper;
-import org.qi4j.library.spatial.v2.projections.ProjectionsRegistry;
+import org.qi4j.library.spatial.projection.ProjectionsRegistry;
 
 import java.util.HashMap;
 import java.util.ListIterator;
@@ -36,7 +36,7 @@ import java.util.Map;
 import java.util.Stack;
 
 import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper.IndexMappingCache;
-import static org.qi4j.library.spatial.v2.transformations.TTransformations.Transform;
+import static org.qi4j.library.spatial.projection.transformations.TTransformations.Transform;
 
 public final class ElasticSearchSpatialIndexer {
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
index 04722c5..bd8fe6c 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
@@ -23,7 +23,7 @@ import org.qi4j.spi.query.EntityFinderException;
 
 import java.util.Map;
 
-import static org.qi4j.library.spatial.v2.conversions.TConversions.Convert;
+import static org.qi4j.library.spatial.conversions.TConversions.Convert;
 
 
 public class ST_GeometryFromText extends AbstractElasticSearchSpatialFunction implements ConvertFinderSupport.ConvertSpecification {

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
index 523cac5..a5f6d79 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
@@ -39,7 +39,7 @@ import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.ElasticSearchSpatialFinder;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialFunctionsSupportMatrix;
-import org.qi4j.library.spatial.v2.projections.ProjectionsRegistry;
+import org.qi4j.library.spatial.projection.ProjectionsRegistry;
 import org.qi4j.spi.query.EntityFinderException;
 
 import java.lang.reflect.Type;
@@ -47,7 +47,7 @@ import java.util.Map;
 
 import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
 import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper.IndexMappingCache;
-import static org.qi4j.library.spatial.v2.transformations.TTransformations.Transform;
+import static org.qi4j.library.spatial.projection.transformations.TTransformations.Transform;
 
 
 /**

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
index 8a4a0fd..0ffa488 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialBench.java
@@ -7,23 +7,19 @@ import org.junit.Test;
 import org.qi4j.api.common.Visibility;
 import org.qi4j.api.entity.EntityBuilder;
 import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.query.Query;
 import org.qi4j.api.unitofwork.UnitOfWork;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.entitystore.riak.RiakHttpMapEntityStoreAssembler;
-import org.qi4j.entitystore.sql.assembly.DerbySQLEntityStoreAssembler;
 import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
 import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
 import org.qi4j.index.elasticsearch.extension.spatial.utils.RandomPoint;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
-import org.qi4j.library.sql.assembly.DataSourceAssembler;
-import org.qi4j.library.sql.dbcp.DBCPDataSourceServiceAssembler;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
 import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.indexing.AbstractAnyQueryTest;
 import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
 import org.qi4j.test.util.DelTreeAfter;
 import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
@@ -59,8 +55,6 @@ public class ElasticSearchSpatialBench
         // Geometry support
         new TGeometryAssembler().assemble(module);
 
-
-
         // Config module
         ModuleAssembly config = module.layer().module( "config" );
         new EntityTestAssembler().assemble( config );
@@ -72,11 +66,10 @@ public class ElasticSearchSpatialBench
                 SpatialConfiguration.ProjectionSupport.class).
                 visibleIn(Visibility.application);
 
-
         // Index/Query
         new ESClusterIndexQueryAssembler().
                 withConfig(config, Visibility.layer).
-                identifiedBy("ElasticSearchGeoShapeIndexing").
+                identifiedBy("ElasticSearchBenchmark").
                 assemble(module);
         ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
         esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
@@ -98,11 +91,11 @@ public class ElasticSearchSpatialBench
         new EntityTestAssembler().assemble( configRiak );
         new OrgJsonValueSerializationAssembler().assemble( module );
         // START SNIPPET: assembly
-        new RiakHttpMapEntityStoreAssembler().withConfig( configRiak, Visibility.layer ).assemble( module );
+        new RiakHttpMapEntityStoreAssembler().identifiedBy("RIAKBenchmark").withConfig(configRiak, Visibility.layer ).assemble( module );
         /** +++ */
     }
 
-    @Test
+    // @Test
     public void test() throws Exception
     {
 
@@ -144,8 +137,8 @@ public class ElasticSearchSpatialBench
 
         // System.out.println("spherical " + xy[0] + " " + xy[1] );
         long start = System.currentTimeMillis();
-        for (int j = 0; j < 1000; j++) {
-
+        for (int j = 0; j < 1000; j++)
+        {
             System.out.println("--> " + j);
             UnitOfWork unitOfWork = module.newUnitOfWork();
 
@@ -164,8 +157,6 @@ public class ElasticSearchSpatialBench
         }
         long end = System.currentTimeMillis();
 
-
-
         System.out.println("Duration  " + (end - start));
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialClusterQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialClusterQueryTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialClusterQueryTest.java
new file mode 100644
index 0000000..4252da5
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialClusterQueryTest.java
@@ -0,0 +1,132 @@
+package org.qi4j.index.elasticsearch.extension.spatial;
+
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.query.QueryExecutionException;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.entitystore.riak.RiakHttpMapEntityStoreAssembler;
+import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
+import org.qi4j.library.fileconfig.FileConfigurationOverride;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
+import org.qi4j.spi.query.EntityFinderException;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
+import org.qi4j.test.util.DelTreeAfter;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+
+import java.io.File;
+
+import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
+
+/**
+ * Created by jj on 21.12.14.
+ */
+public class ElasticSearchSpatialClusterQueryTest
+        extends AbstractSpatialRegressionTest
+{
+    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
+    @Rule
+    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
+
+    @BeforeClass
+    public static void beforeClass_IBMJDK()
+    {
+        assumeNoIbmJdk();
+    }
+
+
+    @Override
+    public void assemble( ModuleAssembly module )
+            throws AssemblyException
+    {
+        super.assemble( module );
+
+        // Geometry support
+        new TGeometryAssembler().assemble(module);
+
+
+
+        // Config module
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
+
+
+        // Index/Query
+        new ESClusterIndexQueryAssembler().
+                withConfig(config, Visibility.layer).
+                identifiedBy("ElasticSearchBenchmark").
+                assemble(module);
+        ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
+        esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
+
+        // FileConfig
+        FileConfigurationOverride override = new FileConfigurationOverride().
+                withData(new File(DATA_DIR, "qi4j-data")).
+                withLog(new File(DATA_DIR, "qi4j-logs")).
+                withTemporary(new File(DATA_DIR, "qi4j-temp"));
+        module.services(FileConfigurationService.class).
+                setMetaInfo(override);
+
+        // In-Memory Entity Store
+        // new EntityTestAssembler().assemble( module );
+
+
+        /** RIAK */
+        ModuleAssembly configRiak = module.layer().module( "configRiak" );
+        new EntityTestAssembler().assemble( configRiak );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+        // START SNIPPET: assembly
+        new RiakHttpMapEntityStoreAssembler().withConfig( configRiak, Visibility.layer ).assemble( module );
+        /** +++ */
+    }
+
+
+    @Test(expected=QueryExecutionException.class)
+    public void script01c()
+            throws EntityFinderException
+    {
+       super.script01c(); // <- no orderBy() support for GeoShapes
+    }
+
+    @Test(expected=QueryExecutionException.class)
+    public void script01d()
+            throws EntityFinderException
+    {
+        super.script01d(); // <- no orderBy() support for GeoShapes
+    }
+
+    @Test(expected=QueryExecutionException.class)
+    public void script01e()
+            throws EntityFinderException
+    {
+        super.script01e(); // <- no orderBy() support for GeoShapes
+    }
+
+    @Test(expected=QueryExecutionException.class)
+    public void script01f()
+            throws EntityFinderException
+    {
+        super.script01f(); // <- no orderBy() support for GeoShapes
+    }
+
+    @Test(expected=QueryExecutionException.class)
+    public void script03c()
+            throws EntityFinderException
+    {
+        super.script03c(); // <- no orderBy() support for GeoShapes
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
index 6200b68..bd27bd9 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
@@ -15,11 +15,9 @@
 package org.qi4j.index.elasticsearch.extension.spatial;
 
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.qi4j.api.common.Visibility;
-import org.qi4j.api.query.Query;
 import org.qi4j.api.query.QueryExecutionException;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
@@ -28,7 +26,7 @@ import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
 import org.qi4j.spi.query.EntityFinderException;
 import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.indexing.AbstractSpatialRegressionTest;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
index 6f227f1..8ac58b9 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoShapeIndexing.java
@@ -18,7 +18,6 @@ import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
 import org.qi4j.api.common.Visibility;
-import org.qi4j.api.query.Query;
 import org.qi4j.api.query.QueryExecutionException;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
@@ -27,7 +26,7 @@ import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
 import org.qi4j.spi.query.EntityFinderException;
 import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.indexing.AbstractSpatialRegressionTest;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
index f5a8337..1904139 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingUsingDefaults.java
@@ -26,7 +26,7 @@ import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
 import org.qi4j.spi.query.EntityFinderException;
 import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.indexing.AbstractSpatialRegressionTest;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
index d4ec9fe..7fd00bf 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
@@ -8,11 +8,10 @@ import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
 import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
 import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
 import org.qi4j.test.util.DelTreeAfter;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchBenchmark.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchBenchmark.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchBenchmark.properties
new file mode 100644
index 0000000..dd67ab3
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchBenchmark.properties
@@ -0,0 +1,30 @@
+nodes=localhost:9300
+
+spatial = { \
+  \
+  Enabled : true, \
+  \
+  Indexer=\
+   { \
+    Method=\
+      { \
+        Type      = "GEO_POINT", \
+        Precision = 1m, \
+      }, \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 2m, \
+      }, \
+   }, \
+  \
+  \
+  Finder=\
+    { \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 2m, \
+      } \
+    } \
+  }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties b/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties
new file mode 100644
index 0000000..94d160c
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/resources/RIAKBenchmark.properties
@@ -0,0 +1 @@
+urls=http://localhost:8098/riak
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/assembly/TGeometryAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/assembly/TGeometryAssembler.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/assembly/TGeometryAssembler.java
new file mode 100644
index 0000000..178d838
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/assembly/TGeometryAssembler.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.assembly;
+
+import org.cts.crs.CRSException;
+import org.cts.crs.CoordinateReferenceSystem;
+import org.qi4j.api.geometry.*;
+import org.qi4j.api.geometry.internal.Coordinate;
+import org.qi4j.api.geometry.internal.TCircle;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.internal.TLinearRing;
+import org.qi4j.bootstrap.Assemblers;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.library.spatial.projection.ProjectionsRegistry;
+
+public class TGeometryAssembler
+        extends Assemblers.VisibilityIdentity<TGeometryAssembler>
+{
+    private static final String CRS_EPSG_4326   = "EPSG:4326";
+    private static String DEFAULT_CRS           = CRS_EPSG_4326;
+
+
+    @Override
+    public void assemble( ModuleAssembly module )
+            throws AssemblyException
+    {
+        // internal values
+        module.values(Coordinate.class, TLinearRing.class, TCircle.class, TGeometry.class);
+        // API values
+        module.values(
+                TCRS.class,
+                TPoint.class,
+                TMultiPoint.class,
+                TLineString.class,
+                TMultiLineString.class,
+                TPolygon.class,
+                TMultiPolygon.class,
+                TFeature.class,
+                TFeatureCollection.class);
+
+        TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
+        tGeometry.CRS().set(DEFAULT_CRS);
+    }
+
+    public TGeometryAssembler withCRS(String crs) throws AssemblyException
+    {
+        try
+        {
+            CoordinateReferenceSystem ref = new ProjectionsRegistry().getReferenceSystem(crs);
+            if (ref == null || ref.getCoordinateSystem() == null)
+            {
+                throw new AssemblyException("Projection CRS " + crs + " invalid.");
+            }
+
+        } catch(CRSException _ex)
+        {
+            throw new AssemblyException("Projection CRS " + crs + " invalid.", _ex);
+        }
+
+        DEFAULT_CRS = crs;
+        return this;
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/TConversions.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/TConversions.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/TConversions.java
new file mode 100644
index 0000000..1037b2d
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/TConversions.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions;
+
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.conversions.from.FromHelper;
+
+public class TConversions {
+
+    public static FromHelper Convert(Module module)
+    {
+        return new FromHelper(module);
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/FromHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/FromHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/FromHelper.java
new file mode 100644
index 0000000..3f1d399
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/FromHelper.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions.from;
+
+import org.geojson.GeoJsonObject;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.conversions.to.ToHelper;
+
+
+public class FromHelper {
+
+    private Module module;
+
+    public FromHelper(Module module)
+    {
+        this.module = module;
+    }
+
+    public ToHelper from(TGeometry tGeometry)
+    {
+        return new ToHelper(module, new TGeometryFromConverter(module).convert(tGeometry));
+    }
+
+    public ToHelper from(GeoJsonObject geoJsonObject)
+    {
+        return new ToHelper(module, new GeoJsonFromConverter(module).convert(geoJsonObject));
+
+    }
+
+    public ToHelper from(String wkt) throws Exception
+    {
+        return new ToHelper(module, new WKTFromConverter(module).convert(wkt, null));
+    }
+
+    public ToHelper from(String wkt, String crs) throws Exception
+    {
+        return new ToHelper(module, new WKTFromConverter(module).convert(wkt, crs));
+    }
+
+    private FromHelper() {}
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java
new file mode 100644
index 0000000..a75f9e1
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/GeoJsonFromConverter.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions.from;
+
+import org.geojson.*;
+import org.qi4j.api.geometry.*;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.internal.TLinearRing;
+import org.qi4j.api.structure.Module;
+
+import java.util.List;
+
+import static org.qi4j.api.geometry.TGeometryFactory.*;
+import static org.qi4j.api.geometry.TGeometryFactory.TLinearRing;
+
+
+public class GeoJsonFromConverter {
+
+    private Module module;
+
+    public GeoJsonFromConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public TGeometry convert(GeoJsonObject geojson)
+
+    {
+        return transform(geojson);
+    }
+
+    private TGeometry transform(GeoJsonObject geojson)
+    {
+        if (geojson instanceof Point)
+        {
+            return createTPoint((Point) geojson);
+        }
+        else if ( (geojson instanceof MultiPoint) && !(geojson instanceof LineString) )
+        {
+            return createTMultiPoint((MultiPoint)geojson);
+        }
+        else if (geojson instanceof LineString)
+        {
+            return createTLineString((LineString)geojson);
+        }
+        else if (geojson instanceof MultiLineString)
+        {
+            return createTMultiLineString((MultiLineString)geojson);
+        }
+        else if (geojson instanceof Polygon)
+        {
+            return createTPolygon((Polygon) geojson);
+        }
+        else if (geojson instanceof MultiPolygon)
+        {
+            return createTMultiPolygon((MultiPolygon) geojson);
+        }
+        else if (geojson instanceof Feature)
+        {
+            return createTFeature((Feature)geojson);
+        }
+        else if (geojson instanceof FeatureCollection)
+        {
+            return createTFeatureCollection((FeatureCollection)geojson);
+        }
+        else throw new RuntimeException("Unknown GeoJSON type - " + geojson);
+    }
+
+
+    private TGeometry createTPoint(Point point)
+    {
+        return TPoint(module)
+                .x(point.getCoordinates().getLatitude())
+                .y(point.getCoordinates().getLongitude())
+                .z(point.getCoordinates().getAltitude())
+                .geometry();
+    }
+    private TGeometry createTMultiPoint(MultiPoint multiPoint)
+    {
+        TMultiPoint tMultiPoint = TMultiPoint(module).geometry();
+        for (LngLatAlt xyz : multiPoint.getCoordinates() )
+        {
+            tMultiPoint.of
+                    (
+                            TPoint(module)
+                                    .x(xyz.getLatitude())
+                                    .y(xyz.getLongitude())
+                                    .z(xyz.getAltitude())
+                                    .geometry()
+                    );
+        }
+        return tMultiPoint;
+    }
+
+    private TGeometry createTLineString(LineString lineString)
+    {
+        TLineString tLineString = TLineString(module).of().geometry();
+
+        for (LngLatAlt xyz : lineString.getCoordinates() ) {
+            tLineString.of(
+                    TPoint(module)
+                            .x(xyz.getLatitude())
+                            .y(xyz.getLongitude())
+                            .z(xyz.getAltitude())
+                            .geometry()
+            );
+        }
+        return tLineString;
+    }
+
+    private TGeometry createTMultiLineString(MultiLineString multiLineString)
+    {
+        TMultiLineString tMultiLineString = TMultiLineString(module).of().geometry();
+        for (List<LngLatAlt> coordinates : multiLineString. getCoordinates())
+        {
+            tMultiLineString.of(getLine(coordinates));
+        }
+        return tMultiLineString;
+    }
+
+    private TGeometry createTPolygon(Polygon polygon)
+    {
+        TPolygon tPolygon;
+        TLinearRing ring = getRing((polygon).getExteriorRing());
+        if (!ring.isValid())
+            throw  new RuntimeException("Polygon shell not valid");
+        else
+            tPolygon = TPolygon(module).shell(ring).geometry();
+        for (int i = 0; i < (polygon).getInteriorRings().size(); i++)
+        {
+            tPolygon.withHoles(getRing((polygon).getInteriorRings().get(i)));
+        }
+        return tPolygon;
+    }
+
+    private TGeometry createTMultiPolygon(MultiPolygon multiPolygon)
+    {
+        TMultiPolygon tMultiPolygon = TMultiPolygon(module).of().geometry();
+        for (List<List<LngLatAlt>> polygons : multiPolygon.getCoordinates() )
+        {
+            for (List<LngLatAlt> polygon : polygons  )
+            {
+                tMultiPolygon.of(TPolygon(module).shell(getRing(polygon)).geometry());
+            }
+        }
+        return tMultiPolygon;
+    }
+
+    private TGeometry createTFeature(Feature feature)
+    {
+        return TFeature(module).of(new GeoJsonFromConverter(module).transform(feature.getGeometry())).geometry();
+    }
+
+    private TGeometry createTFeatureCollection(FeatureCollection featurecollection)
+    {
+        TFeatureCollection tFeatureCollection = TFeatureCollection(module).of().geometry();
+        for (Feature feature : featurecollection.getFeatures())
+        {
+            tFeatureCollection.of((TFeature)createTFeature(feature));
+        }
+        return tFeatureCollection;
+    }
+
+    private TLineString getLine(List<LngLatAlt> coordinates)
+    {
+        TLineString tLineString = TLineString(module).of().geometry();
+        for (LngLatAlt xyz :coordinates )
+        {
+            tLineString.yx(xyz.getLatitude(), xyz.getLongitude());
+        }
+        return tLineString;
+    }
+    private TLinearRing getRing(List<LngLatAlt> coordinates)
+    {
+
+        TLinearRing tLinearRing = TLinearRing(module).of().geometry();
+        for (LngLatAlt xyz :coordinates ) {
+            tLinearRing.yx(xyz.getLatitude(), xyz.getLongitude());
+        }
+
+        if (!tLinearRing.isClosed())
+        {
+            tLinearRing.of(tLinearRing.getStartPoint()); // hack here - we are closing the ring, of not closed.
+        }
+
+        return tLinearRing;
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java
new file mode 100644
index 0000000..2c66b42
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/TGeometryFromConverter.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions.from;
+
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+
+public class TGeometryFromConverter {
+
+    private Module module;
+
+    public TGeometryFromConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public TGeometry convert(TGeometry tGeometry)
+    {
+        return tGeometry;
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/WKTFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/WKTFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/WKTFromConverter.java
new file mode 100644
index 0000000..169c311
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/WKTFromConverter.java
@@ -0,0 +1,226 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions.from;
+
+import com.spatial4j.core.context.SpatialContext;
+import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
+import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
+import com.spatial4j.core.io.jts.JtsWktShapeParser;
+import com.spatial4j.core.shape.Circle;
+import com.spatial4j.core.shape.Point;
+import com.spatial4j.core.shape.Shape;
+import com.spatial4j.core.shape.jts.JtsGeometry;
+import com.spatial4j.core.shape.jts.JtsPoint;
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.MultiPolygon;
+import com.vividsolutions.jts.geom.Polygon;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.TPolygon;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.internal.TLinearRing;
+import org.qi4j.api.structure.Module;
+import org.qi4j.api.value.ValueBuilder;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
+
+
+public class WKTFromConverter {
+
+
+    final SpatialContext ctx;
+    {
+        JtsSpatialContextFactory factory = new JtsSpatialContextFactory();
+        factory.srid = 4326;
+        factory.datelineRule = JtsWktShapeParser.DatelineRule.ccwRect;
+        factory.wktShapeParserClass = JtsWKTReaderShapeParser.class;
+        ctx = factory.newSpatialContext();
+    }
+
+
+
+    private Module module;
+
+    public WKTFromConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public TGeometry convert(String wkt, String crs) throws ParseException
+    {
+
+        Shape sNoDL = ctx.readShapeFromWkt(wkt);
+
+
+    if (!sNoDL.hasArea()) {
+        System.out.println("Its a JtsGeometry " + ((JtsPoint) sNoDL).getGeom().getGeometryType());
+        return buildPoint(module,sNoDL);
+    } else {
+        System.out.println("Its a JtsGeometry " + ((JtsGeometry) sNoDL).getGeom().getGeometryType());
+
+        Geometry jtsGeometry = ((JtsGeometry) sNoDL).getGeom();
+
+        if (jtsGeometry instanceof Polygon) {
+            System.out.println("Polygon");
+            return buildPolygon(module,sNoDL);
+        }
+        else if (jtsGeometry instanceof MultiPolygon) {
+            System.out.println("MultiPolygon");
+        }
+        else if (jtsGeometry instanceof LineString) {
+            System.out.println("LineString");
+        }
+
+
+
+
+    }
+
+
+
+    if (sNoDL instanceof Point)
+    {
+
+        // ctx.makeCircle(0,0,0).getBoundingBox().
+        // System.out.println("Shape is point ");
+
+        ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
+
+        builder.prototype().x(((Point) sNoDL).getX()).y(((Point) sNoDL).getY());
+/**
+ builder.prototype().of
+ (
+ module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getX()),  //x
+ module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getY())   //y
+ );
+ */
+        return builder.newInstance();
+
+
+//          ValueBuilder<TGeomPoint> builder = module.newValueBuilder( TGeomPoint.class );
+//          TGeomPoint proto = builder.prototype();
+//          List<Double> coordinates = new ArrayList<Double>();
+////
+//          Double lat =  3.138722;  // 3.138722;// Double.parseDouble(query.nextToken());
+//          Double lon =  101.386849; // Double.parseDouble(query.nextToken());
+////
+////
+//          coordinates.add(3.138722);
+//          coordinates.add(101.386849);
+//          proto.coordinates().set(coordinates);
+//
+//          return builder.newInstance();
+
+    } else
+
+            if (sNoDL instanceof Circle) {
+
+    } else
+    {
+        System.out.println("Its a shape");
+        if (sNoDL.hasArea() ) System.out.println("Shape With area..");
+
+        if (sNoDL instanceof JtsGeometry) {
+
+            System.out.println("Its a JtsGeometry " + ((JtsGeometry) sNoDL).getGeom().getGeometryType());
+            // ((JtsGeometry) sNoDL).getGeom()
+        }
+
+    }
+
+    System.out.println("sNoDL " + sNoDL);
+
+    return null;
+}
+
+
+    private TPoint buildPoint(Module module, Shape sNoDL) {
+        ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
+
+
+        builder.prototype().x(((Point) sNoDL).getX()).y(((Point) sNoDL).getY());
+        /**
+         builder.prototype().of
+         (
+         module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getX()),  //x
+         module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getY())   //y
+         );
+         */
+
+        return builder.newInstance();
+    }
+
+    private TPolygon buildPolygon(Module module, Shape sNoDL) {
+
+        Geometry jtsGeometry = ((JtsGeometry) sNoDL).getGeom();
+        Polygon jtsPolygon = (Polygon)jtsGeometry;
+
+        // Polygon jtsPolygon = ((JtsGeometry) sNoDL).getGeom();
+
+        // Polygon jtsPolygon = (Polygon)sNoDL;
+
+        System.out.println("Get Coordinates " + jtsPolygon.getExteriorRing().getCoordinates() );
+
+        com.vividsolutions.jts.geom.Coordinate[] coordinates = jtsPolygon.getExteriorRing().getCoordinates();
+
+        ValueBuilder<TPolygon> polygonBuilder = module.newValueBuilder(TPolygon.class);
+        ValueBuilder<TLinearRing> tLinearRingBuilder  = module.newValueBuilder(TLinearRing.class);
+
+        List<TPoint> points = new ArrayList<>();
+        for (int i = 0; i < coordinates.length; i++) {
+/**
+ TPoint point = module.newValueBuilder(TPoint.class).prototype().of
+ (
+ module.newValueBuilder(Coordinate.class).prototype().of( coordinates[i].x),  //x
+ module.newValueBuilder(Coordinate.class).prototype().of( coordinates[i].y)   //y
+ );*/
+            points.add
+                    (
+                            TPoint(module)
+
+                                    .x(coordinates[i].x)
+                                    .y(coordinates[i].y).geometry()
+                    );
+        }
+        tLinearRingBuilder.prototype().of(points);
+
+        // tLinearRingBuilder.prototype().of(points);
+        // tLinearRingBuilder.prototype().type()
+
+        // TLinearRing tLinearRing = tLinearRingBuilder.newInstance();
+        // System.out.println("tLinearRing .." + tLinearRing);
+
+
+        ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
+
+        builder.prototype().of
+                (
+                        // tLinearRingBuilder.newInstance().of(points)
+                        tLinearRingBuilder.newInstance()
+                );
+
+        return builder.newInstance();
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/GeoJsonToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/GeoJsonToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/GeoJsonToConverter.java
new file mode 100644
index 0000000..595431a
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/GeoJsonToConverter.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions.to;
+
+import org.geojson.GeoJsonObject;
+import org.geojson.Point;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+
+public class GeoJsonToConverter {
+
+
+    private Module module;
+
+    public GeoJsonToConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public GeoJsonObject convert(TGeometry intemediate)
+    {
+        return transform(intemediate);
+    }
+
+    private GeoJsonObject transform(TGeometry intemediate)
+    {
+
+        switch(intemediate.getType())
+        {
+            case POINT              : return buildPoint((TPoint)intemediate);
+            case MULTIPOINT         : return null;
+            case LINESTRING         : return null;
+            case MULTILINESTRING    : return null;
+            case POLYGON            : return null;
+            case MULTIPOLYGON       : return null;
+            case FEATURE            : return null;
+            case FEATURECOLLECTION  : return null;
+            default : throw new RuntimeException("Unknown TGeometry Type.");
+        }
+
+    }
+
+    private Point buildPoint(TPoint point)
+    {
+        return new Point(point.x(), point.y());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/Spatial4JToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/Spatial4JToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/Spatial4JToConverter.java
new file mode 100644
index 0000000..e60f30c
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/Spatial4JToConverter.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions.to;
+
+import com.spatial4j.core.context.SpatialContext;
+import com.spatial4j.core.context.jts.JtsSpatialContext;
+import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
+import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
+import com.spatial4j.core.io.jts.JtsWktShapeParser;
+import com.spatial4j.core.shape.Circle;
+import com.spatial4j.core.shape.Shape;
+import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.util.GeometricShapeFactory;
+import org.geojson.GeoJsonObject;
+import org.geojson.Point;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.internal.TCircle;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+
+public class Spatial4JToConverter {
+
+    // http://code.google.com/p/shape-metrics/source/browse/trunk/src/main/java/edu/psu/geovista/ian/utils/Circle.java?r=2
+
+    final SpatialContext ctx;
+    {
+        JtsSpatialContextFactory factory = new JtsSpatialContextFactory();
+        factory.srid = 4326;
+        factory.datelineRule = JtsWktShapeParser.DatelineRule.ccwRect;
+        factory.wktShapeParserClass = JtsWKTReaderShapeParser.class;
+        ctx = factory.newSpatialContext();
+    }
+
+    public static final double DATELINE = 180;
+    public static final JtsSpatialContext SPATIAL_CONTEXT = JtsSpatialContext.GEO;
+    public static final GeometryFactory FACTORY = SPATIAL_CONTEXT.getGeometryFactory();
+    public static final GeometricShapeFactory SHAPE_FACTORY = new GeometricShapeFactory();
+
+    protected final boolean multiPolygonMayOverlap = false;
+    protected final boolean autoValidateJtsGeometry = true;
+    protected final boolean autoIndexJtsGeometry = true;
+
+    protected final boolean wrapdateline = SPATIAL_CONTEXT.isGeo();
+
+
+    private Module module;
+
+    public Spatial4JToConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public GeoJsonObject convert(TGeometry intemediate)
+    {
+        // return transform(intemediate);
+        return null;
+    }
+
+    private Shape transform(TGeometry intermediate)
+    {
+
+        switch(intermediate.getType())
+        {
+            case POINT              : return null; // return newPoint((TPoint) intemediate);
+            case MULTIPOINT         : return null;
+            case LINESTRING         : return null;
+            case MULTILINESTRING    : return null;
+            case POLYGON            : return null;
+            case MULTIPOLYGON       : return null;
+            case FEATURE            : return null;
+            case FEATURECOLLECTION  : return null;
+        }
+
+        if (intermediate instanceof TCircle)
+        {
+            return newCircle((TCircle)intermediate);
+        }
+        else
+            return null;
+
+
+    }
+
+    private Point newPoint(TPoint point)
+    {
+        // SPATIAL_CONTEXT.makeCircle(0,0,0).
+
+        // SHAPE_FACTORY.set
+
+        System.out.println("point.x() " + point.x());
+        System.out.println("point.y() " + point.y());
+        return new Point(point.x(), point.y());
+    }
+
+    private Circle newCircle(TCircle circle)
+    {
+        return ctx.makeCircle(circle.getCentre().x(), circle.getCentre().y(), circle.radius().get());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/TGeometryToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/TGeometryToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/TGeometryToConverter.java
new file mode 100644
index 0000000..01eaeed
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/TGeometryToConverter.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions.to;
+
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+/**
+ * Created by jj on 04.12.14.
+ */
+public class TGeometryToConverter {
+
+    private Module module;
+
+    public TGeometryToConverter(Module module)
+    {
+        this.module = module;
+    }
+
+    public TGeometry convert (TGeometry tGeometry, String CRS)
+    {
+        return tGeometry;
+    }
+
+    public TGeometry convert(TGeometry tGeometry)
+    {
+        return convert(tGeometry, tGeometry.getCRS());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/ToHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/ToHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/ToHelper.java
new file mode 100644
index 0000000..ae9916b
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/to/ToHelper.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions.to;
+
+import org.geojson.GeoJsonObject;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+
+import static org.qi4j.library.spatial.projection.transformations.TTransformations.Transform;
+
+/**
+ * Created by jj on 04.12.14.
+ */
+public class ToHelper {
+
+    private Module module;
+    private TGeometry intermediate;
+
+    public ToHelper(Module module, TGeometry intermediate)
+    {
+        this.module = module;
+        this.intermediate = intermediate;
+    }
+
+    public TGeometry toTGeometry()
+    {
+        return new TGeometryToConverter(module).convert(intermediate);
+    }
+
+    public TGeometry toTGeometry(String CRS) throws Exception
+    {
+        if (!intermediate.getCRS().equalsIgnoreCase(CRS))
+                Transform(module).from(intermediate).to(CRS) ;
+
+        return new TGeometryToConverter(module).convert(intermediate, CRS);
+    }
+
+
+
+    public GeoJsonObject toGeoJson()
+    {
+        return new GeoJsonToConverter(module).convert(intermediate);
+    }
+
+    private ToHelper() {}
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/incubator/geometry/geojson/types/Coordinates.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/incubator/geometry/geojson/types/Coordinates.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/incubator/geometry/geojson/types/Coordinates.java
deleted file mode 100644
index b35d4ce..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/incubator/geometry/geojson/types/Coordinates.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.qi4j.library.spatial.incubator.geometry.geojson.types;
-
-import org.qi4j.api.property.Property;
-
-import java.util.List;
-
-/**
- * Created by jakes on 2/7/14.
- */
-public interface Coordinates {
-
-    Property<List<List<Double>>> coordinates();
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/incubator/geometry/topojson/_._
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/incubator/geometry/topojson/_._ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/incubator/geometry/topojson/_._
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/parser/geojson/GeoJSONParser.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/parser/geojson/GeoJSONParser.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/parser/geojson/GeoJSONParser.java
deleted file mode 100644
index e2f19cd..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/parser/geojson/GeoJSONParser.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.qi4j.library.spatial.parser.geojson;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.geojson.Feature;
-import org.geojson.FeatureCollection;
-import org.geojson.Point;
-
-import java.io.BufferedInputStream;
-import java.io.FileInputStream;
-import java.util.Iterator;
-
-
-/**
- * Created by jakes on 2/23/14.
- */
-public class GeoJSONParser {
-
-    public void parse() throws Exception {
-
-        BufferedInputStream inputstream = new BufferedInputStream(new FileInputStream("/home/jakes/Projects/QI4J/Spatial/qi4j-sdk/libraries/spatial/src/test/resources/topo/geojson/germany/bavaria.neustadt.geojson"));
-
-        FeatureCollection featureCollection =
-                new ObjectMapper().readValue(inputstream, FeatureCollection.class);
-
-        System.out.println("Found num of features " + featureCollection.getFeatures().size());
-
-        Iterator<Feature> features = featureCollection.getFeatures().iterator();
-
-        while (features.hasNext()) {
-            Feature feature = features.next();
-
-            if (feature.getGeometry() instanceof Point) {
-               System.out.println("Processing Ppint");
-            }
-
-
-            System.out.println(feature.getGeometry().getClass() );
-        }
-
-    }
-
-    public static void main(String [] args)
-    {
-        GeoJSONParser geoJSONParser = new GeoJSONParser();
-        try {
-        geoJSONParser.parse();
-        } catch(Exception _ex) {
-            _ex.printStackTrace();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/ProjectionsRegistry.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/ProjectionsRegistry.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/ProjectionsRegistry.java
new file mode 100644
index 0000000..e82592f
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/ProjectionsRegistry.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.projection;
+
+import org.cts.CRSFactory;
+import org.cts.crs.CRSException;
+import org.cts.crs.CoordinateReferenceSystem;
+import org.cts.registry.*;
+
+import java.util.Set;
+
+
+public class ProjectionsRegistry {
+
+    protected static CRSFactory cRSFactory = new CRSFactory();
+
+
+    static {
+        RegistryManager registryManager = cRSFactory.getRegistryManager();
+        registryManager.addRegistry(new IGNFRegistry());
+        registryManager.addRegistry(new EPSGRegistry());
+        registryManager.addRegistry(new ESRIRegistry());
+        registryManager.addRegistry(new Nad27Registry());
+        registryManager.addRegistry(new Nad83Registry());
+        registryManager.addRegistry(new worldRegistry());
+    }
+
+
+    public Set<String> getSupportedSRID(String registryName) throws RegistryException
+    {
+        return cRSFactory.getSupportedCodes(registryName);
+    }
+
+    // EPSG, IGNF, ESRI
+    public Set<String> getSupportedRegistryCodes(String registryName) throws RegistryException {
+        return cRSFactory.getRegistryManager().getRegistry(registryName).getSupportedCodes();
+    }
+
+    public String[] dumpRegistries() {
+        return cRSFactory.getRegistryManager().getRegistryNames();
+    }
+
+    public CoordinateReferenceSystem getCRS(String wkt)  {
+        try {
+            return cRSFactory.getCRS(wkt);
+        } catch(CRSException _ex)
+        {
+            _ex.printStackTrace();
+            return null;
+        }
+    }
+
+
+        public CoordinateReferenceSystem getReferenceSystem(String csName) throws CRSException
+    {
+        return cRSFactory.getCRS(csName);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/TTransformations.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/TTransformations.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/TTransformations.java
new file mode 100644
index 0000000..1235a27
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/TTransformations.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.projection.transformations;
+
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.projection.transformations.fromto.FromHelper;
+
+
+public class TTransformations {
+
+    public static FromHelper Transform(Module module)
+    {
+        return new FromHelper(module);
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/FromHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/FromHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/FromHelper.java
new file mode 100644
index 0000000..e1fa78a
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/FromHelper.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.projection.transformations.fromto;
+
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.conversions.from.TGeometryFromConverter;
+
+
+public class FromHelper {
+
+    private Module module;
+
+    public FromHelper(Module module)
+    {
+        this.module = module;
+    }
+
+    private FromHelper() {}
+
+    public ToHelper from(TGeometry tGeometry)
+    {
+        return new ToHelper(module, new TGeometryFromConverter(module).convert(tGeometry));
+    }
+}


[29/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ai-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ai-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ai-municipalities.json
deleted file mode 100644
index fedd57d..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ai-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":3101,"properties":{"name":"Appenzell"},"arcs":[[[-9,-11,11,-5,-2]]]},{"type":"MultiPolygon","id":3102,"properties":{"name":"Gonten"},"arcs":[[[6,7,8,-1]]]},{"type":"MultiPolygon","id":3103,"properties":{"name":"Rüte"},"arcs":[[[-3,4,5]]]},{"type":"MultiPolygon","id":3104,"properties":{"name":"Schlatt-Haslen"},"arcs":[[[9,10,-8]],[[14]]]},{"type":"MultiPolygon","id":3105,"properties":{"name":"Schwende"},"arcs":[[[0,1,2,3]]]},{"type":"MultiPolygon","id":3111,"properties":{"name":"Oberegg"},"arcs":[[[12]],[[13]]]}]}},"arcs":[[[489,2249],[63,2],[5,38],[32,12],[53,70],[-12,5],[47,38],[-27,25],[11,32],[27,26],[2,77],[-15,17],[-8,59],[14,-3],[119,52],[33,20],[88,29],[39,27],[36,14],[2,17],[93,36],[116,100],[25,6],[84,1],[105,48],[42,53],[129,66],[-15,28],[178,79],[114,45],[45,11],[26,-12],[119,25],[88,27],[28,-7],[68,7],[24,9],[103,14]],[[2370,3342],[7,-57],[89,30],[81,43]
 ,[195,70],[41,36],[19,47],[81,47],[64,22],[41,29],[47,16],[114,19],[4,52],[-17,60],[18,24],[3,48],[26,49],[19,81],[51,32],[20,-2],[38,35],[59,29],[17,43],[19,13],[0,29],[-23,75],[21,58],[-14,11],[-13,46],[-36,23],[2,24],[-35,82],[13,25],[50,41]],[[3371,4522],[50,-34],[78,-9],[15,-8],[10,-95],[19,-28],[35,-11],[72,34],[28,-18],[35,-48],[18,-78],[11,-20],[59,-13],[56,-145],[63,-69],[44,-8],[34,9],[39,-6],[31,-44],[-11,-45],[4,-42],[32,-42],[10,-84],[15,-68],[-15,-55],[52,-49],[21,-53],[52,-1],[33,-53],[63,-38],[27,14],[28,-19],[30,-67],[25,-10],[18,-35],[90,10],[36,-9],[-14,-16],[38,-40],[4,-18],[48,-35],[-24,-46],[36,-22],[0,-43],[45,-41],[29,4],[0,-24],[21,4],[40,-37],[39,-23],[9,-20],[76,-71],[19,-41],[12,-122],[22,-11],[8,-50],[29,-61],[56,-49],[20,-7],[8,-33],[47,-48],[27,-5],[32,-32],[4,-35],[-18,-65],[15,-21],[-3,-32],[-32,-68],[-46,-49],[-77,-55],[-91,-108],[-92,-60],[23,-55],[-32,-32],[-83,-30],[-82,-23],[-29,0],[-10,-24],[-53,7],[-47,-8],[-62,-35],[-24,-3],[-7,-22],[-57,-36]
 ,[-44,-13],[-70,-56],[-22,0],[-40,24],[-27,-26],[-15,11],[-72,-63],[12,-27],[-11,-20],[-54,-31],[-11,-21],[-28,-6],[-78,-37],[-17,-19],[26,-33],[-26,-18],[-52,7],[-17,45],[-28,13],[-109,-66],[39,-26],[30,-58],[-19,-31],[-44,-47],[-52,-106],[-53,1],[-82,-28],[-61,9],[-63,-13],[-65,-24],[-109,-21],[-10,-15],[-65,-5],[-45,-45],[-23,1],[-38,-28],[-48,-6],[-6,-11],[-81,-36],[-60,-40],[-16,-27],[8,-15],[-27,-34],[-33,-21],[-11,-62],[-122,-17],[-16,-16],[-7,-47],[-41,-9],[-72,-68],[-70,-21],[-141,-73],[-85,6],[-30,-14],[-41,-36],[-74,-37]],[[2086,288],[-63,25],[-18,-6],[-13,25],[-55,29],[-30,61],[-33,13],[-79,4],[-27,15],[-68,10],[-102,2],[-28,-12],[-112,3],[-72,28],[-50,48],[-60,22],[-72,58],[-21,61],[6,16],[-44,42],[5,17],[-29,64],[-177,346],[-18,42],[-27,39],[-9,44],[-27,45],[0,30],[-27,65],[8,30],[-27,188],[-314,599],[-14,8]],[[3371,4522],[-23,20],[60,27],[-18,58],[-92,65],[25,23],[40,-32],[49,18],[100,8],[18,23],[24,5],[29,58],[33,21],[20,-5],[65,38],[35,7],[25,22],[15,47],[16,-6],[42
 ,29],[30,3],[38,-22],[8,13],[59,23],[31,-23],[62,10],[16,-19],[31,8],[36,-9],[76,25],[58,27],[113,40],[33,1],[43,16],[47,3],[107,108],[168,24],[166,44],[46,33],[116,14],[113,-32],[213,85],[100,53]],[[5544,5373],[256,149],[521,-119],[8,-116],[2,-493],[8,-31],[-31,-19],[-7,-24],[20,-27],[2,-36],[-27,-13],[18,-20],[-5,-36],[11,-14],[-60,-20],[27,-53],[-43,-42],[0,-31],[26,-13],[-41,-234],[-20,-8],[0,-118],[-11,-26],[-43,-10],[-15,-37],[25,-35],[-64,-40],[-50,-51],[-27,-76],[18,-83],[-3,-21],[30,-26],[65,-108],[21,-81],[-50,-50],[-54,-13],[-63,-48],[-26,-59],[-44,-35],[39,-21],[21,-24],[-16,-25],[15,-19],[-30,-101],[-9,-63],[4,-77],[-31,-68],[-46,-121],[-3,-47],[37,-26],[0,-39],[-87,-215],[-52,-52],[-41,-16],[-35,-31],[-40,-126],[-32,-24],[-19,-43],[-50,-45],[0,-27],[-17,-25],[4,-37],[-51,-60],[-24,-49],[6,-10],[-30,-30],[1,-22],[-32,-12],[-49,-38],[-36,-41],[-31,-14],[-23,-26],[-35,-13],[-27,-61],[-22,-12],[-21,-41],[-75,-48],[-21,-32],[-56,-36],[-49,-13],[-38,-41],[-66,-42],[-40,-37],
 [-85,-33],[-31,-76],[-85,-85],[-7,-41],[-41,-2],[-31,-44],[-68,-44],[-27,-32],[-77,-18],[-46,-58],[-12,-47],[-37,12],[-73,-11],[-40,-16],[-36,-27],[-83,-40],[-24,-30],[-21,-6],[-33,-40],[-21,1],[-9,-20],[-49,5],[-193,12],[-73,-40],[-62,-14],[-19,-38],[-60,-29],[-64,-44],[-30,-35],[-63,-83],[-32,-35],[-40,-68],[-3,-17],[-38,-47],[-64,-34],[-100,-11],[-87,-3],[-87,-27],[-48,-8],[-80,-28],[-32,-28],[-119,-47],[-27,-2],[-72,-28],[-119,96],[-96,27],[-21,14],[-38,62],[-66,54],[-21,1],[-35,34]],[[489,2249],[-50,35],[-8,21],[-22,-1],[-67,68],[-2,67],[-19,36],[8,17],[-41,40],[-62,2],[-37,50],[0,28],[-29,22],[-5,59],[8,6],[-35,50],[15,69],[-5,35],[51,79],[1,52],[36,59],[3,44],[36,31],[-60,139],[-16,70],[32,72],[75,84],[-28,30],[-36,63],[-33,93],[32,13],[-35,69],[51,32],[-32,40],[-11,55],[-47,55],[-25,70],[15,20],[-17,21],[-47,-16],[-80,7],[1,58],[32,64],[11,50],[101,54],[-5,12],[59,41],[61,6],[42,28],[206,79],[-1,16],[33,13],[17,-11],[62,42],[134,469],[41,37],[88,54],[64,57],[75,30],[63,15]],
 [[1087,5149],[20,-73],[36,5],[29,-13],[51,3],[6,-9],[120,23],[71,8],[35,-71],[106,13],[3,-11],[44,23],[10,-26],[56,6],[14,-13],[82,43],[-10,27],[40,-9],[32,7],[-4,22],[77,37],[135,79],[68,-19],[73,4],[57,-14],[59,-6],[127,19],[49,27],[19,20],[57,18],[16,-29],[101,20],[28,15],[37,3],[77,19]],[[2808,5297],[27,-4],[23,-51],[6,-91],[-23,-28],[-70,-35],[4,-67],[37,-26],[7,-28],[-27,-36],[-32,-22],[-11,-58],[-22,-26],[-42,-28],[-43,-11],[-33,-32],[-38,-19],[-68,0],[-50,-42],[-14,22],[-30,-22],[-23,18],[-47,-26],[-50,2],[16,-29],[-11,-52],[-23,-40],[13,-17],[-20,-72],[-24,9],[-59,-57],[-25,-4],[-39,-75],[-21,-11],[0,-28],[-56,-44],[39,-10],[8,-35],[21,-21],[4,-30],[23,4],[3,-22],[35,-43],[-18,-32],[22,-29],[24,-3],[20,-33],[-6,-21],[35,-25],[-12,-45],[22,2],[25,-38],[25,-8],[24,-45],[49,-33],[10,-41],[16,-107],[-14,-5],[14,-32],[-14,-53],[-32,-42],[5,-34],[-12,-14],[3,-55],[13,-30],[-2,-45]],[[1087,5149],[86,11],[-27,60],[-11,58],[-28,63],[1,18],[-40,48],[13,90],[34,9],[74,80],[115,19],[26
 ,28],[79,7],[108,23],[58,45],[24,28],[44,-3],[33,26],[63,8],[0,11],[48,25],[-48,80],[-58,50],[-21,70],[-44,59],[-6,30],[32,52],[2,34],[-33,1],[-33,20],[-22,72],[-24,26],[12,54],[-7,19],[-45,32],[-2,18],[81,72],[-15,53],[9,79],[-22,55],[1,44],[-52,25],[-94,82],[-48,61],[-53,9],[-37,48],[36,10],[109,46],[26,-26],[34,-13],[21,23],[4,32],[18,18],[38,10],[112,-19],[25,-14],[36,3],[40,25],[23,-12],[59,7],[13,16],[89,-46],[25,-1],[36,24],[13,29],[-21,49],[83,38],[57,11],[21,-37],[47,21],[11,-15],[2,-107],[-18,-12],[16,-46],[-7,-27],[-31,-30],[-5,-22],[26,-33],[39,-3],[64,-19],[46,-23],[52,0],[35,-21],[-3,-71],[24,-18],[39,40],[51,-16],[41,6],[37,77],[57,44],[76,-12],[-2,-36],[34,9],[49,-17],[-6,-43],[35,-29],[19,3],[42,45],[16,-21],[-27,-14],[-2,-22],[37,-21],[46,0],[16,-38],[-45,-12],[4,-33],[41,-69],[40,-11],[33,-27],[25,2],[-8,-27],[4,-35],[58,-16],[-11,-10],[29,-32],[11,11],[110,-65],[116,6],[82,38],[43,2],[25,-20],[24,5],[28,-56],[35,0],[25,31],[155,85],[61,30],[35,-18],[-23,-17],[23,
 -31],[17,-52],[-30,-38],[19,-49],[0,-25],[40,-25],[-2,-39],[31,-42],[81,-163]],[[4089,5948],[-123,-15],[-8,36],[-52,-10],[-15,26],[-78,1],[-96,-41],[-42,-59],[-76,-33],[-23,-27],[-81,-27],[-62,13],[-30,-26],[-13,-33],[9,-17],[-25,-37],[-68,-17],[-46,-31],[-14,-23],[-50,5],[-21,-15],[-8,-36],[-39,-28],[-63,-8],[-120,-67],[-36,-56],[-72,-51],[-6,-41],[-25,-16],[2,-18]],[[4089,5948],[85,-175],[71,39],[77,-58],[13,18],[63,28],[29,-34],[46,-9],[45,-45],[30,-8],[26,-30],[197,-118],[129,-65],[202,-166],[201,34],[241,14]],[[6479,7619],[-27,5],[-15,37],[23,20],[81,44],[26,27],[-39,49],[27,18],[-10,45],[14,9],[-34,56],[9,40],[-27,14],[57,35],[119,112],[43,13],[47,-5],[92,41],[22,28],[24,-26],[39,27],[88,39],[82,56],[31,6],[69,60],[7,17],[-39,24],[-14,-10],[-33,21],[-46,-16],[-23,-38],[-30,86],[-35,-22],[-33,18],[-8,48],[-31,-5],[-42,41],[27,9],[37,41],[71,0],[-2,45],[-47,75],[-44,32],[23,26],[8,36],[-59,92],[32,-2],[83,87],[46,7],[-3,22],[36,22],[6,-15],[36,13],[3,-16],[46,-8],[0,27],[39,-8],
 [20,26],[43,9],[7,17],[54,26],[-12,48],[42,32],[9,-12],[12,34],[-23,6],[19,25],[-9,27],[13,33],[0,36],[-20,10],[10,41],[39,-5],[9,11],[61,-19],[55,-27],[60,-3],[17,-38],[33,-2],[-11,-22],[11,-31],[51,-21],[-4,-21],[86,-29],[53,16],[26,-51],[41,26],[8,-21],[-12,-44],[-21,-15],[23,-24],[-17,-59],[23,-4],[34,-30],[-15,-24],[14,-18],[21,-67],[-8,-34],[31,-20],[64,-3],[0,-34],[58,-5],[21,-19],[38,14],[31,26],[17,-81],[104,-21],[85,14],[60,1],[114,-26],[47,-2],[3,-21],[-26,-2],[-1,-40],[-48,-25],[-37,-39],[-21,0],[8,-38],[37,-12],[3,-136],[14,-5],[-13,-27],[9,-53],[-35,16],[-7,-20],[-66,-45],[-78,-21],[-5,13],[-38,-10],[-18,-24],[-39,-13],[-24,38],[-20,87],[-44,26],[-16,-9],[-55,17],[-26,-16],[-34,29],[-24,-28],[16,-14],[-36,-26],[-11,26],[-53,-22],[-60,-4],[-29,16],[19,27],[-11,30],[-28,2],[-19,28],[-9,-25],[-27,16],[-46,8],[-80,-36],[-24,2],[-45,-19],[-58,-37],[31,-49],[85,-37],[38,-91],[18,-14],[29,-65],[23,-25],[29,-64],[25,-11],[21,-62],[51,-23],[15,-41],[30,-14],[48,-61],[-15,-25],[
 -36,3],[-24,-42],[24,-7],[-16,-26],[-22,13],[-30,-26],[7,-13],[-38,4],[-46,-25],[-12,19],[-34,-15],[-32,55],[-53,-5],[-12,44],[-62,-13],[37,45],[4,42],[27,75],[-6,17],[-62,-1],[-7,54],[-18,13],[-22,-33],[-130,-20],[-44,8],[-105,-39],[-125,-53],[-81,-8],[-102,-26],[-99,-18],[-16,12],[-26,-16],[-22,3],[-3,-40],[-19,11],[-58,-5],[-103,-26],[0,-16],[-69,-4],[-55,-18]],[[8041,9393],[11,9],[-26,41],[20,9],[0,45],[20,1],[77,50],[0,61],[54,34],[48,-8],[-15,62],[59,26],[11,-11],[66,8],[12,-29],[-10,-21],[64,-71],[-21,-46],[23,-28],[46,0],[51,-17],[66,0],[-3,18],[65,4],[30,-26],[31,-6],[1,36],[72,3],[0,9],[51,-1],[109,12],[72,-5],[71,33],[75,19],[-14,-39],[12,-35],[57,15],[47,4],[131,52],[51,28],[19,20],[76,18],[50,5],[32,-17],[118,13],[109,31],[44,1],[76,22],[20,-52],[-64,2],[-5,-26],[-53,-20],[9,-24],[-22,-4],[-16,-28],[-170,-60],[-15,-28],[-27,-20],[7,-31],[-38,-8],[-40,-23],[-68,-25],[-59,-45],[-84,-21],[-112,-73],[-108,-59],[-69,-43],[-41,-11],[25,-31],[-15,-37],[29,-32],[15,-34],[-32,-4
 4],[59,-48],[13,10],[101,-57],[-11,-30],[96,-11],[21,-12],[-42,-47],[101,-13],[82,-28],[116,-89],[-12,-18],[-69,4],[-9,-14],[-53,-14],[-3,-16],[-53,-44],[-75,-37],[-109,0],[-53,-19],[-32,25],[-68,-47],[-28,3],[-59,-16],[-84,-47],[-40,32],[-52,8],[54,14],[-5,25],[63,13],[66,69],[-16,11],[2,69],[-26,8],[-73,-4],[-27,11],[-11,54],[51,4],[9,85],[-44,-4],[31,19],[-4,35],[27,3],[-16,39],[-9,-10],[-57,1],[-15,-15],[-13,23],[-65,31],[-42,-4],[-30,29],[-90,-15],[-36,-20],[-63,21],[-49,-17],[-45,44],[-9,20],[25,17],[34,3],[-3,32],[14,12],[86,17],[12,-8],[35,18],[-14,57],[33,-1],[12,17],[-17,34],[-69,6],[-8,34],[-23,-4],[-19,64],[-22,20],[-18,-18],[10,-44],[-31,14],[-31,-6],[-4,42],[-36,9],[-54,-9],[-4,32],[-27,-6],[-7,-26],[-45,3],[7,20],[-54,34],[12,37],[-19,17],[-35,-25],[-40,42]],[[1644,7127],[39,-14],[-16,-19],[-32,17],[9,16]]],"transform":{"scale":[0.046408872110473766,-0.04800480048004801],"translate":[247.9788438836864,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ar-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ar-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ar-municipalities.json
deleted file mode 100644
index 076d42f..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ar-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":3001,"properties":{"name":"Herisau"},"arcs":[[[5,6,7,8,9]]]},{"type":"MultiPolygon","id":3002,"properties":{"name":"Hundwil"},"arcs":[[[-5,10,-10,11,12]]]},{"type":"MultiPolygon","id":3003,"properties":{"name":"Schönengrund"},"arcs":[[[56,-17,-2]]]},{"type":"MultiPolygon","id":3004,"properties":{"name":"Schwellbrunn"},"arcs":[[[-3,16,17,-7,18]]]},{"type":"MultiPolygon","id":3005,"properties":{"name":"Stein (AR)"},"arcs":[[[-9,30,-20,31,-12]]]},{"type":"MultiPolygon","id":3006,"properties":{"name":"Urnäsch"},"arcs":[[[0,1,2,3,4]]]},{"type":"MultiPolygon","id":3007,"properties":{"name":"Waldstatt"},"arcs":[[[-4,-19,-6,-11]]]},{"type":"MultiPolygon","id":3021,"properties":{"name":"Bühler"},"arcs":[[[-23,-35,-26,-14,55]]]},{"type":"MultiPolygon","id":3022,"properties":{"name":"Gais"},"arcs":[[[13,14,15]]]},{"type":"MultiPolygon","id":3023,"properties":{"name":"Speiche
 r"},"arcs":[[[32,33,-27,34,-22]]]},{"type":"MultiPolygon","id":3024,"properties":{"name":"Teufen (AR)"},"arcs":[[[19,20,21,22,23],[24]]]},{"type":"MultiPolygon","id":3025,"properties":{"name":"Trogen"},"arcs":[[[25,26,27,28,29,-15]]]},{"type":"MultiPolygon","id":3031,"properties":{"name":"Grub (AR)"},"arcs":[[[58,-38,-55]]]},{"type":"MultiPolygon","id":3032,"properties":{"name":"Heiden"},"arcs":[[[35,36,37,38,39,40,41,42,43,44]]]},{"type":"MultiPolygon","id":3033,"properties":{"name":"Lutzenberg"},"arcs":[[[-47,-50,59]],[[-40,60]]]},{"type":"MultiPolygon","id":3034,"properties":{"name":"Rehetobel"},"arcs":[[[53,54,-37,-52,-28,-34]]]},{"type":"MultiPolygon","id":3035,"properties":{"name":"Reute (AR)"},"arcs":[[[-44,57]]]},{"type":"MultiPolygon","id":3036,"properties":{"name":"Wald (AR)"},"arcs":[[[-29,51,-36,52]]]},{"type":"MultiPolygon","id":3037,"properties":{"name":"Walzenhausen"},"arcs":[[[45,46,47]]]},{"type":"MultiPolygon","id":3038,"properties":{"name":"Wolfhalden"},"arcs":[[[
 -42,48,49,-46,50]]]}]}},"arcs":[[[2759,546],[-76,4],[-23,-8],[-66,-48],[-81,-53],[-94,129],[-34,-12],[-45,6],[-25,41],[-14,49],[-32,10],[-20,34],[-33,87],[-9,12],[-59,-25],[-50,-9],[-72,13],[-27,17],[92,45],[-11,22],[-73,59],[-45,61],[-25,-58],[-25,-10],[-47,17],[-49,-19],[-33,-32],[-20,-9],[-30,-28],[-8,-61],[-64,-36],[-6,-29],[-36,-16],[-24,-30],[-21,5],[-37,61],[-19,-13],[-29,26],[-29,6],[-4,20],[-39,-9],[-40,11],[-10,13],[-114,-58],[-25,-9],[-43,5],[-17,-7],[-99,32],[-41,5],[-32,22],[-34,39],[-53,24],[-20,-11],[-35,39],[-33,8],[-31,27],[-9,-5],[-24,28],[-69,61],[-17,-17],[-22,20],[-3,26],[-61,59],[-22,8],[-24,35],[-42,22],[-30,45],[-55,30],[15,112],[28,56],[43,46],[16,37],[24,5],[37,30],[-5,29],[37,25],[38,15],[20,57],[20,33],[14,47],[22,14],[23,31],[28,54],[-19,72],[6,24],[32,7],[23,49],[-6,32],[-33,51],[-23,52],[7,17],[-34,24],[-17,67],[-31,19],[-14,32],[-19,1],[3,34],[-12,62],[-18,22],[28,100],[3,58],[8,37],[-5,57]],[[651,2625],[30,11],[43,34],[28,11],[79,61],[55,12],[19,-23]
 ,[76,71],[53,31],[8,-38],[32,13],[25,39],[25,54],[37,50],[26,14],[95,83],[23,11],[30,40],[48,30],[22,54],[-31,51],[30,15],[26,31],[31,159],[26,16],[-31,42],[-6,26],[23,14],[-10,67]],[[1463,3604],[-11,24],[16,13],[-19,29],[11,60],[66,52],[32,44],[28,16],[-1,12],[88,50],[29,-2],[39,44],[16,60],[-11,15],[27,44],[10,29],[-11,3],[-26,54],[14,31],[38,23],[9,-4]],[[1807,4201],[36,-17],[4,-17],[24,-5],[14,13],[139,13],[17,-37],[-1,23],[23,34],[-4,16],[46,28],[46,12],[47,1],[10,16],[44,37],[19,33],[37,8],[27,59],[21,1],[48,29],[17,-5]],[[2421,4443],[-4,-24],[16,-19],[-2,-21],[-30,-35],[-7,-84],[0,-89],[-12,-57],[-13,-17],[-10,-40],[14,-25],[6,-37],[-13,-55],[9,-35],[-30,-15],[5,-41],[-29,-30],[-9,-26],[3,-45],[23,-52],[32,3],[27,-27],[14,-66],[-4,-26],[23,-44],[-29,-48],[32,-78],[5,-103],[-13,-9],[37,-26],[9,-19],[62,-18],[61,14],[23,-15],[19,30],[25,-30],[19,-121],[-11,-37],[26,-84],[-2,-11],[54,-146],[-13,-7],[15,-38],[28,-113],[-53,-163],[-57,-111],[12,-45],[22,-34],[-9,-42],[5,-110],[-4,
 -81],[5,-106],[-2,-25],[-17,-12],[-14,-45],[-15,-20],[6,-66],[56,-69],[97,-7],[41,-40],[24,-39],[42,-34],[39,-64],[-22,-62],[-56,-85],[-8,-24],[-33,-33],[-16,-37],[-28,-8],[-60,-76],[-40,-27],[-14,-27],[-19,-71],[-8,-48],[15,-3],[33,17],[19,-14],[19,24],[25,-10],[14,29],[22,-8],[31,8],[2,-14],[26,2],[11,-16],[24,17],[-5,-81],[-12,-59],[-35,-53],[-18,-68],[-8,-12],[-14,-63],[17,-54],[-16,-26],[-15,-70],[-27,-66]],[[2691,5366],[-24,10],[-24,-5],[-37,16],[-14,54],[-25,9],[-4,44],[-23,34],[-11,-18],[8,-35],[-6,-32],[-24,22],[7,32],[-24,43],[-76,-20],[-8,24],[-69,-22],[43,-32],[-6,-35],[-26,-1],[-9,-40],[-12,20],[-54,22],[-29,-35],[27,-38],[-32,-35],[-16,15],[-50,-70],[-14,-5],[-78,9],[7,63],[-55,-38],[-24,-4],[-20,-58],[45,-18],[-8,-24],[-73,-63],[-29,-45],[-38,-34],[-12,35],[11,34],[-74,-26],[-67,-48],[-50,-24],[-20,-17],[6,-51],[-16,5],[-39,-48]],[[1625,4936],[-17,7],[-24,68],[-39,-33],[-34,32],[-28,12],[36,49],[-5,20],[12,31],[-23,19],[-29,36],[23,11],[-19,63],[4,37],[-78,-40],[3,-28
 ],[-32,-7],[-52,-39],[-35,9],[-21,25],[0,49],[32,32],[-12,12],[-12,45],[-43,-4],[-21,-13],[-16,8],[-29,-16],[-14,8],[-28,-32],[-7,33],[7,57],[-25,17],[-30,5],[25,77],[28,-2],[19,37],[-17,35],[-32,-5],[-23,-22],[-7,-28],[-31,-44],[-37,-4],[-48,27],[-20,-25],[-47,15],[-8,24],[-31,21],[-41,9],[-16,-48],[-59,2],[-21,38],[-26,1]],[[677,5517],[-1,38],[-26,74],[-4,44],[45,51],[5,17],[-10,33],[-37,71],[-14,39],[22,32],[-22,0],[-17,29],[6,33],[-6,57],[40,33],[29,38],[24,49],[28,-35],[35,10],[18,28],[28,-1],[31,-27],[15,14],[19,-6],[9,45],[13,-19],[20,33],[-2,49],[16,37],[-14,29],[-2,50],[6,26],[-22,71],[17,8],[-10,27],[2,38],[-42,40],[28,21],[19,29],[2,-42],[14,-19],[-7,-27],[18,1],[10,45],[13,4],[32,-42],[35,13],[33,32],[46,33],[10,23],[26,4],[46,40],[42,-32],[48,29],[44,55],[44,5],[20,10],[29,-16],[20,27],[19,-13],[26,-81],[36,12],[8,22],[30,22],[16,-15],[11,36],[31,12],[31,27],[24,-2],[28,-39],[1,-20],[29,-19],[26,-2],[56,76],[65,-17],[48,-38],[30,9],[20,-9],[11,-61],[27,14],[33,-7],[29,1
 5],[15,-16],[40,-15],[36,7],[148,-33],[13,-39],[24,22],[-13,-26],[35,10],[59,-19],[43,-28],[52,-2],[128,64],[40,-2],[4,14],[66,19],[20,15],[56,15],[22,-3],[10,-20],[4,28],[45,13],[27,45],[33,18],[40,50],[13,-11]],[[3043,6793],[21,0],[7,-19],[-2,-75],[-6,-13],[21,-33],[-24,-41],[-9,-51],[14,-32],[-4,-46],[20,-26],[1,-26],[30,-53],[-20,-62],[-24,-30],[17,-55],[-29,-20],[-4,-45],[6,-29],[-14,-48],[24,-106],[16,-18],[-2,-53],[-45,-27],[-7,-16],[16,-60],[-5,-39],[-21,-23],[-5,-20],[25,-47],[-19,-53],[-25,-10]],[[2996,5617],[-33,14],[-27,-9],[14,-25],[-43,-59],[-5,-21],[-40,-26],[-40,-47],[-65,-34],[-48,7],[-18,-51]],[[2421,4443],[8,101],[36,86],[-25,43],[1,65],[7,26],[-16,54],[21,67],[-19,50],[5,38],[17,11],[30,-16],[18,19],[28,55],[33,33],[74,24],[-7,39],[30,5],[23,21],[0,26],[-18,36],[-37,41],[-1,16],[20,48],[42,35]],[[2996,5617],[-12,-40],[36,-57],[0,-65],[-12,-25],[19,-19],[36,11],[57,-23],[21,-22],[10,-24],[49,-82],[46,-15],[51,14],[12,-60],[21,3],[23,-83],[16,-16],[-1,-44],[58,-74]
 ,[-5,-43],[2,-51],[26,23],[16,-7],[8,22],[29,-7],[31,-28],[67,-22],[25,-20],[39,-76],[7,-2]],[[3671,4785],[-12,-12],[-81,-17],[-51,-76],[-24,-9],[-9,-85],[27,-44],[30,-147],[17,-43],[-75,-15],[-81,-38],[-79,-86],[-28,-19],[-28,-35],[-94,-445],[-44,-39],[-10,11],[-24,-13],[0,-15],[-52,-26],[-6,5],[-85,-53],[-29,-27],[-44,-7],[-40,-38],[3,-11],[-69,-52],[-13,-64],[-17,-43],[-1,-55],[56,-6],[30,12],[14,-21],[-10,-15],[17,-68],[33,-50],[8,-53],[22,-37],[-37,-31],[25,-64],[-23,-14],[25,-87],[25,-60],[20,-29],[-26,-33],[-29,-52],[-20,-63],[11,-65],[42,-133],[-26,-29],[-2,-40],[-25,-57],[0,-50],[-36,-75],[-3,-111],[19,-30],[-5,-29],[10,-49],[15,-9],[0,-27],[25,-46],[43,-2],[28,-40],[-4,-16],[14,-37],[1,-55],[46,-69],[65,-58],[220,-568],[7,-92],[12,-87],[-8,-27],[21,-63],[4,-49],[13,-21],[8,-41],[18,-38],[13,-41],[122,-326],[20,-61],[-3,-16],[31,-40],[-59,-20],[-193,21],[-29,-22],[-89,-28],[-15,-33],[-40,-11],[-20,-26],[-120,34],[-19,24],[-40,85],[-41,76],[-93,48],[-61,88],[19,108],[1,52],[
 -20,31]],[[5486,5564],[-32,52],[-14,12],[-22,-15],[-15,9],[2,22],[32,31],[12,45],[55,41],[9,15],[59,51],[12,1],[-11,61],[56,53],[22,28],[14,-9],[27,9],[53,56],[-3,16],[28,22],[11,-9],[26,10],[25,37],[52,30],[41,39],[34,45],[47,29]],[[6006,6245],[105,76],[24,37],[20,-1],[50,23],[51,53],[10,22],[40,0],[78,18],[14,-6],[46,19],[13,-28],[-3,-27],[18,-59],[36,-26],[60,-20],[32,-30],[58,1],[29,33],[30,55],[2,28],[23,28],[29,17],[41,-2],[57,27],[61,4],[45,37],[59,23],[120,67],[74,-12]],[[7228,6602],[-17,-103],[-41,-28],[13,-36],[-35,-38],[22,-33],[-13,-58],[-5,-88],[-37,-16],[34,-26],[3,-35],[-18,-77],[-1,-262],[43,0],[12,-21],[-34,-46],[-49,-47],[-22,-37],[13,-20],[-12,-37],[-38,-45],[14,-12],[31,-48],[-41,-194],[13,-27],[23,-12],[-34,-46],[15,-25],[32,-10],[-22,-36],[38,-243],[17,-6],[11,-25],[-9,-81],[22,-50],[-4,-7],[4,-68],[-1,-77],[-365,113],[-177,-143],[-168,-11],[-141,-33],[-140,158],[-90,61],[-137,111],[-18,29],[-25,10],[-27,41],[-33,8],[-19,33],[-46,-27],[-8,-18],[-55,55],[-47,-36
 ],[-117,320],[-22,39],[2,37],[-22,16],[-17,52],[-2,26],[21,35],[-11,50],[-16,30],[11,26]],[[1463,3604],[-29,-21],[-15,23],[-26,-17],[-45,-42],[-17,56],[-67,-63],[-56,49],[-23,8],[-16,52],[-13,15],[-53,4],[-20,32],[1,17],[-22,16],[-41,3],[-31,-39]],[[990,3697],[-9,58],[-18,53],[-27,42],[-12,39],[-27,25],[-18,38],[-28,35],[-48,113],[1,20],[-15,36],[-42,14],[-18,24],[-42,-23],[-8,-25],[-54,-13],[-69,-28],[-10,-30],[-24,-17],[-29,7],[-21,21],[-15,-21],[-24,-6],[-28,-43],[-22,-4],[-12,-19],[-20,78],[5,38],[-8,29],[-29,6],[-16,19],[-2,27],[-27,77],[-28,26],[-16,-2],[-7,32],[-31,11],[-6,52],[37,46],[1,27],[34,38],[14,64],[38,119],[21,2],[46,48],[-61,84],[-10,-58],[-18,-18],[-27,6],[-24,-44],[-41,-39],[-42,-4],[-44,-33],[11,39],[-19,71],[-14,88],[-10,44],[-40,64],[-2,52],[-29,38],[29,8],[91,-18],[20,-16],[37,-14],[27,19],[44,4],[180,55],[16,48],[22,12],[27,34],[17,74],[-19,47],[4,17],[33,34],[14,31],[28,0],[32,53],[11,54],[4,42],[41,-7],[12,20]],[[1625,4936],[21,-19],[13,11],[32,-15],[-7,-5
 6],[16,-15],[-7,-24],[29,-30],[-14,-68],[24,-22],[30,-47],[-38,-38],[-9,-17],[25,-114],[30,-64],[-13,-32],[21,-40],[29,-20],[-7,-39],[7,-86]],[[3627,6045],[-23,17],[-23,36],[-12,53],[-2,68],[9,24],[-4,32],[-21,30],[-18,56],[3,32],[-18,27],[-4,49],[-31,54],[-2,43],[-24,48],[4,29],[-17,64],[-52,36],[-19,24]],[[3373,6767],[11,19],[73,8],[75,35],[26,23],[24,5],[71,43],[57,49],[39,-48],[59,-7],[17,25],[6,32],[83,55],[57,2],[29,30],[10,27],[30,43],[58,43],[24,-26],[48,25],[27,-16],[28,12],[31,-11],[14,-25],[15,7],[40,-25],[37,6],[45,-28],[42,-1],[64,-45],[17,-56],[11,-57],[44,-41],[54,12],[67,-23],[-4,33],[28,0],[18,-28],[18,10],[34,-4],[43,18],[19,37],[24,12],[24,-7],[52,20],[-1,29],[33,-2],[11,43],[40,24],[-3,37],[16,3],[14,-24],[57,8],[70,41],[56,9],[82,54]],[[5337,7172],[16,-97],[-19,10],[37,-51],[18,22],[15,-32],[-10,-18],[15,-47],[-10,-37],[4,-51],[35,21],[98,8],[11,-32],[-17,-26],[10,-50],[17,-36],[22,-22],[-21,-12],[11,-73],[-18,-50],[-19,-1],[-24,-37],[34,-62]],[[5542,6499],[-11,
 -12],[-9,-52],[-26,-2],[-29,-22],[-31,-1],[-10,-41],[-34,-5],[-20,8],[-26,-16],[-18,-49],[-24,-39],[-40,-2],[-28,-25],[-19,-59],[-18,1],[-13,30],[-32,-8],[-25,-26],[-12,14],[-29,7],[-43,-25],[-21,-39],[-31,-30],[-18,-127],[-21,-34],[-51,0],[-2,13],[-54,-2],[-5,-54],[-42,-37]],[[4800,5865],[-26,-4],[-14,-31],[-13,-3],[-25,28],[5,40],[-27,15],[-31,-6],[2,33],[-47,14],[-16,-10],[-37,-45],[-19,-62],[-29,-5],[-25,14],[-19,-6],[-18,-32],[-11,4],[-10,38],[6,43],[-24,19],[-36,0],[-33,22],[-85,33],[-1,41],[25,33],[-10,64],[12,10],[-1,102],[-14,14],[-26,-20],[-15,37],[-40,-13],[-57,-35],[15,-46],[-10,-27],[-24,-23],[-19,1],[-39,22],[-22,21],[-24,-21],[-42,11],[-28,-24],[-26,-3],[-17,13],[-78,18],[-28,-9],[-28,-68],[-18,6],[-25,30],[-89,-50],[-12,-3]],[[3894,6215],[-5,-16],[23,-16],[11,18],[-29,14]],[[6006,6245],[1,45],[-9,69],[-22,61],[9,47],[-29,-13],[-23,30],[4,86]],[[5937,6570],[-3,63],[14,113],[-11,19],[-4,58],[-10,18],[9,49],[27,17],[17,46],[28,58],[-20,63],[10,69],[-8,22],[17,27],[2,36]
 ,[73,50],[11,27],[-33,112],[-2,47],[26,97],[30,-6],[22,23],[18,47],[21,28]],[[6171,7653],[41,-1],[5,-19],[83,16],[16,-13],[65,40]],[[6381,7676],[12,-21],[17,-64],[53,-46],[2,-36],[38,-62],[59,11],[17,-4],[0,29],[22,-5],[17,-60],[23,19],[12,-4],[42,20],[20,0],[6,-24],[-24,-26],[3,-32],[31,-3],[30,11],[11,-35],[22,7],[37,-50],[-4,-28],[42,-60],[34,-8],[13,7],[15,-39],[22,-13],[31,-3],[-19,-20],[8,-36],[10,10],[47,-34],[26,27],[36,-3],[-50,-61],[44,7],[7,-23],[31,11],[49,-2],[22,-14],[46,28],[43,-22]],[[7284,7025],[19,-13],[-7,-38],[24,-53],[-9,-7],[6,-44],[-20,-18],[29,-46],[-18,-26],[-68,-53],[-4,-13],[18,-40],[-26,-72]],[[3043,6793],[1,9],[46,28],[45,6],[23,-21],[43,-13],[11,-44],[37,21],[25,-33],[30,7],[25,38],[27,-4],[17,-20]],[[3627,6045],[26,-46],[37,-8],[34,-58],[66,-77],[36,-25],[-1,-40],[12,-41],[-3,-87],[11,-50],[-56,-68],[4,-25],[27,-23],[6,-17],[-9,-51],[17,-25],[16,-67],[23,-20],[21,-1],[-1,-32],[-21,-49],[4,-29],[31,-56],[15,-65],[39,-48],[6,-22],[27,-54],[-33,-34],[-37,
 -4],[-30,-27],[-29,2],[-59,-69],[-74,-22],[-56,-7],[-5,-15]],[[5337,7172],[16,10],[32,65],[44,32],[0,35],[-30,-22],[-17,22],[0,46],[28,30],[-13,25],[45,-52],[30,42],[24,69],[-22,10],[-2,44],[-23,51],[-5,35],[-14,-1],[0,46],[69,25],[-11,30],[23,29],[-3,29],[29,8],[-16,70],[10,51],[-7,23],[12,22],[-8,58],[-17,60],[-39,98],[5,39],[26,64],[17,12],[9,71],[-5,27],[53,12],[31,-10],[14,-25],[52,-16],[56,37],[44,-33],[23,5],[15,-25],[18,-4],[26,-59],[36,-23],[22,14]],[[5914,8248],[51,-59],[2,-16],[23,0],[25,-34],[-11,-54],[6,-55],[34,-64],[16,-16],[-8,-50],[17,-24],[-11,-38],[16,-43],[1,-35],[18,-14],[44,-12],[11,-20],[-1,-48],[24,-13]],[[5937,6570],[-47,-12],[-94,-33],[-30,-92],[-17,14],[-4,-20],[-48,25],[-25,25],[-44,-19],[-22,34],[-64,7]],[[7626,7954],[-22,36],[-17,-1],[-50,-29],[-19,1],[-6,39],[-15,-31],[-37,-24],[-27,-6],[-23,58],[9,58],[-41,28]],[[7378,8083],[-3,43],[-17,53],[-5,43]],[[7353,8222],[28,27],[20,37],[12,42],[39,41],[-3,56],[-21,194],[2,27],[29,20],[-17,12],[-23,41],[17,29]
 ,[-1,51],[9,15],[-19,18],[4,26],[35,11],[14,-15],[14,71],[-1,54],[22,4],[11,41],[48,-11],[-7,36],[-19,1],[9,30],[-6,129]],[[7549,9209],[26,34],[1,29],[22,25],[31,20],[43,-18],[20,0],[11,39],[-38,28],[-33,43],[-19,36],[-6,68],[-10,16],[18,21],[-24,31]],[[7591,9581],[79,76],[5,-11],[61,65],[25,15],[7,-32],[23,-39],[22,11],[26,-11],[25,52],[19,10],[-1,18],[25,12],[22,-4],[34,29],[4,19],[45,7],[18,-10]],[[8030,9788],[-1,-21],[20,-37],[44,26],[40,37],[59,15],[2,-26]],[[8194,9782],[-15,8],[-32,-19],[-26,-38],[-32,-27],[-16,-28],[-37,-23],[-2,-83],[-13,-18],[3,-71],[-45,-46],[5,-26],[-15,-16],[-6,-44],[6,-20],[-12,-19],[8,-31],[-5,-47],[-12,-24],[-1,-52],[-29,-14],[-2,-42],[28,-54],[-11,-30],[-14,-4],[-3,-36],[-27,-18],[-27,-34],[0,-20],[26,-49],[49,-24],[29,13],[2,-18],[73,-18],[21,-50],[2,-40],[29,-32],[10,24],[20,-33],[36,7],[34,-24],[1,-26],[20,3],[4,-51],[30,7],[8,-55],[-30,-3],[-6,-35],[10,-54],[35,4],[0,20],[17,18],[40,-4],[12,-35],[23,8]],[[8357,8459],[-1,-43],[-14,-9],[18,-38],[-8
 ,-9]],[[8352,8360],[-31,13],[-20,-22],[-36,7],[-39,-8],[-42,0],[-32,-37],[-22,3],[-33,-23],[-3,-27]],[[8094,8266],[-22,1],[-13,36],[-41,3],[-65,44],[-24,-10],[-26,4],[-6,-40],[14,-9],[-17,-113],[17,-6],[-2,-30],[-13,9],[-31,-30],[10,-46],[-38,-25],[-5,-15],[-31,-9],[-13,-25],[-26,8],[0,-26],[-34,7],[-2,16],[-24,-14],[-4,14],[-26,-19],[1,-22],[-47,-15]],[[8526,8673],[-14,9],[-21,48],[11,49],[30,-16],[-2,24],[-21,16],[-18,62],[-16,36],[47,7],[9,-16],[136,-22],[23,54],[25,-2],[20,31],[38,23],[56,-5],[25,-22],[48,29],[7,-37],[44,21],[14,33],[-9,15],[23,81],[-14,26],[23,79],[-8,40],[0,55],[15,20]],[[8997,9311],[21,89],[12,9],[6,45],[-21,60],[9,28]],[[9024,9542],[7,-20],[84,51],[46,14],[27,-9],[1,-40],[11,-34],[22,-29],[38,-18],[5,-23],[20,-14],[69,-69],[25,-31],[38,-9],[31,-32],[34,0],[4,-34],[95,-86],[62,-27],[62,-12],[51,6],[23,-37],[41,-30],[40,-10],[53,-44],[55,-27],[25,-76],[-6,-15],[11,-28],[-23,1],[4,-20],[-6,-63],[-40,-24],[-34,-4],[-8,-13],[-53,-21],[-15,-13],[-58,-10],[-115,-41
 ],[-31,-1],[-75,-29],[-82,-12],[-23,15],[-88,-21],[-48,-46],[-92,-49],[-53,-10],[-15,-11],[-13,36],[10,37],[-52,-18],[-50,-31],[-50,4],[-111,-19],[-51,-2],[0,-34],[-22,5],[-21,25],[-45,-4],[2,-17],[-46,1],[-36,15],[-32,0],[-16,27],[16,43],[-42,60],[-4,53],[-54,5]],[[8194,9782],[27,-6],[57,46],[33,1],[96,-62],[-3,-18]],[[8404,9743],[-19,-23],[4,-33],[-5,-51],[11,-32],[-24,-47],[-9,-32],[22,-6],[13,-71],[26,6],[2,-16],[47,12],[1,21],[48,13],[0,10],[54,13],[3,-13],[35,10],[12,20],[34,-47],[32,-7],[10,22],[68,5],[2,-16],[72,7],[12,-68],[20,0],[34,33],[10,-34],[36,-3],[-4,-42],[-11,-15],[40,-9],[9,-12],[-8,-27],[16,0]],[[8526,8673],[-38,-25],[6,-59],[-33,8],[-35,-30],[-2,-60],[-47,-43],[-20,-5]],[[6381,7676],[69,36],[29,-7],[31,24],[18,3],[38,22],[20,44],[28,42],[34,23],[39,7],[96,41],[17,-2],[11,51],[28,12],[3,-21],[24,-19],[43,4],[72,-60],[43,18],[31,-9],[61,18],[28,40],[47,-14],[17,3],[9,-23],[52,34],[19,36],[-17,51],[30,18],[8,32],[13,-4],[-4,-42],[13,2],[2,27],[45,20]],[[7626,7954],
 [3,-11],[-44,-62],[-22,2],[39,-87],[-3,-35],[-18,-21],[31,-33],[34,-72],[-2,-46],[-47,5],[-25,-40],[-19,-8],[29,-39],[21,4],[6,-45],[23,-18],[25,22],[19,-82],[17,37],[32,15],[23,-20],[10,9],[27,-23],[-4,-15],[-49,-57],[-22,-6],[-76,-69],[-41,-21],[-28,-26],[-18,25],[-13,-26],[-65,-40],[-54,1],[-30,-32],[-68,-88],[-33,-27]],[[5914,8248],[26,18],[-11,27],[11,25],[33,8],[45,26],[17,25],[31,1],[141,85],[14,43],[45,37],[12,24]],[[6278,8567],[9,-4],[2,-53],[22,-22],[-22,-8],[48,-58],[15,-87],[58,39],[8,23],[18,3],[4,30],[38,-20],[18,36],[33,7],[30,-24],[34,18],[-2,29],[30,-10],[21,31],[46,25],[34,3],[1,-17],[98,8],[71,-106],[48,28],[26,34],[70,29],[26,-27],[23,11],[24,-11],[1,16],[25,42],[57,10],[12,-7],[-47,-60],[-14,-32],[29,-28],[25,-58],[6,-47],[16,-16],[18,-61],[-14,-38],[22,-25],[7,13],[35,-1],[35,18],[12,24],[19,-2]],[[5486,5564],[-20,6],[-23,-10],[-137,-108],[-7,-21],[-26,0],[-19,53],[-16,-4],[-18,20],[-30,-3],[-57,-34],[-81,-7],[-77,62],[-7,-11],[-21,30],[9,10],[-41,15],[3,58],[-
 18,-2],[-22,25],[-29,12],[-32,92],[7,15],[23,-1],[7,15],[-22,27],[-20,-7],[-33,34],[21,35]],[[651,2625],[-11,47],[-25,62],[-29,46],[0,19],[-18,57],[9,59],[-20,53],[-2,68],[-9,7],[-11,44],[0,53],[-74,44],[18,22],[-7,23],[23,6],[24,34],[16,-3],[17,21],[24,2],[-1,47],[26,35],[23,-20],[24,17],[-3,15],[21,27],[20,-3],[15,27],[16,-17],[35,10],[16,51],[23,-8],[-1,20],[28,38],[34,7],[15,44],[19,-6],[39,24],[53,53],[12,47]],[[8352,8360],[28,-40],[25,24],[14,-16],[-9,-35],[37,-32],[-4,-19],[31,-3],[5,25],[18,5],[3,-30],[38,8],[25,-8],[3,-39],[22,5],[21,-13],[-7,42],[13,16],[15,-19],[13,-61],[16,5],[6,-32],[48,-7],[12,-32],[-8,-15],[-24,0],[11,-54],[-94,-26],[-10,-10],[3,-31],[-42,-19],[10,-26],[28,-34],[34,16],[44,-20],[25,18],[64,14],[20,-28],[17,8],[60,-36],[57,-5],[6,10],[11,-37],[-18,-3],[2,-33],[-22,-18],[32,4],[-7,-81],[-35,-3],[7,-52],[19,-10],[51,3],[18,-7],[-2,-66],[12,-8],[-45,-67],[-45,-13],[4,-23],[-39,-14],[37,-7],[20,-19],[6,-44],[-73,-58],[-20,-26],[-28,-5],[-21,-18],[-20,-31],
 [-30,-13],[25,-24],[13,-34],[-49,-18],[-13,8],[-31,-39],[3,-10],[-70,-53],[-27,-7],[6,-37],[-19,-22],[-35,-2],[-29,-48],[19,-6],[-22,-24],[-68,12],[-21,-29],[-43,-33],[-7,-28],[-33,-32],[-20,24],[-15,-18],[-26,39],[-19,11],[-8,36],[-39,26],[-14,58],[-17,11],[-20,60],[-16,23],[-21,64],[-13,12],[-26,85],[-59,36],[-22,47],[72,53],[17,-3],[56,35],[48,-14],[19,12],[2,-24],[21,-2],[7,-28],[-13,-26],[20,-15],[42,4],[36,21],[8,-25],[25,25],[-10,13],[17,26],[23,-28],[18,16],[39,-17],[11,10],[30,-25],[9,-70],[21,-49],[28,13],[13,22],[26,10],[3,-12],[49,17],[32,21],[24,43],[25,-15],[-6,49],[-3,160],[-26,11],[-5,36],[14,0],[26,37],[34,25],[0,38],[18,0],[-2,21],[-33,2],[-40,16],[-46,10],[-90,-15],[-50,8],[-26,11],[-12,77],[-48,-38],[-14,18],[-41,5],[0,31],[-44,3],[-22,20],[5,39],[-24,72],[11,24],[-22,26],[-19,6],[12,56],[-16,22],[14,14],[9,42],[-6,21],[-28,-25],[-18,48],[-55,-14],[-42,26],[3,20],[-36,21],[-7,29],[7,21]],[[6278,8567],[7,11],[54,31],[69,2],[42,-9],[40,18],[20,19],[16,-16],[35,-4],
 [23,26],[10,-9],[40,26],[6,23],[31,10],[13,21],[30,15],[99,19],[28,17],[51,10],[70,68],[6,-21],[116,97],[20,53],[52,48],[35,73],[53,19],[79,-12],[44,53],[28,7],[13,40],[34,16],[72,-19],[35,10]],[[8404,9743],[137,32],[96,-8],[45,-22],[55,9],[4,-16],[38,-1],[28,11],[21,-6],[1,-21],[17,-12],[36,-2],[3,-12],[53,-41],[48,-18],[6,-26],[26,11],[11,-63],[-5,-16]],[[7591,9581],[0,31],[-18,33],[38,62],[21,59],[36,42],[-14,16],[40,14],[-19,28],[49,71],[113,32],[40,-22],[7,14],[76,38],[32,-59],[5,-18],[54,12],[10,-22],[-16,-10],[20,-59],[-14,-38],[-21,-17]]],"transform":{"scale":[0.06306588210646073,-0.048004800480047995],"translate":[164.70212240874957,490]}}


[28/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/be-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/be-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/be-municipalities.json
deleted file mode 100644
index 1f010ac..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/be-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":301,"properties":{"name":"Aarberg"},"arcs":[[[-613,873,874,-730,-598,-435]]]},{"type":"MultiPolygon","id":302,"properties":{"name":"Bargen (BE)"},"arcs":[[[-589,-588,879,880,-723,-875,-874,-612]]]},{"type":"MultiPolygon","id":303,"properties":{"name":"Grossaffoltern"},"arcs":[[[590,591,592,593,-445,-454,-437]]]},{"type":"MultiPolygon","id":304,"properties":{"name":"Kallnach"},"arcs":[[[582,583,584,585,586,587,588,589]]]},{"type":"MultiPolygon","id":305,"properties":{"name":"Kappelen"},"arcs":[[[722,723,724,725,726,727,728,-599,729]]]},{"type":"MultiPolygon","id":306,"properties":{"name":"Lyss"},"arcs":[[[597,598,599,600,601,602,-592,-591,-436]]]},{"type":"MultiPolygon","id":307,"properties":{"name":"Meikirch"},"arcs":[[[-230,-229,-440,-453,-698]]]},{"type":"MultiPolygon","id":309,"properties":{"name":"Radelfingen"},"arcs":[[[-289,610,-590,611,612,-434,-227,-226]]]},{
 "type":"MultiPolygon","id":310,"properties":{"name":"Rapperswil (BE)"},"arcs":[[[442,443,444,445,446,447,448,449,450,451]]]},{"type":"MultiPolygon","id":311,"properties":{"name":"Schüpfen"},"arcs":[[[452,-439,-438,453,-444,454,455,456,457]]]},{"type":"MultiPolygon","id":312,"properties":{"name":"Seedorf (BE)"},"arcs":[[[433,434,435,436,437,438,439,-228]]]},{"type":"MultiPolygon","id":321,"properties":{"name":"Aarwangen"},"arcs":[[[-508,773,774,775,776,777,778,-509]]]},{"type":"MultiPolygon","id":322,"properties":{"name":"Auswil"},"arcs":[[[-498,1120,1121,-341,-800]]]},{"type":"MultiPolygon","id":323,"properties":{"name":"Bannwil"},"arcs":[[[1096,1097,1098,-847,-487,1099,-776]]]},{"type":"MultiPolygon","id":324,"properties":{"name":"Bleienbach"},"arcs":[[[-694,1036,-791,-506,-1011,1037]]]},{"type":"MultiPolygon","id":325,"properties":{"name":"Busswil bei Melchnau"},"arcs":[[[-350,-1013,-1173,-503,-756]]]},{"type":"MultiPolygon","id":326,"properties":{"name":"Gondiswil"},"arcs":[[[-4
 99,799,-353,800,-754,801]]]},{"type":"MultiPolygon","id":329,"properties":{"name":"Langenthal"},"arcs":[[[501,502,503,504,505,506,507,508,509,510]]]},{"type":"MultiPolygon","id":331,"properties":{"name":"Lotzwil"},"arcs":[[[-349,347,1009,1010,-505,1011,1012]]]},{"type":"MultiPolygon","id":332,"properties":{"name":"Madiswil"},"arcs":[[[340,341,342,343,344,345,346,347,-348,348,349,350,351,352]]]},{"type":"MultiPolygon","id":333,"properties":{"name":"Melchnau"},"arcs":[[[753,754,-351,755,-502,756]]]},{"type":"MultiPolygon","id":334,"properties":{"name":"Obersteckholz"},"arcs":[[[-1012,-504,1172]]]},{"type":"MultiPolygon","id":335,"properties":{"name":"Oeschenbach"},"arcs":[[[-269,-697,-806,-805,-804,-877,-876]]]},{"type":"MultiPolygon","id":336,"properties":{"name":"Reisiswil"},"arcs":[[[-352,-755,-801]]]},{"type":"MultiPolygon","id":337,"properties":{"name":"Roggwil (BE)"},"arcs":[[[-510,-509,508,-779,881,882]]]},{"type":"MultiPolygon","id":338,"properties":{"name":"Rohrbach"},"arcs":
 [[[-1003,-343,-342,-1122,-1121,-497]]]},{"type":"MultiPolygon","id":339,"properties":{"name":"Rohrbachgraben"},"arcs":[[[-630,-879,-878,-807,-344,1002,-496]]]},{"type":"MultiPolygon","id":340,"properties":{"name":"Rütschelen"},"arcs":[[[-695,-1038,-1010,-348,-347]]]},{"type":"MultiPolygon","id":341,"properties":{"name":"Schwarzhäusern"},"arcs":[[[-777,-1100,-492,1185,-1078]]]},{"type":"MultiPolygon","id":342,"properties":{"name":"Thunstetten"},"arcs":[[[-507,790,791,-787,792,-774]]]},{"type":"MultiPolygon","id":344,"properties":{"name":"Ursenbach"},"arcs":[[[802,803,804,805,-696,-345,806]]]},{"type":"MultiPolygon","id":345,"properties":{"name":"Wynau"},"arcs":[[[-778,1077,1078,-882]]]},{"type":"MultiPolygon","id":351,"properties":{"name":"Bern"},"arcs":[[[112,113,114,115,116,117,118,119,120,121,122]]]},{"type":"MultiPolygon","id":352,"properties":{"name":"Bolligen"},"arcs":[[[534,535,536,537,-469,-468,-300,538,539]]]},{"type":"MultiPolygon","id":353,"properties":{"name":"Bremgarte
 n bei Bern"},"arcs":[[[-702,-1069,-118]]]},{"type":"MultiPolygon","id":354,"properties":{"name":"Kirchlindach"},"arcs":[[[-232,-231,697,-458,698,699,700,701,-117]]]},{"type":"MultiPolygon","id":355,"properties":{"name":"Köniz"},"arcs":[[[131,132,133,-123,134,135,136,137,138,139]]]},{"type":"MultiPolygon","id":356,"properties":{"name":"Muri bei Bern"},"arcs":[[[-135,-122,909,910,-298,-297,-427,911,-333,912]]]},{"type":"MultiPolygon","id":357,"properties":{"name":"Oberbalm"},"arcs":[[[-157,-140,-139,-138,-652,650,683,-238]]]},{"type":"MultiPolygon","id":358,"properties":{"name":"Stettlen"},"arcs":[[[-1029,-539,-299,-911]]]},{"type":"MultiPolygon","id":359,"properties":{"name":"Vechigen"},"arcs":[[[295,296,297,298,299,300,301,302,303]]]},{"type":"MultiPolygon","id":360,"properties":{"name":"Wohlen bei Bern"},"arcs":[[[224,225,226,227,228,229,230,231,-116,232]]]},{"type":"MultiPolygon","id":361,"properties":{"name":"Zollikofen"},"arcs":[[[-119,1068,-701,-834,1069]]]},{"type":"MultiPoly
 gon","id":362,"properties":{"name":"Ittigen"},"arcs":[[[-120,-1070,-839,-535,-1028]]]},{"type":"MultiPolygon","id":363,"properties":{"name":"Ostermundigen"},"arcs":[[[-121,1027,-540,1028,-910]]]},{"type":"MultiPolygon","id":371,"properties":{"name":"Biel/Bienne"},"arcs":[[[394,395,396,-199,397,398,399,400,401,402,403,404,405]]]},{"type":"MultiPolygon","id":372,"properties":{"name":"Evilard"},"arcs":[[[-722,-813,-407,-399]]]},{"type":"MultiPolygon","id":381,"properties":{"name":"Arch"},"arcs":[[[1004,-747,1005,-1001]]]},{"type":"MultiPolygon","id":382,"properties":{"name":"Büetigen"},"arcs":[[[-602,1192,-1166,-1151,-1007]]]},{"type":"MultiPolygon","id":383,"properties":{"name":"Büren an der Aare"},"arcs":[[[673,674,675,676,677,678,679,680,681,682]]]},{"type":"MultiPolygon","id":385,"properties":{"name":"Diessbach bei Büren"},"arcs":[[[-603,1006,1007,-683,1008,-941,-593]]]},{"type":"MultiPolygon","id":386,"properties":{"name":"Dotzigen"},"arcs":[[[1150,1151,1152,-674,-1008]]]},{"ty
 pe":"MultiPolygon","id":387,"properties":{"name":"Lengnau (BE)"},"arcs":[[[928,929,-860,930,931,-678]]]},{"type":"MultiPolygon","id":388,"properties":{"name":"Leuzigen"},"arcs":[[[746,747]]]},{"type":"MultiPolygon","id":389,"properties":{"name":"Meienried"},"arcs":[[[-1165,-1265,-1043,-675,-1153]]]},{"type":"MultiPolygon","id":390,"properties":{"name":"Meinisberg"},"arcs":[[[-1046,-861,-930,-929,-677]]]},{"type":"MultiPolygon","id":391,"properties":{"name":"Oberwil bei Büren"},"arcs":[[[-681,978,979]]]},{"type":"MultiPolygon","id":392,"properties":{"name":"Pieterlen"},"arcs":[[[856,-402,857,858,859,860]]]},{"type":"MultiPolygon","id":393,"properties":{"name":"Rüti bei Büren"},"arcs":[[[-680,999,1000,1001,-979]]]},{"type":"MultiPolygon","id":394,"properties":{"name":"Wengi"},"arcs":[[[940,941,-447,-446,-594]]]},{"type":"MultiPolygon","id":401,"properties":{"name":"Aefligen"},"arcs":[[[-1248,-903,-759,-522]]]},{"type":"MultiPolygon","id":402,"properties":{"name":"Alchenstorf"},"arc
 s":[[[990,991,-962,992,993,994,-544,-266]]]},{"type":"MultiPolygon","id":403,"properties":{"name":"Bäriswil"},"arcs":[[[-471,-1188,-973]]]},{"type":"MultiPolygon","id":404,"properties":{"name":"Burgdorf"},"arcs":[[[-384,563,-474,564,565,566,567,568,569,-263,-361]]]},{"type":"MultiPolygon","id":405,"properties":{"name":"Ersigen"},"arcs":[[[-821,-529,842,843]]]},{"type":"MultiPolygon","id":406,"properties":{"name":"Hasle bei Burgdorf"},"arcs":[[[377,378,379,-303,380,381,382,383,-360,384,385]]]},{"type":"MultiPolygon","id":407,"properties":{"name":"Heimiswil"},"arcs":[[[359,360,-262,361,362]],[[-272,-713]]]},{"type":"MultiPolygon","id":408,"properties":{"name":"Hellsau"},"arcs":[[[-995,-1252,1269,-545]]]},{"type":"MultiPolygon","id":409,"properties":{"name":"Hindelbank"},"arcs":[[[-472,972,973,974,975,976,977]]]},{"type":"MultiPolygon","id":410,"properties":{"name":"Höchstetten"},"arcs":[[[-961,1249,1250,1251,-994,-993]]]},{"type":"MultiPolygon","id":411,"properties":{"name":"Kernenr
 ied"},"arcs":[[[-976,1225,-1190,-897,-1023]]]},{"type":"MultiPolygon","id":412,"properties":{"name":"Kirchberg (BE)"},"arcs":[[[-570,818,819,-530,820,821,-264]]]},{"type":"MultiPolygon","id":413,"properties":{"name":"Koppigen"},"arcs":[[[956,-526,957,958,959,960,961]]]},{"type":"MultiPolygon","id":414,"properties":{"name":"Krauchthal"},"arcs":[[[464,465,466,-301,467,468,469,470,471,472,473]]]},{"type":"MultiPolygon","id":415,"properties":{"name":"Lyssach"},"arcs":[[[-569,1020,1021,-977,1022,-896,1023,-819]]]},{"type":"MultiPolygon","id":416,"properties":{"name":"Mötschwil"},"arcs":[[[-473,-978,-1022,1235,-565]]]},{"type":"MultiPolygon","id":417,"properties":{"name":"Niederösch"},"arcs":[[[1125,1126,1127,-527,-957,-992]]]},{"type":"MultiPolygon","id":418,"properties":{"name":"Oberburg"},"arcs":[[[-383,703,-465,-564]],[[-302,-467,-1259,-381]],[[-1273,-567]]]},{"type":"MultiPolygon","id":419,"properties":{"name":"Oberösch"},"arcs":[[[-843,-528,-1128,-1258]]]},{"type":"MultiPolygon",
 "id":420,"properties":{"name":"Rüdtligen-Alchenflüh"},"arcs":[[[-1024,-904,1247,-820]]]},{"type":"MultiPolygon","id":421,"properties":{"name":"Rumendingen"},"arcs":[[[-822,-844,1257,-1127,-1126,-991,-265]]]},{"type":"MultiPolygon","id":422,"properties":{"name":"Rüti bei Lyssach"},"arcs":[[[-1236,-1021,-568,1272,-566]]]},{"type":"MultiPolygon","id":423,"properties":{"name":"Willadingen"},"arcs":[[[-960,1262,-1250]]]},{"type":"MultiPolygon","id":424,"properties":{"name":"Wynigen"},"arcs":[[[261,262,263,264,265,266,267,268,269,270,271,272]]]},{"type":"MultiPolygon","id":431,"properties":{"name":"Corgémont"},"arcs":[[[-279,482,483,-305,484,485,-409]]]},{"type":"MultiPolygon","id":432,"properties":{"name":"Cormoret"},"arcs":[[[-543,642,-356,-276]]]},{"type":"MultiPolygon","id":433,"properties":{"name":"Cortébert"},"arcs":[[[-278,-359,609,-483]]]},{"type":"MultiPolygon","id":434,"properties":{"name":"Courtelary"},"arcs":[[[355,356,357,358,-277]]]},{"type":"MultiPolygon","id":435,"pro
 perties":{"name":"La Ferrière"},"arcs":[[[624,625,-326]]]},{"type":"MultiPolygon","id":436,"properties":{"name":"La Heutte"},"arcs":[[[-411,-597,-609,-862,-551]]]},{"type":"MultiPolygon","id":437,"properties":{"name":"Mont-Tramelan"},"arcs":[[[-610,-358,1149,-306,-484]],[[-604,-309,-633]]]},{"type":"MultiPolygon","id":438,"properties":{"name":"Orvin"},"arcs":[[[-400,406,407,-280,408,409,410,411,412]]]},{"type":"MultiPolygon","id":439,"properties":{"name":"Péry"},"arcs":[[[-412,550,551,552,553,554,555,556,557]]]},{"type":"MultiPolygon","id":440,"properties":{"name":"Plagne"},"arcs":[[[926,-557,927]]]},{"type":"MultiPolygon","id":441,"properties":{"name":"Renan (BE)"},"arcs":[[[672,-625,-325]]]},{"type":"MultiPolygon","id":442,"properties":{"name":"Romont (BE)"},"arcs":[[[-931,-859,943,-928,-556,944,-311,945]]]},{"type":"MultiPolygon","id":443,"properties":{"name":"Saint-Imier"},"arcs":[[[430,-328,431,432]]]},{"type":"MultiPolygon","id":444,"properties":{"name":"Sonceboz-Sombeval"},
 "arcs":[[[-410,-486,595,596]]]},{"type":"MultiPolygon","id":445,"properties":{"name":"Sonvilier"},"arcs":[[[323,324,325,326,327]]]},{"type":"MultiPolygon","id":446,"properties":{"name":"Tramelan"},"arcs":[[[304,305,306,307,308,309]]]},{"type":"MultiPolygon","id":447,"properties":{"name":"Vauffelin"},"arcs":[[[-401,-413,-558,-927,-944,-858]]]},{"type":"MultiPolygon","id":448,"properties":{"name":"Villeret"},"arcs":[[[540,-433,541,542,-275]]]},{"type":"MultiPolygon","id":491,"properties":{"name":"Brüttelen"},"arcs":[[[984,-322,985,986,987]]]},{"type":"MultiPolygon","id":492,"properties":{"name":"Erlach"},"arcs":[[[-320,1200,-870,-179,1201,-177,-1092]],[[-872,-1227]]]},{"type":"MultiPolygon","id":493,"properties":{"name":"Finsterhennen"},"arcs":[[[-586,-1101,-987,-1057,-1052]]]},{"type":"MultiPolygon","id":494,"properties":{"name":"Gals"},"arcs":[[[-663,868,-180,869,870,871,872]]]},{"type":"MultiPolygon","id":495,"properties":{"name":"Gampelen"},"arcs":[[[661,662,663,-318]]]},{"type":
 "MultiPolygon","id":496,"properties":{"name":"Ins"},"arcs":[[[316,317,318,319,320,321,322]]]},{"type":"MultiPolygon","id":497,"properties":{"name":"Lüscherz"},"arcs":[[[1056,-986,1057,-175,-174,1058,-1053]]]},{"type":"MultiPolygon","id":498,"properties":{"name":"Müntschemier"},"arcs":[[[-323,-985,1094,1095]]]},{"type":"MultiPolygon","id":499,"properties":{"name":"Siselen"},"arcs":[[[-587,1051,1052,1053,-951,-880]]]},{"type":"MultiPolygon","id":500,"properties":{"name":"Treiten"},"arcs":[[[-1095,-988,1100,-585,1101]]]},{"type":"MultiPolygon","id":501,"properties":{"name":"Tschugg"},"arcs":[[[-664,-873,1226,-871,-1201,-319]]]},{"type":"MultiPolygon","id":502,"properties":{"name":"Vinelz"},"arcs":[[[-321,1091,-176,-1058]]]},{"type":"MultiPolygon","id":532,"properties":{"name":"Bangerten"},"arcs":[[[-450,1260,-1082,-1206]]]},{"type":"MultiPolygon","id":533,"properties":{"name":"Bätterkinden"},"arcs":[[[758,759,760,761,762,763,764,-523]]]},{"type":"MultiPolygon","id":534,"properties":
 {"name":"Büren zum Hof"},"arcs":[[[-901,1217,-1179,-1142,1218]]]},{"type":"MultiPolygon","id":535,"properties":{"name":"Deisswil bei Münchenbuchsee"},"arcs":[[[-836,-452,-1207,-823,1263]]]},{"type":"MultiPolygon","id":536,"properties":{"name":"Diemerswil"},"arcs":[[[-457,-456,-835,-699]]]},{"type":"MultiPolygon","id":537,"properties":{"name":"Etzelkofen"},"arcs":[[[-1108,-1086,-1085,1240,1241,-1177,-1218,-900]]]},{"type":"MultiPolygon","id":538,"properties":{"name":"Fraubrunnen"},"arcs":[[[895,896,897,898,899,900,901,-760,902,903]]]},{"type":"MultiPolygon","id":539,"properties":{"name":"Grafenried"},"arcs":[[[1106,-827,-1087,1107,-899]]]},{"type":"MultiPolygon","id":540,"properties":{"name":"Jegenstorf"},"arcs":[[[822,823,824,825,826,827,828,829,830,831,832]]]},{"type":"MultiPolygon","id":541,"properties":{"name":"Iffwil"},"arcs":[[[1079,1080,1081,1082,1083,1084,1085,1086,-826,-825]]]},{"type":"MultiPolygon","id":542,"properties":{"name":"Limpach"},"arcs":[[[1140,1141,1142,1143,-7
 62]]]},{"type":"MultiPolygon","id":543,"properties":{"name":"Mattstetten"},"arcs":[[[-938,-831,1186,-974,1187,-470,-538]]]},{"type":"MultiPolygon","id":544,"properties":{"name":"Moosseedorf"},"arcs":[[[-838,1003,-936,-536]]]},{"type":"MultiPolygon","id":545,"properties":{"name":"Mülchi"},"arcs":[[[1176,1177,-1143,1178]]]},{"type":"MultiPolygon","id":546,"properties":{"name":"Münchenbuchsee"},"arcs":[[[833,-700,834,-455,-443,835,836,837,838]]]},{"type":"MultiPolygon","id":547,"properties":{"name":"Münchringen"},"arcs":[[[-830,-1191,-1226,-975,-1187]]]},{"type":"MultiPolygon","id":549,"properties":{"name":"Schalunen"},"arcs":[[[-902,-1219,-1141,-761]]]},{"type":"MultiPolygon","id":550,"properties":{"name":"Scheunen"},"arcs":[[[-449,1261,-1241,-1084,-1083,-1261]]]},{"type":"MultiPolygon","id":551,"properties":{"name":"Urtenen-Schönbühl"},"arcs":[[[935,936,-832,937,-537]]]},{"type":"MultiPolygon","id":552,"properties":{"name":"Utzenstorf"},"arcs":[[[521,522,523,524,525,526,527,528,
 529]]]},{"type":"MultiPolygon","id":553,"properties":{"name":"Wiggiswil"},"arcs":[[[-837,-1264,-833,-937,-1004]]]},{"type":"MultiPolygon","id":554,"properties":{"name":"Wiler bei Utzenstorf"},"arcs":[[[-765,1174,1175,-524]]]},{"type":"MultiPolygon","id":555,"properties":{"name":"Zauggenried"},"arcs":[[[1189,1190,-829,-828,-1107,-898]]]},{"type":"MultiPolygon","id":556,"properties":{"name":"Zielebach"},"arcs":[[[-764,1266,1267,-958,-525,-1176,-1175]]]},{"type":"MultiPolygon","id":557,"properties":{"name":"Zuzwil (BE)"},"arcs":[[[-451,1205,-1081,-1080,-824,1206]]]},{"type":"MultiPolygon","id":561,"properties":{"name":"Adelboden"},"arcs":[[[-22,59,-45,60,-27,61]]]},{"type":"MultiPolygon","id":562,"properties":{"name":"Aeschi bei Spiez"},"arcs":[[[-40,243,244,245,246,247,-16]]]},{"type":"MultiPolygon","id":563,"properties":{"name":"Frutigen"},"arcs":[[[-23,-62,-26,-38,66]]]},{"type":"MultiPolygon","id":564,"properties":{"name":"Kandergrund"},"arcs":[[[-24,-67,-37]]]},{"type":"MultiPolyg
 on","id":565,"properties":{"name":"Kandersteg"},"arcs":[[[20,21,22,23,24,-14]]]},{"type":"MultiPolygon","id":566,"properties":{"name":"Krattigen"},"arcs":[[[-481,-480,-160,-731,-246]]]},{"type":"MultiPolygon","id":567,"properties":{"name":"Reichenbach im Kandertal"},"arcs":[[[-25,36,37,-36,38,39,-15]]]},{"type":"MultiPolygon","id":571,"properties":{"name":"Beatenberg"},"arcs":[[[-165,-108,258,259,-127,260]]]},{"type":"MultiPolygon","id":572,"properties":{"name":"Bönigen"},"arcs":[[[-533,558,559,560,561,562,-292,-331]]]},{"type":"MultiPolygon","id":573,"properties":{"name":"Brienz (BE)"},"arcs":[[[-10,-9,140,141,142,143,144,145,146,147,148]]]},{"type":"MultiPolygon","id":574,"properties":{"name":"Brienzwiler"},"arcs":[[[-149,-170]],[[-147,-842,913,-171]]]},{"type":"MultiPolygon","id":575,"properties":{"name":"Därligen"},"arcs":[[[-476,-732,-167,-623,932,933,-639]]]},{"type":"MultiPolygon","id":576,"properties":{"name":"Grindelwald"},"arcs":[[[4,5,6,7,8,9,10,11,-1]]]},{"type":"Multi
 Polygon","id":577,"properties":{"name":"Gsteigwiler"},"arcs":[[[-642,946,-559,-532]]]},{"type":"MultiPolygon","id":578,"properties":{"name":"Gündlischwand"},"arcs":[[[-19,530,531,532,-330,533]]]},{"type":"MultiPolygon","id":579,"properties":{"name":"Habkern"},"arcs":[[[123,124,125,126,127,128,129,130]]]},{"type":"MultiPolygon","id":580,"properties":{"name":"Hofstetten bei Brienz"},"arcs":[[[-146,839,840,841]]]},{"type":"MultiPolygon","id":581,"properties":{"name":"Interlaken"},"arcs":[[[-563,1148,-933,-622,-817]]]},{"type":"MultiPolygon","id":582,"properties":{"name":"Iseltwald"},"arcs":[[[328,329,330,-291,-141,-8]]]},{"type":"MultiPolygon","id":584,"properties":{"name":"Lauterbrunnen"},"arcs":[[[12,13,14,15,16,17,18,19,-6]]]},{"type":"MultiPolygon","id":585,"properties":{"name":"Leissigen"},"arcs":[[[-247,730,-159,731,-475]]]},{"type":"MultiPolygon","id":586,"properties":{"name":"Lütschental"},"arcs":[[[-20,-534,-329,-7]]]},{"type":"MultiPolygon","id":587,"properties":{"name":"Ma
 tten bei Interlaken"},"arcs":[[[-934,-1149,-562,-640]],[[-641,-560,-947]]]},{"type":"MultiPolygon","id":588,"properties":{"name":"Niederried bei Interlaken"},"arcs":[[[-294,-818,-124,-441]]]},{"type":"MultiPolygon","id":589,"properties":{"name":"Oberried am Brienzersee"},"arcs":[[[-295,440,-131,441,-143]]]},{"type":"MultiPolygon","id":590,"properties":{"name":"Ringgenberg (BE)"},"arcs":[[[816,-624,-125,817,-293]]]},{"type":"MultiPolygon","id":591,"properties":{"name":"Saxeten"},"arcs":[[[-17,-248,474,475,476]]]},{"type":"MultiPolygon","id":592,"properties":{"name":"Schwanden bei Brienz"},"arcs":[[[-145,942,-840]]]},{"type":"MultiPolygon","id":593,"properties":{"name":"Unterseen"},"arcs":[[[621,622,-166,-261,-126,623]]]},{"type":"MultiPolygon","id":594,"properties":{"name":"Wilderswil"},"arcs":[[[-18,-477,638,639,-561,640,641,-531]]]},{"type":"MultiPolygon","id":602,"properties":{"name":"Arni (BE)"},"arcs":[[[-743,743,744,-512,745,-415]]]},{"type":"MultiPolygon","id":603,"properties"
 :{"name":"Biglen"},"arcs":[[[1196,1197,-430,-513,-745]]]},{"type":"MultiPolygon","id":604,"properties":{"name":"Bleiken bei Oberdiessbach"},"arcs":[[[-983,1213,1214,-657,-580]]]},{"type":"MultiPolygon","id":605,"properties":{"name":"Bowil"},"arcs":[[[-215,-214,613,614,615,616,-375]]]},{"type":"MultiPolygon","id":606,"properties":{"name":"Brenzikofen"},"arcs":[[[-1064,-1063,-1221,-1245,-1214,-982]]]},{"type":"MultiPolygon","id":607,"properties":{"name":"Freimettigen"},"arcs":[[[-661,-1235,-672,-1065,-654]]]},{"type":"MultiPolygon","id":608,"properties":{"name":"Grosshöchstetten"},"arcs":[[[-1068,1207,-669,1208,-1197,-744,-742]]]},{"type":"MultiPolygon","id":609,"properties":{"name":"Häutligen"},"arcs":[[[-660,-709,-1192,-665,1234]]]},{"type":"MultiPolygon","id":610,"properties":{"name":"Herbligen"},"arcs":[[[-1215,1244,-1220,-710,-658]]]},{"type":"MultiPolygon","id":611,"properties":{"name":"Kiesen"},"arcs":[[[1113,1114,-712,1115,-1061]]]},{"type":"MultiPolygon","id":612,"propertie
 s":{"name":"Konolfingen"},"arcs":[[[664,665,666,667,668,669,670,671]]]},{"type":"MultiPolygon","id":613,"properties":{"name":"Landiswil"},"arcs":[[[-746,-517,757,-518,-416]]]},{"type":"MultiPolygon","id":614,"properties":{"name":"Linden"},"arcs":[[[-582,652,653,654,655,-614,-213]]]},{"type":"MultiPolygon","id":615,"properties":{"name":"Mirchel"},"arcs":[[[-1066,-670,-1208,-1067,-1026]]]},{"type":"MultiPolygon","id":616,"properties":{"name":"Münsingen"},"arcs":[[[-336,684,685,-424,686,-667,687,688,689]]]},{"type":"MultiPolygon","id":617,"properties":{"name":"Niederhünigen"},"arcs":[[[-655,1064,-671,1065,-1025]]]},{"type":"MultiPolygon","id":619,"properties":{"name":"Oberdiessbach"},"arcs":[[[-581,656,657,658,659,660,-653]]]},{"type":"MultiPolygon","id":620,"properties":{"name":"Oberthal"},"arcs":[[[-617,740,741,742,-414,-376]]]},{"type":"MultiPolygon","id":622,"properties":{"name":"Oppligen"},"arcs":[[[-1116,-711,1219,1220,-1062]]]},{"type":"MultiPolygon","id":623,"properties":{"na
 me":"Rubigen"},"arcs":[[[962,-425,-686,-685,-335]]]},{"type":"MultiPolygon","id":624,"properties":{"name":"Schlosswil"},"arcs":[[[-668,-687,-423,-1198,-1209]]]},{"type":"MultiPolygon","id":625,"properties":{"name":"Tägertschi"},"arcs":[[[-708,-688,-666,1191]]]},{"type":"MultiPolygon","id":626,"properties":{"name":"Walkringen"},"arcs":[[[511,512,-429,-428,-304,-380,513,514,-515,514,515,516]]]},{"type":"MultiPolygon","id":627,"properties":{"name":"Worb"},"arcs":[[[422,423,424,425,426,-296,427,428,429]]]},{"type":"MultiPolygon","id":628,"properties":{"name":"Zäziwil"},"arcs":[[[-616,-1027,1066,1067,-741]]]},{"type":"MultiPolygon","id":629,"properties":{"name":"Oberhünigen"},"arcs":[[[-656,1024,1025,1026,-615]]]},{"type":"MultiPolygon","id":630,"properties":{"name":"Allmendingen"},"arcs":[[[-912,-426,-963,-334]]]},{"type":"MultiPolygon","id":632,"properties":{"name":"Wichtrach"},"arcs":[[[704,705,706,-689,707,708,-659,709,710,711]]]},{"type":"MultiPolygon","id":661,"properties":{"nam
 e":"Clavaleyres"},"arcs":[[[1274]]]},{"type":"MultiPolygon","id":662,"properties":{"name":"Ferenbalm"},"arcs":[[[883,884,885,886,887,888,889,-890,889,890,891,-286]],[[-1104,1271,-1168]]]},{"type":"MultiPolygon","id":663,"properties":{"name":"Frauenkappelen"},"arcs":[[[-290,-233,-115]]]},{"type":"MultiPolygon","id":664,"properties":{"name":"Golaten"},"arcs":[[[-1160,1243,-583,-611,-288]]]},{"type":"MultiPolygon","id":665,"properties":{"name":"Gurbrü"},"arcs":[[[-888,1268,-1158,-1157]]]},{"type":"MultiPolygon","id":666,"properties":{"name":"Kriechenwil"},"arcs":[[[-886,1102,1103,1104,1105]]]},{"type":"MultiPolygon","id":667,"properties":{"name":"Laupen"},"arcs":[[[1166,-1105,1167,1168,-884,-285,-388]]]},{"type":"MultiPolygon","id":668,"properties":{"name":"Mühleberg"},"arcs":[[[283,284,285,286,287,288,-225,289,-114]]]},{"type":"MultiPolygon","id":669,"properties":{"name":"Münchenwiler"},"arcs":[[[1252]]]},{"type":"MultiPolygon","id":670,"properties":{"name":"Neuenegg"},"arcs":[[[38
 6,387,-284,-113,-134]]]},{"type":"MultiPolygon","id":671,"properties":{"name":"Wileroltigen"},"arcs":[[[-892,-891,-890,889,-890,-889,1156,1157,1158,1159,-287]]]},{"type":"MultiPolygon","id":681,"properties":{"name":"Belprahon"},"arcs":[[[-463,-816,-866,-989]]]},{"type":"MultiPolygon","id":682,"properties":{"name":"Bévilard"},"arcs":[[[-554,-753,-940,-964]]]},{"type":"MultiPolygon","id":683,"properties":{"name":"Champoz"},"arcs":[[[938,939,-752,-740,-845,-459,-313]]]},{"type":"MultiPolygon","id":684,"properties":{"name":"Châtelat"},"arcs":[[[-635,1153,1154,1155,-1040]]]},{"type":"MultiPolygon","id":687,"properties":{"name":"Corcelles (BE)"},"arcs":[[[968,-798,969,-854]]]},{"type":"MultiPolygon","id":690,"properties":{"name":"Court"},"arcs":[[[310,311,312,313,314,315]]]},{"type":"MultiPolygon","id":691,"properties":{"name":"Crémines"},"arcs":[[[795,796,797,798]]]},{"type":"MultiPolygon","id":692,"properties":{"name":"Eschert"},"arcs":[[[-315,-464,988,-865,989]]]},{"type":"MultiPoly
 gon","id":694,"properties":{"name":"Grandval"},"arcs":[[[864,865,-815,866,-796,867]]]},{"type":"MultiPolygon","id":696,"properties":{"name":"Loveresse"},"arcs":[[[-864,1111,-735,1112,-750]]]},{"type":"MultiPolygon","id":697,"properties":{"name":"Malleray"},"arcs":[[[-553,748,749,750,-733,751,752]]]},{"type":"MultiPolygon","id":699,"properties":{"name":"Monible"},"arcs":[[[-1041,-1156,-1199,1224]]]},{"type":"MultiPolygon","id":700,"properties":{"name":"Moutier"},"arcs":[[[458,459,460,461,462,463,-314]]]},{"type":"MultiPolygon","id":701,"properties":{"name":"Perrefitte"},"arcs":[[[844,-739,845,-460]]]},{"type":"MultiPolygon","id":702,"properties":{"name":"Pontenet"},"arcs":[[[-751,-1113,-734]]]},{"type":"MultiPolygon","id":703,"properties":{"name":"Reconvilier"},"arcs":[[[861,-608,-607,-606,-638,862,863,-749,-552]]]},{"type":"MultiPolygon","id":704,"properties":{"name":"Roches (BE)"},"arcs":[[[-462,813,814,815]]]},{"type":"MultiPolygon","id":706,"properties":{"name":"Saicourt"},"arcs"
 :[[[-605,632,-308,633,634,635,636,637]]]},{"type":"MultiPolygon","id":707,"properties":{"name":"Saules (BE)"},"arcs":[[[-637,-1039,-736,-1112,-863]]]},{"type":"MultiPolygon","id":708,"properties":{"name":"Schelten"},"arcs":[[[1046]]]},{"type":"MultiPolygon","id":709,"properties":{"name":"Seehof"},"arcs":[[[853,854,855]]]},{"type":"MultiPolygon","id":710,"properties":{"name":"Sornetan"},"arcs":[[[-737,1038,-636,1039,1040,1041]]]},{"type":"MultiPolygon","id":711,"properties":{"name":"Sorvilier"},"arcs":[[[-945,-555,963,-939,-312]]]},{"type":"MultiPolygon","id":712,"properties":{"name":"Souboz"},"arcs":[[[732,733,734,735,736,737,738,739]]]},{"type":"MultiPolygon","id":713,"properties":{"name":"Tavannes"},"arcs":[[[-596,-485,-310,603,604,605,606,607,608]]]},{"type":"MultiPolygon","id":715,"properties":{"name":"Rebévelier"},"arcs":[[[1198,-1155,1199]]]},{"type":"MultiPolygon","id":721,"properties":{"name":"Diesse"},"arcs":[[[-282,793,794]]]},{"type":"MultiPolygon","id":722,"properties":
 {"name":"Lamboing"},"arcs":[[[-721,811,-794,-281,-408,812]]]},{"type":"MultiPolygon","id":723,"properties":{"name":"La Neuveville"},"arcs":[[[970,-950,971,-184,-183,-182]]]},{"type":"MultiPolygon","id":724,"properties":{"name":"Nods"},"arcs":[[[273,274,275,276,277,278,279,280,281,282]]]},{"type":"MultiPolygon","id":725,"properties":{"name":"Prêles"},"arcs":[[[947,-283,-795,-812,-720,948,949]]]},{"type":"MultiPolygon","id":731,"properties":{"name":"Aegerten"},"arcs":[[[-1132,-1256,-1091,-1162,-1247]]]},{"type":"MultiPolygon","id":732,"properties":{"name":"Bellmund"},"arcs":[[[1179,1180,1181,1182,1183,1184,-1130]]]},{"type":"MultiPolygon","id":733,"properties":{"name":"Brügg"},"arcs":[[[1087,-406,-405,1088,1089,1090]]]},{"type":"MultiPolygon","id":734,"properties":{"name":"Bühl"},"arcs":[[[-956,-955,-1217,-1210,-725]]]},{"type":"MultiPolygon","id":735,"properties":{"name":"Epsach"},"arcs":[[[-954,-1148,-1147,1215,-1211,1216]]]},{"type":"MultiPolygon","id":736,"properties":{"name":"
 Hagneck"},"arcs":[[[-1054,-1059,-207,-1145,-952]]]},{"type":"MultiPolygon","id":737,"properties":{"name":"Hermrigen"},"arcs":[[[1209,1210,1211,-1195,-1181,1212,-726]]]},{"type":"MultiPolygon","id":738,"properties":{"name":"Jens"},"arcs":[[[-728,1128,1129,1130,1131,1132,1133]]]},{"type":"MultiPolygon","id":739,"properties":{"name":"Ipsach"},"arcs":[[[-1184,-1194,-201,1265,-1254]]]},{"type":"MultiPolygon","id":740,"properties":{"name":"Ligerz"},"arcs":[[[183,-972,-949,-719,-187,-186,-185,-184]]]},{"type":"MultiPolygon","id":741,"properties":{"name":"Merzligen"},"arcs":[[[-727,-1213,-1180,-1129]]]},{"type":"MultiPolygon","id":742,"properties":{"name":"Mörigen"},"arcs":[[[-205,-1196,-1212,-1216,-1146]]]},{"type":"MultiPolygon","id":743,"properties":{"name":"Nidau"},"arcs":[[[-1266,-200,-397,-396,-1255]]]},{"type":"MultiPolygon","id":744,"properties":{"name":"Orpund"},"arcs":[[[-1089,-404,-1045,1169,-1163]]]},{"type":"MultiPolygon","id":745,"properties":{"name":"Port"},"arcs":[[[-1185,1
 253,1254,-395,-1088,1255,-1131]]]},{"type":"MultiPolygon","id":746,"properties":{"name":"Safnern"},"arcs":[[[1042,1043,1044,-403,-857,1045,-676]]]},{"type":"MultiPolygon","id":747,"properties":{"name":"Scheuren"},"arcs":[[[-1164,-1170,-1044,1264]]]},{"type":"MultiPolygon","id":748,"properties":{"name":"Schwadernau"},"arcs":[[[1160,1161,-1090,1162,1163,1164,-1152,1165]]]},{"type":"MultiPolygon","id":749,"properties":{"name":"Studen (BE)"},"arcs":[[[-1246,-1133,1246,-1161,-1193,-601]]]},{"type":"MultiPolygon","id":750,"properties":{"name":"Sutz-Lattrigen"},"arcs":[[[-204,-203,-202,1193,-1183,-1182,1194,1195]]]},{"type":"MultiPolygon","id":751,"properties":{"name":"Täuffelen"},"arcs":[[[1144,-206,1145,1146,1147,-953]]]},{"type":"MultiPolygon","id":754,"properties":{"name":"Walperswil"},"arcs":[[[950,951,952,953,954,955,-724,-881]]]},{"type":"MultiPolygon","id":755,"properties":{"name":"Worben"},"arcs":[[[-729,-1134,1245,-600]]]},{"type":"MultiPolygon","id":756,"properties":{"name":"Tw
 ann-Tüscherz"},"arcs":[[[-198,-197,-196,-195,-194,-193,-192,-191,190,-191,-190,-189,-188,718,719,720,721,-398]],[[-1202,-178]]]},{"type":"MultiPolygon","id":761,"properties":{"name":"Därstetten"},"arcs":[[[-32,-155,-102,233,234,235,236,-218]]]},{"type":"MultiPolygon","id":762,"properties":{"name":"Diemtigen"},"arcs":[[[25,26,27,28,29,30,31,32,33,34,35]]]},{"type":"MultiPolygon","id":763,"properties":{"name":"Erlenbach im Simmental"},"arcs":[[[-34,-33,217,218,219,220,221]]]},{"type":"MultiPolygon","id":764,"properties":{"name":"Niederstocken"},"arcs":[[[-220,1054,1055,-716]]]},{"type":"MultiPolygon","id":765,"properties":{"name":"Oberstocken"},"arcs":[[[-237,-782,-1123,-1055,-219]]]},{"type":"MultiPolygon","id":766,"properties":{"name":"Oberwil im Simmental"},"arcs":[[[-31,-65,153,-109,-96,154]]]},{"type":"MultiPolygon","id":767,"properties":{"name":"Reutigen"},"arcs":[[[-354,-221,715,716,717,-478]]]},{"type":"MultiPolygon","id":768,"properties":{"name":"Spiez"},"arcs":[[[-355,477,
 478,-374,-161,479,480,-245]]]},{"type":"MultiPolygon","id":769,"properties":{"name":"Wimmis"},"arcs":[[[-39,-35,-222,353,354,-244]]]},{"type":"MultiPolygon","id":781,"properties":{"name":"Gadmen"},"arcs":[[[-3,-58,-57,-56,58]]]},{"type":"MultiPolygon","id":782,"properties":{"name":"Guttannen"},"arcs":[[[0,1,2,3]]]},{"type":"MultiPolygon","id":783,"properties":{"name":"Hasliberg"},"arcs":[[[167,168,-54]]]},{"type":"MultiPolygon","id":784,"properties":{"name":"Innertkirchen"},"arcs":[[[-2,-12,51,52,53,54,55,56,57]]]},{"type":"MultiPolygon","id":785,"properties":{"name":"Meiringen"},"arcs":[[[-11,169,-148,170,171,-168,-53,172]]]},{"type":"MultiPolygon","id":786,"properties":{"name":"Schattenhalb"},"arcs":[[[-173,-52]]]},{"type":"MultiPolygon","id":791,"properties":{"name":"Boltigen"},"arcs":[[[62,-49,63,64,-30]]]},{"type":"MultiPolygon","id":792,"properties":{"name":"Lenk"},"arcs":[[[40,41,42,43,44]]]},{"type":"MultiPolygon","id":793,"properties":{"name":"St. Stephan"},"arcs":[[[-61,-4
 4,-51,-66,-28]]]},{"type":"MultiPolygon","id":794,"properties":{"name":"Zweisimmen"},"arcs":[[[65,-50,-63,-29]]]},{"type":"MultiPolygon","id":841,"properties":{"name":"Gsteig"},"arcs":[[[67,68,-47]]]},{"type":"MultiPolygon","id":842,"properties":{"name":"Lauenen"},"arcs":[[[-42,94,-68,-46]]]},{"type":"MultiPolygon","id":843,"properties":{"name":"Saanen"},"arcs":[[[-43,45,46,47,48,49,50]]]},{"type":"MultiPolygon","id":852,"properties":{"name":"Guggisberg"},"arcs":[[[108,109,110,111,-97]]]},{"type":"MultiPolygon","id":853,"properties":{"name":"Rüschegg"},"arcs":[[[95,96,97,98,99,100,101]]]},{"type":"MultiPolygon","id":855,"properties":{"name":"Schwarzenburg"},"arcs":[[[-112,-111,155,-132,156,157,-98]]]},{"type":"MultiPolygon","id":861,"properties":{"name":"Belp"},"arcs":[[[331,332,333,334,335,336,337,338,339]]]},{"type":"MultiPolygon","id":863,"properties":{"name":"Burgistein"},"arcs":[[[-254,-253,917,918,919,920,921,-619,-618]]]},{"type":"MultiPolygon","id":865,"properties":{"name":
 "Gelterfingen"},"arcs":[[[1202,-1093,-338,-893,1203,1204,-1119]]]},{"type":"MultiPolygon","id":866,"properties":{"name":"Gerzensee"},"arcs":[[[892,-337,-690,-707,893,894]]]},{"type":"MultiPolygon","id":867,"properties":{"name":"Gurzelen"},"arcs":[[[1136,-620,-922,1137,1138,-768]]]},{"type":"MultiPolygon","id":868,"properties":{"name":"Jaberg"},"arcs":[[[-1234,-1019,-705,-1115]]]},{"type":"MultiPolygon","id":869,"properties":{"name":"Kaufdorf"},"arcs":[[[-241,-1094,-1203,-1118,-1117]]]},{"type":"MultiPolygon","id":870,"properties":{"name":"Kehrsatz"},"arcs":[[[-136,-913,-332,-648]]]},{"type":"MultiPolygon","id":871,"properties":{"name":"Kienersrüti"},"arcs":[[[-771,-1249,-1014,-1233]]]},{"type":"MultiPolygon","id":872,"properties":{"name":"Kirchdorf (BE)"},"arcs":[[[1013,1014,-919,1015,1016,1017,-894,-706,1018,1019]]]},{"type":"MultiPolygon","id":873,"properties":{"name":"Kirchenthurnen"},"arcs":[[[-1120,-1205,-1260,-1237,-250]]]},{"type":"MultiPolygon","id":874,"properties":{"name"
 :"Lohnstorf"},"arcs":[[[-252,-1239,-1016,-918]]]},{"type":"MultiPolygon","id":875,"properties":{"name":"Mühledorf (BE)"},"arcs":[[[-1204,-895,-1018,-1238,1259]]]},{"type":"MultiPolygon","id":876,"properties":{"name":"Mühlethurnen"},"arcs":[[[1236,1237,-1017,1238,-251]]]},{"type":"MultiPolygon","id":877,"properties":{"name":"Niedermuhlern"},"arcs":[[[-684,-651,-650,934,-239]]]},{"type":"MultiPolygon","id":878,"properties":{"name":"Noflen"},"arcs":[[[-1174,-920,-1015,1248,-770]]]},{"type":"MultiPolygon","id":879,"properties":{"name":"Riggisberg"},"arcs":[[[-100,-243,248,249,250,251,252,253,254,255,256,257]]]},{"type":"MultiPolygon","id":880,"properties":{"name":"Rüeggisberg"},"arcs":[[[-158,237,238,239,240,241,242,-99]],[[-101,-258,-257,-571,-234]]]},{"type":"MultiPolygon","id":881,"properties":{"name":"Rümligen"},"arcs":[[[-242,1116,1117,1118,1119,-249]]]},{"type":"MultiPolygon","id":883,"properties":{"name":"Seftigen"},"arcs":[[[-1139,-1138,-921,1173,-769]]]},{"type":"MultiPolyg
 on","id":884,"properties":{"name":"Toffen"},"arcs":[[[-935,-649,-339,1092,1093,-240]]]},{"type":"MultiPolygon","id":885,"properties":{"name":"Uttigen"},"arcs":[[[-772,1232,-1020,1233,-1114,-1060]]]},{"type":"MultiPolygon","id":886,"properties":{"name":"Wattenwil"},"arcs":[[[-255,617,618,619,620,-572]]]},{"type":"MultiPolygon","id":888,"properties":{"name":"Wald (BE)"},"arcs":[[[-137,647,-340,648,649,650,-651,651]]]},{"type":"MultiPolygon","id":901,"properties":{"name":"Eggiwil"},"arcs":[[[75,76,77,78,79,80,-70,81]]]},{"type":"MultiPolygon","id":902,"properties":{"name":"Langnau im Emmental"},"arcs":[[[149,150,151,-83,-73,152,-80]]]},{"type":"MultiPolygon","id":903,"properties":{"name":"Lauperswil"},"arcs":[[[-377,413,414,415,416,417,418,-151]]]},{"type":"MultiPolygon","id":904,"properties":{"name":"Röthenbach im Emmental"},"arcs":[[[207,208,209,210,211,212,213,214,-215,215,-78,-77,216]]]},{"type":"MultiPolygon","id":905,"properties":{"name":"Rüderswil"},"arcs":[[[-418,-417,517,518
 ,519,-378,-421,520]]]},{"type":"MultiPolygon","id":906,"properties":{"name":"Schangnau"},"arcs":[[[-129,222,-217,-76,223]]]},{"type":"MultiPolygon","id":907,"properties":{"name":"Signau"},"arcs":[[[-216,214,374,375,376,-150,-79]]]},{"type":"MultiPolygon","id":908,"properties":{"name":"Trub"},"arcs":[[[69,70,71,72,73,74]]]},{"type":"MultiPolygon","id":909,"properties":{"name":"Trubschachen"},"arcs":[[[-81,-153,-72,-71]]]},{"type":"MultiPolygon","id":921,"properties":{"name":"Amsoldingen"},"arcs":[[[1108,1109,-915,-365,1110]]]},{"type":"MultiPolygon","id":922,"properties":{"name":"Blumenstein"},"arcs":[[[-235,570,-256,571,572,573,574,575]]]},{"type":"MultiPolygon","id":923,"properties":{"name":"Buchholterberg"},"arcs":[[[576,577,578,579,580,581,-212]]]},{"type":"MultiPolygon","id":924,"properties":{"name":"Eriz"},"arcs":[[[-128,-260,388,389,390,391,392,393,-208,-223]]]},{"type":"MultiPolygon","id":925,"properties":{"name":"Fahrni"},"arcs":[[[980,981,982,-579,-967,983,-645]]]},{"type":
 "MultiPolygon","id":927,"properties":{"name":"Heiligenschwendi"},"arcs":[[[-372,-999,1047,-105,1048,1049,1050]]]},{"type":"MultiPolygon","id":928,"properties":{"name":"Heimberg"},"arcs":[[[-773,1059,1060,1061,1062,1063,-981,-644,-368]]]},{"type":"MultiPolygon","id":929,"properties":{"name":"Hilterfingen"},"arcs":[[[-373,-1051,-1050,-1229,-163]]]},{"type":"MultiPolygon","id":930,"properties":{"name":"Höfen"},"arcs":[[[-717,-1056,1122,-781,1123,-1109,1124]]]},{"type":"MultiPolygon","id":931,"properties":{"name":"Homberg"},"arcs":[[[-371,995,-646,-984,-966,996,997,998]]]},{"type":"MultiPolygon","id":932,"properties":{"name":"Horrenbach-Buchen"},"arcs":[[[-107,481,-392,-391,-390,-389,-259]],[[-1136,-997,-965,-809]]]},{"type":"MultiPolygon","id":934,"properties":{"name":"Oberhofen am Thunersee"},"arcs":[[[1228,-1049,-104,-164]]]},{"type":"MultiPolygon","id":935,"properties":{"name":"Oberlangenegg"},"arcs":[[[-394,807,808,809,810,-210,-209]]]},{"type":"MultiPolygon","id":936,"properties"
 :{"name":"Pohlern"},"arcs":[[[-236,-576,779,780,781]]]},{"type":"MultiPolygon","id":937,"properties":{"name":"Schwendibach"},"arcs":[[[-370,-647,-996]]]},{"type":"MultiPolygon","id":938,"properties":{"name":"Sigriswil"},"arcs":[[[102,103,104,105,106,107]]]},{"type":"MultiPolygon","id":939,"properties":{"name":"Steffisburg"},"arcs":[[[643,644,645,646,-369]]]},{"type":"MultiPolygon","id":940,"properties":{"name":"Teuffenthal (BE)"},"arcs":[[[-106,-1048,-998,1135,-808,-393,-482]]]},{"type":"MultiPolygon","id":941,"properties":{"name":"Thierachern"},"arcs":[[[914,915,916,-766,-366]]]},{"type":"MultiPolygon","id":942,"properties":{"name":"Thun"},"arcs":[[[363,364,365,366,367,368,369,370,371,372,-162,373]]]},{"type":"MultiPolygon","id":943,"properties":{"name":"Uebeschi"},"arcs":[[[-1124,-780,-575,-574,-1140,-916,-1110]]]},{"type":"MultiPolygon","id":944,"properties":{"name":"Uetendorf"},"arcs":[[[765,766,767,768,769,770,771,772,-367]]]},{"type":"MultiPolygon","id":945,"properties":{"name
 ":"Unterlangenegg"},"arcs":[[[-810,964,965,966,-578,967]]]},{"type":"MultiPolygon","id":946,"properties":{"name":"Wachseldorn"},"arcs":[[[-811,-968,-577,-211]]]},{"type":"MultiPolygon","id":947,"properties":{"name":"Zwieselberg"},"arcs":[[[-718,-1125,-1111,-364,-479]]]},{"type":"MultiPolygon","id":948,"properties":{"name":"Forst-Längenbühl"},"arcs":[[[-573,-621,-1137,-767,-917,1139]]]},{"type":"MultiPolygon","id":951,"properties":{"name":"Affoltern im Emmental"},"arcs":[[[-595,-362,-273,712,-271,713,-628,-627,-90,-89]]]},{"type":"MultiPolygon","id":952,"properties":{"name":"Dürrenroth"},"arcs":[[[-91,626,627,628,629,-495,630,631]]]},{"type":"MultiPolygon","id":953,"properties":{"name":"Eriswil"},"arcs":[[[-93,-703,-501,714]]]},{"type":"MultiPolygon","id":954,"properties":{"name":"Huttwil"},"arcs":[[[492,493,494,495,496,497,498,499,500]]]},{"type":"MultiPolygon","id":955,"properties":{"name":"Lützelflüh"},"arcs":[[[84,419,420,-386,421,-87,-86,-85]],[[-758,-516,-515,514,-515,-514
 ,-379,-520,-519]],[[-382,1258,-466,-704]]]},{"type":"MultiPolygon","id":956,"properties":{"name":"Rüegsau"},"arcs":[[[-422,-385,-363,594,-88]]]},{"type":"MultiPolygon","id":957,"properties":{"name":"Sumiswald"},"arcs":[[[82,83,84,85,86,87,88,89,90,91,92,93,-74]]]},{"type":"MultiPolygon","id":958,"properties":{"name":"Trachselwald"},"arcs":[[[-419,-521,-420,-85,-84,-152]]]},{"type":"MultiPolygon","id":959,"properties":{"name":"Walterswil (BE)"},"arcs":[[[-714,-270,875,876,-803,877,878,-629]]]},{"type":"MultiPolygon","id":960,"properties":{"name":"Wyssachen"},"arcs":[[[-92,-632,-631,-494,-493,702]]]},{"type":"MultiPolygon","id":971,"properties":{"name":"Attiswil"},"arcs":[[[904,905,906,907,908]]]},{"type":"MultiPolygon","id":972,"properties":{"name":"Berken"},"arcs":[[[-1228,-1035,-1034,1033,-1232,-1271,-1098]]]},{"type":"MultiPolygon","id":973,"properties":{"name":"Bettenhausen"},"arcs":[[[1170,1171,-789,-1135,-692]]]},{"type":"MultiPolygon","id":975,"properties":{"name":"Farnern"},
 "arcs":[[[-907,1188,-1075,-1074]]]},{"type":"MultiPolygon","id":976,"properties":{"name":"Graben"},"arcs":[[[-793,-786,-1036,1227,-1097,-775]]]},{"type":"MultiPolygon","id":977,"properties":{"name":"Heimenhausen"},"arcs":[[[1029,1030,1031,1032,1033,1034,1035,-785]]]},{"type":"MultiPolygon","id":978,"properties":{"name":"Hermiswil"},"arcs":[[[-549,1273,-1171,-691]]]},{"type":"MultiPolygon","id":979,"properties":{"name":"Herzogenbuchsee"},"arcs":[[[-547,782,783,784,785,786,787,788,789]]]},{"type":"MultiPolygon","id":980,"properties":{"name":"Inkwil"},"arcs":[[[1221,1222,-1031,1223]]]},{"type":"MultiPolygon","id":981,"properties":{"name":"Niederbipp"},"arcs":[[[486,487,488,489,490,491]]]},{"type":"MultiPolygon","id":982,"properties":{"name":"Niederönz"},"arcs":[[[1242,-1224,-1030,-784]]]},{"type":"MultiPolygon","id":983,"properties":{"name":"Oberbipp"},"arcs":[[[846,847,848,849,850,851,852,-489,-488]]]},{"type":"MultiPolygon","id":985,"properties":{"name":"Ochlenberg"},"arcs":[[[-268,
 -550,690,691,692,693,694,-346,695,696]]]},{"type":"MultiPolygon","id":987,"properties":{"name":"Rumisberg"},"arcs":[[[-852,-925,-908,1073,1074,1075,1076]]]},{"type":"MultiPolygon","id":988,"properties":{"name":"Seeberg"},"arcs":[[[-267,543,544,545,546,547,548,549]]]},{"type":"MultiPolygon","id":989,"properties":{"name":"Thörigen"},"arcs":[[[1134,-788,-792,-1037,-693]]]},{"type":"MultiPolygon","id":990,"properties":{"name":"Walliswil bei Niederbipp"},"arcs":[[[1270,-1231,-926,-848,-1099]]]},{"type":"MultiPolygon","id":991,"properties":{"name":"Walliswil bei Wangen"},"arcs":[[[-1033,1229,-1073,-923,1230,1231,-1034]]]},{"type":"MultiPolygon","id":992,"properties":{"name":"Wangen an der Aare"},"arcs":[[[1070,1071,-905,-924,1072]]]},{"type":"MultiPolygon","id":993,"properties":{"name":"Wangenried"},"arcs":[[[-1223,1239,-1071,-1230,-1032]]]},{"type":"MultiPolygon","id":995,"properties":{"name":"Wiedlisbach"},"arcs":[[[922,923,-909,924,-851,-850,-849,925]]]},{"type":"MultiPolygon","id":99
 6,"properties":{"name":"Wolfisberg"},"arcs":[[[-853,-1077,1256,-490]]]},{"type":"MultiPolygon","id":9073,"properties":{"name":"Thunersee"},"arcs":[[[158,159,160,161,162,163,-103,164,165,166]]]},{"type":"MultiPolygon","id":9089,"properties":{"name":"Brienzersee"},"arcs":[[[290,291,292,293,294,-142]]]},{"type":"MultiPolygon","id":9149,"properties":{"name":"Bielersee (BE)"},"arcs":[[[173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,-191,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206]]]}]}},"arcs":[[[7867,2178],[64,64],[34,17],[-17,45],[-23,23],[-25,77],[-1,42],[-12,16],[1,38],[62,38],[-10,43],[-54,22],[-32,45],[77,31],[37,27],[25,48],[23,70],[14,6]],[[8030,2830],[61,-42],[0,-14],[33,-30],[37,-19],[15,-24],[35,-20],[17,-35],[63,-37],[18,-31],[49,-14],[38,3],[24,12],[85,-15],[13,13],[44,-14],[35,-1],[29,22],[26,-6],[24,58],[-34,37],[-5,49],[28,70],[22,9],[26,60],[32,24],[-1,36],[16,23],[9,96],[-36,52],[-34,31],[-9,24],[-47,48],[-4,13],[-44,31],
 [-19,60],[7,22],[7,86],[25,27],[62,10],[27,20],[29,5],[3,-14],[32,11],[42,71],[29,-14],[2,31],[39,45],[15,38],[28,17],[80,-26],[41,8],[50,-19]],[[9094,3617],[14,-1],[7,-61],[-9,-13],[10,-31],[37,-26],[34,-35],[34,-10],[7,-62],[32,-24],[29,-35],[10,-27],[54,-48],[35,-16],[16,-25],[25,-88],[53,-63]],[[9482,3052],[-16,-50],[0,-83],[12,-24],[-2,-39],[-33,-97],[-21,-22],[-2,-38],[13,-47],[-17,-67],[25,-39],[-25,-45],[-56,-61],[3,-21],[-50,-52],[-46,-32],[-58,-13],[-20,5],[-48,-13],[-25,-47],[1,-18],[-52,-62],[-29,-14],[-33,0],[-44,-19],[-25,-47],[-29,-24],[-31,7],[-32,-23],[-37,-9],[-30,-39],[-36,0],[-64,-28],[-62,5],[-86,-10],[-52,-13],[-34,-23],[-32,11],[-56,-11],[-42,-25],[-25,-1],[-9,23],[-29,13],[-2,71],[-32,-4],[-37,11],[-19,-11],[-68,8],[-54,29],[-62,20],[-32,3],[-55,60],[-20,31]],[[7867,2178],[-60,20],[-31,-7],[-41,33],[-53,3],[-61,37],[-31,-22],[-54,-5],[-6,-10],[-46,39],[-70,10],[-79,53],[-35,-7],[-58,15],[-95,-56],[-20,7]],[[7127,2288],[2,27],[42,39],[15,46],[-16,53],[6,23],[-
 34,-1],[-55,13],[-32,-6],[-52,-28],[-44,3],[-2,14],[-36,32],[-6,30],[-21,20],[0,34],[-49,30],[-32,1],[-7,29],[16,50],[-21,47],[-21,10],[-10,60],[-31,59]],[[6739,2873],[68,35],[66,-5],[-8,22],[-2,76],[-14,21],[1,34],[28,-8],[25,10],[46,-13],[19,37],[19,89],[22,55],[-49,20],[-41,-8],[-26,23],[75,104],[31,17]],[[6999,3382],[44,29],[11,-13],[30,31],[9,-21],[38,24],[41,-15],[42,18],[1,23]],[[7215,3458],[51,4]],[[7266,3462],[25,2],[7,-50],[66,-19],[33,22],[42,10],[41,34],[39,15],[21,25],[72,46],[-19,22],[9,42]],[[7602,3611],[62,-36],[13,-23],[54,-24],[42,8],[53,0],[41,-13],[25,-32],[40,-30],[-6,-9],[37,-65],[-9,-29],[19,-26],[-22,-28],[24,-45],[31,-16],[25,7]],[[8031,3250],[-15,-53],[2,-65],[-53,-55],[-31,-16],[-2,-27],[30,-13],[41,-5],[20,-21],[19,-44],[-18,-43],[6,-78]],[[7127,2288],[-28,-35],[-46,-72],[-37,4],[-60,-31],[-16,-34],[-31,-22],[0,-24],[31,-46],[35,-84],[-16,-25],[3,-44],[-20,-36],[-21,0],[-43,-37],[-91,-13],[-52,-43],[-12,-53],[-43,-14],[-16,-17],[10,-15],[-17,-20],[-30,1],
 [-35,-46],[-40,3],[-47,-45],[-46,6],[-24,-24],[-69,-26],[-39,-5],[-45,4],[-79,-11],[-21,17],[-23,-10]],[[6159,1491],[-48,16],[-27,27],[-13,52],[-65,11],[-59,72]],[[5947,1669],[43,16],[64,131],[-5,23],[-39,52],[0,63],[-42,45],[-18,41],[0,49],[-23,41],[38,35],[6,48],[40,40],[19,34],[-32,26],[43,54],[-4,51],[11,42],[-15,28],[4,67],[-21,45],[-29,20]],[[5987,2620],[5,34]],[[5992,2654],[32,14],[59,0],[45,29],[8,57],[19,56],[56,97]],[[6211,2907],[24,-8],[78,51],[35,-12],[27,19],[32,-6],[58,28],[44,-19],[0,-55],[-27,-92],[43,31]],[[6525,2844],[28,-29],[19,24],[11,46],[13,10],[49,-14],[47,5],[37,-11]],[[6729,2875],[10,-2]],[[6159,1491],[-39,-36],[-37,-18],[-34,-35],[-4,-19],[-88,-48],[-83,-35],[-31,-45],[-38,-19],[-44,-52],[-12,-34],[-37,-11],[-27,-30],[-14,5],[-32,-39],[-28,-9],[-10,-19],[-68,-46],[-20,-27],[-55,-31],[-65,-14],[-40,-62],[-44,-9],[-60,51],[-35,59],[-21,-5],[-75,43],[-266,114],[-66,42],[-9,-29],[-43,-41],[-49,-10],[-9,-17],[9,-65],[-13,-32],[-22,-22],[-38,-15],[11,-37],[-26,-
 63],[-61,23],[-18,37]],[[4518,891],[6,46],[33,39],[14,68],[12,20],[12,79],[-18,28],[29,78],[16,80],[39,25],[18,48],[31,26],[36,56],[42,23],[-3,61],[-38,39],[2,20],[47,68]],[[4796,1695],[38,11],[58,44],[9,41]],[[4901,1791],[61,-2],[53,-27],[35,24],[27,-9],[9,22],[33,-8],[35,9],[24,-25],[30,7],[2,40],[14,17],[-11,31],[22,23],[27,-3],[37,-40],[14,9],[35,-17],[35,7],[38,26],[17,27]],[[5438,1902],[60,-22],[73,-17],[74,-3],[111,-99],[8,-72],[49,-4],[23,-24],[30,16],[61,4],[20,-12]],[[4688,2842],[-21,-49],[11,-28],[-33,-43],[-29,-86],[-52,-48],[0,-59],[-19,-45],[-27,-9],[-26,-46],[-7,-56],[-26,-66],[-4,-28],[-21,-38],[-39,-29],[-25,1],[-40,-25],[-24,-28],[-20,-60],[-24,-30],[-6,-33],[-24,-30],[5,-42]],[[4237,1965],[-33,-26],[-5,-35],[-24,-39],[-30,-21]],[[4145,1844],[-33,3],[-45,32],[-19,-8],[-26,27],[-42,60],[-25,1],[-18,24],[-38,4],[-19,37],[-91,7],[-23,22],[-66,-21],[-24,16],[-25,-8]],[[3651,2040],[-1,20],[31,21],[3,26],[-62,41],[-16,30],[11,53],[34,63],[12,-2],[16,29],[27,0],[43,51],[-
 14,20],[8,33],[-61,55],[22,31],[-75,73],[-64,70]],[[3565,2654],[13,10]],[[3578,2664],[19,21],[43,23],[31,53],[25,-2],[-5,18],[56,34],[37,11]],[[3784,2822],[10,0],[21,43]],[[3815,2865],[16,-9],[44,21],[24,-15],[44,27],[40,-10],[44,30],[31,-10],[6,-17],[46,-4],[78,57],[21,44],[-2,69],[25,76],[-6,32],[28,23],[126,24],[7,41]],[[4387,3244],[16,-1],[6,37],[59,-4],[28,23],[39,-8],[26,8],[50,34],[53,22]],[[4664,3355],[-3,-40],[40,-32],[-26,-48],[6,-49],[32,-30],[16,-66],[21,-40],[37,-31],[3,-13]],[[4790,3006],[-52,-42],[0,-28],[-32,-33],[-2,-30],[-16,-31]],[[5438,1902],[-23,62],[-62,54],[-23,67],[-35,51],[-12,41],[-14,3],[-42,35],[-17,86],[-5,59]],[[5205,2360],[2,86],[-35,32],[-37,2],[4,41],[-25,50],[0,17],[-48,37],[-26,9],[0,20],[-23,-10],[-8,25],[-54,48],[-10,56],[-24,-16],[-47,24],[-21,20],[-56,18],[-68,49],[-41,-26]],[[4790,3006],[43,9],[35,21],[43,83],[26,6],[6,19],[40,-25],[44,-10],[28,15]],[[5055,3124],[15,-10],[-6,-48],[26,5],[2,-21],[26,-8],[22,14],[106,9],[94,40],[49,-30],[10,-17]
 ,[50,-14],[29,-37],[41,-16],[-6,-38],[-32,2],[-1,-22],[20,-23],[57,-44],[16,-37],[-19,-51],[15,-27],[14,4],[-19,-35],[14,-35],[-48,-109],[48,-6],[23,11],[2,20],[85,46],[38,-71],[71,-18],[12,-24],[34,28],[100,21],[44,37]],[[4337,853],[-32,-15],[-67,-6],[-31,-15],[-37,-93],[31,-29],[59,-32],[26,-1],[53,-50],[-88,-49],[-22,-68],[-69,-25],[-40,3],[-50,12],[-36,-4],[-29,-52],[-20,-5],[-30,19],[-26,-16],[-23,4],[-19,102],[-28,41],[-39,-15],[-2,-26],[-21,-28],[-38,0],[-9,-17],[-22,20],[3,19],[-28,20],[-25,-7],[-67,23],[-10,21],[-32,-11],[-27,-37],[-79,-12],[-12,-14],[-65,-25],[-24,-19],[-9,23],[-44,-35],[-26,-40],[-23,-10],[-16,-26]],[[3244,378],[-28,83],[-23,28],[-2,57],[40,22],[18,-7],[38,14],[16,19],[-19,10],[-3,23],[-34,-5],[-22,12],[-28,78],[45,50],[8,98],[8,28],[-18,1],[-27,40],[0,41],[-16,26]],[[3197,996],[40,42],[7,49],[11,16],[23,97]],[[3278,1200],[28,7],[34,49],[25,54],[31,29],[16,-7],[40,5],[-14,36],[28,-8],[7,83],[-22,-9],[-5,32],[-35,42],[72,37],[16,-12],[52,44],[27,3],[1,17],
 [38,16],[-1,27],[134,-49],[28,2],[37,40],[27,16],[46,12],[33,-14]],[[3921,1652],[15,-70],[-16,-63],[-2,-38],[25,-81],[12,-17],[0,-52],[-17,-26],[17,-60],[30,-27],[4,-23],[-29,-35],[17,-32],[40,5],[76,-57],[52,-29],[24,-31],[53,-21],[60,-83],[40,-29],[15,-30]],[[3197,996],[-50,14],[-49,70],[-38,26],[-49,-12],[-40,14],[-34,37],[-19,40],[-31,-3],[-45,28],[-65,14],[-33,-11],[-28,-51],[-6,-45],[-31,-4],[3,-61],[31,-64]],[[2713,988],[-10,-12],[-58,-13],[-187,24],[-34,11],[-31,-40],[-25,-6],[-25,10],[-23,-5],[-138,-76],[-30,-1]],[[2152,880],[-21,50],[-18,7],[-23,65],[-45,51],[15,67],[44,1],[20,-15],[51,2],[60,25],[15,23],[13,51],[-7,20],[41,24],[-38,33],[16,16],[0,33],[12,40],[-37,108],[-5,92],[77,12],[-1,33],[-23,34],[57,22],[25,51],[-3,30],[25,72],[0,43],[-12,138],[-13,19],[8,47],[-43,73],[-13,11],[0,73],[62,22],[52,37],[55,75],[47,88],[64,75],[113,-50]],[[2722,2478],[-31,-42],[-34,-66],[-17,-58],[-42,-73]],[[2598,2239],[-22,-55],[5,-42],[17,-63],[43,-57],[28,-22],[74,-25],[16,20],[31,-3
 1],[41,-25],[46,-1],[25,-95],[16,-17],[-11,-29],[3,-41],[14,-2],[0,-57],[34,-40],[3,-39],[22,-8],[84,5]],[[3067,1615],[74,-43],[18,-48],[6,-71],[26,-27],[9,-30],[34,-42],[1,-23],[34,-80],[9,-51]],[[8031,3250],[41,4],[58,-27],[26,-25],[48,44],[-1,29],[33,40],[-1,24],[34,74],[32,53],[-11,24],[21,12],[11,33],[54,28],[21,-18],[79,80],[5,22],[-22,62],[-3,33],[10,74],[22,22],[-16,32]],[[8472,3870],[13,10],[29,-26],[16,16]],[[8530,3870],[32,-32],[34,-10],[43,47],[29,15],[71,7],[-1,20],[42,1],[37,39],[37,58],[22,22],[34,62],[58,53],[67,69],[31,18],[48,54],[16,-13],[1,25],[34,43],[8,26],[-59,-9],[1,20]],[[9115,4385],[68,60],[43,45],[165,25],[24,31],[43,22],[42,-24],[32,-55],[55,-22],[27,-63],[8,-58]],[[9622,4346],[-38,-26],[-64,-13],[-37,-29],[-37,-17],[-26,6],[-47,-15],[-41,-28]],[[9332,4224],[-38,-14]],[[9294,4210],[-72,-31],[-17,-21],[-44,-27],[-36,-35],[-26,-7],[-32,-29],[-100,-62],[-45,-31],[-19,-2],[-45,-33],[-7,-84],[34,-67],[76,25],[23,-22],[32,4],[34,-23],[39,-67],[9,-45],[-4,-36]],
 [[9622,4346],[27,10],[41,31],[45,47],[41,-14],[26,-24],[34,19],[40,2],[33,-24],[28,4],[-1,-40],[13,-10],[-9,-62],[-20,-49],[-28,-8],[30,-58],[-19,-25],[0,-65],[10,-26],[30,-23],[18,-31],[-16,-28],[2,-118],[11,-26],[27,-11],[5,-27],[-11,-38],[20,-69],[-16,-46],[-1,-39],[-73,-33],[-58,12],[-20,-8],[-83,16],[-18,29],[-25,-3],[-55,23],[0,-46],[-13,-40],[9,-25],[-4,-72],[16,-17],[16,-44],[34,-23],[13,-124],[-70,9],[-27,-80],[-18,-8],[-78,-113],[-32,-10],[-14,11]],[[4518,891],[-33,-1],[-45,-27],[-38,-3],[-18,-17],[-47,10]],[[3921,1652],[0,20],[65,9],[34,24],[52,16],[35,81],[38,42]],[[4237,1965],[57,-35],[43,24],[61,-6],[58,-28],[34,3],[34,-11],[25,7],[-22,-41],[25,-39],[53,-13],[115,-96],[35,-13],[27,5],[14,-27]],[[3565,2654],[-17,-27],[-29,-97],[-30,-4],[-46,19],[9,17],[-15,27],[-4,45],[-12,5],[12,32],[-35,-18],[-61,-16],[-12,6],[-28,-42],[-35,-4],[-22,-25],[0,-20],[-59,-32],[16,-26],[-37,-22],[-35,-41],[-25,-14],[-27,-59],[-40,6],[-25,-33],[-16,-42],[-28,-51],[-25,2],[13,-40],[-59,-3],[
 -19,-24],[-1,-62],[-17,-26],[-38,18],[-3,22],[-43,59],[-22,67],[-40,-20],[-24,-34],[5,-40],[-14,-5],[-24,-49],[-28,42],[0,25],[-25,43],[-2,26]],[[2722,2478],[55,22],[29,77],[50,26],[-36,84],[8,87],[14,68],[-3,23],[-36,31],[8,146],[60,7],[25,14],[19,29],[-11,39],[-45,89],[56,-1],[65,8],[34,-1],[33,-36],[-2,-34],[34,-28],[-3,-33],[12,-28],[7,42],[25,43],[24,11],[66,67]],[[3210,3230],[30,-42],[-67,-69],[29,-9],[29,28],[87,49],[53,12],[5,-34],[19,-35],[37,-14],[41,18],[-18,-67],[18,-4],[22,-58],[18,6],[-12,-55],[-4,-86],[9,-16],[45,-6],[2,-91],[23,-51],[-11,-29],[13,-13]],[[3651,2040],[-13,-15],[-68,-43],[-9,-17],[-28,5],[-78,-33],[-25,9],[-15,37],[-104,36],[-21,3],[-74,-24],[-73,-114],[0,-44],[-14,-34],[-47,-59],[-3,-94],[-12,-38]],[[5205,2360],[-61,-3],[-22,8],[-51,-7],[-32,17],[7,-16],[-124,-15],[-60,-148],[4,-60],[14,-63],[-7,-22],[11,-38],[34,-59],[16,-15],[-12,-27],[7,-45],[-27,-13],[-18,-33],[17,-30]],[[2713,988],[15,-38],[-9,-53],[0,-42],[-7,-72],[19,-25],[25,-12],[21,-33],[-18,
 -27],[-6,-100],[33,-39],[1,-71]],[[2787,476],[-71,-87],[-22,-6],[-31,15],[-180,-88],[-10,-36],[12,-51],[-11,-37],[4,-55],[8,-12],[-23,-25],[-30,-50],[-50,-31],[-88,-13],[-70,26],[6,190],[-22,89],[47,15],[11,32],[-11,25],[-45,-30],[-20,1],[-33,56],[-3,34],[-20,23],[2,42],[-13,17],[-74,-5],[8,58],[23,44],[59,133],[-5,53],[17,77]],[[6235,5490],[-16,5],[-18,49]],[[6201,5544],[-3,2]],[[6198,5546],[-14,14],[14,16],[-6,63],[12,23],[24,-23],[6,27],[23,19],[-22,10],[-25,58],[19,26],[25,-9],[-4,43],[10,53],[18,13],[-13,26],[-67,13],[15,46],[-41,21]],[[6172,5985],[13,19],[-23,31],[4,17],[-36,24],[-26,49],[-5,39],[18,42],[-7,22],[1,82],[9,57],[39,79],[-6,24],[31,-7],[62,44],[27,-19],[18,10],[-5,21],[16,25],[0,45]],[[6302,6589],[14,15],[17,46],[23,10],[17,-14],[35,23],[67,-14],[24,23]],[[6499,6678],[35,7],[79,33],[32,3],[11,-33],[37,-27],[105,16],[3,12],[38,-35],[-13,-13],[-12,-54],[-20,-20],[5,-71],[19,-52],[-54,-48],[11,-92],[-33,-31],[-25,-3],[-29,-42],[7,-30],[-6,-66],[-15,-22],[-45,-12],[-6
 ,-50],[-35,-71],[-20,-18],[-50,3],[-41,14],[-24,-21],[-107,-52],[-25,-29],[-23,-74],[-12,-20],[58,-37],[26,-1],[15,-65],[-19,-29],[13,-16],[-28,-19],[-28,-58],[2,-22],[-22,-18],[-68,-25]],[[6307,5116],[-15,3],[-100,-110],[-22,-40],[-37,-44],[-15,-30],[6,-29],[-29,-1],[-40,-37],[-40,-17],[-31,-40]],[[5984,4771],[-13,-20],[-46,-2],[-7,27],[-18,4],[15,20],[-33,76],[-33,35],[-44,27],[-17,25],[-2,31],[-23,53],[-18,7],[-7,61],[6,28],[-42,47],[0,69],[24,26],[-9,27],[-16,-20],[-50,4],[-39,13],[7,38],[-70,23]],[[5549,5370],[-21,-5],[-18,58],[13,39]],[[5523,5462],[29,-1],[39,21],[35,8],[19,39],[0,100],[10,9],[-24,30],[-7,54],[-22,30],[18,24],[28,6],[20,27]],[[5668,5809],[31,24],[0,-25],[46,-35],[31,31],[18,-12],[10,24],[16,-34],[55,-42],[0,-27],[26,-13]],[[5901,5700],[6,-24],[49,-29],[6,-48],[-5,-47],[30,-41],[35,-27],[101,-6],[23,6],[7,31],[48,29]],[[6235,5490],[-15,-43],[10,-37],[-2,-55],[44,-19],[1,-32],[31,-19],[-13,-56],[6,-46],[-6,-28],[16,-39]],[[6302,6589],[-49,4],[-18,12],[-38,-2],[-
 31,17],[-32,-10],[-48,20],[-76,9],[-26,-27]],[[5984,6612],[-22,39],[19,24],[-24,59],[12,24],[-15,13],[-17,45],[-39,38],[-36,-13],[-2,32],[-26,17],[-18,-30],[-9,22],[-26,0],[-38,-17],[-51,-44],[-15,7],[-38,-47],[-30,-7],[-31,9],[-11,-12],[-11,27],[-51,4],[-40,15]],[[5465,6817],[-1,0]],[[5464,6817],[-46,-8],[-6,-29],[-27,-19]],[[5385,6761],[-10,26],[3,34],[18,30],[-9,63],[32,28],[5,20],[-15,22]],[[5409,6984],[34,70],[-19,5],[-9,24],[-14,-11],[-9,43],[27,22]],[[5419,7137],[27,16],[45,-31],[37,-7],[8,35],[17,-16],[39,58],[27,10],[41,35]],[[5660,7237],[11,-3]],[[5671,7234],[24,12],[43,-26],[49,16],[41,-23],[11,7]],[[5839,7220],[29,-23],[26,-39],[37,-23],[47,33],[57,-13],[58,8]],[[6093,7163],[78,-27],[22,7],[23,-39],[19,-12],[29,12],[32,-29]],[[6296,7075],[35,-57],[39,-1],[14,-32],[3,-41],[52,-30],[16,-79],[35,-37],[-20,-45],[12,-50],[17,-25]],[[3244,378],[-34,-16],[-22,-31],[-44,-31],[-24,-7],[-56,-62],[-39,5],[-64,-37],[-37,-5],[-53,-22],[-49,-5],[-35,46],[-14,43],[13,33],[-11,27],[27,4
 6],[1,69],[-16,45]],[[3651,3654],[-31,1],[-59,37],[-10,-31],[-40,-18],[-34,0],[3,-43],[-73,-48]],[[3407,3552],[-45,-5],[-23,-18],[-50,48],[17,115],[25,76],[-7,47],[-40,21],[-60,-14],[1,54],[13,45],[-23,80],[-18,7],[-34,46],[25,23],[-38,55],[-64,78],[49,72],[9,36],[-55,11],[-3,25],[20,43],[-11,54],[1,42],[-10,18]],[[3086,4511],[28,-23],[76,32],[20,38],[39,22],[32,2],[22,19],[49,13],[29,61],[-21,32],[10,40]],[[3370,4747],[26,4],[16,-20],[5,-64],[-34,-55],[44,-80],[39,-26],[70,-15]],[[3536,4491],[-6,-17],[21,-29],[16,-45],[8,-80],[25,-57],[35,-55],[17,-57],[27,-18],[9,-44],[-7,-53]],[[3681,4036],[-33,-25],[-25,2],[5,-62],[-11,-30],[21,-19],[0,-62],[16,-22],[22,-109]],[[3676,3709],[-25,-55]],[[5603,3465],[-27,4],[-40,26],[-3,30],[-24,47],[-1,32],[-28,8],[-17,52],[-68,69],[-73,31],[-49,15],[-18,-7],[-32,26],[-46,19]],[[5177,3817],[5,24],[-17,12],[-1,43],[-20,50],[14,90],[12,29],[-11,26]],[[5159,4091],[30,0],[43,46],[21,0],[37,-34],[21,26]],[[5311,4129],[23,15],[-3,66],[31,38],[-6,52],[16
 ,48],[20,28],[52,17]],[[5444,4393],[35,9],[59,-12],[49,-26],[16,25],[51,-19],[13,-21],[51,-19],[48,-27],[20,6],[9,-52],[12,10],[38,-44],[21,19],[32,12],[-4,-78],[30,-19]],[[5924,4157],[-13,-94],[24,-56],[-34,-58],[-42,-34],[-35,-54],[-35,-27],[5,-11],[-34,-26],[-54,-24],[-11,-33],[-26,-14],[-2,-28],[-40,-18],[-46,-45],[-34,-66],[11,-20],[58,-22],[-13,-62]],[[3407,3552],[16,-51],[-27,-52],[5,-31],[-21,-27],[-43,34],[-25,-30],[-52,-14],[-50,37]],[[3210,3418],[-22,41],[5,21],[25,23],[-11,41],[27,24],[-21,25],[-53,-1],[-23,24],[-14,40],[-14,-11],[-86,7],[-6,30],[19,27],[9,65],[-13,14],[-103,24],[-17,13],[-120,17],[-14,-9],[-50,52],[-18,39],[-4,41],[13,93],[34,64],[6,36],[-9,11],[2,77],[-30,58],[-18,3],[-18,28],[-1,30],[-16,7],[38,52],[28,17],[-2,14],[25,26],[-14,25],[8,29]],[[2752,4535],[20,7],[53,-21],[31,13]],[[2856,4534],[46,25],[19,-44],[-6,34],[23,42],[10,-37],[49,50],[26,13],[0,-36],[30,-60],[33,-10]],[[2927,5816],[-23,-1],[-3,44],[-17,16],[-26,0],[-62,-27],[-96,4]],[[2700,5852],[
 21,46],[48,32],[-10,54],[16,40]],[[2775,6024],[19,11],[93,17],[22,31],[83,-4],[13,27],[25,-11],[24,9],[10,33],[40,1],[58,45],[19,41]],[[3181,6224],[22,-9],[21,16],[14,39],[15,8],[67,6],[39,21],[52,-4],[24,12]],[[3435,6313],[57,17],[44,22]],[[3536,6352],[18,-4],[34,-52],[16,19],[13,66],[28,-20],[17,9],[1,26],[-44,7],[10,22]],[[3629,6425],[22,30],[6,37],[24,20],[10,-68]],[[3691,6444],[16,-59],[77,-13],[19,-72],[73,27]],[[3876,6327],[22,-33],[-2,-32],[-46,-17],[12,-22],[-5,-43],[-17,-8],[46,-54],[-5,-47],[51,-26],[17,-22]],[[3949,6023],[-4,-26],[-18,11],[-7,-19],[-67,6],[-22,-44],[-40,-37],[11,-36]],[[3802,5878],[-52,54],[-12,27],[-28,7],[-51,-39],[-52,34],[-26,9],[-11,-18],[25,-23],[-41,9],[-38,29],[-24,-5],[-41,27],[-5,-52],[-44,-12],[7,-47],[-38,-13],[-3,-30],[-34,41],[-53,50],[-34,-31],[-13,26],[6,24],[-39,-9],[1,12],[-43,-3],[1,-18],[-50,-19],[2,-15],[-42,-10],[-96,-15],[4,-47],[-51,-5]],[[6648,4045],[-12,-26],[-31,-28],[-16,-38],[-47,-36]],[[6542,3917],[-155,-77]],[[6387,3840],[-
 27,49],[-22,-4],[-23,-23],[-21,41],[-9,-30],[-31,-30],[-40,-19],[-34,-47],[-16,10],[-16,43],[-19,21]],[[6129,3851],[-18,10],[-61,62],[4,24],[37,20],[-7,53],[-17,65],[5,25],[33,12],[61,54],[24,6],[21,81]],[[6211,4263],[5,59],[12,25],[-13,26],[12,43],[18,30],[21,0],[31,25],[-6,40]],[[6291,4511],[51,24],[42,2],[44,-15],[77,5],[6,10],[91,16],[12,18],[82,16],[41,20],[67,6],[32,-13]],[[6836,4600],[2,-24]],[[6838,4576],[-1,-15],[-34,-33],[-6,-46],[13,-56],[-44,-112],[-24,-48],[-22,-8],[-20,-52],[-55,-44],[-18,-28],[30,-38],[25,-7],[-34,-44]],[[3241,5236],[-28,5],[-14,20],[-26,-8],[-25,29],[-31,-1],[-14,-16]],[[3103,5265],[-5,56],[-29,25],[-9,48],[7,95]],[[3067,5489],[9,12],[-17,26],[-14,67],[-34,29],[-12,32],[-17,-3],[-21,33],[5,31],[-36,59],[-3,41]],[[3802,5878],[4,-5]],[[3806,5873],[-44,-34],[13,-21],[-50,-59],[21,-34],[-12,-11],[-55,18],[12,-27],[-25,-12],[12,-17]],[[3678,5676],[1,-53],[-22,-59],[-50,-18],[-59,-66],[38,-16],[9,-34]],[[3595,5430],[0,-18],[-35,-43],[-55,30]],[[3505,5399],
 [-25,3]],[[3480,5402],[-19,28],[-15,-10],[-25,23],[-34,5],[-13,17],[-93,-9],[2,-37],[16,-15],[-9,-19],[-35,-12],[-5,-13],[28,-57],[-28,-21],[11,-33],[-20,-13]],[[7215,3458],[-7,20],[20,64],[24,23],[52,23],[1,29],[-13,33],[5,30],[-24,21],[4,31],[-22,23],[-17,42],[-52,66],[27,18],[5,22],[-19,12],[19,19],[4,32],[-11,32]],[[7211,3998],[65,54],[35,1],[47,28],[70,-8],[-13,31],[20,12],[-17,19],[7,32],[-30,38],[-41,-11],[-34,4],[-80,37],[-60,-24],[-68,-4]],[[7112,4207],[-15,60],[-2,34],[-33,25],[-31,-31],[-18,29],[-45,-23],[-25,23],[50,57],[38,32]],[[7031,4413],[62,40],[4,21],[61,20],[43,28],[88,37],[37,5],[46,-25],[50,-5]],[[7422,4534],[-18,-56],[-25,-11],[2,-97],[16,-57],[31,-33],[9,-60],[22,-3],[87,-42]],[[7546,4175],[4,-48],[33,-9],[11,-30],[23,19],[47,12],[21,15]],[[7685,4134],[27,-3]],[[7712,4131],[-12,-33],[-4,-44],[11,6],[-20,-65],[12,-41],[-12,-36]],[[7687,3918],[-4,-54],[-38,-24],[-36,-49],[-37,-18],[-28,10],[-48,-3],[-24,-30],[18,-55],[-20,-51],[15,-36],[45,-11],[25,18],[47,-4]],
 [[5668,5809],[-12,65],[-27,72],[-20,-2],[-41,15],[45,47],[25,1],[5,18],[-29,13],[-58,90]],[[5556,6128],[39,-24],[72,52],[35,53],[21,12],[18,61],[32,40],[5,36],[22,14],[37,69],[12,53],[1,64]],[[5850,6558],[38,37],[18,-2],[53,34],[25,-15]],[[6172,5985],[-25,-5],[-42,-64],[-69,-17],[-11,-36],[-38,6],[0,-84],[-33,-17],[-53,-68]],[[3210,3230],[-47,-2],[18,71],[4,46],[-9,18],[34,55]],[[3651,3654],[28,-28],[24,-1],[29,-51],[6,-42],[12,-1],[9,-87],[15,-22],[-15,-32],[1,-60],[20,-11],[36,-45],[6,-27],[24,6],[-9,-60],[-47,-32],[-46,-47],[24,-45],[-44,-2],[1,-26],[22,3],[23,-25],[-11,-43],[16,-25],[-28,-33],[25,-27],[12,-69]],[[2752,4535],[-12,41],[25,34],[22,65],[7,48],[46,59],[18,10],[-8,21],[11,31],[-3,65],[61,28],[8,21],[-12,37],[-33,31],[-5,17],[-65,37],[-34,28],[-12,32],[-22,17],[62,35],[-1,22],[20,43],[15,-16],[37,4],[47,-33],[-31,-8],[-19,-20],[16,-29],[40,-7],[16,12],[25,-29],[11,13],[59,25],[62,96]],[[3241,5236],[18,-5],[21,-58],[17,-12]],[[3297,5161],[-39,-47],[-3,-43],[-54,-24],[-1
 0,-36],[12,-29],[25,15],[33,-14],[7,-26],[33,21],[13,-27],[23,-9],[33,-50],[3,-31],[-25,-22],[-17,-52],[12,-31],[27,-9]],[[5826,3288],[-27,-23],[-18,3],[-57,-14],[-22,-15],[-48,5],[-24,-16],[-54,22],[-34,29]],[[5542,3279],[-16,26],[-112,33]],[[5414,3338],[-10,21],[-126,62],[10,71],[-64,46],[-30,5],[-8,60],[-161,44],[-26,60],[-97,74],[1,51],[-20,37],[-52,2],[-16,27]],[[4815,3898],[0,74],[13,26],[9,75],[22,35]],[[4859,4108],[42,-40],[31,-1],[14,-37],[45,-42]],[[4991,3988],[41,-26],[31,-39],[41,-8],[27,-26],[32,-62],[14,-10]],[[5603,3465],[42,19],[84,-4],[28,7],[68,32],[35,-17],[15,11]],[[5875,3513],[77,-39],[0,-24],[16,2],[46,-53],[44,-23],[-21,-41]],[[6037,3335],[-16,-34],[-43,-18],[-60,49],[-57,-17],[-35,-27]],[[8530,3870],[-20,43],[-20,20],[-89,25],[-12,19],[-35,3],[-22,17],[-10,29],[-30,39],[-66,12],[-56,46],[0,9],[-50,13],[-24,51],[-65,16],[19,16]],[[8050,4228],[41,28],[64,32],[31,40],[25,-11],[13,13],[74,31],[25,16],[41,-22],[43,15],[30,1],[26,-30],[46,-27],[7,-20],[47,-5],[38,9
 ],[31,76],[129,-55],[46,-60],[13,-33],[43,9],[50,-19],[84,71],[61,39],[1,11],[56,48]],[[7602,3611],[37,36],[43,24],[38,6],[65,39],[16,35],[49,61],[-3,58],[29,35],[-1,37],[-22,16],[-22,-13],[-40,-1],[-2,-34],[-56,15],[-46,-7]],[[7712,4131],[68,23],[53,-19],[49,6],[15,-14],[28,4],[-16,40],[0,80],[-15,123]],[[7894,4374],[47,-36],[109,-110]],[[8472,3870],[-39,23],[-50,1],[-116,20],[15,-32],[-5,-19],[-81,26],[-20,19],[-35,4],[-30,-11],[-31,2],[-40,-59],[-19,-54],[-2,-68],[-54,-38],[-65,-21],[-36,-19],[31,-17],[22,-32],[33,-3],[37,-43],[21,-4],[4,-28],[32,-2],[17,-15],[-13,-58],[30,-12],[11,-79],[-9,-25],[-33,-32],[-16,-44]],[[1952,7207],[-31,-63],[-52,-47],[-45,-20],[-34,7],[-49,-34]],[[1741,7050],[-10,-12]],[[1731,7038],[-6,13],[-42,-22],[-73,-26],[-53,-7],[-32,7]],[[1525,7003],[-24,54],[126,86],[-5,10]],[[1622,7153],[72,47],[93,120],[-45,46],[-42,-119],[-90,-78]],[[1610,7169],[-9,14],[-69,-62],[-46,-30],[-13,20],[-12,-28],[-48,-5]],[[1413,7078],[-48,0],[-19,46]],[[1346,7124],[61,76]],[
 [1407,7200],[76,41],[46,16]],[[1529,7257],[22,21],[23,64],[70,54],[53,29]],[[1697,7425],[0,2]],[[1697,7427],[20,13]],[[1717,7440],[51,32]],[[1768,7472],[22,28],[31,11]],[[1821,7511],[6,6]],[[1827,7517],[2,1]],[[1829,7518],[20,15]],[[1849,7533],[0,1]],[[1849,7534],[6,5]],[[1855,7539],[59,30]],[[1914,7569],[18,13]],[[1932,7582],[29,20]],[[1961,7602],[5,1]],[[1966,7603],[10,27],[39,50],[55,35]],[[2070,7715],[81,76],[57,68]],[[2208,7859],[95,27]],[[2303,7886],[-27,-62]],[[2276,7824],[-46,-72],[9,-6]],[[2239,7746],[-8,-16]],[[2231,7730],[-20,-72],[-26,-27],[-11,-36]],[[2174,7595],[-36,-52],[-9,-46]],[[2129,7497],[8,-39],[-27,-38]],[[2110,7420],[-46,-72],[-38,-84],[-34,-40],[-28,30],[-9,-16]],[[1955,7238],[-17,-18],[14,-13]],[[6030,4703],[-37,-15],[-69,12],[-26,-13],[-48,6],[-124,-31]],[[5726,4662],[-10,2],[-29,46],[-29,6]],[[5658,4716],[-38,40],[7,52],[-30,19]],[[5597,4827],[-1,44],[-13,25],[-36,-5],[-30,13],[-23,30],[-17,-21],[-40,-1]],[[5437,4912],[30,26],[-11,33],[-86,-3],[-24,40],[-4
 2,0]],[[5304,5008],[-2,79],[26,9],[23,-11],[29,17],[-26,70],[7,19],[-8,51],[-30,38],[2,11]],[[5325,5291],[22,0],[-9,34],[-35,67],[-9,32],[25,28],[115,76]],[[5434,5528],[0,1]],[[5434,5528],[18,-25],[20,-4],[51,-37]],[[5984,4771],[25,-8],[21,-60]],[[3815,2865],[-12,14],[-6,43],[19,42],[59,25],[61,-27],[-13,60],[29,6],[11,24],[42,52],[12,27],[72,6],[-4,29],[19,59],[-21,37],[21,13],[-15,30],[4,21],[-30,24],[-2,95],[18,29],[-32,14],[5,26],[-19,30],[6,13],[53,8],[90,34],[40,5]],[[4222,3604],[56,6],[15,-21],[20,-1]],[[4313,3588],[31,-16],[60,3],[45,-19]],[[4449,3556],[-6,-37],[28,-14],[76,0],[-3,-15],[45,-32],[48,-13],[16,7],[65,-3]],[[4718,3449],[-19,-85],[-35,-9]],[[6291,4511],[-80,74],[-9,22],[-28,9],[12,15],[-25,29],[-26,3],[-24,24],[-3,41],[-24,-19],[-25,6],[-29,-12]],[[6307,5116],[46,-98],[117,-59],[169,-107],[40,-34],[82,-83],[32,-27],[45,-93],[-2,-15]],[[2772,6255],[-31,7],[-32,52],[-23,0],[-23,-39],[-25,2],[3,60],[-41,25]],[[2600,6362],[20,43],[-16,33]],[[2604,6438],[21,14],[-13,3
 2]],[[2612,6484],[45,-6],[-9,31],[26,8],[-5,74],[31,38],[47,28],[68,-21]],[[2815,6636],[63,-7],[127,25],[31,-38],[17,3],[8,-29],[93,42],[25,16],[26,-24],[10,15],[26,-14],[6,-21]],[[3247,6604],[17,-23],[36,-13],[3,-34],[14,7],[39,-57],[36,-21],[43,7]],[[3435,6470],[20,-28],[-1,-24],[-45,-14],[5,-39]],[[3414,6365],[-8,-16],[29,-36]],[[3181,6224],[-22,58],[-89,-14],[-41,-34],[-83,17],[-47,1],[-56,34],[-71,-31]],[[3676,3709],[34,-5],[34,22]],[[3744,3726],[49,4],[40,-6],[37,-23],[22,8],[20,-10],[40,16]],[[3952,3715],[50,19],[34,-2],[31,-30],[121,-27]],[[4188,3675],[24,-67],[10,-4]],[[3297,5161],[53,-20],[56,-36],[43,-5],[31,41],[59,33]],[[3539,5174],[19,-17],[31,2],[22,-47],[49,13],[55,-10],[16,22],[24,-29],[42,-1],[40,18],[-3,26],[16,6],[14,-35]],[[3864,5122],[13,-53]],[[3877,5069],[-9,-22],[7,-31]],[[3875,5016],[-33,-9],[-52,-73],[44,-64],[5,-55]],[[3839,4815],[-25,-8],[-6,-24],[-39,18],[-3,20],[-22,-18],[-34,15],[-25,-3],[0,-21],[-63,4],[-21,-12],[-22,10],[-15,-19],[12,-64],[-19,-3],[
 28,-30],[-63,-42],[20,-31],[18,-5],[29,-52],[-6,-29],[-27,-39],[-20,9]],[[5055,3124],[57,42],[30,30],[-20,23],[-34,80],[-25,42]],[[5063,3341],[118,-2],[32,-23],[42,-16],[32,-27],[52,-2]],[[5339,3271],[16,-15],[-13,-28],[35,-34],[48,-18],[17,-30],[55,-34],[18,-28],[63,-60],[51,-11],[29,-14]],[[5658,2999],[27,0],[41,-25],[25,-51],[87,-17]],[[5838,2906],[11,-65],[61,-41],[9,-45],[19,-38],[54,-63]],[[3839,4815],[26,-18],[15,16],[34,-2],[38,14]],[[3952,4825],[5,-4]],[[3957,4821],[-2,-57],[6,-59]],[[3961,4705],[25,-31]],[[3986,4674],[-105,-30]],[[3881,4644],[-42,-45],[31,-33],[4,-30],[44,-50],[21,-44]],[[3939,4442],[-30,-33],[-10,-44],[-93,-9],[-20,-38],[-52,-52],[10,-40],[78,-102],[3,-59],[20,-25],[-8,-47]],[[3837,3993],[-40,-48],[-25,-21]],[[3772,3924],[-59,86],[-22,-19]],[[3691,3991],[-10,45]],[[5924,4157],[7,19],[75,78]],[[6006,4254],[43,-8],[17,-17],[42,25],[103,9]],[[6129,3851],[-1,-20],[-24,-46],[-36,-22],[-13,-21],[13,-10],[-32,-82],[-49,-53],[-3,-42],[-22,-19],[-57,19],[-30,-42]]
 ,[[5200,7344],[-14,34],[10,39],[-31,2],[-28,-16],[-11,15],[-1,35],[-20,24],[-90,38],[-62,-12],[-21,-47],[-46,-33]],[[4886,7423],[-56,28]],[[4830,7451],[-2,53],[38,39]],[[4866,7543],[18,28],[37,13],[32,-2],[8,62],[12,6],[-14,32]],[[4959,7682],[-25,21],[24,57],[45,31],[47,42],[0,17]],[[5050,7850],[87,20],[17,40],[94,32],[6,-39],[40,-26],[12,-53],[29,-35],[21,-50],[23,-24],[43,10]],[[5422,7725],[3,2]],[[5425,7727],[2,-21],[-35,-69],[68,16],[34,-4],[8,-17],[-9,-32]],[[5493,7600],[-14,-31],[-34,-31],[18,-14],[1,-48],[-11,-11]],[[5453,7465],[-7,-24],[-31,-35],[-32,11]],[[5383,7417],[-27,81],[-17,10],[-36,-43],[-8,-81],[8,-16]],[[5303,7368],[-28,-4],[-31,38],[0,17],[-41,-52],[-3,-23]],[[1386,7481],[-54,77],[-76,34],[-39,1],[-48,53],[-54,40],[-75,-52],[-33,83],[50,73],[55,48]],[[1112,7838],[85,72]],[[1197,7910],[57,17],[81,37]],[[1335,7964],[166,70]],[[1501,8034],[80,42],[34,24],[119,49]],[[1734,8149],[34,16]],[[1768,8165],[53,-124]],[[1821,8041],[-93,-33]],[[1728,8008],[-109,-56],[-54,-40]
 ,[-56,-75],[-36,-11],[-18,-19],[-2,-47],[13,1],[9,-52],[-25,-20],[-9,-32],[26,-2],[6,-46]],[[1473,7609],[5,-40],[-14,-23],[-40,-20],[9,-22],[-47,-23]],[[2700,5852],[-109,-9],[-27,19],[-41,3],[-28,-10],[-48,-43],[-28,-13],[-57,16]],[[2362,5815],[-6,7],[-7,66],[13,47]],[[2362,5935],[34,83],[-5,24],[-54,68],[-14,45],[37,34],[16,32]],[[2376,6221],[43,66],[11,27],[0,71],[31,17]],[[2461,6402],[31,6]],[[2492,6408],[-22,-24],[5,-26],[30,-35],[34,-5],[39,37],[22,7]],[[2772,6255],[12,-110],[-21,-6],[3,-93],[9,-22]],[[7211,3998],[-23,-7],[-84,-46],[-100,-79],[-35,-9],[-90,-59],[-5,-21],[-36,-5],[-41,-31],[-47,-61],[0,-26]],[[6750,3654],[-50,-35],[-30,-3],[-51,-51],[-83,7],[-34,-3],[-18,35],[-55,8]],[[6429,3612],[49,39],[43,54],[63,27],[42,41]],[[6626,3773],[50,37],[49,43],[7,20],[44,38]],[[6776,3911],[30,21],[35,48],[28,9],[19,37],[52,19],[23,29],[5,31],[81,63],[63,39]],[[4604,6122],[5,10],[-45,0],[-48,-48],[-20,11],[-37,-3],[-30,-21],[23,-46],[-58,-9],[-45,5],[-3,30],[-28,-1],[-24,23],[-18,-2
 5],[-10,-58],[-26,-18],[-89,31],[-25,1]],[[4126,6004],[-7,12]],[[4119,6016],[-3,23],[-49,23],[-1,25]],[[4066,6087],[45,5],[8,-41],[17,-6],[-8,36],[25,5],[-2,29],[22,-22],[9,25],[37,25],[-15,15],[9,53],[-12,28],[33,10]],[[4234,6249],[45,-3],[-7,77],[15,21],[10,89],[-23,-5]],[[4274,6428],[-5,10],[40,92],[-4,37],[45,-15],[-6,-60],[34,-22],[30,8],[48,52]],[[4456,6530],[3,-36],[23,-24],[56,-19],[20,5]],[[4558,6456],[53,-55],[21,7],[-6,-24]],[[4626,6384],[25,-15],[44,-7],[-16,-30],[24,-10],[7,-48],[-28,-8],[7,-27],[-22,0],[-35,-23],[37,-37],[-9,-30],[-56,-27]],[[1742,8748],[-37,-14],[-55,-9],[-93,-53],[-74,11]],[[1483,8683],[-25,4],[-86,-13],[0,-8],[-63,-21],[-34,42],[-31,-18],[-38,35],[-23,-17],[-25,24],[17,24],[-32,58]],[[1143,8793],[-5,12],[23,39],[72,40],[-14,65],[15,44],[61,18],[68,35],[0,-42],[36,19],[23,-38],[-20,-15],[17,-29],[48,0],[6,23],[38,36],[52,-12],[50,20],[48,10],[78,-18],[67,31]],[[1806,9031],[3,-20],[-11,-42]],[[1798,8969],[-3,-24],[-58,-13],[5,-26],[48,12]],[[1790,8918
 ],[8,-64],[-20,-6],[-30,-51],[-6,-49]],[[2989,8745],[-35,-11],[-24,5],[-22,-13]],[[2908,8726],[-15,44],[-40,44],[26,12],[-14,36],[0,80],[-19,11],[-9,39],[-38,6],[-2,61],[-11,21]],[[2786,9080],[39,22],[54,14],[45,29],[49,-10]],[[2973,9135],[34,-53],[13,-41],[59,52],[56,30],[31,24],[12,-15],[35,-9],[56,2],[31,-11],[12,18]],[[3312,9132],[25,-8],[15,-31],[34,-15],[66,21],[9,-15]],[[3461,9084],[12,-67],[16,-24],[-32,-26],[-21,4],[-26,-15],[-30,-34],[-40,-26],[-102,-41],[-37,-19],[-56,-59],[-38,-12],[-13,14],[-105,-34]],[[1719,6451],[-287,-71],[-216,8],[-109,29]],[[1107,6417],[68,58],[143,92],[-12,10],[57,24],[-17,20],[25,17],[-39,26],[42,43],[2,35]],[[1376,6742],[31,36]],[[1407,6778],[46,60]],[[1453,6838],[17,-23],[28,27],[16,-23],[21,32],[21,7],[25,34],[23,-28],[34,23],[8,-13],[22,15],[52,7]],[[1720,6896],[22,-45],[-25,-13],[-46,-3],[-42,-23],[40,-58],[33,-3],[17,-33],[-16,-7],[6,-26]],[[1709,6685],[2,-24],[-20,-3],[6,-28],[-17,-13],[-26,15],[15,-65],[13,-4],[6,-63],[21,-1],[10,-48]],[[
 765,7763],[-107,-22],[-120,-18],[-52,-33],[-4,7]],[[482,7697],[-18,34],[8,19],[-25,30],[18,29],[-31,41],[69,60],[-17,20],[-24,-6],[-11,28]],[[451,7952],[-17,16],[-21,56],[-21,34],[-3,29],[-50,137]],[[339,8224],[88,58],[52,57],[14,51]],[[493,8390],[83,-89],[29,-46],[84,-153],[62,-82],[14,2],[14,-30],[-20,-123],[-2,-53],[8,-53]],[[6999,3382],[-9,31]],[[6990,3413],[65,43],[13,73],[-19,32],[-41,-27],[-41,-15],[-50,15]],[[6917,3534],[-44,81],[-22,27],[-22,-1],[-16,20],[-63,-7]],[[3847,5607],[27,51],[-17,14],[41,34],[-33,45],[28,22],[-16,18],[22,38],[-31,14],[34,27]],[[3902,5870],[89,-58],[20,-30]],[[4011,5782],[13,-23],[56,-51]],[[4080,5708],[52,-44],[80,-115],[16,-57],[10,-79]],[[4238,5413],[14,-48],[25,-63]],[[4277,5302],[-73,-53],[-19,-34],[-44,-35],[2,-16],[-27,0]],[[4116,5164],[-69,41],[-30,-4]],[[4017,5201],[-12,49],[-47,11],[13,80],[-19,5],[9,40],[-18,10],[9,30],[-34,3]],[[3918,5429],[-7,13],[-24,-16],[-12,20],[15,50],[-7,30],[-26,41],[-10,40]],[[6143,8073],[-44,-15],[-6,-24],[-26
 ,-30],[-24,6],[-51,-9],[-23,26],[-32,6],[-1,-16],[-29,-2],[-20,20],[-19,-42]],[[5868,7993],[-18,-25]],[[5850,7968],[-32,-20],[7,-12],[-24,-46]],[[5801,7890],[-33,-2]],[[5768,7888],[-29,33],[25,142],[-66,14],[-40,-29],[-32,-43],[1,-26],[-25,-35],[-43,-17],[-19,7],[-8,34]],[[5532,7968],[-4,54],[27,28],[1,36],[24,21],[14,43]],[[5594,8150],[62,17],[29,53],[45,25],[-8,28],[51,39]],[[5773,8312],[0,-1]],[[5773,8312],[14,34],[27,8],[3,82],[21,-3],[5,20],[82,-41]],[[5925,8412],[30,-9],[7,-23],[38,-13],[33,14]],[[6033,8381],[33,-28],[-1,-77]],[[6065,8276],[-1,-46],[-14,-18],[14,-35],[37,-28],[-16,-13],[39,-8]],[[6124,8128],[11,-51],[8,-4]],[[4718,3449],[23,6],[90,95],[-6,23]],[[4825,3573],[15,-19],[21,15],[48,-29],[71,-29],[38,-52],[7,-30],[38,-88]],[[1335,7964],[-31,116],[-48,104],[-16,57],[-1,93],[-17,58],[-72,16],[-35,32],[-89,118]],[[1026,8558],[28,44],[30,73]],[[1084,8675],[18,-60],[17,-13],[5,-30],[51,23],[19,-10],[12,18],[55,5],[0,-18],[68,25],[48,-4],[31,11]],[[1408,8622],[-8,-22],[38
 ,-121],[1,-27],[22,-42],[5,-59],[35,-50],[27,-26],[-47,-50],[14,-10],[-25,-27],[31,-54],[-51,-20],[51,-80]],[[4898,6877],[-17,25]],[[4881,6902],[-29,47],[41,60],[-27,15],[3,40],[15,24],[0,34],[-17,18],[17,27],[6,34],[24,40],[29,31],[-17,8],[-30,45],[-18,-20],[-3,52],[28,51],[-17,15]],[[5200,7344],[50,-17],[41,-23],[-5,-40]],[[5286,7264],[-28,-21],[-14,-36],[-31,-46],[-11,-48],[-12,-14],[-56,15],[-39,-57],[31,-27],[-34,-25],[19,-16],[-16,-15],[-19,14],[-85,-41],[-32,-31],[-2,-24],[-27,-14],[-32,-1]],[[4813,3758],[-28,24],[-53,12],[-62,55]],[[4670,3849],[-22,46],[-26,10],[-20,33],[-36,13],[-30,32],[-6,32]],[[4530,4015],[0,42],[43,221]],[[4573,4278],[15,52],[12,-7],[48,40]],[[4648,4363],[3,-8]],[[4651,4355],[62,-86],[44,2],[27,29],[10,-18],[37,10],[35,27],[43,-19],[33,10]],[[4942,4310],[6,-13],[29,19],[24,-21],[30,9],[41,38]],[[5072,4342],[63,-35],[27,4],[20,-43]],[[5182,4268],[-19,-19],[-60,3],[-35,-12],[-19,6],[-77,-38],[-21,-36]],[[4951,4172],[-33,-32],[-46,5],[-17,-14],[4,-23]],[[4
 815,3898],[-41,-16],[-3,-38],[54,-67],[-12,-19]],[[5434,5529],[9,20],[-14,26],[-1,37],[-20,46],[-44,48],[-18,-17],[-32,12],[14,32],[-19,7]],[[5309,5740],[5,12],[-45,11],[16,16],[-18,28],[9,74],[-52,67]],[[5224,5948],[88,49],[39,-12],[15,18],[24,-6],[42,9],[34,-27],[12,-31],[38,51],[12,53],[28,76]],[[5137,6511],[33,-20],[-24,-54]],[[5146,6437],[-45,-34],[-9,28],[-39,2],[-17,-25],[-31,13],[12,40],[-22,1],[-24,-37]],[[4971,6425],[-28,12],[-11,-17],[-17,34],[-40,-29],[-7,13],[-43,-5],[-31,45],[-84,-62],[-6,9],[-78,-41]],[[4558,6456],[13,39]],[[4571,6495],[51,-3],[41,13],[21,34],[-50,15],[25,34]],[[4659,6588],[20,53],[41,23],[25,3],[3,24],[-22,24],[12,43],[24,29],[34,15],[48,7],[-20,42],[37,33]],[[4861,6884],[20,18]],[[4898,6877],[16,-59],[35,-24],[23,-32],[32,-25]],[[5004,6737],[55,-34],[33,-9],[3,-17],[31,-23],[-21,-9],[20,-86],[-7,-32],[19,-16]],[[3067,5489],[-12,23],[-33,16],[-105,31],[-35,6],[-73,-19],[-31,-1],[-71,22],[-35,1],[-26,-12],[-29,-30],[-57,29],[-33,7],[-38,38],[-28,12]],
 [[2461,5612],[6,25],[-3,79],[-88,67],[-14,32]],[[6006,4254],[8,4]],[[6014,4258],[5,20],[37,31],[33,52],[54,23],[-7,24],[-52,52],[-14,0],[-29,42],[-30,13],[-37,-5],[-28,18],[-49,4],[-18,-11],[-66,0],[-84,-28],[-29,24],[-49,4],[-18,-7]],[[5633,4514],[-29,1],[-6,-17],[-105,-38],[-39,-1]],[[5454,4459],[-12,1]],[[5442,4460],[-25,13]],[[5417,4473],[46,30],[9,64],[14,17],[26,-1],[35,19],[25,-6],[70,9],[28,29],[13,33],[24,-21],[19,16]],[[2450,7810],[-11,11]],[[2439,7821],[0,26],[-29,19]],[[2410,7866],[-14,19],[-25,-18],[-9,17],[-41,10],[-18,-8]],[[2208,7859],[-53,18],[-37,39]],[[2118,7916],[67,59],[9,-6],[44,23],[58,40],[13,-9],[28,27],[25,5],[14,32],[20,16],[23,40],[-29,11],[-54,-28],[-53,-5]],[[2283,8121],[62,58],[6,21],[94,59]],[[2445,8259],[44,2],[28,-8],[34,9],[9,29],[83,31],[48,26],[3,-39]],[[2694,8309],[25,-55],[-1,-23],[41,-21],[46,11]],[[2805,8221],[10,-34],[-53,-23],[-27,-3],[-11,-18],[12,-37]],[[2736,8106],[-42,-47],[-50,-13],[10,-36],[-25,-5],[3,-16]],[[2632,7989],[2,-15],[-48,-
 15],[-10,18],[-50,-26],[27,-45],[-26,-25],[5,-15],[-55,-46],[-25,-9]],[[2452,7811],[-2,-1]],[[2283,8121],[-19,-4],[-64,-62],[-17,-32],[-76,-15],[-53,-51]],[[2054,7957],[-130,-67],[-10,23],[-59,74],[-34,54]],[[1768,8165],[133,78]],[[1901,8243],[59,34],[23,24],[26,6],[33,-14],[65,3],[19,18]],[[2126,8314],[71,7],[17,-6],[26,20],[54,-6]],[[2294,8329],[21,-26],[44,-22],[81,-3]],[[2440,8278],[5,-19]],[[5224,5948],[-1,59]],[[5223,6007],[1,13]],[[5224,6020],[31,32],[17,53],[-21,49],[0,36]],[[5251,6190],[39,3],[38,-14],[14,29],[53,51],[-11,9],[34,36],[19,41],[43,17]],[[5480,6362],[114,-4],[52,21],[64,49],[-21,45],[4,19],[31,33],[-7,12]],[[5717,6537],[28,22],[54,-11],[13,14],[38,-4]],[[5464,6817],[-5,-35],[24,-11],[8,-54],[16,-22],[5,-41],[39,-13],[18,-20],[17,16],[52,-68]],[[5638,6569],[-57,-41],[-15,-23],[18,-13],[-34,-31],[-17,-1],[-14,24],[-23,-15],[-28,42],[-25,13],[-33,-9],[-19,57],[-19,12],[-47,-12],[-68,3],[-66,12],[17,-35],[-28,-20],[-19,7],[-24,-28]],[[5004,6737],[15,39],[40,3],[0,2
 7],[59,11],[-2,11],[45,-16],[39,6],[27,17],[44,52],[-2,30],[14,65],[19,12],[-19,25],[19,36],[54,5],[11,-51],[-33,-6],[53,-35],[22,16]],[[4723,5824],[-16,-2],[9,-27],[-20,-54],[-27,8],[-6,23],[-40,26],[-41,-16],[19,-14],[-2,-23],[-19,-4]],[[4580,5741],[-42,0],[-20,11],[-6,-17],[-44,-5],[-23,23],[-8,-21],[-42,-7]],[[4395,5725],[-14,19],[-28,-8],[-26,8],[-19,-18],[-45,-8],[-22,17]],[[4241,5735],[-10,0],[-8,61],[-10,-4],[-19,42],[-16,-10],[-31,28],[23,22],[-47,4]],[[4123,5878],[0,47],[18,39],[-21,16],[6,24]],[[4604,6122],[-18,-6],[0,-29],[-33,-65],[18,-17]],[[4571,6005],[46,-12],[54,-23],[20,-25],[22,0]],[[4713,5945],[-3,-24],[-25,-28],[5,-32],[33,-37]],[[1101,7857],[-61,5],[-19,-27],[-94,-9],[-17,10],[-38,-20],[-24,-27],[-83,-26]],[[493,8390],[7,41],[66,27],[21,-34],[-14,-11],[17,-21],[28,14],[63,-8],[39,-63],[25,-6],[23,18]],[[768,8347],[24,-30],[43,-38],[34,24],[17,-9],[48,-88],[2,-51],[-9,-26],[15,-31],[11,-85],[110,-127],[38,-29]],[[2612,6484],[-11,39],[9,49],[24,33],[-5,17],[27,11
 ],[19,31],[41,22],[-35,50],[-6,32],[-40,77],[6,20],[-32,12]],[[2609,6877],[-18,18],[-9,32],[34,-11],[34,41],[53,28],[46,43],[-16,39],[48,49],[0,32]],[[2781,7148],[19,2],[15,43],[33,16],[57,7]],[[2905,7216],[21,-38],[-25,-17],[34,-38],[-2,-34],[38,-1],[12,-24]],[[2983,7064],[-31,-41],[-13,1],[-31,-52]],[[2908,6972],[-13,-9],[6,-31],[38,28],[19,-11],[-9,-39],[20,-18],[19,13],[-2,-23],[34,-48],[49,-32],[25,-30]],[[3094,6772],[-13,-23],[-49,-15],[-9,22],[-34,19],[-46,-31],[9,-13],[-37,-36],[-38,-4],[-7,-19],[-33,6],[-25,-7],[3,-35]],[[6776,3911],[-1,25],[-27,29],[-37,62],[-63,18]],[[6838,4576],[25,-23],[46,-23],[28,-25],[0,-19],[25,-40],[54,-19],[15,-14]],[[3604,6956],[-9,-21],[-20,6],[-14,-17]],[[3561,6924],[-35,21],[16,20],[-162,52],[-15,40],[5,42],[-42,-8],[-17,14],[-31,4],[-24,20],[-49,2],[-22,16]],[[3185,7147],[3,14],[49,7],[27,65],[20,107]],[[3284,7340],[87,-6],[47,23],[-22,38],[10,36],[23,-42],[23,21],[40,3]],[[3492,7413],[-13,11],[13,32],[-10,61],[19,9],[-9,34],[-34,-16],[-6,17]
 ],[[3452,7561],[34,26],[19,-22],[67,30],[22,-61],[-15,-6],[-15,-58],[9,-15],[8,-59],[48,-55]],[[3629,7341],[12,-10],[-6,-33],[-19,-18],[7,-16]],[[3623,7264],[-13,-6],[19,-34],[-14,-4],[4,-36],[-24,-9],[5,-17],[-25,-20],[34,-23],[-3,-26],[44,-15]],[[3650,7074],[9,-13]],[[3659,7061],[-7,-45],[-24,-20],[0,-32],[-24,-8]],[[3311,6794],[-27,34],[-37,-12],[-32,2],[-68,-40],[-53,-6]],[[2983,7064],[59,-1],[17,21],[-29,20],[30,39],[35,-12],[90,16]],[[3561,6924],[-3,-23],[-54,-7],[-21,24],[-53,-5],[-24,-13],[9,-32]],[[3415,6868],[-9,-10]],[[3406,6858],[-13,-23],[-20,-4],[1,-21]],[[3374,6810],[-63,-16]],[[2973,9135],[23,54],[-26,-3],[-4,54],[12,6]],[[2978,9246],[7,8],[91,18],[-40,91],[-53,15],[-25,61],[-34,-10],[-6,16],[-34,-15],[-79,11],[-24,-5]],[[2781,9436],[62,24],[36,50],[57,41],[35,61],[66,-2]],[[3037,9610],[14,-60],[-50,-21],[1,-38],[24,11],[10,-23],[52,19],[6,-15],[107,17],[11,11],[37,-4],[85,29]],[[3334,9536],[-6,-27],[-31,-34],[15,-59],[2,-34]],[[3314,9382],[-2,-45],[-15,-49],[23,-51]
 ,[-8,-105]],[[4479,6901],[14,-10],[27,-53],[-24,-18],[5,-35],[47,10],[58,-16],[-23,-60],[19,-6],[5,-35]],[[4607,6678],[-34,-17],[-15,-33],[-36,-14],[-17,-21]],[[4505,6593],[-11,-30],[-23,-7],[-15,-26]],[[4274,6428],[-27,-2],[-26,-36],[-52,-5],[21,49],[-5,79],[33,53],[0,24],[-42,8]],[[4176,6598],[39,16],[-5,25]],[[4210,6639],[5,8]],[[4215,6647],[36,48],[3,67],[-10,60],[-9,11]],[[4235,6833],[17,18],[-18,27],[18,45],[39,11],[8,24],[42,0],[21,-11],[32,24]],[[4394,6971],[0,20],[29,21],[9,-9],[-8,-52],[32,-11],[25,7]],[[4481,6947],[-15,-30],[13,-16]],[[5838,2906],[23,35],[40,41],[9,29],[26,28]],[[5936,3039],[6,27],[76,82],[41,60],[12,4]],[[6071,3212],[28,-21],[68,6],[37,-27],[28,-46],[-16,-36],[5,-70],[23,-23],[-39,-35],[-4,-29],[10,-24]],[[4825,3573],[-10,24],[1,58],[14,37],[-12,52]],[[4818,3744],[-5,14]],[[5414,3338],[-14,-8],[-3,-38]],[[5397,3292],[-11,7],[-47,-28]],[[5444,4393],[-12,34],[10,33]],[[1734,8149],[-37,75],[17,11],[-34,48],[-9,39],[6,34],[-17,1],[8,51],[-44,16],[-14,139],[-
 22,31],[-40,-7],[-67,34],[-8,29]],[[1473,8650],[10,33]],[[1742,8748],[57,-6],[25,-14]],[[1824,8728],[19,-32],[6,-74],[-14,-82],[7,-57],[26,-140],[33,-100]],[[5513,9059],[-61,5],[-39,-11],[-57,-52],[-21,-33],[-17,0]],[[5318,8968],[-38,53],[-26,66],[-30,-31],[-16,3],[-55,52],[-2,20]],[[5151,9131],[-16,67],[-22,-23],[-21,23],[17,10],[-28,39],[-48,32]],[[5033,9279],[11,48],[-39,76],[-19,22]],[[4986,9425],[47,21],[12,-12],[58,25],[30,38],[24,-34],[77,-39],[29,-59],[20,-10],[22,-56],[21,26],[59,-69],[0,-33],[47,-67],[36,8],[39,-28],[29,17],[47,-6]],[[5583,9147],[5,-13],[-75,-75]],[[6137,7509],[-154,31],[-28,-7],[-23,13]],[[5932,7546],[-5,-2]],[[5927,7544],[-12,18]],[[5915,7562],[-10,36],[24,24],[20,56],[25,28],[4,41],[34,62]],[[6012,7809],[21,14]],[[6033,7823],[22,14],[30,-2],[26,33],[36,3],[21,25]],[[6168,7896],[42,-15],[25,23],[29,8],[9,-37],[24,4],[-11,-22],[30,-22]],[[6316,7835],[-34,-29],[-6,-44],[18,-8],[-10,-39],[41,-25],[-11,-40],[21,-35],[-10,-40],[31,-20],[-10,-26],[16,-29]],[[6
 362,7500],[-22,-23],[-46,14],[-40,-6],[-61,25],[-41,-12],[-15,11]],[[6204,8586],[-47,-55],[-28,-14]],[[6129,8517],[-42,19]],[[6087,8536],[17,24],[-7,30],[-22,18],[4,27],[45,10],[-22,43],[-41,7],[-9,15],[-33,-14],[-91,-71],[8,-31],[-21,-19]],[[5915,8575],[-36,13],[-26,-16],[-66,5],[-38,10],[2,-28]],[[5751,8559],[-19,16],[-7,-20],[-33,30],[-53,-21]],[[5639,8564],[-18,28],[30,16],[-6,34],[1,56],[-13,51],[-18,23],[41,28]],[[5656,8800],[54,36],[58,78],[7,-12],[19,43]],[[5794,8945],[1,0]],[[5795,8945],[6,-22],[42,-10],[6,-24],[43,23],[26,-31],[73,-42],[9,-67],[22,-4],[11,-28],[27,-8],[20,17],[13,56]],[[6093,8805],[16,-8],[17,-41],[20,-7],[15,-70],[18,-19],[25,-74]],[[4889,6150],[-23,-61],[-33,-3],[-18,-47],[-32,9],[-15,-28]],[[4768,6020],[-20,-30],[-27,-10],[-8,-35]],[[4971,6425],[2,-26],[21,-9],[0,-49]],[[4994,6341],[0,-1]],[[4994,6340],[-23,-30],[19,-39],[-25,-42]],[[4965,6229],[-22,-9],[-32,-51],[-22,-19]],[[5251,6190],[-5,59],[9,34],[-14,31],[-37,-23],[-45,13],[-15,38]],[[5144,6342],[
 33,60]],[[5177,6402],[-31,35]],[[5638,6569],[24,-38],[43,-4],[12,10]],[[4377,7551],[-77,47],[-41,39],[-43,52]],[[4216,7689],[-17,25],[-4,29],[12,45],[40,62],[18,51],[-2,184]],[[4263,8085],[24,1],[7,-33],[28,1],[-3,-53],[50,7],[3,-17],[45,18],[-5,21],[20,9],[-18,23],[26,25]],[[4440,8087],[25,24],[28,-55],[27,2]],[[4520,8058],[23,-45],[-35,-132],[19,-1],[14,-61]],[[4541,7819],[1,-51],[28,-13],[1,-16]],[[4571,7739],[-19,-27]],[[4552,7712],[-35,12],[-16,-14],[4,40],[-10,6],[-21,-74],[-10,1],[-6,-42]],[[4458,7641],[-18,7],[-28,-24],[12,-20],[-52,-25],[5,-28]],[[6525,2844],[-1,38],[13,59],[-7,30],[-36,53]],[[6494,3024],[19,31],[2,43],[54,102],[-18,43]],[[6551,3243],[21,25],[22,5],[102,81],[34,1],[43,17],[28,33],[19,40],[33,20],[64,69]],[[6990,3413],[-22,0],[-43,-35],[-69,-34],[-3,-15],[-72,-82],[-36,-68],[-76,-84],[12,-20],[2,-39],[36,-82],[-2,-59],[12,-20]],[[3916,6318],[-2,31],[21,48],[-23,40],[-19,-13],[-1,23],[-27,16],[6,36],[-18,6],[-16,30],[0,55]],[[3837,6590],[78,19],[18,28],[32,-9
 ],[21,-51],[44,32],[18,-4]],[[4048,6605],[43,37],[54,6]],[[4145,6648],[8,-17],[37,-6],[20,14]],[[4234,6249],[-30,6],[-20,-32],[-27,15],[-35,3],[-5,38],[-26,21],[-11,-45],[-30,58],[-14,-38]],[[4036,6275],[-22,25],[-28,-25],[-29,-4],[-8,30],[-15,-9],[-18,26]],[[1112,7838],[-11,19]],[[768,8347],[27,40],[6,27],[29,39],[13,62],[79,5],[44,8]],[[966,8528],[-8,-35],[9,-64],[22,-35],[25,-17],[35,-84],[33,-50],[42,-90],[16,-79],[57,-164]],[[5050,7850],[-17,21],[-75,35],[-32,-8],[-17,19],[9,30]],[[4918,7947],[36,28],[-18,49],[40,26],[-39,48]],[[4937,8098],[-9,58],[14,33],[-12,8],[53,67],[79,0]],[[5062,8264],[42,-51]],[[5104,8213],[-28,-66],[2,-32],[30,11],[63,-17]],[[5171,8109],[50,-10],[17,-16]],[[5238,8083],[27,-11],[40,-51],[27,-74],[30,-27],[30,-9],[-10,-14],[10,-51],[-13,-25],[4,-29],[18,0],[5,-57],[16,-10]],[[2294,8329],[3,33],[51,42],[-24,89],[-1,50],[-25,64],[-5,44]],[[2293,8651],[33,8],[36,32],[67,3]],[[2429,8694],[38,-12],[32,18],[77,-6]],[[2576,8694],[49,7],[69,24],[18,19]],[[2712,8
 744],[23,-8],[121,-13]],[[2856,8723],[6,-66]],[[2862,8657],[-171,-50],[-71,-38],[-19,-51],[-75,-22],[-65,-39],[-16,-33],[9,-27],[-13,-45],[20,-30],[-9,-44]],[[2452,8278],[-12,0]],[[6551,3243],[-35,54],[2,25]],[[6518,3322],[22,73],[-28,28],[-80,-11],[-43,-36],[-16,0]],[[6373,3376],[5,11]],[[6378,3387],[25,23],[22,46],[9,54]],[[6434,3510],[-5,102]],[[4861,6884],[-16,3],[-36,66],[-57,76],[-18,-5],[-22,22],[-21,-27],[-60,-16],[-8,-52],[-34,4],[-75,-34],[-6,-20],[-29,0]],[[4481,6947],[-14,14],[19,30],[-12,61],[27,24]],[[4501,7076],[1,2]],[[4502,7078],[43,-54],[22,6],[31,30],[36,52],[-36,37]],[[4598,7149],[5,11],[-53,4]],[[4550,7164],[42,74],[9,39],[25,25]],[[4626,7302],[16,21],[113,-73],[10,18],[19,-10],[38,59],[-25,44],[20,-4],[24,35],[-11,59]],[[3744,3726],[0,35],[14,35],[-27,29],[-30,8],[18,18],[22,49],[31,24]],[[3837,3993],[46,29],[32,39],[102,34],[56,43],[44,60]],[[4117,4198],[6,-14],[39,-18],[9,10],[33,-43],[22,15]],[[4226,4148],[9,-65]],[[4235,4083],[-20,-18],[-39,-13],[17,-17],[-
 23,-32]],[[4170,4003],[-53,-31],[-62,-84],[-50,-17],[-30,-55],[-26,0],[-29,-23],[31,-20],[-15,-20],[16,-38]],[[5437,4912],[-32,-10],[-55,-31],[15,-44],[19,0],[44,-68],[-18,-19]],[[5410,4740],[-59,19],[-42,-20],[-3,26],[-44,6],[-41,-51],[-21,-4],[-5,-22],[-32,-21],[-58,1]],[[5105,4674],[-19,27],[-44,5],[-20,29],[-43,-22],[-42,16],[-56,-6]],[[4881,4723],[9,24],[32,29],[-4,28],[31,20],[4,66],[24,2]],[[4977,4892],[48,-3],[44,43]],[[5069,4932],[14,-15],[19,26],[3,29],[15,-13],[184,49]],[[2363,6594],[-26,-6],[8,-24],[-45,-19],[-10,-27]],[[2290,6518],[-45,26],[28,37],[-20,11],[-11,40],[-23,42],[-13,-12],[-18,16],[-16,-28],[-34,23],[-26,-46],[-28,5],[-16,-25],[-95,-54]],[[1973,6553],[-48,57],[48,59],[5,34]],[[1978,6703],[20,-22],[84,83]],[[2082,6764],[69,61],[-16,24],[50,48]],[[2185,6897],[67,61],[20,2],[9,-35],[42,9],[67,-62]],[[2390,6872],[-5,-48],[14,-26],[19,16],[29,-13]],[[2447,6801],[22,-47],[2,-47],[-22,-19],[-78,-27],[-16,-19],[8,-48]],[[2905,7216],[22,51],[14,55],[7,65],[38,11],[-3
 ,16],[31,30],[12,36]],[[3026,7480],[29,-3],[-5,22]],[[3050,7499],[60,24],[32,-7],[12,-27]],[[3154,7489],[-19,-42],[24,-38],[29,-6],[58,28],[12,-3],[2,-61],[24,-27]],[[5286,7264],[56,1],[0,-25],[-17,-26],[16,-39],[-4,-20],[82,-18]],[[1824,8728],[69,-3],[32,-20],[25,-1],[72,-32],[29,-23],[107,-61]],[[2158,8588],[0,-33],[-45,-26],[8,-54],[-17,-4],[23,-91],[-1,-66]],[[2781,7148],[-16,-4],[-13,36],[-33,23],[-46,8]],[[2673,7211],[-7,47],[24,39],[4,103],[25,27],[62,96]],[[2781,7523],[19,34],[0,33],[15,50]],[[2815,7640],[16,50]],[[2831,7690],[36,-9],[17,-18],[53,1],[1,-104],[36,-34],[37,10],[24,-5]],[[3035,7531],[15,-32]],[[1790,8918],[34,20]],[[1824,8938],[77,-3],[37,-22],[38,24]],[[1976,8937],[63,-21],[65,-4],[6,-24]],[[2110,8888],[17,-17]],[[2127,8871],[25,-14],[26,5],[72,-137],[6,-22],[-19,-25],[16,-20],[23,12],[5,-19]],[[2281,8651],[-60,-1],[-63,-62]],[[1408,8622],[40,37],[25,-9]],[[2492,6408],[-3,40],[-44,36],[-24,43],[-58,67]],[[2447,6801],[27,42],[42,30]],[[2516,6873],[32,25],[61,-2
 1]],[[5325,5291],[-44,-2],[-68,-30],[-42,-6]],[[5171,5253],[-8,26],[-40,35],[22,64],[18,35],[1,43],[-17,-4]],[[5147,5452],[1,30],[22,45],[-21,12],[8,32],[-60,-20],[-30,53],[11,8],[-11,35],[14,38],[-8,42]],[[5073,5727],[22,-14],[5,-25],[62,55],[11,-11],[-22,-34],[7,-11],[36,13],

<TRUNCATED>

[39/50] [abbrv] zest-qi4j git commit: Final cleanup

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/data/GeoJSONSwissLakes2013.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/data/GeoJSONSwissLakes2013.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/data/GeoJSONSwissLakes2013.java
new file mode 100644
index 0000000..4466f22
--- /dev/null
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/formats/data/GeoJSONSwissLakes2013.java
@@ -0,0 +1,176 @@
+package org.qi4j.library.spatial.formats.data;
+
+/**
+ * https://github.com/interactivethings/swiss-maps
+ */
+public class GeoJSONSwissLakes2013
+{
+
+
+    public static final String SWISS_LAKES = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"id\":9040," +
+            "\"properties\":{\"name\":\"Greifensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[593.9590783343607," +
+            "112.49024902490248],[595.8203253450184,114.65046504650462],[596.6663467134993,115.08250825082507],[597.9071780539377," +
+            "117.09870987098708],[598.1327837521992,119.018901890189],[598.8660022715492,120.50705070507047],[600.7272492822069," +
+            "121.46714671467146],[600.6144464330762,123.1473147314731],[599.3736150926377,124.29942994299427],[598.4711922995915," +
+            "124.20342034203418],[597.9635794785031,122.3312331233123],[595.8203253450184,118.77887788778872],[594.5230925800146," +
+            "118.10681068106805],[592.3234370219645,114.8424842484248],[592.4926412956606,112.87428742874283],[593.9590783343607," +
+            "112.49024902490248]]]]}},{\"type\":\"Feature\",\"id\":9050,\"properties\":{\"name\":\"Z\u00FCrichsee\"},\"geometry\":" +
+            "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[616.9144581324724,147.1017101710171],[619.0577122659571,149.021902190219]," +
+            "[622.0469877679225,149.8379837983798],[637.7265837970996,147.19771977197718],[636.5421538812266,148.49384938493847]," +
+            "[631.9736384914303,150.12601260126007],[629.5483772351188,150.27002700270026],[629.0407644140303,149.5979597959796]," +
+            "[627.969137347288,150.36603660366035],[626.8975102805457,150.03000300029998],[623.8518333540148,151.03810381038102]," +
+            "[623.7390305048841,153.00630063006298],[622.272593466184,153.58235823582356],[620.7497550029186,152.76627662766276]," +
+            "[618.6629022939994,152.8142814281428],[618.3244937466071,151.75817581758173],[615.8428310657301,150.6540654065406]," +
+            "[611.9511327707186,150.07800780078003],[611.6127242233263,150.51005100510048],[606.6493988615723,149.64596459645963]," +
+            "[603.6601233596069,151.66216621662164],[602.4756934437339,151.32613261326128],[606.5365960124416,149.30993099309927]," +
+            "[614.7148025744225,146.66966696669664],[616.9144581324724,147.1017101710171]],[[616.4632467359494,147.9177917791779]," +
+            "[614.8840068481186,148.54185418541852],[614.6019997252916,149.9339933993399],[616.858056707907,148.44584458445843]," +
+            "[616.4632467359494,147.9177917791779]]],[[[637.7265837970996,147.19771977197718],[622.0469877679225,149.8379837983798]," +
+            "[619.0577122659571,149.021902190219],[616.9144581324724,147.1017101710171],[614.940408272684,142.87728772877284]," +
+            "[617.9860851992148,143.40534053405338],[618.4372965957378,144.9414941494149],[617.4784723781263,145.51755175517548]," +
+            "[618.0988880483455,146.5256525652565],[619.6781279361763,146.66966696669664],[620.7497550029186,147.77377737773776]," +
+            "[622.6674034381417,148.10981098109806],[623.8518333540148,147.72577257725771],[623.4006219574917,146.71767176717668]," +
+            "[625.2054675435841,146.6216621662166],[625.8822846383687,147.38973897389735],[627.7435316490264,147.96579657965793]," +
+            "[630.6764057264264,147.38973897389735],[631.0148142738187,146.90969096909686],[634.2296954740457,145.6615661566156]," +
+            "[637.9521894953612,145.8055805580558],[637.7265837970996,147.19771977197718]]],[[[614.940408272684,142.87728772877284]," +
+            "[616.9144581324724,147.1017101710171],[614.7148025744225,146.66966696669664],[606.5365960124416,149.30993099309927]," +
+            "[602.4756934437339,151.32613261326128],[599.9940307628569,147.8217821782178],[597.1739595345877,146.045604560456]," +
+            "[596.2715367415415,144.89348934893485],[594.0718811834915,143.26132613261325],[592.4362398710953,140.8130813081308]," +
+            "[591.1954085306568,140.28502850285025],[590.0673800393491,140.86108610861083],[586.5704917162952,139.32493249324932]," +
+            "[583.3556105160683,137.5007500750075],[580.084327891276,130.78007800780074],[578.2230808806182,128.37983798379832]," +
+            "[577.602665210399,125.73957395739569],[576.3054324453951,122.57125712571252],[574.387784010172,119.11491149114909]," +
+            "[574.4441854347374,114.93849384938488],[575.403009652349,114.4104410441044],[576.5874395682221,117.57875787578757]," +
+            "[577.3206580875722,117.62676267626762],[578.8434965508375,119.78697869786976],[579.2383065227953,121.46714671467146]," +
+            "[580.8175464106259,125.06750675067502],[581.1559549580184,126.55565556555655],[583.468413365199,129.77197719771976]," +
+            "[583.9760261862875,131.06810681068106],[586.5704917162952,134.38043804380436],[590.5185914358722,136.9246924692469]," +
+            "[593.9026769097953,137.64476447644762],[598.0763823276338,139.66096609660963],[598.1891851767646,140.14101410141012]," +
+            "[601.4604678015569,141.72517251725168],[602.7012991419954,143.2133213321332],[605.6341732193955,144.3654365436543]," +
+            "[613.6995769322455,143.98139813981396],[614.940408272684,142.87728772877284]]]]}},{\"type\":\"Feature\",\"id\":9073,\"properties\"" +
+            ":{\"name\":\"Thunersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[435.18906818280146,257.3207320732073]," +
+            "[440.20879496912073,261.7371737173717],[441.95723913064774,262.6492649264926],[442.6904576499977,264.08940894089403]," +
+            "[448.443402955667,266.2016201620162],[451.376277033067,269.22592259225917],[451.9402912787209,271.57815781578154]," +
+            "[453.857939713944,272.3942394239424],[454.64755965785935,271.9141914191419],[456.9600180650402,271.96219621962194]," +
+            "[459.1032721985248,271.14611461146114],[462.20535054962096,271.9141914191419],[463.3897804654941,273.45034503450347]," +
+            "[465.1946260515864,274.84248424842485],[464.79981607962867,275.75457545754574],[462.88216764440557,276.81068106810676]," +
+            "[460.7953149354863,275.7065706570657],[458.4264551037402,277.2907290729073],[456.11399669655935,278.01080108010797]," +
+            "[454.19634826133625,278.058805880588],[450.81226278741315,276.13861386138615],[449.176621475017,275.8025802580258]," +
+            "[445.3413246045708,273.64236423642365],[445.510528878267,272.1062106210621],[443.19807047108617,270.57005700570056]," +
+            "[442.97246477282465,269.7059705970597],[439.0807664778131,268.55385538553855],[438.34754795846305,267.1617161716172]," +
+            "[435.97868812671686,265.2415241524152],[435.18906818280146,263.3693369336934],[433.5534268704053,262.8892889288929]," +
+            "[433.6098282949707,260.72907290729074],[435.18906818280146,257.3207320732073]]]]}},{\"type\":\"Feature\",\"id\":9089,\"properties\"" +
+            ":{\"name\":\"Brienzersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[494.57976825015203,254.58445844584458]," +
+            "[497.1742337801598,255.54455445544554],[498.35866369603286,255.25652565256524],[499.48669218734057,256.16861686168613]," +
+            "[499.3738893382098,258.3288328832883],[496.10260671341746,258.90489048904885],[490.12405570948664,262.5052505250525]," +
+            "[487.6987944531751,264.5694569456946],[484.0891032809904,266.1056105610561],[482.34065911946345,268.07380738073806]," +
+            "[479.29498219293265,270.18601860186016],[475.96729814357496,270.37803780378033],[475.7980938698788,269.7059705970597]," +
+            "[473.8240440100903,269.08190819081904],[476.24930526640185,267.0657065706571],[477.54653803140576,266.5376537653765]," +
+            "[481.66384202467884,263.4173417341734],[485.72474459338656,259.4809480948095],[487.30398448121736,258.7608760876087]," +
+            "[488.714020095352,256.7446744674467],[491.8724998710136,255.11251125112508],[494.57976825015203,254.58445844584458]]]]}}," +
+            "{\"type\":\"Feature\",\"id\":9148,\"properties\":{\"name\":\"Bielersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\"" +
+            ":[[[[347.14644443623524,187.5217521752175],[346.6388316151468,186.84968496849683],[349.007691446893,185.79357935793576]," +
+            "[347.14644443623524,187.5217521752175]]],[[[351.0381427312468,188.62586258625862],[347.7668601064545,188.62586258625862]," +
+            "[347.14644443623524,187.5217521752175],[349.007691446893,185.79357935793576],[352.10976979798914,184.2094209420942]," +
+            "[353.12499544016606,182.28922892289228],[358.65233504757384,178.88088808880883],[359.7239621143161,178.6408640864086]," +
+            "[363.05164616367387,175.95259525952594],[364.23607607954693,174.36843684368432],[367.4509572797739,172.016201620162]," +
+            "[369.7070142623893,169.6159615961596],[371.2862541502201,168.7998799879988],[371.9630712450047,169.5199519951995]," +
+            "[369.4814085641278,173.07230723072303],[369.19940144130084,174.41644164416437],[367.0561473078162,177.77677767776777]," +
+            "[367.1125487323816,179.40894089408937],[364.0104703812854,184.5454545454545],[362.6004347671508,184.73747374737474]," +
+            "[362.4312304934546,186.12961296129612],[360.6263849073623,187.80978097809776],[358.31392650018154,188.3378337833783]," +
+            "[356.1142709421315,189.68196819681964],[353.2941997138622,190.59405940594058],[351.32014985407375,189.77797779777973]," +
+            "[351.0381427312468,188.62586258625862]],[[351.0381427312468,188.62586258625862],[352.22257264711993,188.09780978097808]," +
+            "[356.0014680930007,185.5055505550555],[357.9191165282238,183.44134413441344],[358.31392650018154,182.24122412241223]," +
+            "[357.41150370713535,181.7131713171317],[356.1142709421315,184.44944494449442],[351.0381427312468,188.62586258625862]]]]}}," +
+            "{\"type\":\"Feature\",\"id\":9151,\"properties\":{\"name\":\"Lac de Neuch\u00E2tel\"},\"geometry\":{\"type\":\"MultiPolygon\"," +
+            "\"coordinates\":[[[[300.44606489609635,232.59825982598255],[294.4111124676001,238.3108310831083],[298.3592121871771,242.6312631263126]," +
+            "[296.3287609028232,244.1194119411941],[294.0727039202078,242.9192919291929],[290.2374070497616,243.15931593159314]," +
+            "[289.84259707780393,243.6393639363936],[286.00730020735773,245.4155415541554],[283.0744261299577,247.23972397239723]," +
+            "[280.53636202451537,248.007800780078],[279.5775378069038,247.76777677767774],[277.6598893716807,245.65556555655564]," +
+            "[277.6598893716807,244.16741674167415],[281.43878481756155,240.95109510951093],[284.37165889496157,239.70297029702968]," +
+            "[285.6688916599654,237.78277827782776],[288.94017428475775,235.86258625862584],[290.3502098988924,233.8463846384638]," +
+            "[292.493464032377,232.93429342934292],[294.24190819390395,231.2541254125412],[296.27235947825784,229.95799579957992]," +
+            "[296.7799722993463,228.9018901890189],[300.44606489609635,232.59825982598255]]],[[[317.98690793593113,225.01350135013502]," +
+            "[315.336040981358,227.89378937893787],[314.49001961287723,229.2379237923792],[309.6394971002541,232.74227422742274]," +
+            "[308.9062785809041,234.13441344134412],[305.63499595611177,235.5265526552655],[303.5481432471925,237.20672067206718]," +
+            "[298.3592121871771,242.6312631263126],[294.4111124676001,238.3108310831083],[300.44606489609635,232.59825982598255]," +
+            "[314.03880821635414,219.78097809780974],[317.98690793593113,225.01350135013502]]],[[[341.3370977060006,203.79537953795375]," +
+            "[340.71668203578133,205.71557155715567],[339.3066464216467,207.5397539753975],[335.8661595231582,209.93999399939992]," +
+            "[334.7381310318505,210.32403240324032],[331.7488555298851,212.5322532253225],[331.86165837901586,213.39633963396335]," +
+            "[328.9851857261812,215.65256525652563],[323.85265609073116,209.89198919891987],[335.47134955120055,202.2112211221122]," +
+            "[341.3370977060006,203.79537953795375]]],[[[328.9851857261812,215.65256525652563],[325.6011002522581,218.72487248724872]," +
+            "[322.72462759942346,220.74107410741072],[318.7765278798465,216.13261326132613],[323.85265609073116,209.89198919891987]," +
+            "[328.9851857261812,215.65256525652563]]],[[[322.72462759942346,220.74107410741072],[319.67895067289265,222.6132613261326]," +
+            "[319.67895067289265,223.28532853285327],[317.98690793593113,225.01350135013502],[314.03880821635414,219.78097809780974]," +
+            "[318.7765278798465,216.13261326132613],[322.72462759942346,220.74107410741072]]],[[[341.3370977060006,203.79537953795375]," +
+            "[339.0810407233852,197.8427842784278],[340.9422877340429,198.85088508850885],[342.6907318955698,201.87518751875183]," +
+            "[341.3370977060006,203.79537953795375]]],[[[339.0810407233852,197.8427842784278],[341.3370977060006,203.79537953795375]," +
+            "[335.47134955120055,202.2112211221122],[323.85265609073116,209.89198919891987],[318.7765278798465,216.13261326132613]," +
+            "[314.03880821635414,219.78097809780974],[300.44606489609635,232.59825982598255],[296.7799722993463,228.9018901890189]," +
+            "[298.07720506435015,225.34953495349532],[299.0360292819617,224.05340534053403],[300.6152691697925,223.23732373237323]," +
+            "[302.02530478392714,221.17311731173118],[303.83015037001945,219.54095409540952],[304.50696746480406,218.38883888388835]," +
+            "[308.39866575981563,215.8445844584458],[309.80870137395027,215.74857485748572],[310.1471099213426,213.97239723972393]," +
+            "[310.936729865258,213.1083108310831],[313.0799839987426,212.5322532253225],[314.9412310094003,211.38013801380134]," +
+            "[315.4488438304888,208.78787878787875],[315.61804810418494,206.003600360036],[317.47929511484267,204.7074707470747]," +
+            "[320.6941763150696,203.98739873987398],[323.51424754333885,201.6351635163516],[323.96545893986195,201.82718271827179]," +
+            "[328.6467771787889,199.7149714971497],[328.81598145248506,198.94689468946893],[330.6772284631428,198.3228322832283]," +
+            "[332.4820740492351,196.97869786978697],[334.11771536163127,197.17071707170714],[336.03536379685437,198.56285628562853]," +
+            "[339.0810407233852,197.8427842784278]]]]}},{\"type\":\"Feature\",\"id\":9157,\"properties\":{\"name\":\"Baldeggersee\"}" +
+            ",\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[529.7742571789524,149.021902190219],[531.6919056141755,149.26192619261923]" +
+            ",[532.4251241335255,150.22202220222022],[533.1583426528755,153.77437743774374],[534.117166870487,155.35853585358535]," +
+            "[534.2299697196179,157.27872787278727],[533.7223568985294,157.95079507950794],[532.2559198598294,156.7026702670267]," +
+            "[530.451074273737,152.9102910291029],[529.1538415087332,150.89408940894089],[529.7742571789524,149.021902190219]]]]}}," +
+            "{\"type\":\"Feature\",\"id\":9163,\"properties\":{\"name\":\"Sempachersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":" +
+            "[[[[510.7105756758522,159.15091509150915],[512.7974283847715,160.44704470447044],[514.4330696971676,162.36723672367236]," +
+            "[517.7607537465253,164.9114911491149],[520.6936278239255,167.64776477647763],[521.1448392204485,169.6159615961596]," +
+            "[519.9604093045754,171.6321632163216],[519.0015850869638,171.7281728172817],[515.5046967639099,169.42394239423942]," +
+            "[513.4742454795561,167.64776477647763],[510.6541742512868,164.43144314431441],[510.14656143019835,161.74317431743174]," +
+            "[510.7105756758522,159.15091509150915]]]]}},{\"type\":\"Feature\",\"id\":9172,\"properties\":{\"name\":\"Hallwilersee\"}," +
+            "\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[526.5593759787255,136.30063006300628],[525.3749460628524,141.00510051005097]" +
+            ",[523.6265019013254,136.78067806780678],[522.6112762591486,132.98829882988298],[521.9908605889293,129.29192919291927]," +
+            "[522.0472620134947,126.65166516651664],[523.4572976276293,126.17161716171614],[524.585326118937,127.85178517851784]," +
+            "[525.318544638287,131.1161116111611],[526.6721788278562,135.6285628562856],[526.5593759787255,136.30063006300628]]]," +
+            "[[[525.3749460628524,141.00510051005097],[526.5593759787255,136.30063006300628],[527.4053973472062,138.3168316831683]," +
+            "[526.1081645822023,142.54125412541254],[525.3749460628524,141.00510051005097]]]]}},{\"type\":\"Feature\",\"id\":9175,\"properties\":" +
+            "{\"name\":\"Zugersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[568.2964301571105,175.37653765376535]," +
+            "[565.9275703253643,173.98439843984397],[567.2812045149335,173.26432643264326],[566.6607888447143,171.82418241824178]," +
+            "[565.2507532305797,171.96819681968196],[564.1791261638373,171.20012001200115],[566.3787817218874,169.5199519951995]," +
+            "[568.3528315816759,172.25622562256223],[568.2964301571105,175.37653765376535]]],[[[572.6393398486451,177.63276327632758]," +
+            "[568.2964301571105,175.37653765376535],[568.3528315816759,172.25622562256223],[566.3787817218874,169.5199519951995]," +
+            "[564.1791261638373,171.20012001200115],[563.7279147673142,168.7998799879988],[565.0251475323181,166.5436543654365]," +
+            "[562.7690905497027,165.91959195919588],[562.656287700572,164.67146714671463],[563.4459076444873,162.65526552655263]," +
+            "[561.8666677566566,159.34293429342932],[562.1486748794835,158.28682868286825],[564.4611332866643,156.99069906990695]," +
+            "[565.8147674762336,156.75067506750673],[566.2095774481912,157.99879987998798],[567.9580216097181,157.66276627662762]," +
+            "[570.9472971116836,159.24692469246924],[571.3985085082066,159.9189918991899],[569.8192686203759,164.67146714671463]," +
+            "[569.9320714695066,167.023702370237],[568.4092330062413,169.90399039903986],[569.7628671958105,173.6483648364836]," +
+            "[572.6393398486451,177.63276327632758]]],[[[568.2964301571105,175.37653765376535],[572.6393398486451,177.63276327632758]," +
+            "[573.7109669153874,181.95319531953191],[572.0753256029913,183.96939693969392],[570.270480016899,181.56915691569156]," +
+            "[567.7324159114567,179.9369936993699],[564.3483304375335,176.9606960696069],[564.0663233147066,175.95259525952594]," +
+            "[565.9275703253643,173.98439843984397],[568.2964301571105,175.37653765376535]]]]}},{\"type\":\"Feature\",\"id\":9179," +
+            "\"properties\":{\"name\":\"Vierwaldst\u00E4ttersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":" +
+            "[[[[564.6867389849258,199.09090909090907],[564.2919290129681,201.92319231923187],[569.1988529501566,203.65136513651362]" +
+            ",[572.8085441223413,202.83528352835282],[576.4182352945259,202.83528352835282],[580.5355392877991,200.33903390339032]," +
+            "[581.3251592317145,201.77917791779174],[577.5462637858336,204.17941794179416],[573.5981640662567,205.33153315331532]," +
+            "[571.6805156310336,206.48364836483648],[569.1424515255912,206.8196819681968],[566.3787817218874,206.09960996099608]," +
+            "[564.6867389849258,204.65946594659465],[561.8666677566566,204.7074707470747],[560.5694349916528,204.03540354035403]," +
+            "[558.0877723107758,203.79537953795375],[556.959743819468,202.4512451245124],[557.0725466685988,201.3951395139514]," +
+            "[560.8514421144796,199.6189618961896],[563.2767033707912,199.42694269426943],[563.9535204655758,198.70687068706866]," +
+            "[562.7126891251373,198.034803480348],[558.1441737353412,197.79477947794777],[558.3133780090373,194.43444344434442]," +
+            "[564.7995418340565,196.1626162616261],[564.6867389849258,199.09090909090907]]],[[[551.6580099103219,197.69876987698768]," +
+            "[549.1199458048795,197.6027602760276],[547.1458959450911,200.0990099009901],[546.5818816994372,201.7311731173117]," +
+            "[543.9874161694295,203.12331233123308],[544.3822261413872,204.99549954995496],[542.8029862535564,206.57965796579657]," +
+            "[539.4753022041987,208.69186918691867],[539.9829150252872,205.71557155715567],[541.2237463657256,205.57155715571554]," +
+            "[543.4234019237756,204.46744674467442],[543.7054090466025,202.6912691269127],[540.8289363937679,202.9312931293129]," +
+            "[541.2237463657256,200.96309630963094],[540.6597321200718,198.8988898889889],[541.4493520639871,198.70687068706866]," +
+            "[543.9310147448641,201.10711071107107],[549.1199458048795,194.05040504050402],[551.4888056366257,194.43444344434442]," +
+            "[551.6580099103219,197.69876987698768]]],[[[565.589161777972,199.28292829282924],[564.6867389849258,199.09090909090907]," +
+            "[564.7995418340565,196.1626162616261],[558.3133780090373,194.43444344434442],[558.1441737353412,197.79477947794777]," +
+            "[552.7860384016295,197.5067506750675],[551.6580099103219,197.69876987698768],[551.4888056366257,194.43444344434442]," +
+            "[549.1199458048795,194.05040504050402],[543.9310147448641,201.10711071107107],[541.4493520639871,198.70687068706866]," +
+            "[540.6597321200718,198.8988898889889],[539.5881050533294,196.59465946594656],[541.1109435165948,196.06660666066603]," +
+            "[541.6749577622486,197.65076507650764],[543.1413948009487,198.4188418841884],[544.8898389624756,197.26672667266723]," +
+            "[544.5514304150834,194.86648664866482],[545.0590432361718,194.43444344434442],[544.0438175939948,193.0903090309031]," +
+            "[544.5514304150834,191.60216021602156],[542.2389720079025,188.86588658865884],[539.7009079024601,186.51365136513647]," +
+            "[543.4234019237756,186.27362736273625],[546.6946845485679,189.77797779777973],[546.9202902468295,190.88208820882085]," +
+            "[548.1047201627025,190.88208820882085],[550.9247913909719,187.95379537953795],[553.0680455244565,186.17761776177616]," +
+            "[554.4216797140257,184.5454545454545],[558.5953851318642,183.48934893489348],[558.0877723107758,186.41764176417638],[556.959743819468,188.09780978097808],[554.9292925351142,189.44194419441942],[553.2372497981526,191.84218421842183],[554.1396725911989,192.41824182418242],[555.4933067807681,191.69816981698165],[557.241750942295,191.89018901890188],[558.0877723107758,191.3141314131413],[560.6258364162181,191.36213621362134],[562.4306820023104,192.9462946294629],[564.5739361357951,193.0903090309031],[565.4199575042758,194.48244824482447],[566.7171902692796,195.25052505250522],[567.2812045149335,197.69876987698768],[565.589161777972,199.28292829282924]]],[[[558.5953851318642,183.48934893489348],[554.4216797140257,184.5454545454545],[555.9445181772911,183.92139213921388],[559.1593993775181,179.88898889888986],[559.7798150477373,179.79297929792978],[558.5953851318642,183.48934893489348]]],[[[588.4881401515183,208.88388838883884],[588.6009430006491,210.03600360036],[587.2473088
 110798,213.25232523252322],[587.4729145093414,214.98049804980496],[589.164957246303,216.94869486948693],[588.8829501234761,218.48484848484844],[589.4469643691299,219.1569156915691],[588.9957529726069,220.78907890789077],[587.5293159339068,221.22112211221122],[586.0628788952067,223.28532853285327],[585.1604561021607,221.84518451845184],[584.483639007376,219.6369636963696],[584.483639007376,217.71677167716769],[585.1604561021607,216.61266126612657],[582.4531877230222,214.06840684068402],[583.2992090915029,209.89198919891987],[584.5964418565068,205.7635763576357],[584.0888290354183,203.69936993699366],[584.7092447056375,201.20312031203116],[583.0736033932413,200.77107710771077],[581.3251592317145,201.77917791779174],[580.5355392877991,200.33903390339032],[582.6223919967183,199.57095709570956],[584.9348504038991,200.24302430243023],[585.8936746215106,201.01110111011099],[585.6116674986837,203.69936993699366],[585.950076046076,205.23552355235523],[586.1756817443376,209.02790279027903],[5
 88.4881401515183,208.88388838883884]]],[[[539.4753022041987,208.69186918691867],[537.783259467237,209.6999699969997],[537.1064423724524,208.64386438643862],[535.8656110320139,209.07590759075907],[536.147618154841,208.11581158115808],[538.2344708637602,206.48364836483648],[539.9829150252872,205.71557155715567],[539.4753022041987,208.69186918691867]]],[[[588.4881401515183,208.88388838883884],[586.1756817443376,209.02790279027903],[585.950076046076,205.23552355235523],[585.6116674986837,203.69936993699366],[585.8936746215106,201.01110111011099],[584.9348504038991,200.24302430243023],[582.6223919967183,199.57095709570956],[580.5355392877991,200.33903390339032],[576.4182352945259,202.83528352835282],[572.8085441223413,202.83528352835282],[569.1988529501566,203.65136513651362],[564.2919290129681,201.92319231923187],[564.6867389849258,199.09090909090907],[565.589161777972,199.28292829282924],[567.6196130623258,199.66696669666965],[568.6348387045027,200.38703870387036],[572.4137341503836,19
 9.6189618961896],[575.2338053786528,200.86708670867085],[577.602665210399,200.77107710771077],[581.3815606562798,198.17881788178818],[583.4120119406336,197.89078907890786],[584.0888290354183,199.04290429042902],[586.5704917162952,199.76297629762973],[587.0217031128184,200.96309630963094],[586.8524988391222,203.93939393939394],[587.5293159339068,206.8196819681968],[588.4881401515183,208.88388838883884]]]]}},{\"type\":\"Feature\",\"id\":9216,\"properties\":{\"name\":\"Sihlsee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[613.0227598374609,162.36723672367236],[614.3763940270301,163.03930393039303],[614.0943869042032,164.95949594959495],[615.5044225183378,169.2319231923192],[615.5044225183378,171.6321632163216],[616.0684367639917,174.27242724272423],[619.1705151150879,176.33663366336629],[618.8321065676955,177.4407440744074],[617.7604795009532,177.5367536753675],[616.1248381885571,176.43264326432643],[615.1660139709455,174.65646564656464],[613.473971233984,173.888388838
 88388],[613.0791612620262,172.78427842784276],[613.6995769322455,171.68016801680164],[612.3459427426762,170.67206720672067],[612.2895413181109,169.18391839183914],[610.4846957320185,165.87158715871584],[609.6386743635378,165.3435343534353],[610.4846957320185,163.51935193519347],[612.0075341952839,163.42334233423338],[613.0227598374609,162.36723672367236]]]]}},{\"type\":\"Feature\",\"id\":9239,\"properties\":{\"name\":\"Sarnersee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[529.5486514806909,223.95739573957394],[529.8870600280832,225.06150615061506],[529.3794472069947,227.6057605760576],[525.4313474874177,230.87008700870086],[523.6265019013254,233.79837983798376],[521.4268463432754,231.92619261926188],[522.4420719854523,229.52595259525953],[526.2209674313331,227.3177317731773],[528.5898272630793,224.05340534053403],[529.5486514806909,223.95739573957394]]]]}},{\"type\":\"Feature\",\"id\":9267,\"properties\":{\"name\":\"Walensee\"},\"geometry\":{\"type\":\"MultiPolygo
 n\",\"coordinates\":[[[[676.7563695963461,169.6159615961596],[673.7106926698153,169.18391839183914],[668.8037687326268,167.55175517551754],[666.0965003534884,167.59975997599759],[664.0096476445691,167.26372637263722],[662.6560134549998,166.25562556255625],[668.5217616097999,166.35163516351633],[670.3266071958922,166.97569756975696],[676.9255738700423,168.03180318031798],[676.7563695963461,169.6159615961596]]],[[[676.7563695963461,169.6159615961596],[676.9255738700423,168.03180318031798],[670.3266071958922,166.97569756975696],[668.5217616097999,166.35163516351633],[662.6560134549998,166.25562556255625],[665.0812747113114,164.76747674767472],[669.8189943748038,165.19951995199517],[672.0750513574192,165.8235823582358],[676.58716532265,165.91959195919588],[680.8172721650539,166.87968796879687],[686.6266188952885,166.3036303630363],[689.7850986709501,166.6396639663966],[690.6311200394309,166.3036303630363],[694.1280083624847,166.44764476447642],[694.015205513354,168.89588958895888],[690.
 800324313127,170.04800480048004],[687.2470345655078,169.42394239423942],[686.4010131970269,170.04800480048004],[682.6785191757116,170.57605760576052],[680.9864764387501,169.71197119711968],[680.3096593439654,170.19201920192017],[676.7563695963461,169.6159615961596]]]]}},{\"type\":\"Feature\",\"id\":9270,\"properties\":{\"name\":\"Aegerisee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[583.4120119406336,166.59165916591655],[585.7244703478145,166.83168316831683],[586.7960974145568,167.8397839783978],[587.8677244812991,167.59975997599759],[589.3905629445645,168.27182718271825],[591.4774156534838,171.5361536153615],[591.364612804353,173.55235523552352],[590.2929857376107,174.6084608460846],[588.8829501234761,173.26432643264326],[588.9393515480415,172.06420642064205],[586.0628788952067,170.48004800480044],[583.6376176388952,169.80798079807977],[584.1452304599836,168.46384638463843],[583.4120119406336,166.59165916591655]]]]}},{\"type\":\"Feature\",\"id\":9276,\"properties
 \":{\"name\":\"Lac de la Gruy\u00E8re\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[352.33537549625066,263.8493849384938],[351.32014985407375,265.81758175817583],[350.07931851363526,266.2496249624962],[350.30492421189683,267.44974497449743],[351.99696694885836,269.1779177917791],[352.22257264711993,270.8100810081008],[353.8018125349507,270.04200420042],[352.8429883173392,271.9141914191419],[351.5457555523353,271.5301530153015],[351.99696694885836,272.4902490249025],[350.30492421189683,273.97839783978395],[350.53052991015835,275.7065706570657],[349.85371281537374,276.8586858685868],[350.0229170890699,280.26702670267025],[351.0381427312468,283.2433243324332],[351.2637484295084,287.8037803780378],[349.74090996624295,287.3237323732373],[348.95129002232756,284.15541554155413],[349.007691446893,281.2751275127513],[349.5717056925468,278.1548154815481],[348.8948885977622,277.05070507050704],[349.74090996624295,275.5625562556255],[348.72568432406604,275.0825082508251],[347.1
 4644443623524,276.04260426042606],[348.1052686538468,274.74647464746477],[348.33087435210837,273.1143114311431],[351.0381427312468,270.57005700570056],[351.2637484295084,269.36993699369935],[348.72568432406604,269.033903390339],[349.85371281537374,267.0657065706571],[348.4436772012391,266.39363936393636],[350.86893845755066,265.28952895289524],[352.33537549625066,263.8493849384938]]]]}},{\"type\":\"Feature\",\"id\":9294,\"properties\":{\"name\":\"Murtensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[348.1052686538468,219.10891089108907],[344.3827746325314,213.7323732373237],[344.89038745361984,212.72427242724268],[347.93606438015064,211.4281428142814],[352.2789740716853,209.07590759075907],[354.0838196577776,209.2199219921992],[355.7758623947392,211.62016201620162],[355.5502566964776,212.58025802580255],[353.2941997138622,214.98049804980496],[350.5869313347238,217.2367236723672],[348.7820857486314,217.2367236723672],[348.1052686538468,219.10891089108907]]],[[[348.
 1052686538468,219.10891089108907],[345.22879600101214,220.8370837083708],[343.42395041491983,220.9330933093309],[341.9575133762198,220.30903090309027],[340.378273488389,218.62886288628863],[340.378273488389,216.75667566756675],[344.3827746325314,213.7323732373237],[348.1052686538468,219.10891089108907]]]]}},{\"type\":\"Feature\",\"id\":9326,\"properties\":{\"name\":\"Bodensee\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[664.5172604656575,44.13141314131411],[663.6148376726114,44.035403540354025],[661.2459778408652,42.259225922592236],[659.2719279810767,41.395139513951335],[655.8878425071537,41.49114911491148],[654.477806893019,40.579057905790535],[652.6165598823613,40.195019501950185],[647.1456216995189,40.147014701470084],[644.2691490466843,41.49114911491148],[641.3362749692842,43.21932193219317],[639.4186265340611,44.94749474947491],[635.9217382110073,47.011701170116964],[633.8912869266534,47.39573957395737],[628.7587572912033,49.17191719171916],[626.7847074314149
 ,47.63576357635759],[625.6002775155418,47.63576357635759],[625.6002775155418,47.34773477347733],[628.4767501683764,48.21182118211817],[631.2968213966457,47.49174917491746],[633.5528783792611,46.195619561956164],[634.286096898611,46.57965796579657],[638.0085909199265,43.93939393939388],[640.3774507516728,43.363336333633356],[640.715859299065,42.355235523552324],[643.3103248290727,40.96309630963094],[645.7355860853843,37.842784278427814],[643.4231276782035,35.29852985298527],[640.2646479025419,34.24242424242419],[637.6701823725342,32.370237023702316],[635.6961325127457,31.506150615061472],[635.4705268144842,29.729972997299683],[638.4598023164497,28.481848184818432],[640.4902536008035,29.00990099009897],[644.4383533203804,31.17011701170111],[644.8895647169036,30.834083408340803],[646.863614576692,31.60216021602156],[644.3819518958151,29.1539153915391],[642.5771063097227,28.76987698769875],[642.182296337765,27.185718571857137],[643.5923319518997,27.137713771377094],[644.6075575940765,28
 .241824182418213],[648.048044492565,30.35403540354031],[649.5708829558305,30.69006900690067],[657.0158709984613,34.67446744674464],[658.9335194336844,35.10651065106509],[660.4563578969498,36.210621062106156],[661.9227949356498,38.99489948994898],[658.9335194336844,39.71497149714969],[661.8663935110844,39.66696669666965],[664.4044576165268,42.73927392739273],[664.5172604656575,44.13141314131411]],[[650.9245171453997,34.91449144914486],[651.544932815619,35.922592259225894],[650.9245171453997,36.59465946594656],[651.6013342401843,38.418841884188396],[655.8314410825883,40.195019501950185],[657.3542795458536,40.53105310531049],[658.7079137354228,39.85898589858982],[653.9701940719306,35.87458745874585],[652.8421655806228,36.16261626162611],[652.1089470612728,35.10651065106509],[650.9245171453997,34.91449144914486]]],[[[738.3467252217467,61.17311731173112],[730.6761314808543,72.16621662166216],[727.7996588280198,72.55025502550251],[725.0923904488811,72.35823582358233],[723.2311434382234,70
 .05400540054],[715.2221411499388,60.453045304530406],[714.0377112340657,59.39693969396939],[686.2318089233308,46.05160516051603],[683.1861319968,45.42754275427541],[681.0992792878808,46.05160516051603],[676.1359539261268,46.43564356435638],[673.7670940943807,46.05160516051603],[673.0338755750307,46.43564356435638],[672.4134599048115,43.89138913891384],[674.2183054909037,43.93939393939388],[676.58716532265,44.707470747074694],[678.3920109087423,43.987398739873925],[677.2639824174346,41.683168316831654],[677.4331866911307,40.24302430243023],[675.8539468033,38.08280828082803],[673.5414883961191,36.78667866786674],[672.3006570556806,35.20252025202518],[672.5826641785077,33.714371437143654],[671.3418328380692,28.481848184818432],[669.4805858274115,27.617761776177588],[667.4501345430576,25.265526552655217],[665.4760846832692,25.74557455745571],[661.5279849636921,22.385238523852365],[658.425906612596,21.281128112811246],[654.929018289542,18.832883288328787],[651.6013342401843,14.7044704470
 44685],[649.063270134742,13.168316831683114],[649.4580801066998,11.248124812481194],[650.3041014751805,9.999999999999943],[652.6729613069267,10.768076807680757],[653.462581250842,10.480048004800437],[655.0418211386728,12.30423042304227],[657.8054909423768,14.368436843684322],[660.8511678689075,15.616561656165572],[663.3892319743499,17.680768076807624],[664.7992675884844,19.888988898889863],[665.758091806096,20.65706570657062],[668.4089587606691,21.185118511851158],[672.2442556311153,23.153315331533122],[674.0491012172076,24.689468946894635],[676.58716532265,25.45754575457545],[679.2944337017884,27.137713771377094],[679.52003940005,30.93009300930089],[681.2684835615769,33.61836183618357],[685.667794677677,37.45874587458741],[687.3598374146386,38.03480348034799],[689.2210844252962,39.71497149714969],[692.8871770220462,41.92319231923187],[694.8048254572693,42.16321632163215],[698.8093266014117,44.65946594659465],[699.9373550927194,44.80348034803478],[702.4754191981617,43.45934593459344
 ],[704.3930676333848,43.45934593459344],[705.1262861527348,42.83528352835282],[707.777153107308,42.787278727872774],[710.0896115144888,43.363336333633356],[711.725252826885,45.091509150915044],[713.3608941392811,45.18751875187513],[715.8989582447234,46.29162916291625],[716.4629724903773,47.10771077107705],[718.1550152273389,46.43564356435638],[719.2266422940811,46.91569156915688],[719.9034593888657,46.195619561956164],[722.4415234943081,47.443744374437415],[724.923186175185,50.75607560756072],[724.9795875997504,52.86828682868281],[726.4460246384504,54.35643564356434],[726.8972360349735,57.284728472847235],[729.0404901684581,58.91689168916889],[729.9429129615044,60.16501650165014],[731.6349556984658,61.07710771077103],[733.7782098319506,61.36513651365135],[736.6546824847851,60.453045304530406],[738.3467252217467,61.17311731173112]],[[674.7259183119922,34.33843384338428],[673.7670940943807,35.49054905490544],[675.6283411050384,35.77857785778576],[674.7259183119922,34.33843384338428]]]
 ,[[[758.4256323670238,72.16621662166216],[732.5937799160774,79.55895589558952],[730.6761314808543,72.16621662166216],[738.3467252217467,61.17311731173112],[739.0799437410967,63.57335733573353],[740.8847893271891,64.7254725472547],[742.4640292150198,64.19741974197416],[742.9716420361083,64.96549654965492],[744.6636847730699,65.49354935493545],[746.1865232363352,67.26972697269724],[750.4730315033046,67.12571257125711],[751.1498485980892,68.27782778277822],[752.447081363093,68.70987098709867],[755.6055611387546,68.37383738373836],[757.297603875716,69.90999099909988],[758.4256323670238,72.16621662166216]],[[751.1498485980892,68.90189018901884],[749.9090172576507,69.66996699669966],[751.6574614191777,70.19801980198014],[752.3342785139623,68.99789978997899],[751.1498485980892,68.90189018901884]]],[[[625.6002775155418,47.34773477347733],[625.6002775155418,47.63576357635759],[623.7390305048841,47.587758775877546],[623.0058119855341,46.86768676867683],[625.6002775155418,47.34773477347733]]],
 [[[723.2311434382234,70.05400540054],[713.0788870164542,79.55895589558952],[713.6429012621081,77.1587158715871],[712.0636613742772,76.53465346534648],[708.0591602301349,72.93429342934292],[705.0134833036041,70.67806780678063],[704.2238633596887,69.04590459045903],[704.6750747562118,65.82958295829582],[704.111060510558,64.82148214821478],[698.2453123557578,61.797179717971744],[695.5944454011848,60.1170117011701],[692.7179727483501,57.76477647764773],[691.4207399833463,56.27662766276626],[687.9238516602924,54.308430843084295],[683.9757519407154,52.48424842484246],[683.4681391196269,51.90819081908188],[679.5764408246154,51.04410441044104],[677.9407995122192,49.507950795079466],[675.6847425296038,48.259825982598215],[674.7823197365576,48.3558355835583],[673.0338755750307,46.43564356435638],[673.7670940943807,46.05160516051603],[676.1359539261268,46.43564356435638],[681.0992792878808,46.05160516051603],[683.1861319968,45.42754275427541],[686.2318089233308,46.05160516051603],[714.03771123
 40657,59.39693969396939],[715.2221411499388,60.453045304530406],[723.2311434382234,70.05400540054]]],[[[664.5172604656575,44.13141314131411],[663.0508234269575,44.563456345634506],[659.6667379530345,44.32343234323429],[658.4823080371614,42.643264326432586],[656.7338638756344,43.363336333633356],[655.5494339597612,42.59525952595254],[650.529707173442,42.499249924992455],[648.8940658610459,42.83528352835282],[647.6532345206074,42.355235523552324],[644.8331632923381,43.171317131713124],[643.1975219799419,44.08340834083407],[642.2386977623304,43.89138913891384],[640.4338521762381,45.955595559555945],[638.7982108638419,46.91569156915688],[635.2449211162227,48.115811581158084],[634.286096898611,48.06780678067804],[632.9324627090418,49.41194119411938],[632.0300399159958,48.97989798979893],[630.3943986035995,49.98799879987996],[628.0819401964187,49.795979597959786],[626.7283060068495,48.115811581158084],[625.3182703927148,48.30783078307826],[623.7390305048841,47.587758775877546],[625.600277
 5155418,47.63576357635759],[626.7847074314149,47.63576357635759],[628.7587572912033,49.17191719171916],[633.8912869266534,47.39573957395737],[635.9217382110073,47.011701170116964],[639.4186265340611,44.94749474947491],[641.3362749692842,43.21932193219317],[644.2691490466843,41.49114911491148],[647.1456216995189,40.147014701470084],[652.6165598823613,40.195019501950185],[654.477806893019,40.579057905790535],[655.8878425071537,41.49114911491148],[659.2719279810767,41.395139513951335],[661.2459778408652,42.259225922592236],[663.6148376726114,44.035403540354025],[664.5172604656575,44.13141314131411]]],[[[732.5373784915121,80.80708070807077],[732.5937799160774,79.55895589558952],[758.4256323670238,72.16621662166216],[759.4972594337662,72.55025502550251],[761.6969149918161,74.99849984998497],[761.7533164163815,77.73477347734769],[760.8508936233354,78.55085508550854],[754.9851454685354,78.022802280228],[753.7443141280969,78.50285028502844],[751.8266656928738,81.67116711671162],[750.6422357
 770007,82.39123912391238],[751.0370457489585,80.6150615061506],[749.6270101348236,79.94299429942993],[749.4578058611276,81.28712871287127],[748.8937916154737,78.88688868886885],[748.8937916154737,81.04710471047099],[748.047770246993,80.80708070807077],[745.9609175380738,82.91929192919287],[744.4944804993736,80.56705670567055],[745.566107566116,79.60696069606956],[744.7764876222006,78.74287428742872],[742.0692192430622,81.62316231623157],[741.1667964500159,81.52715271527148],[739.869563685012,82.96729672967291],[736.5418796356544,83.20732073207319],[734.1730198039081,81.62316231623157],[733.6654069828198,80.03900390039001],[732.5373784915121,80.80708070807077]]],[[[730.6761314808543,72.16621662166216],[732.5937799160774,79.55895589558952],[732.5373784915121,80.80708070807077],[730.1685186597658,82.77527752775273],[729.7737086878083,83.9273927392739],[727.5740531297581,85.07950795079506],[722.8363334662658,85.75157515751573],[720.523875059085,85.2235223522352],[718.1550152273389,82.00
 720072007198],[715.2785425745042,80.9510951095109],[714.4889226305888,79.70297029702965],[713.0788870164542,79.55895589558952],[723.2311434382234,70.05400540054],[725.0923904488811,72.35823582358233],[727.7996588280198,72.55025502550251],[730.6761314808543,72.16621662166216]]]]}},{\"type\":\"Feature\",\"id\":9710,\"properties\":{\"name\":\"Lago di Lugano\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[639.4186265340611,445.3075307530753],[638.6290065901458,445.73957395739575],[637.4445766742726,447.8037803780378],[636.5421538812266,447.27572757275726],[636.767759579488,444.29942994299427],[635.4705268144842,443.1953195319532],[634.9065125688303,440.4110411041104],[635.865336786442,438.2988298829883],[635.2449211162227,436.1866186618662],[633.0452655581726,436.2826282628263],[632.7068570107804,435.3225322532253],[631.4660256703419,435.034503450345],[630.2815957544688,433.6903690369037],[633.7784840775226,435.7065706570657],[635.6961325127457,435.17851785178516],[636.14
 73439092688,436.1866186618662],[636.2037453338341,439.1149114911491],[635.5833296636149,441.37113711371137],[638.0649923444919,444.5874587458746],[639.4186265340611,445.3075307530753]]],[[[648.8376644364805,429.46594659465944],[648.3864530399574,431.4341434143414],[647.596833096042,432.3942394239424],[647.3712273977804,434.026402640264],[645.9047903590804,433.6903690369037],[647.1456216995189,429.27392739273927],[648.8376644364805,429.46594659465944]]],[[[656.4518567528075,425.1455145514551],[654.195799770192,425.96159615961597],[653.6317855245381,426.6816681668167],[650.0220943523536,428.31383138313834],[648.8376644364805,429.46594659465944],[647.1456216995189,429.27392739273927],[645.9047903590804,433.6903690369037],[647.3712273977804,434.026402640264],[646.9764174258228,435.8505850585058],[645.9047903590804,436.71467146714673],[646.9200160012574,437.43474347434744],[646.8072131521267,439.35493549354936],[647.3712273977804,440.84308430843083],[648.9504672856112,442.04320432043204]
 ,[650.0220943523536,444.5874587458746],[649.5144815312651,447.03570357035704],[648.3864530399574,446.79567956795677],[647.9916430679997,442.7152715271527],[644.7767618677727,440.0750075007501],[642.5771063097227,441.65916591659163],[641.3926763938496,443.96339633963396],[639.4186265340611,445.3075307530753],[638.0649923444919,444.5874587458746],[635.5833296636149,441.37113711371137],[636.2037453338341,439.1149114911491],[636.1473439092688,436.1866186618662],[635.6961325127457,435.17851785178516],[633.7784840775226,435.7065706570657],[630.2815957544688,433.6903690369037],[631.635229944038,432.34623462346235],[632.3120470388226,433.06630663066306],[631.8608356422995,434.6024602460246],[632.650455586215,435.0825082508251],[634.7937097196996,434.55445544554453],[634.1732940494803,432.7302730273027],[635.865336786442,431.2901290129013],[635.5269282390495,428.6018601860186],[636.1473439092688,427.5457545754575],[637.7265837970996,427.0657065706571],[638.4034008918842,427.8817881788179],[6
 36.2037453338341,432.92229222922293],[637.3881752497073,437.4827482748275],[636.3729496075304,441.13111311131115],[638.5726051655804,443.4353435343534],[639.700633656888,443.33933393339333],[640.9414649973265,442.18721872187217],[642.8591134325496,439.2589258925893],[643.8179376501612,436.85868586858686],[645.397177537992,436.71467146714673],[644.4947547449458,435.3225322532253],[644.5511561695112,433.06630663066306],[645.7355860853843,431.0981098109811],[645.5663818116882,427.92979297929793],[644.2691490466843,426.8256825682568],[645.0023675660343,425.001500150015],[647.596833096042,424.5694569456946],[649.3452772575689,425.72157215721575],[651.2065242682266,424.7134713471347],[652.8421655806228,424.6174617461746],[656.0570467808498,421.7371737173717],[656.4518567528075,425.1455145514551]]],[[[656.4518567528075,425.1455145514551],[656.0570467808498,421.7371737173717],[657.4670823949843,420.63306330633065],[659.8359422267306,419.76897689768975],[660.7947664443421,420.05700570057],[6
 65.306880409573,419.96099609960993],[667.1117259956652,419.67296729672967],[670.7778185924153,416.984698469847],[672.2442556311153,418.95289528952895],[667.506535967623,423.1773177317732],[665.1376761358767,423.46534653465346],[662.6560134549998,422.84128412841284],[658.7643151599882,422.84128412841284],[656.4518567528075,425.1455145514551]]]]}},{\"type\":\"Feature\",\"id\":9711,\"properties\":{\"name\":\"Lago Maggiore\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[613.0791612620262,402.1512151215121],[610.9359071285417,398.31083108310827],[608.1158359002724,401.0951095109511],[606.5929974370069,404.11941194119413],[603.9421304824339,403.15931593159314],[606.4801945878762,398.93489348934895],[607.5518216546186,395.4305430543054],[609.5822729389724,392.74227422742274],[614.6584011498571,390.9180918091809],[617.4220709535609,392.88628862886287],[618.7757051431302,392.74227422742274],[620.354945030961,390.9180918091809],[620.6933535783533,388.997899789979],[620.07293790
 8134,387.3657365736574],[622.6674034381417,386.6456645664566],[624.9798618453226,385.06150615061506],[626.5027003085879,385.97359735973595],[628.420348743811,388.037803780378],[628.9843629894649,391.06210621062104],[629.9995886316418,390.6300630063006],[630.3943986035995,391.4941494149415],[628.7587572912033,391.6381638163816],[625.8258832138033,393.4143414341434],[622.3853963153149,394.2304230423042],[620.806156427484,395.0945094509451],[619.3961208133494,396.6306630663066],[617.4784723781263,397.73477347734774],[613.9815840550725,401.76717671767176],[613.0791612620262,402.1512151215121]]],[[[613.0791612620262,402.1512151215121],[610.1462871846263,402.6312631263126],[609.6950757881032,404.7914791479148],[607.4954202300531,407.33573357335734],[609.1874629670147,410.6960696069607],[608.9618572687532,412.4722472247225],[609.7514772126685,414.34443444344436],[609.5258715144071,417.17671767176716],[611.725527072457,418.7128712871287],[612.6279498655032,420.8730873087309],[612.6279498655
 032,422.5532553255325],[611.4999213741955,425.09750975097506],[609.6950757881032,426.96969696969694],[608.51064587223,426.96969696969694],[606.4801945878762,428.88988898889886],[606.2545888896148,430.9060906090609],[603.9421304824339,433.3063306330633],[598.8096008469838,436.95469546954695],[598.5839951487224,439.54695469546954],[596.7227481380646,440.2190219021902],[595.31271252393,441.4191419141914],[594.1846840326223,443.14731473147316],[591.5902185026146,444.4914491449145],[590.6877957095684,446.027602760276],[592.0978313237031,447.13171317131713],[591.7594227763107,447.7077707770777],[589.164957246303,447.8037803780378],[587.9241259058645,451.16411641164115],[589.1085558217376,453.3723372337234],[588.5445415760837,454.7164716471647],[589.6161686428261,455.964596459646],[590.91340140783,459.7089708970897],[592.2670355973992,459.94899489948995],[592.9438526921838,464.4134413441344],[593.3950640887069,465.85358535853584],[592.0978313237031,466.95769576957696],[591.5902185026146,46
 6.47764776477646],[590.4621900113068,467.8217821782178],[590.4057885867414,470.84608460846084],[588.6009430006491,472.52625262526254],[587.2473088110798,472.7182718271827],[584.8784489793337,472.0942094209421],[583.468413365199,475.83858385838585],[583.468413365199,477.4227422742274],[584.6528432810721,479.1989198919892],[587.1909073865145,479.15091509150915],[586.0628788952067,479.87098709870986],[586.965301688253,482.7032703270327],[588.2625344532569,482.7992799279928],[589.164957246303,487.5037503750375],[590.6877957095684,487.45574557455745],[590.3493871621761,488.65586558655866],[592.4926412956606,489.13591359135916],[594.1282826080569,490],[590.5749928604375,489.23192319231924],[588.3189358778222,487.83978397839786],[586.8524988391222,484.14341434143415],[582.1147791756298,477.6627662766277],[581.832772052803,475.2145214521452],[582.0583777510644,473.006300630063],[583.468413365199,470.7980798079808],[586.1756817443376,469.45394539453946],[587.3601116602106,468.0618061806181],
 [588.4881401515183,464.65346534653463],[587.9241259058645,460.3810381038104],[587.0781045373838,458.55685568556856],[584.3144347336798,451.54815481548155],[584.5400404319414,449.1959195919592],[587.9241259058645,444.53945394539454],[591.6466199271799,440.6990699069907],[601.8552777735147,429.36993699369935],[604.7317504263492,426.3456345634563],[607.9466316265762,423.46534653465346],[609.1310615424493,420.2010201020102],[607.7774273528801,416.984698469847],[606.5929974370069,411.2721272127213],[605.1829618228724,407.2397239723972],[606.5929974370069,404.11941194119413],[608.1158359002724,401.0951095109511],[610.9359071285417,398.31083108310827],[613.0791612620262,402.1512151215121]]],[[[606.5929974370069,404.11941194119413],[605.1829618228724,407.2397239723972],[606.5929974370069,411.2721272127213],[607.7774273528801,416.984698469847],[609.1310615424493,420.2010201020102],[607.9466316265762,423.46534653465346],[604.7317504263492,426.3456345634563],[601.8552777735147,429.369936993699
 35],[591.6466199271799,440.6990699069907],[587.9241259058645,444.53945394539454],[584.5400404319414,449.1959195919592],[584.3144347336798,451.54815481548155],[587.0781045373838,458.55685568556856],[587.9241259058645,460.3810381038104],[588.4881401515183,464.65346534653463],[587.3601116602106,468.0618061806181],[586.1756817443376,469.45394539453946],[583.468413365199,470.7980798079808],[582.0583777510644,473.006300630063],[581.832772052803,475.2145214521452],[582.1147791756298,477.6627662766277],[586.8524988391222,484.14341434143415],[588.3189358778222,487.83978397839786],[590.5749928604375,489.23192319231924],[594.1282826080569,490],[589.2213586708683,489.2799279927993],[587.4729145093414,489.9039903990399],[586.0628788952067,486.01560156015603],[584.3708361582453,484.6714671467147],[584.4272375828107,482.84728472847286],[583.6376176388952,482.5112511251125],[583.468413365199,481.07110711071107],[581.1559549580184,479.006900690069],[580.6483421369298,477.9027902790279],[580.08432789
 1276,474.014401440144],[579.5767150701874,473.24632463246326],[581.0995535334529,468.9258925892589],[582.0583777510644,469.3579357935794],[583.7504204880261,468.0618061806181],[583.9760261862875,465.3255325532553],[585.2732589512914,463.26132613261325],[583.8068219125914,456.44464446444647],[581.832772052803,453.9003900390039],[576.4182352945259,451.5961596159616],[574.2185797364759,448.33183318331834],[574.1621783119106,446.79567956795677],[571.8497199047297,444.3954395439544],[570.2140785923336,443.24332433243325],[571.0600999608143,441.7551755175517],[573.5981640662567,440.6990699069907],[575.0081996803913,440.6990699069907],[579.2947079473606,442.66726672667266],[580.8739478351913,444.8274827482748],[582.6223919967183,446.07560756075605],[583.6940190634606,443.33933393339333],[584.7656461302029,441.56315631563155],[587.3037102356452,440.4590459045904],[591.8722256254414,436.6186618661866],[593.3386626641415,433.25832583258324],[596.8919524117607,428.64986498649864],[598.80960084
 69838,424.8094809480948],[600.8400521313376,421.92919291929195],[604.0549333315646,421.06510651065105],[606.2545888896148,419.5769576957696],[606.4801945878762,418.0888088808881],[605.3521660965685,415.4965496549655],[605.6905746439609,414.05640564056404],[604.5625461526531,412.3282328232823],[604.3369404543917,410.55205520552056],[603.0961091139532,406.75967596759676],[603.9421304824339,403.15931593159314],[606.5929974370069,404.11941194119413]]]]}},{\"type\":\"Feature\",\"id\":9751,\"properties\":{\"name\":\"Lac de Joux\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[228.87265712262257,274.31443144314426],[229.21106567001488,274.84248424842485],[227.46262150848793,277.9147914791479],[221.31486623086096,283.29132913291323],[219.39721779563786,284.1074107410741],[216.9155551147609,286.3636363636364],[215.50551950062626,286.8436843684368],[215.0543081041032,285.8355835583558],[217.47956936041476,283.00330033003297],[222.10448617477633,279.16291629162913],[224.642550280
 21867,277.6267626762676],[228.87265712262257,274.31443144314426]]]]}},{\"type\":\"Feature\",\"id\":9757,\"properties\":{\"name\":\"Lac L\u00E9man\"},\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[306.08620735263486,330],[303.4353403980617,337.53675367536755],[301.46129053827326,337.6807680768077],[295.9903523554309,335.3285328532853],[292.6062668815078,334.8964896489649],[289.72979422867314,333.98439843984397],[283.35643325278465,334.1284128412841],[282.2848061860423,334.6084608460846],[276.81386800319996,334.3204320432043],[273.9373953503653,335.04050405040505],[269.3124785360037,335.1845184518452],[262.03669476706904,336.8166816681668],[258.65260929314593,334.8964896489649],[257.41177795270744,334.56045604560455],[253.97129105421897,336.048604860486],[252.44845259095356,337.53675367536755],[252.44845259095356,339.4569456945694],[251.65883264703817,341.041104110411],[243.9318374815804,344.73747374737474],[241.2245691024419,344.73747374737474],[239.98373776200344,346.65
 766576657666],[239.0249135443919,346.9456945694569],[237.8404836285188,349.009900990099],[236.43044801438418,348.8178817881788],[233.04636254046108,347.3297329732973],[231.46712265263028,344.06540654065407],[231.52352407719565,342.86528652865286],[230.39549558588794,342.1932193219322],[227.12421296109562,342.24122412241223],[224.86815597848022,342.9132913291329],[221.65327477825326,344.88148814881487],[219.79202776759556,346.65766576657666],[218.88960497454937,349.3939393939394],[216.5771465673686,352.27422742274223],[216.74635084106475,353.4263426342634],[215.22351237779935,356.4986498649865],[213.98268103736086,356.8826882688269],[210.5421941388724,355.15451545154514],[212.62904684779164,350.9300930093009],[214.09548388649165,347.95379537953795],[216.01313232171475,344.16141614161415],[229.21106567001488,334.5124512451245],[243.5370275096227,331.8721872187218],[258.370602170319,322.79927992799276],[284.08965177213463,323.56735673567357],[306.08620735263486,330]]],[[[312.0083569320
 003,337.53675367536755],[306.08620735263486,330],[284.08965177213463,323.56735673567357],[258.370602170319,322.79927992799276],[243.5370275096227,331.8721872187218],[229.21106567001488,334.5124512451245],[216.01313232171475,344.16141614161415],[214.09548388649165,347.95379537953795],[209.6397713458262,345.79357935793576],[210.9370041108301,343.7773777377738],[213.5878710654032,340.5130513051305],[217.14116081302245,336.8166816681668],[219.39721779563786,337.44074407440746],[220.7508519852071,335.85658565856585],[220.86365483433786,333.7923792379238],[222.2172890239071,331.8241824182418],[222.38649329760327,329.95199519951996],[224.75535312934943,328.5598559855986],[226.95500868739947,325.3435343534353],[229.21106567001488,323.7113711371137],[231.29791837893413,321.35913591359133],[236.7688565617765,320.5910591059106],[238.51730072330344,321.7911791179118],[239.98373776200344,321.98319831983196],[243.1986189622304,319.8229822982298],[247.3723243800689,318.6228622862286],[248.33114859
 768045,317.6147614761476],[249.34637423985737,317.7587758775877],[249.45917708898816,316.17461746174615],[250.756409853992,314.9264926492649],[252.11004404356123,314.87848784878486],[253.52007965769587,312.4302430243024],[254.76091099813436,312.04620462046205],[256.5657565842267,309.45394539453946],[258.59620786858056,309.3579357935794],[261.3598776722844,311.1341134113411],[264.5747588725114,311.2301230123012],[265.75918878838445,310.2220222022202],[268.46645716752295,308.8298829882988],[269.93289420622295,308.8298829882988],[271.51213409405375,310.07800780078003],[273.42978252927685,310.6060606060606],[275.7422409364576,311.95019501950196],[281.5515876666923,311.9021902190219],[284.03325034756926,312.4302430243024],[286.7969201512731,313.58235823582356],[290.51941417258854,316.4626462646264],[292.9446754289001,315.74257425742576],[295.03152813781935,316.3666366636663],[296.61076802565015,317.95079507950794],[298.8104235837002,319.15091509150915],[301.12288199088096,319.34293429342
 93],[304.3377631911079,320.3510351035103],[307.8346515141618,320.8790879087909],[308.39866575981563,322.4152415241524],[310.936729865258,323.32733273327335],[312.12115978113104,325.48754875487543],[314.2080124900503,325.4395439543954],[315.27963955679263,326.6396639663966],[316.9152808691888,327.35973597359737],[318.66372503071574,327.2637263726373],[319.5097463991965,327.8397839783978],[319.9609577957196,329.47194719471946],[321.7658033818119,330.14401440144013],[323.17583899594655,333.8883888388839],[322.3298176274658,336.4806480648065],[321.4273948344196,337.44074407440746],[316.40766804810033,337.2007200720072],[313.0799839987426,337.8247824782478],[312.0083569320003,337.53675367536755]]],[[[213.98268103736086,356.8826882688269],[214.09548388649165,358.37083708370835],[212.7982511214878,360.6750675067507],[211.83942690387624,361.2511251125112],[209.3577642229993,365.1875187518752],[206.93250296668774,366.29162916291625],[206.36848872103388,367.5397539753975],[206.2556858719031,3
 70.9000900090009],[205.63527020168388,373.06030603060304],[204.50724171037618,374.6924692469247],[202.81519897341462,377.76477647764773],[199.76952204688382,379.5409540954095],[198.07747930992227,379.44494449444943],[199.76952204688382,378.004800480048],[199.76952204688382,375.94059405940595],[199.20550780122997,374.6924692469247],[199.8259234714492,370.9000900090009],[199.76952204688382,368.979897989799],[202.02557902949923,366.29162916291625],[202.64599469971847,363.93939393939394],[202.25118472776077,361.971197119712],[202.75879754884923,359.042904290429],[207.15810866494928,361.3951395139514],[210.5421941388724,355.15451545154514],[213.98268103736086,356.8826882688269]]],[[[212.62904684779164,350.9300930093009],[210.5421941388724,355.15451545154514],[207.15810866494928,361.3951395139514],[202.75879754884923,359.042904290429],[203.77402319102617,358.13081308130813],[206.81970011755695,353.95439543954393],[208.68094712821465,349.1059105910591],[212.62904684779164,350.9300930093009
 ]]],[[[214.09548388649165,347.95379537953795],[212.62904684779164,350.9300930093009],[208.68094712821465,349.1059105910591],[209.019355675607,346.8976897689769],[209.6397713458262,345.79357935793576],[214.09548388649165,347.95379537953795]]],[[[312.0083569320003,337.53675367536755],[311.6135469600426,339.50495049504946],[309.6394971002541,338.83288328832884],[306.5938201737233,339.07290729072906],[303.4353403980617,337.53675367536755],[306.08620735263486,330],[312.0083569320003,337.53675367536755]]]]}}]}";
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSpec20080616.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSpec20080616.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSpec20080616.java
deleted file mode 100644
index 0d8e1bf..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSpec20080616.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.qi4j.library.spatial.topo;
-
-/**
- * http://geojson.org/geojson-spec.html
- */
-public class GeoJSONSpec20080616 {
-
-
-    // Version 1.0
-
-    public static final String LineString = "{ \"type\": \"LineString\",\r\n    \"coordinates\": [ [100.0, 0.0], [101.0, 1.0] ]\r\n }";
-
-    public static final String Polygon = "{ \"type\": \"Polygon\",\r\n    \"coordinates\": [\r\n      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]\r\n      ]\r\n }";
-
-    public static final String Polygon_with_Holes = "{ \\\"type\\\": \\\"Polygon\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],\\r\\n      [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]\\r\\n      ]\\r\\n  }";
-
-    public static final String Multipoint = "{ \\\"type\\\": \\\"MultiPoint\\\",\\r\\n    \\\"coordinates\\\": [ [100.0, 0.0], [101.0, 1.0] ]\\r\\n  }";
-
-    public static final String MultiLineString = "{ \\\"type\\\": \\\"MultiLineString\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n        [ [100.0, 0.0], [101.0, 1.0] ],\\r\\n        [ [102.0, 2.0], [103.0, 3.0] ]\\r\\n      ]\\r\\n    }";
-
-    public static final String MultiPolygon = "{ \\\"type\\\": \\\"MultiPolygon\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n      [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],\\r\\n      [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],\\r\\n       [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]\\r\\n      ]\\r\\n  }";
-
-    public static final String GeometryCollection = "{ \\\"type\\\": \\\"GeometryCollection\\\",\\r\\n    \\\"geometries\\\": [\\r\\n      { \\\"type\\\": \\\"Point\\\",\\r\\n        \\\"coordinates\\\": [100.0, 0.0]\\r\\n        },\\r\\n      { \\\"type\\\": \\\"LineString\\\",\\r\\n        \\\"coordinates\\\": [ [101.0, 0.0], [102.0, 1.0] ]\\r\\n        }\\r\\n    ]\\r\\n  }";
-
-    public static final String FeatureCollection = "{ \"type\": \"FeatureCollection\",\r\n    \"features\": [\r\n      { \"type\": \"Feature\",\r\n        \"geometry\": {\"type\": \"Point\", \"coordinates\": [102.0, 0.5]},\r\n        \"properties\": {\"prop0\": \"value0\"}\r\n        },\r\n      { \"type\": \"Feature\",\r\n        \"geometry\": {\r\n          \"type\": \"LineString\",\r\n          \"coordinates\": [\r\n            [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]\r\n            ]\r\n          },\r\n        \"properties\": {\r\n          \"prop0\": \"value0\",\r\n          \"prop1\": 0.0\r\n          }\r\n        },\r\n      { \"type\": \"Feature\",\r\n         \"geometry\": {\r\n           \"type\": \"Polygon\",\r\n           \"coordinates\": [\r\n             [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],\r\n               [100.0, 1.0], [100.0, 0.0] ]\r\n             ]\r\n         },\r\n         \"properties\": {\r\n           \"prop0\": \"value0\",\r\n          
  \"prop1\": {\"this\": \"that\"}\r\n           }\r\n         }\r\n       ]\r\n     }";
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/test/java/org/qi4j/library/spatial/transformations/TransformationsTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/transformations/TransformationsTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/transformations/TransformationsTest.java
index 5ef485e..6269280 100644
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/transformations/TransformationsTest.java
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/transformations/TransformationsTest.java
@@ -7,33 +7,37 @@ import org.qi4j.api.geometry.TPolygon;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.library.spatial.assembly.TGeometryAssembler;
-import org.qi4j.library.spatial.conversions.TConversions;
-import org.qi4j.library.spatial.projection.transformations.TTransformations;
+import org.qi4j.library.spatial.formats.conversions.TConversions;
+import org.qi4j.library.spatial.projections.transformations.TTransformations;
 import org.qi4j.test.AbstractQi4jTest;
 
 import static org.junit.Assert.assertTrue;
 import static org.qi4j.api.geometry.TGeometryFactory.*;
 
 
-public class TransformationsTest extends AbstractQi4jTest {
+public class TransformationsTest extends AbstractQi4jTest
+{
 
     private final static String CRS_EPSG_4326 = "EPSG:4326";
     private final static String CRS_EPSG_27572 = "EPSG:27572";
 
     @Override
     public void assemble(ModuleAssembly module)
-            throws AssemblyException {
+            throws AssemblyException
+    {
         new TGeometryAssembler().assemble(module);
     }
 
     @Test
-    public void whenTransformTPoint() throws Exception {
+    public void whenTransformTPoint() throws Exception
+    {
         TPoint tPoint = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry(CRS_EPSG_4326);
         TTransformations.Transform(module).from(tPoint).to("EPSG:27572");
     }
 
     @Test
-    public void whenTransformTMultiPoint() throws Exception {
+    public void whenTransformTMultiPoint() throws Exception
+    {
         TMultiPoint multiPoint = TMultiPoint(module).points(new double[][]
                 {
                         {11.57958981111, 48.13905780941111},
@@ -45,7 +49,8 @@ public class TransformationsTest extends AbstractQi4jTest {
     }
 
     @Test
-    public void whenTransformPolygon() throws Exception {
+    public void whenTransformPolygon() throws Exception
+    {
         TPolygon polygon = TPolygon(module)
                 .shell
                         (
@@ -64,7 +69,8 @@ public class TransformationsTest extends AbstractQi4jTest {
     }
 
     @Test
-    public void whenConvertFromTGeometryToTGeometry() {
+    public void whenConvertFromTGeometryToTGeometry()
+    {
         TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
         TPoint tPoint2 = (TPoint) TConversions.Convert(module).from(tPoint1).toTGeometry();
         assertTrue(tPoint1.compareTo(tPoint2) == 0);

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/build.gradle
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/build.gradle b/samples/openstreetmap/build.gradle
deleted file mode 100644
index d4d0811..0000000
--- a/samples/openstreetmap/build.gradle
+++ /dev/null
@@ -1,19 +0,0 @@
-
-description = "Sample of Qi4j spatial queries on geojson data that has been extracted from the OpenStreetMap Project"
-
-jar { manifest { name = "Qi4j Sample - Spatial" }}
-
-dependencies {
-  compile(project(":org.qi4j.core:org.qi4j.core.bootstrap"))
-  compile(project(":org.qi4j.core:org.qi4j.core.runtime"))  /* TODO: Get rid of this dependency */
-  compile(project(":org.qi4j.libraries:org.qi4j.library.constraints"))
-  compile(project(":org.qi4j.libraries:org.qi4j.library.spatial"))
-  compile(project(":org.qi4j.libraries:org.qi4j.library.eventsourcing"))
-  compile(project(":org.qi4j.extensions:org.qi4j.extension.indexing-elasticsearch"))
-  compile(project(":org.qi4j.extensions:org.qi4j.extension.entitystore-riak"))
-
-  testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
-  testCompile(libraries.easymock)
-
-  testRuntime(libraries.logback)
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/OSMEntity.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/OSMEntity.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/OSMEntity.java
deleted file mode 100644
index 832bc78..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/OSMEntity.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model;
-
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.interactions.api.OSM;
-
-/**
- * Created by jj on 01.12.14.
- */
-public interface   OSMEntity extends EntityComposite,
-        OSM
-{}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/interactions/api/FeatureCmds.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/interactions/api/FeatureCmds.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/interactions/api/FeatureCmds.java
deleted file mode 100644
index d5b0e4a..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/interactions/api/FeatureCmds.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.interactions.api;
-
-import org.qi4j.api.geometry.TFeature;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.state.FeatureState;
-
-import java.util.Map;
-
-@Mixins(FeatureCmds.FeatureMixin.class)
-public interface FeatureCmds {
-
-    void createWithProperties(TFeature feature, Map<String, String> properties);
-
-
-    @Mixins(FeatureEvents.PaymentEventsMixin.class)
-    interface FeatureEvents
-    {
-
-        void created(TFeature feature, Map<String, String> properties);
-
-        class PaymentEventsMixin implements FeatureEvents {
-            @This
-            private FeatureState.latest state;
-
-            public void created(TFeature feature, Map<String, String> properties) {
-                state.feature().set(feature);
-                // state.properties().
-            }
-        }
-    }
-
-     class FeatureMixin implements FeatureCmds
-    {
-
-        // @This
-        // private FeatureState.latest status;
-
-        @This
-        private FeatureEvents events;
-
-        public void createWithProperties(TFeature feature, Map<String, String> properties)
-        {
-            events.created(feature, properties);
-        }
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/FeatureState.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/FeatureState.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/FeatureState.java
deleted file mode 100644
index c20b7e7..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/FeatureState.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
-
-import org.qi4j.api.association.Association;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.property.Property;
-
-/**
- * Created by jj on 28.11.14.
- */
-public interface FeatureState {
-
-    interface V1
-    {
-       //  Association<PropertiesState> properties();
-        Property<TGeometry> feature();
-    }
-
-    public interface latest extends V1 {}
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/IdentifiableState.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/IdentifiableState.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/IdentifiableState.java
deleted file mode 100644
index 7ec28e3..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/IdentifiableState.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.property.Property;
-
-/**
- * Created by jj on 28.11.14.
- */
-public interface IdentifiableState {
-
-    interface V1
-    {
-        @Optional
-        Property<String> id();
-    }
-
-    public interface latest extends V1 {}
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/PropertiesState.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/PropertiesState.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/PropertiesState.java
deleted file mode 100644
index 67e72fe..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/PropertiesState.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
-
-import org.qi4j.api.property.Property;
-
-import java.util.Map;
-
-/**
- * Created by jj on 28.11.14.
- */
-public interface PropertiesState {
-
-    interface V1
-    {
-        Property<Map<String, String>> properties();
-    }
-
-    public interface latest extends V1 {}
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/FeatureEntityV2.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/FeatureEntityV2.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/FeatureEntityV2.java
deleted file mode 100644
index 336bfff..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/FeatureEntityV2.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.v2;
-
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.v2.structure.Feature;
-
-/**
- * Created by jj on 10.12.14.
- */
-public interface FeatureEntityV2 extends EntityComposite,
-
-        Feature,
-        Feature.Data
-{}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/OSMEntityV2.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/OSMEntityV2.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/OSMEntityV2.java
deleted file mode 100644
index 6fb7e42..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/OSMEntityV2.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.v2;
-
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.v2.structure.OSM;
-
-/**
- * Created by jj on 10.12.14.
- */
-public interface OSMEntityV2  extends EntityComposite,
-        OSM
-{}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/structure/Feature.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/structure/Feature.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/structure/Feature.java
deleted file mode 100644
index 4746725..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/structure/Feature.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.v2.structure;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.geometry.TFeature;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.internal.TGeometryRoot;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.property.Property;
-
-import java.util.List;
-
-@Mixins({
-        Feature.Mixin.class,
-        Feature.EventsMixin.class
-})
-public interface Feature
-{
-
-    void create(TFeature feature);
-
-    interface Data {
-
-        @Optional
-        Property<TPoint> osmpoint();
-        @Optional
-
-        Property<TGeometry> osmway();
-       //  Property<Map<String, List<String>>> properties();
-
-        Property<List<String>> properties();
-    }
-
-
-    interface  Events
-    {
-        public void created(TFeature feature);
-    }
-
-
-    class Mixin implements Feature
-    {
-
-        @This
-        Data state;
-
-        @This
-        Events events;
-
-        public void create(TFeature feature)
-        {
-            events.created(feature);
-        }
-
-    }
-
-    class EventsMixin implements Events {
-
-        @This
-        Data state;
-
-
-        public void created(TFeature feature)
-        {
-            if (feature.asGeometry().getType() == TGeometryRoot.TGEOMETRY_TYPE.POINT)
-            {
-                state.osmpoint().set((TPoint)feature.asGeometry());
-            } else
-            {
-                state.osmway().set(feature.asGeometry());
-            }
-
-           // state.properties().set(feature.properties().get());
-            state.properties().set(feature.properties().get().get("osm"));
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/structure/OSM.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/structure/OSM.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/structure/OSM.java
deleted file mode 100644
index 4d31f7c..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/v2/structure/OSM.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.v2.structure;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.entity.EntityBuilder;
-import org.qi4j.api.entity.EntityReference;
-import org.qi4j.api.geometry.TFeature;
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.structure.Module;
-import org.qi4j.api.unitofwork.NoSuchEntityException;
-import org.qi4j.library.eventsourcing.domain.api.DomainEvent;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.OSMEntity;
-
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-@Mixins({
-        OSM.Mixin.class,
-        OSM.EventsMixin.class
-})
-public interface OSM {
-
-    public static final String ID = UUID.randomUUID().toString();
-
-    // API
-
-    public Feature createFeature(TFeature feature) throws Exception;
-
-    public static class Repository {
-
-        public static OSM $(Module module) {
-            try {
-                return module.currentUnitOfWork().get(OSM.class, ID);
-            } catch (NoSuchEntityException e) {
-                return module.currentUnitOfWork().newEntity(OSM.class, ID);
-            }
-        }
-    }
-
-
-    /**
-     * Events
-     */
-    interface Events {
-
-        @DomainEvent
-        OSM journalCreated(EntityReference owner, @Optional String name, @Optional String description) throws Exception;
-
-        // @DomainEvent
-        // void journalDestroyed(String journalId);
-        Feature featureCreated(TFeature feature) throws Exception;
-    }
-
-
-    /**
-     * Mixin
-     */
-    class Mixin implements OSM {
-
-        @This
-        Events events;
-
-        @Structure
-        Module module;
-
-        // @Override
-        public OSM create(EntityReference owner, @Optional String name, @Optional String description) throws Exception {
-            return events.journalCreated(owner, name, description);
-        }
-
-        public Feature createFeature(TFeature feature) throws Exception
-        {
-            return events.featureCreated(feature);
-        }
-
-
-
-
-    }
-
-    /**
-     * Events mixin
-     */
-    class EventsMixin implements Events {
-
-        @Structure
-        Module module;
-
-        @This
-        OSMEntity thisEntity;
-
-        @Override
-        public OSM journalCreated(EntityReference owner, @Optional String name, @Optional String description) throws Exception {
-            return null;
-        }
-
-        public Feature featureCreated(TFeature feature) throws Exception
-        {
-           // System.out.println("Feature created : " + feature);
-            EntityBuilder<Feature> eb = module.currentUnitOfWork().newEntityBuilder(Feature.class);
-            eb.instance().create(feature);
-            return eb.newInstance();
-        }
-    }
-
-
-}


[23/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-municipalities.json
deleted file mode 100644
index 42948ba..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-municipalities.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-
-   "type":"Topology",
-    "objects":{
-        "municipalities":{
-            "type":"GeometryCollection",
-            "geometries":[
-                {
-                    "type":"MultiPolygon",
-                    "id":1,
-                    "properties":{"name":"Aeugst am Albis"},"arcs":[[[5505,7958,-5718,-5717,-6719,-6122,-7665,-5507,-5506]]]},{"type":"MultiPolygon","id":2,"properties":{"name":"Affoltern am Albis"},"arcs":[[[6708,6709,6710,-6711,6710,6711,6712,6713,6714,6715,6716,6717,-6123,6718,-5716,5714]]]},{"type":"MultiPolygon","id":3,"properties":{"name":"Bonstetten"},"arcs":[[[8241,8242,8243,8244,6125,-6126,-6125]]]},{"type":"MultiPolygon","id":4,"properties":{"name":"Hausen am Albis"},"arcs":[[[5503,5504,5505,5506,5507,-3099,5508,5509,-3182]]]},{"type":"MultiPolygon","id":5,"properties":{"name":"Hedingen"},"arcs":[[[8733,8734,8735,-8242,-6124,-6718,-6717,-6716,-6715]]]},{"type":"MultiPolygon","id":6,"properties":{"name":"Kappel am Albis"},"arcs":[[[7954,7955,5721,-5722,-5721,-5720,7956,7957,-5504,-3181,-3180,-3179,-3178,-3177,3176,-3177,-3176,-3175]]]},{"type":"MultiPolygon","id":7,"properties":{"name":"Knonau"},"arcs":[[[-4152,8783,-5712,-5711,-5710,-5709,-5708,-5722,-7956,8784]]]},{"type"
 :"MultiPolygon","id":8,"properties":{"name":"Maschwanden"},"arcs":[[[-4244,-8192,-5713,-8784,-4151,-4150,-4149]]]},{"type":"MultiPolygon","id":9,"properties":{"name":"Mettmenstetten"},"arcs":[[[5707,5708,5709,5710,5711,5712,5713,5714,-5715,5715,5716,5717,5718,5719,5720,5721]]]},{"type":"MultiPolygon","id":10,"properties":{"name":"Obfelden"},"arcs":[[[-4243,-5560,8189,8190,-6712,-6711,6710,-6711,-6710,-6709,-5715,-5714,8191]]]},{"type":"MultiPolygon","id":11,"properties":{"name":"Ottenbach"},"arcs":[[[-5559,-7683,-9135,-9134,-9133,-6713,-8191,-8190]]]},{"type":"MultiPolygon","id":12,"properties":{"name":"Rifferswil"},"arcs":[[[-7958,-7957,-5719,-7959,-5506,-5505]]]},{"type":"MultiPolygon","id":13,"properties":{"name":"Stallikon"},"arcs":[[[6121,6122,6123,6124,6125,-6126,6125,6126,6127,6128,6129,6130,6131,6132,-735,733,6133,6134]]]},{"type":"MultiPolygon","id":14,"properties":{"name":"Wettswil am Albis"},"arcs":[[[-8245,-6357,-6356,-6130,-6129,-6128,-6127,-6126]]]},{"type":"MultiPolyg
 on","id":21,"properties":{"name":"Adlikon"},"arcs":[[[-7931,-7930,8722,8723,-8652,-8651,-8650,-8649,8648,-8649,-8648,-5690,8724]]]},{"type":"MultiPolygon","id":22,"properties":{"name":"Benken (ZH)"},"arcs":[[[-5355,-5354,5352,-7487,-7486,7485,-7486,7484,9163,9164,-8868,-8867,-7169]]]},{"type":"MultiPolygon","id":23,"properties":{"name":"Berg am Irchel"},"arcs":[[[-7749,8428,-6938,8429,-6882,-6881,-6880,6879,-6880,-6879]]]},{"type":"MultiPolygon","id":24,"properties":{"name":"Buch am Irchel"},"arcs":[[[6876,6877,6878,6879,-6880,6879,6880,6881,-6882,6881,6882,6883,6884,6885,6886,6887,6888,6889,6890,-5138,-5137,-5136,5135,-5136,5135,-5136,-5135,-5134]]]},{"type":"MultiPolygon","id":25,"properties":{"name":"Dachsen"},"arcs":[[[-9165,-9164,-7485,-7484,10420,-8870,-8869]]]},{"type":"MultiPolygon","id":26,"properties":{"name":"Dorf"},"arcs":[[[-6891,-6890,-6889,-6888,-6887,-6886,9211,9212,-8646,9213,9214,-5140,-5139]]]},{"type":"MultiPolygon","id":27,"properties":{"name":"Feuerthalen"},"ar
 cs":[[[-8873,10462,-1781,10463,-5000]]]},{"type":"MultiPolygon","id":28,"properties":{"name":"Flaach"},"arcs":[[[6933,6934,-5348,-6840,6935,6936,6937]]]},{"type":"MultiPolygon","id":29,"properties":{"name":"Flurlingen"},"arcs":[[[-8872,-7904,-1782,-10463]]]},{"type":"MultiPolygon","id":30,"properties":{"name":"Andelfingen"},"arcs":[[[8644,8645,8646,-6936,-6839,-5691,8647,8648,-8649,8648,8649,8650,8651]]]},{"type":"MultiPolygon","id":31,"properties":{"name":"Henggart"},"arcs":[[[-5141,-9215,-10136,-10135,-7927,-9013]]]},{"type":"MultiPolygon","id":32,"properties":{"name":"Humlikon"},"arcs":[[[10134,10135,-9214,-8645,-8724,-8723,-7929,-7928]]]},{"type":"MultiPolygon","id":33,"properties":{"name":"Kleinandelfingen"},"arcs":[[[6838,6839,-5358,-5357,5356,6840,6841,6842,-5694,-5693,-5692]]]},{"type":"MultiPolygon","id":34,"properties":{"name":"Laufen-Uhwiesen"},"arcs":[[[-7170,8866,8867,8868,8869,8870,-7902,8871,8872,-4999]]]},{"type":"MultiPolygon","id":35,"properties":{"name":"Marthalen
 "},"arcs":[[[5347,5348,5349,5350,5351,5352,-5353,5353,5354,5355,5356,5357]]]},{"type":"MultiPolygon","id":36,"properties":{"name":"Oberstammheim"},"arcs":[[[-4479,-6406,7216,7217,-6260,-6259,-4480]]]},{"type":"MultiPolygon","id":37,"properties":{"name":"Ossingen"},"arcs":[[[5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699]]]},{"type":"MultiPolygon","id":38,"properties":{"name":"Rheinau"},"arcs":[[[-5353,-5352,7482,7483,7484,-7485,7485,-7486,7485,7486]]]},{"type":"MultiPolygon","id":39,"properties":{"name":"Thalheim an der Thur"},"arcs":[[[-8404,-8403,-7932,-8725,-5689,-6403,-8106]]]},{"type":"MultiPolygon","id":40,"properties":{"name":"Trüllikon"},"arcs":[[[-5696,-5695,-6843,-6842,-6841,-5357,-5356,7168,7169,-4998,7170]]]},{"type":"MultiPolygon","id":41,"properties":{"name":"Truttikon"},"arcs":[[[-5698,-5697,-7171,-5003,-4953,-4952,-8288]]]},{"type":"MultiPolygon","id":42,"properties":{"name":"Unterstammheim"},"arcs":[[[-7218,-8289,-4958,-4957,-6950,-6261]]]},{"type":"Mu
 ltiPolygon","id":43,"properties":{"name":"Volken"},"arcs":[[[-6885,-6884,-6883,-6882,6881,-8430,-6937,-8647,-9213,-9212]]]},{"type":"MultiPolygon","id":44,"properties":{"name":"Waltalingen"},"arcs":[[[-5699,8287,-4960,-4959,-4958,4957,8288,-7217,-6405,-6404]]]},{"type":"MultiPolygon","id":51,"properties":{"name":"Bachenbülach"},"arcs":[[[-7833,-9644,-4835,-4834,-4833,-4832,-7879,-7878,-7877,-7876,-7875]]]},{"type":"MultiPolygon","id":52,"properties":{"name":"Bassersdorf"},"arcs":[[[7421,7422,-4117,-4116,-4115,-6960,-6959,-6140,-6139,7423]]]},{"type":"MultiPolygon","id":53,"properties":{"name":"Bülach"},"arcs":[[[4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843]]]},{"type":"MultiPolygon","id":54,"properties":{"name":"Dietlikon"},"arcs":[[[-8807,-8806,-4118,-7423,-7422,-7954,-5496]]]},{"type":"MultiPolygon","id":55,"properties":{"name":"Eglisau"},"arcs":[[[-4841,-6201,-6200,-6199,-6198,7382,7383,7384,7385,7386,7387,-6685,7388,7389,7390,7391,-7392,7391,7392,7393,7394]
 ]]},{"type":"MultiPolygon","id":56,"properties":{"name":"Embrach"},"arcs":[[[5821,5822,5823,5824,5825,5826,-4843,5827,5828,5829,5830]]]},{"type":"MultiPolygon","id":57,"properties":{"name":"Freienstein-Teufen"},"arcs":[[[-5829,7744,7745,-7394,7746,7747,7748,-6878,7749]]]},{"type":"MultiPolygon","id":58,"properties":{"name":"Glattfelden"},"arcs":[[[6194,-5773,-5772,6195,6196,6197,6198,6199,6200,-4840]],[[10646,-9570,-7386,-7385,-7384]]]},{"type":"MultiPolygon","id":59,"properties":{"name":"Hochfelden"},"arcs":[[[8911,-5775,-5774,-6195,-4839,-4838,-4837,8912,8913,-8914]]]},{"type":"MultiPolygon","id":60,"properties":{"name":"Höri"},"arcs":[[[9642,-8964,-8914,8913,-8914,-8913,-4836,9643,-7832]]]},{"type":"MultiPolygon","id":61,"properties":{"name":"Hüntwangen"},"arcs":[[[9567,9568,-7470,-7387,9569]]]},{"type":"MultiPolygon","id":62,"properties":{"name":"Kloten"},"arcs":[[[4104,4105,4106,4107,4108,4109,-4110,4110,4111,4112,4113,4114,4115,4116,4117,4118]]]},{"type":"MultiPolygon","id":
 63,"properties":{"name":"Lufingen"},"arcs":[[[-7880,-5826,-5825,-5824,-5823,-6873,-4110,-4109]]]},{"type":"MultiPolygon","id":64,"properties":{"name":"Nürensdorf"},"arcs":[[[6958,6959,-4114,-4113,-6872,-6871,6870,-6871,-6870,6868,6960,6961,6143,-6144,-6143,-6142,-6141]]]},{"type":"MultiPolygon","id":65,"properties":{"name":"Oberembrach"},"arcs":[[[-983,6865,6866,-6867,6866,6867,6868,-6869,6869,6870,-6871,6870,6871,-4112,-4111,4109,6872,-5822,6873,-984]]]},{"type":"MultiPolygon","id":66,"properties":{"name":"Opfikon"},"arcs":[[[-743,-5940,-4105,-8805]]]},{"type":"MultiPolygon","id":67,"properties":{"name":"Rafz"},"arcs":[[[6684,6685,6686,6687,6688]]]},{"type":"MultiPolygon","id":68,"properties":{"name":"Rorbas"},"arcs":[[[-4842,-7395,-7746,-7745,-5828]]]},{"type":"MultiPolygon","id":69,"properties":{"name":"Wallisellen"},"arcs":[[[-744,8804,-4119,8805,8806,-5495,-5494]]]},{"type":"MultiPolygon","id":70,"properties":{"name":"Wasterkingen"},"arcs":[[[10009,-7471,-9569]]]},{"type":"Mul
 tiPolygon","id":71,"properties":{"name":"Wil (ZH)"},"arcs":[[[7469,7470,7471,-6686,-7388]]]},{"type":"MultiPolygon","id":72,"properties":{"name":"Winkel"},"arcs":[[[-5939,-7835,-7834,7874,7875,7876,7877,7878,-4844,-5827,7879,-4108,-4107]]]},{"type":"MultiPolygon","id":81,"properties":{"name":"Bachs"},"arcs":[[[-7251,7362,7363,7364,7365,7366,7367,-7163,-5769,-5768,7368]]]},{"type":"MultiPolygon","id":82,"properties":{"name":"Boppelsen"},"arcs":[[[-9054,-8339,-8338,-9150,10008]]]},{"type":"MultiPolygon","id":83,"properties":{"name":"Buchs (ZH)"},"arcs":[[[-5230,-5229,9051,9052,-8341,-8340,9053,9054,-9018,-6445]]]},{"type":"MultiPolygon","id":84,"properties":{"name":"Dällikon"},"arcs":[[[-9397,9799,9800,-9052,-5228]]]},{"type":"MultiPolygon","id":85,"properties":{"name":"Dänikon"},"arcs":[[[-9801,10369,10370,10371,-8342,-9053]]]},{"type":"MultiPolygon","id":86,"properties":{"name":"Dielsdorf"},"arcs":[[[9017,9018,-7247,-7246,6447,-6448,-6447,-6446]]]},{"type":"MultiPolygon","id":87,"
 properties":{"name":"Hüttikon"},"arcs":[[[-7440,-8343,-10372,-10371,-10407]]]},{"type":"MultiPolygon","id":88,"properties":{"name":"Neerach"},"arcs":[[[-7252,-7369,-5776,-8912,8913,8963,8964]]]},{"type":"MultiPolygon","id":89,"properties":{"name":"Niederglatt"},"arcs":[[[-6451,-6450,-7253,-8965,-9643,-7831,-7830]]]},{"type":"MultiPolygon","id":90,"properties":{"name":"Niederhasli"},"arcs":[[[-5231,6444,6445,6446,6447,6448,6449,6450,6451,-5937,-5936,-5935,-5934]]]},{"type":"MultiPolygon","id":91,"properties":{"name":"Niederweningen"},"arcs":[[[-6706,-8279,-7828,8572,8573,8574,8575,8576,-8336]]]},{"type":"MultiPolygon","id":92,"properties":{"name":"Oberglatt"},"arcs":[[[-6452,7829,7830,7831,7832,7833,7834,-5938]]]},{"type":"MultiPolygon","id":93,"properties":{"name":"Oberweningen"},"arcs":[[[9552,-9153,-9152,-9269,-9268,-7364,9553,-7249]]]},{"type":"MultiPolygon","id":94,"properties":{"name":"Otelfingen"},"arcs":[[[-7439,-7438,-6707,8335,8336,8337,8338,8339,8340,8341,8342]]]},{"type"
 :"MultiPolygon","id":95,"properties":{"name":"Regensberg"},"arcs":[[[-9055,-10009,-9154,-9553,-7248,-9019]]]},{"type":"MultiPolygon","id":96,"properties":{"name":"Regensdorf"},"arcs":[[[5224,5225,5226,5227,5228,5229,5230,5231,-740]]]},{"type":"MultiPolygon","id":97,"properties":{"name":"Rümlang"},"arcs":[[[-742,-741,-5232,5933,5934,5935,5936,5937,5938,-4106,5939]]]},{"type":"MultiPolygon","id":98,"properties":{"name":"Schleinikon"},"arcs":[[[9149,-8337,-8577,-8576,-8575,-8574,9150,9151,9152,9153]]]},{"type":"MultiPolygon","id":99,"properties":{"name":"Schöfflisdorf"},"arcs":[[[-9554,-7363,-7250]]]},{"type":"MultiPolygon","id":100,"properties":{"name":"Stadel"},"arcs":[[[5767,5768,5769,5770,5771,5772,5773,5774,5775]]]},{"type":"MultiPolygon","id":101,"properties":{"name":"Steinmaur"},"arcs":[[[-6448,7245,7246,7247,7248,7249,7250,7251,7252,-6449]]]},{"type":"MultiPolygon","id":102,"properties":{"name":"Weiach"},"arcs":[[[7162,7163,7164,7165,-6196,-5771,-5770]]]},{"type":"MultiPolygo
 n","id":111,"properties":{"name":"Bäretswil"},"arcs":[[[3627,3628,-3629,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,-2684,-2683,2682,-2683,-2682,-2681,-2680,2679,-2680,-2679,-3613,-3612,-3611,-3610,-3609,-3608,-3607,-3606]]]},{"type":"MultiPolygon","id":112,"properties":{"name":"Bubikon"},"arcs":[[[-4977,6310,6311,-4329,-4328,-3619,-3618,6312,6313,-6314,6313,6314,6315,-2512,-2511]]]},{"type":"MultiPolygon","id":113,"properties":{"name":"Dürnten"},"arcs":[[[-6315,-6314,6313,-6314,-6313,-3617,-3616,-3615,-3614,-3042,6874,6875]]]},{"type":"MultiPolygon","id":114,"properties":{"name":"Fischenthal"},"arcs":[[[-1285,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,-2680,2679,2680,2681,2682,-2683,2682,2683,2684,2685,2686,2687,2688,-1474]]]},{"type":"MultiPolygon","id":115,"properties":{"name":"Gossau (ZH)"},"arcs":[[[4317,4318,4319,4320,-4321,4321,4322,-2644,4323,4324,4325,-4326,4325,4326,-3602,4327,4328]]]},{"type":"MultiPolygon","id":116,"properties":{"name":"Grüninge
 n"},"arcs":[[[-4976,7620,7621,-5244,-4319,-4318,-6312,-6311]]]},{"type":"MultiPolygon","id":117,"properties":{"name":"Hinwil"},"arcs":[[[3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,-2678,-2677,-2676,-2675,-2674,-2673,-3046,-3045,-3044,-3043,3613,3614,3615,3616,3617,3618]]]},{"type":"MultiPolygon","id":118,"properties":{"name":"Rüti (ZH)"},"arcs":[[[-6316,-6876,-6875,-3047,-1279,-1278,-2513]]]},{"type":"MultiPolygon","id":119,"properties":{"name":"Seegräben"},"arcs":[[[10111,10112,10113,10114,-2642,-2641,-2640,-4074,-4714,-4713]]]},{"type":"MultiPolygon","id":120,"properties":{"name":"Wald (ZH)"},"arcs":[[[3041,3042,3043,3044,3045,-2672,-2671,-1284,-1283,-1282,-1281,1280,-1281,-1280,3046]]]},{"type":"MultiPolygon","id":121,"properties":{"name":"Wetzikon (ZH)"},"arcs":[[[-4327,-4326,4325,-4326,-4325,4711,4712,4713,-4073,-4072,-4071,-4070,-3630,-3629,3628,-3629,-3628,-3605,-3604,-3603]]]},{"type":"MultiPolygon","id":131,"properties":{"name":"Adliswil"},"arcs":[[[-6134
 ,-734,-733,-732,8051,8052,-8053,8052,8053,8054,-7668,-7667,-7666]]]},{"type":"MultiPolygon","id":132,"properties":{"name":"Hirzel"},"arcs":[[[-2856,7127,-5509,-3098,-3144,-6578]]]},{"type":"MultiPolygon","id":133,"properties":{"name":"Horgen"},"arcs":[[[3097,3098,3099,3100,3101,3102,3103,3104,-3105,3104,3105,3106,3107,3108,3109,3110,3111,3112]]]},{"type":"MultiPolygon","id":134,"properties":{"name":"Hütten"},"arcs":[[[-2261,2259,-2858,-6582,-6581,6580,-6581,-6580,-6579,-5805,8275,-4534]]]},{"type":"MultiPolygon","id":135,"properties":{"name":"Kilchberg (ZH)"},"arcs":[[[-5172,9600,-8054,-8053,8052,-8053,-8052,-731,-7320]]]},{"type":"MultiPolygon","id":136,"properties":{"name":"Langnau am Albis"},"arcs":[[[7664,-6135,7665,7666,7667,7668,7669,-3106,-3105,3104,-3105,-3104,-3103,-3102,-3101,-3100,-5508]]]},{"type":"MultiPolygon","id":137,"properties":{"name":"Oberrieden"},"arcs":[[[-3110,-3109,-3108,-8049,-8048,-6720,-4643]]]},{"type":"MultiPolygon","id":138,"properties":{"name":"Richte
 rswil"},"arcs":[[[5802,5803,5804,5805,-3142,-3977,-3924]]]},{"type":"MultiPolygon","id":139,"properties":{"name":"Rüschlikon"},"arcs":[[[-7669,-8055,-9601,-5171,-8046,-8045]]]},{"type":"MultiPolygon","id":140,"properties":{"name":"Schönenberg (ZH)"},"arcs":[[[-2857,6577,-3143,-5806,6578,6579,6580,-6581,6580,6581]]]},{"type":"MultiPolygon","id":141,"properties":{"name":"Thalwil"},"arcs":[[[-7670,8044,8045,-5170,8046,-6721,8047,8048,-3107]]]},{"type":"MultiPolygon","id":142,"properties":{"name":"Wädenswil"},"arcs":[[[3141,3142,3143,-3113,-3112,3144,3145,3146,3147]]]},{"type":"MultiPolygon","id":151,"properties":{"name":"Erlenbach (ZH)"},"arcs":[[[-6732,-6731,-6730,-6729,-6728,-6727,-6726,6725,-6726,-6725,-6724,-6723,-6722,-8047,-5169]]]},{"type":"MultiPolygon","id":152,"properties":{"name":"Herrliberg"},"arcs":[[[-4649,-4648,-4647,-4646,4645,-4646,-4645,-4644,6719,6720,6721,6722,6723,6724,6725,-6726,6725,6726,6727,6728,6729,6730,6731,-5168,-5167,-4424,-5242]]]},{"type":"MultiPolygo
 n","id":153,"properties":{"name":"Hombrechtikon"},"arcs":[[[-3926,-3991,-3990,-3989,-3988,-3987,-3986,-3985,-3984,3983,-3984,-3983,4974,4975,4976,-2510,-2509]]]},{"type":"MultiPolygon","id":154,"properties":{"name":"Küsnacht (ZH)"},"arcs":[[[5166,5167,5168,5169,5170,5171,5172,5173,5174,4426,-4427,-4426,-4425]]]},{"type":"MultiPolygon","id":155,"properties":{"name":"Männedorf"},"arcs":[[[-3978,-3147,7880,7881,7882,7883,7884,-3979]]]},{"type":"MultiPolygon","id":156,"properties":{"name":"Meilen"},"arcs":[[[-3145,-3111,4642,4643,4644,4645,-4646,4645,4646,4647,4648,4649,4650,4651,4652,4653]]]},{"type":"MultiPolygon","id":157,"properties":{"name":"Oetwil am See"},"arcs":[[[-3982,-3981,3980,-3981,-3980,-3979,3978,-7885,8941,-5239,-5238,-7622,-7621,-4975]]]},{"type":"MultiPolygon","id":158,"properties":{"name":"Stäfa"},"arcs":[[[-3925,3976,-3148,3977,3978,3979,3980,-3981,3980,3981,3982,3983,-3984,3983,3984,3985,3986,3987,3988,3989,3990]]]},{"type":"MultiPolygon","id":159,"properties":{"
 name":"Uetikon am See"},"arcs":[[[-7884,-7883,-7882,-7881,-3146,-4654,-4653,-5241,-5240,-8942]]]},{"type":"MultiPolygon","id":160,"properties":{"name":"Zumikon"},"arcs":[[[-4427,-5175,-5174,-7324,-7323,-7322,-7321,-4429,-4428]]]},{"type":"MultiPolygon","id":161,"properties":{"name":"Zollikon"},"arcs":[[[-5173,7319,-730,-729,-728,-727,-726,-725,-724,723,-724,-723,-4431,-4430,7320,7321,7322,7323]]]},{"type":"MultiPolygon","id":171,"properties":{"name":"Bauma"},"arcs":[[[-2688,-2687,-2686,-2685,-3640,-3639,-3638,-3637,-3636,3892,3893,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3905]]]},{"type":"MultiPolygon","id":172,"properties":{"name":"Fehraltorf"},"arcs":[[[-5417,-5416,-3041,-3040,-5324,-5323,-4075,2637,-2638,-2637]]]},{"type":"MultiPolygon","id":173,"properties":{"name":"Hittnau"},"arcs":[[[-4083,-4082,-4081,-4080,-3897,-3896,-3895,-3894,-3893,-3635,-3634,-3633]]]},{"type":"MultiPolygon","id":174,"properties":{"name":"Illnau-Effretikon"},"arcs":[[[3026,3027,3028,3029,30
 30,3031,3032,3033,-977,3034,3035,3036,3037,3038,3039,3040]]]},{"type":"MultiPolygon","id":175,"properties":{"name":"Kyburg"},"arcs":[[[-5802,-5801,-5800,-5799,-5798,5797,-5798,-5797,-3036,-3035,-976,-5736]]]},{"type":"MultiPolygon","id":176,"properties":{"name":"Lindau"},"arcs":[[[-5415,6135,6136,-6137,6136,6137,6138,6139,6140,6141,6142,6143,6144,6145,-981,-980,-979,-978,-3034,-3033,-3032,-3031]]]},{"type":"MultiPolygon","id":177,"properties":{"name":"Pfäffikon"},"arcs":[[[4069,4070,4071,4072,4073,-2639,-2638,4074,4075,4076,4077,4078,-3899,-3898,4079,4080,4081,4082,-3632,-3631]]]},{"type":"MultiPolygon","id":178,"properties":{"name":"Russikon"},"arcs":[[[-4077,-4076,5322,5323,-3039,-3038,5324,5325,5326,-5327,5326,5327,5328,5329,5330,5331,5332,5333,5334,5335,-5336,5335,5336]]]},{"type":"MultiPolygon","id":179,"properties":{"name":"Sternenberg"},"arcs":[[[-2689,-3906,-3905,-7345,-7344,-7343,-7342,7338,-7341,-7340,-7339,-7338,-7337,-7336,-2613,-2612,2611,-2612,-2611]]]},{"type":"Multi
 Polygon","id":180,"properties":{"name":"Weisslingen"},"arcs":[[[5795,5330,-5331,-5330,-5329,-5328,-5327,5326,-5327,-5326,-5325,-3037,5796,5797,-5798,5797,5798,5799,5800,5801,-5735,-5734,-5733,-5732,-5731]]]},{"type":"MultiPolygon","id":181,"properties":{"name":"Wila"},"arcs":[[[7335,7336,7337,7338,7339,7340,-7339,7341,7342,7343,7344,-3904,-3903,-3902,-6740,-6739,-3081,-3080,-2614]]]},{"type":"MultiPolygon","id":182,"properties":{"name":"Wildberg"},"arcs":[[[-3901,-3900,-4079,-4078,-5337,-5336,5335,-5336,-5335,-5334,-5333,-5332,-5331,-5796,-5730,-5729,-3082,6738,6739]]]},{"type":"MultiPolygon","id":191,"properties":{"name":"Dübendorf"},"arcs":[[[-745,5493,5494,5495,5496,-5413,5497,5498,5499,5500,5501,-5502,5501,5502]]]},{"type":"MultiPolygon","id":192,"properties":{"name":"Egg"},"arcs":[[[5237,5238,5239,5240,-4652,-4651,-4650,5241,-4423,-4422,4421,-4422,-4421,-4420,5242,-4321,-4320,5243]]]},{"type":"MultiPolygon","id":193,"properties":{"name":"Fällanden"},"arcs":[[[-4433,-4432,-746
 ,-5503,-5502,5501,-5502,-5501,-5500,-5499,8273,8274]]]},{"type":"MultiPolygon","id":194,"properties":{"name":"Greifensee"},"arcs":[[[-4434,-8275,9880,-5411,-2634]]]},{"type":"MultiPolygon","id":195,"properties":{"name":"Maur"},"arcs":[[[4419,4420,4421,-4422,4421,4422,4423,4424,4425,4426,4427,4428,4429,4430,-722,4431,4432,4433,-2633,4434]]]},{"type":"MultiPolygon","id":196,"properties":{"name":"Mönchaltorf"},"arcs":[[[-5243,-4435,-2632,-4323,-4322,4320]],[[-4324,-2643,-10115,-10114,-10113,-10112,-4712]]]},{"type":"MultiPolygon","id":197,"properties":{"name":"Schwerzenbach"},"arcs":[[[-8274,-5498,-5412,-9881]]]},{"type":"MultiPolygon","id":198,"properties":{"name":"Uster"},"arcs":[[[2631,2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643]]]},{"type":"MultiPolygon","id":199,"properties":{"name":"Volketswil"},"arcs":[[[5410,5411,5412,5413,5414,-3030,-3029,-3028,-3027,5415,5416,-2636,-2635]]]},{"type":"MultiPolygon","id":200,"properties":{"name":"Wangen-Brüttisellen"},"arcs":[
 [[-5497,7953,-7424,-6138,-6137,6136,-6137,-6136,-5414]]]},{"type":"MultiPolygon","id":211,"properties":{"name":"Altikon"},"arcs":[[[8104,8105,-6407,-5419,8106,8107,-8108,8108]]]},{"type":"MultiPolygon","id":212,"properties":{"name":"Bertschikon"},"arcs":[[[7117,7118,7119,-7120,7120,7121,7122,-7117,-7116,7115,-7116,-7115,-2875,7123,7124,7125,-4981,7126]]]},{"type":"MultiPolygon","id":213,"properties":{"name":"Brütten"},"arcs":[[[-6146,-6145,-6144,-6962,-6961,-6869,-6868,-6867,6866,-6867,-6866,982,-983,-982]]]},{"type":"MultiPolygon","id":214,"properties":{"name":"Dägerlen"},"arcs":[[[7919,7920,7921,7922,7923,7924,7925,7926,7927,7928,7929,7930,7931,7932]]]},{"type":"MultiPolygon","id":215,"properties":{"name":"Dättlikon"},"arcs":[[[-5830,-7750,-6877,-5133,-9538]]]},{"type":"MultiPolygon","id":216,"properties":{"name":"Dinhard"},"arcs":[[[-991,-8178,-8177,-7933,8402,8403,-8105,8404,8405]]]},{"type":"MultiPolygon","id":217,"properties":{"name":"Elgg"},"arcs":[[[4977,4978,4979,4980,49
 81,-4004,-4003,-4002,4001,-4002,-4001,4982,4983,4984,4985,4986]]]},{"type":"MultiPolygon","id":218,"properties":{"name":"Ellikon an der Thur"},"arcs":[[[-8979,-8108,-8107,-5428,-2880,-7114,-7123,-7214]]]},{"type":"MultiPolygon","id":219,"properties":{"name":"Elsau"},"arcs":[[[-1007,-1006,-1005,-1004,-1003,-1002,-7216,-7215,-7127,-4980,-4979,-4978,-7612,-7611,-7467,-7466,-7465]]]},{"type":"MultiPolygon","id":220,"properties":{"name":"Hagenbuch"},"arcs":[[[-4982,-7126,-7125,-7124,-2874,-4006,-4005]]]},{"type":"MultiPolygon","id":221,"properties":{"name":"Hettlingen"},"arcs":[[[-988,-5143,-5142,9012,-7926,-7925,-7924,-7923,-7922,-8176]]]},{"type":"MultiPolygon","id":222,"properties":{"name":"Hofstetten (ZH)"},"arcs":[[[-7469,-7468,7466,7610,7611,-4987,-4986,-4985,-4984,-4983,-4000,-3087,-3086,-3085]]]},{"type":"MultiPolygon","id":223,"properties":{"name":"Neftenbach"},"arcs":[[[5131,5132,5133,5134,5135,-5136,5135,-5136,5135,5136,5137,5138,5139,5140,5141,5142,-987]]]},{"type":"MultiPoly
 gon","id":224,"properties":{"name":"Pfungen"},"arcs":[[[-6874,-5831,9537,-5132,-986,-985]]]},{"type":"MultiPolygon","id":225,"properties":{"name":"Rickenbach (ZH)"},"arcs":[[[-994,-993,-992,-8406,-8405,-8109,8107,8978,-7213]]]},{"type":"MultiPolygon","id":226,"properties":{"name":"Schlatt (ZH)"},"arcs":[[[-5742,-5741,5739,-5740,-5739,-5738,-5737,-1008,7464,7465,7466,-7467,7467,7468,-3084]]]},{"type":"MultiPolygon","id":227,"properties":{"name":"Seuzach"},"arcs":[[[-990,-989,8175,-7921,-7920,8176,8177]]]},{"type":"MultiPolygon","id":228,"properties":{"name":"Turbenthal"},"arcs":[[[3079,3080,3081,3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,-3094,3094,-2617,3095,3096,-2615]]]},{"type":"MultiPolygon","id":229,"properties":{"name":"Wiesendangen"},"arcs":[[[-1001,-1000,-999,997,-998,-997,-996,-995,7212,7213,-7122,-7121,7119,-7120,-7119,-7118,7214,7215]]]},{"type":"MultiPolygon","id":230,"properties":{"name":"Winterthur"},"arcs":[[[970,971,972,973,974,975,976,977,978,979,98
 0,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,-998,998,999,1000,1001,1002,1003,1004,1005,1006,1007]]]},{"type":"MultiPolygon","id":231,"properties":{"name":"Zell (ZH)"},"arcs":[[[5728,5729,5730,5731,5732,5733,5734,5735,-975,-974,-973,-972,-971,5736,5737,5738,5739,-5740,5740,5741,-3083]]]},{"type":"MultiPolygon","id":241,"properties":{"name":"Aesch (ZH)"},"arcs":[[[9440,-9405,-6359,-6358,-8244,9441]]]},{"type":"MultiPolygon","id":242,"properties":{"name":"Birmensdorf (ZH)"},"arcs":[[[-6132,-6131,6355,6356,6357,6358,6359,6360,6361,6362,6363,6364,6365,-6366,6366,6367]]]},{"type":"MultiPolygon","id":243,"properties":{"name":"Dietikon"},"arcs":[[[7296,7297,7298,7299,7300,7301,7302,7303]]]},{"type":"MultiPolygon","id":244,"properties":{"name":"Geroldswil"},"arcs":[[[-7301,-10409,-10408,-9395,-9394,-9393]]]},{"type":"MultiPolygon","id":245,"properties":{"name":"Oberengstringen"},"arcs":[[[-8713,-10247,-5225,-739]]]},{"type":"MultiPolygon","id":246,"properties":{"nam
 e":"Oetwil an der Limmat"},"arcs":[[[-7699,-7442,-7441,10406,-10370,-9800,-9396,9394,10407,10408,-7300]]]},{"type":"MultiPolygon","id":247,"properties":{"name":"Schlieren"},"arcs":[[[-8175,-7304,8711,8712,-738,-737]]]},{"type":"MultiPolygon","id":248,"properties":{"name":"Uitikon"},"arcs":[[[-6133,-6368,-6367,6365,-6366,-6365,-8172,-736]]]},{"type":"MultiPolygon","id":249,"properties":{"name":"Unterengstringen"},"arcs":[[[-7303,-9398,-5226,10246,-8712]]]},{"type":"MultiPolygon","id":250,"properties":{"name":"Urdorf"},"arcs":[[[8171,-6364,-6363,8172,8173,-7297,8174]]]},{"type":"MultiPolygon","id":251,"properties":{"name":"Weiningen (ZH)"},"arcs":[[[-7302,9392,9393,9394,-9395,9395,9396,-5227,9397]]]},{"type":"MultiPolygon","id":261,"properties":{"name":"Zürich"},"arcs":[[[721,722,723,-724,723,724,725,726,727,728,729,730,731,732,733,-734,734,735,736,737,738,739,740,741,742,743,744,745]]]},{"type":"MultiPolygon","id":301,"properties":{"name":"Aarberg"},"arcs":[[[-5219,7946,-6577,-6576,
 -5195,-3874]]]},{"type":"MultiPolygon","id":302,"properties":{"name":"Bargen (BE)"},"arcs":[[[-5099,7995,7996,-6569,-7947,-5218]]]},{"type":"MultiPolygon","id":303,"properties":{"name":"Grossaffoltern"},"arcs":[[[5128,5129,5130,-3934,-4031,-4030,-4029,-3877,-3876]]]},{"type":"MultiPolygon","id":304,"properties":{"name":"Kallnach"},"arcs":[[[5091,5092,5093,5094,5095,5096,5097,5098,5099]]]},{"type":"MultiPolygon","id":305,"properties":{"name":"Kappelen"},"arcs":[[[6568,6569,6570,6571,6572,6573,6574,-5196,6575,6576]]]},{"type":"MultiPolygon","id":306,"properties":{"name":"Lyss"},"arcs":[[[5194,5195,5196,5197,5198,5199,5200,-5129,-3875]]]},{"type":"MultiPolygon","id":307,"properties":{"name":"Meikirch"},"arcs":[[[-2215,-3879,-4028,-4027,-6175]]]},{"type":"MultiPolygon","id":309,"properties":{"name":"Radelfingen"},"arcs":[[[-2965,5216,-5100,5217,5218,-3873,-2213]]]},{"type":"MultiPolygon","id":310,"properties":{"name":"Rapperswil (BE)"},"arcs":[[[3930,3931,3932,3933,3934,3935,3936,3937,3
 938,3939,3940,3941,3942]]]},{"type":"MultiPolygon","id":311,"properties":{"name":"Schüpfen"},"arcs":[[[4026,4027,-3878,-3877,3876,4028,4029,4030,-3933,4031,4032,4033]]]},{"type":"MultiPolygon","id":312,"properties":{"name":"Seedorf (BE)"},"arcs":[[[3872,3873,3874,3875,3876,3877,3878,-2214]]]},{"type":"MultiPolygon","id":321,"properties":{"name":"Aarwangen"},"arcs":[[[-4604,7011,7012,7013,7014,7015,7016]]]},{"type":"MultiPolygon","id":322,"properties":{"name":"Auswil"},"arcs":[[[-4580,9733,-3515,-3514,-7241]]]},{"type":"MultiPolygon","id":323,"properties":{"name":"Bannwil"},"arcs":[[[9648,9649,9650,-7734,-4563,9651,-7014]]]},{"type":"MultiPolygon","id":324,"properties":{"name":"Bleienbach"},"arcs":[[[-6090,-6089,9135,-7132,-4602,-8908,-8907,-8906,9136]]]},{"type":"MultiPolygon","id":325,"properties":{"name":"Busswil bei Melchnau"},"arcs":[[[-3522,-8910,-10031,-4598,-6857,-6856]]]},{"type":"MultiPolygon","id":326,"properties":{"name":"Gondiswil"},"arcs":[[[-4581,7240,-3525,7241,-6854
 ,7242,7243,7244,-6021]]]},{"type":"MultiPolygon","id":329,"properties":{"name":"Langenthal"},"arcs":[[[4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,-4462,-4461,-4460]]]},{"type":"MultiPolygon","id":331,"properties":{"name":"Lotzwil"},"arcs":[[[-3521,8904,8905,8906,8907,-4601,8908,8909]]]},{"type":"MultiPolygon","id":332,"properties":{"name":"Madiswil"},"arcs":[[[3513,3514,3515,3516,3517,3518,3519,3520,3521,3522,3523,3524]]]},{"type":"MultiPolygon","id":333,"properties":{"name":"Melchnau"},"arcs":[[[6853,6854,-3523,6855,6856,-4597,-4459,6857,6858,6859,6860,6861,-6862,6861,6862,-6863,6862,6863]]]},{"type":"MultiPolygon","id":334,"properties":{"name":"Obersteckholz"},"arcs":[[[-8909,-4600,-4599,10030]]]},{"type":"MultiPolygon","id":335,"properties":{"name":"Oeschenbach"},"arcs":[[[-2824,-2823,-2822,-6093,-7353,-7983]]]},{"type":"MultiPolygon","id":336,"properties":{"name":"Reisiswil"},"arcs":[[[-3524,-6855,-7242]]]},{"type":"MultiPolygon","id":337,"properties":{"name":"Roggwil (BE
 )"},"arcs":[[[-4606,-4605,-7017,8010,8011,4252,-4253,-4252,-4251,-4250,-4465,4463,-4464,-4463]]]},{"type":"MultiPolygon","id":338,"properties":{"name":"Rohrbach"},"arcs":[[[-8786,-3516,-9734,-4579]]]},{"type":"MultiPolygon","id":339,"properties":{"name":"Rohrbachgraben"},"arcs":[[[-5344,-5343,-7984,-7354,-3517,8785,-4578]]]},{"type":"MultiPolygon","id":340,"properties":{"name":"Rütschelen"},"arcs":[[[-6091,-9137,8905,-8906,-8905,-3520]]]},{"type":"MultiPolygon","id":341,"properties":{"name":"Schwarzhäusern"},"arcs":[[[-7015,-9652,-4570,-7700,-8546,-9501]]]},{"type":"MultiPolygon","id":342,"properties":{"name":"Thunstetten"},"arcs":[[[-4603,7131,7132,-7044,7133,-7012]]]},{"type":"MultiPolygon","id":344,"properties":{"name":"Ursenbach"},"arcs":[[[7351,7352,-6092,-3518,7353]]]},{"type":"MultiPolygon","id":345,"properties":{"name":"Wynau"},"arcs":[[[-7016,9500,-8545,-4254,-4253,-8012,-8011]]]},{"type":"MultiPolygon","id":351,"properties":{"name":"Bern"},"arcs":[[[1381,1382,1383,1384,1
 385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396]]]},{"type":"MultiPolygon","id":352,"properties":{"name":"Bolligen"},"arcs":[[[4731,4732,4733,4734,-4098,-3188,4735,4736,4737]]]},{"type":"MultiPolygon","id":353,"properties":{"name":"Bremgarten bei Bern"},"arcs":[[[-6179,-9360,-1388]]]},{"type":"MultiPolygon","id":354,"properties":{"name":"Kirchlindach"},"arcs":[[[-2217,-2216,6174,-4034,6175,6176,6177,6178,-1387]]]},{"type":"MultiPolygon","id":355,"properties":{"name":"Köniz"},"arcs":[[[1442,1443,1444,1445,-1397,-1396,-1395,-1394,1446,1447,1448,1449,1450,1451,1452,1453,1454,-1455,1454,1455,1456,1457,1458,-1459,1458,1459,1460,1461,-1462,1461,1462]]]},{"type":"MultiPolygon","id":356,"properties":{"name":"Muri bei Bern"},"arcs":[[[-1447,-1393,8147,8148,8149,-3186,-3860,8150,-3491,8151]]]},{"type":"MultiPolygon","id":357,"properties":{"name":"Oberbalm"},"arcs":[[[-1665,-1463,-1462,1461,-1462,-1461,-1460,-1459,1458,-1459,-1458,-5621,-5620,5618,5940,-2457,-2456]]]},{"type":"Mult
 iPolygon","id":358,"properties":{"name":"Stettlen"},"arcs":[[[-8997,-4737,-4736,-3187,-8150]]]},{"type":"MultiPolygon","id":359,"properties":{"name":"Vechigen"},"arcs":[[[3184,3185,3186,3187,3188,3189,3190,3191,3192,3193,3194,3195]]]},{"type":"MultiPolygon","id":360,"properties":{"name":"Wohlen bei Bern"},"arcs":[[[2211,2212,2213,2214,2215,2216,-1386,2217]]]},{"type":"MultiPolygon","id":361,"properties":{"name":"Zollikofen"},"arcs":[[[-1389,9359,-6178,-7613,9360]]]},{"type":"MultiPolygon","id":362,"properties":{"name":"Ittigen"},"arcs":[[[-1391,-1390,-9361,-7620,-4732,-8996]]]},{"type":"MultiPolygon","id":363,"properties":{"name":"Ostermundigen"},"arcs":[[[-1392,8995,-4738,8996,-8149,-8148]]]},{"type":"MultiPolygon","id":371,"properties":{"name":"Biel/Bienne"},"arcs":[[[3774,3775,-2110,3776,3777,3778,3779,3780,3781,3782,3783,3784,3785,3786]]]},{"type":"MultiPolygon","id":372,"properties":{"name":"Evilard"},"arcs":[[[-6479,-7377,-3801,-3778]]]},{"type":"MultiPolygon","id":381,"proper
 ties":{"name":"Arch"},"arcs":[[[-2982,-6045,-6847,8814,-8759]]]},{"type":"MultiPolygon","id":382,"properties":{"name":"Büetigen"},"arcs":[[[-5199,10145,-9963,-9917,-8842]]]},{"type":"MultiPolygon","id":383,"properties":{"name":"Büren an der Aare"},"arcs":[[[5847,5848,5849,5850,5851,5852,-2973,5853,5854,5855,5856]]]},{"type":"MultiPolygon","id":385,"properties":{"name":"Diessbach bei Büren"},"arcs":[[[-5201,-5200,8841,8842,-5857,-8313,-8312,-8402,-5130]]]},{"type":"MultiPolygon","id":386,"properties":{"name":"Dotzigen"},"arcs":[[[9916,9917,9918,-5849,-5848,-8843]]]},{"type":"MultiPolygon","id":387,"properties":{"name":"Lengnau (BE)"},"arcs":[[[8250,-7762,8251,-2974,-5853]]]},{"type":"MultiPolygon","id":388,"properties":{"name":"Leuzigen"},"arcs":[[[6843,6844,6845,6846,-6044,-4087,6847]]]},{"type":"MultiPolygon","id":389,"properties":{"name":"Meienried"},"arcs":[[[-9962,-10551,-9186,-5850,-9919]]]},{"type":"MultiPolygon","id":390,"properties":{"name":"Meinisberg"},"arcs":[[[-9189,-
 7763,-8251,-5852]]]},{"type":"MultiPolygon","id":391,"properties":{"name":"Oberwil bei Büren"},"arcs":[[[-5855,8626,8627,8628,8629,8630,-8316,-8315,8314,-8315,-8314]]]},{"type":"MultiPolygon","id":392,"properties":{"name":"Pieterlen"},"arcs":[[[7758,-3783,7759,7760,7761,7762]]]},{"type":"MultiPolygon","id":393,"properties":{"name":"Rüti bei Büren"},"arcs":[[[-5854,-2983,8758,8759,8760,-8627]]]},{"type":"MultiPolygon","id":394,"properties":{"name":"Wengi"},"arcs":[[[8401,-8319,-8318,-6206,-3936,-3935,-5131]]]},{"type":"MultiPolygon","id":401,"properties":{"name":"Aefligen"},"arcs":[[[-10416,-8133,-6911,-6910,-4655]]]},{"type":"MultiPolygon","id":402,"properties":{"name":"Alchenstorf"},"arcs":[[[8725,8726,-8512,8727,8728,-4886,-2818]]]},{"type":"MultiPolygon","id":403,"properties":{"name":"Bäriswil"},"arcs":[[[-4100,-10103,-8614]]]},{"type":"MultiPolygon","id":404,"properties":{"name":"Burgdorf"},"arcs":[[[-3720,4987,4988,-4104,4989,4990,4991,4992,4993,4994,-2815,-3643,-3642]]]},{
 "type":"MultiPolygon","id":405,"properties":{"name":"Ersigen"},"arcs":[[[-7402,-4662,7653,7654]]]},{"type":"MultiPolygon","id":406,"properties":{"name":"Hasle bei Burgdorf"},"arcs":[[[3708,3709,3710,3711,3712,3713,3714,-3193,-3192,-3191,3715,3716,3717,3718,3719,-3641,3720,3721]]]},{"type":"MultiPolygon","id":407,"properties":{"name":"Heimiswil"},"arcs":[[[3640,3641,3642,-2814,-2813,-2812,3643,3644,3645,3646]],[[-2827,-6335]]]},{"type":"MultiPolygon","id":408,"properties":{"name":"Hellsau"},"arcs":[[[-8729,-10437,-9770,-4887]]]},{"type":"MultiPolygon","id":409,"properties":{"name":"Hindelbank"},"arcs":[[[-4102,-4101,8613,8614,8615,8616,8617,8618,8619]]]},{"type":"MultiPolygon","id":410,"properties":{"name":"Höchstetten"},"arcs":[[[-8511,-8510,8509,-8510,-8509,10435,-9771,10436,-8728]]]},{"type":"MultiPolygon","id":411,"properties":{"name":"Kernenried"},"arcs":[[[-8617,10248,-10141,-8126,-8956]]]},{"type":"MultiPolygon","id":412,"properties":{"name":"Kirchberg (BE)"},"arcs":[[[-4995,
 7399,7400,-4663,7401,7402,-2816]]]},{"type":"MultiPolygon","id":413,"properties":{"name":"Koppigen"},"arcs":[[[8504,-4659,8505,8506,8507,8508,8509,-8510,8509,8510,8511]]]},{"type":"MultiPolygon","id":414,"properties":{"name":"Krauchthal"},"arcs":[[[4094,4095,4096,-3189,4097,4098,4099,4100,4101,4102,4103]]]},{"type":"MultiPolygon","id":415,"properties":{"name":"Lyssach"},"arcs":[[[-4994,8953,8954,-8618,8955,-8125,8956,8957,-7400]]]},{"type":"MultiPolygon","id":416,"properties":{"name":"Mötschwil"},"arcs":[[[-4103,-8620,-8619,-8955,10342,10343,-4990]]]},{"type":"MultiPolygon","id":417,"properties":{"name":"Niederösch"},"arcs":[[[9744,9745,9746,-4660,-8505,-8727]]]},{"type":"MultiPolygon","id":418,"properties":{"name":"Oberburg"},"arcs":[[[-3719,-3718,6292,-4095,-4989,-4988]],[[-3190,-4097,-10474,-3716]],[[-10634,-4992]]]},{"type":"MultiPolygon","id":419,"properties":{"name":"Oberösch"},"arcs":[[[-7654,-4661,-9747,-10471]]]},{"type":"MultiPolygon","id":420,"properties":{"name":"Rüd
 tligen-Alchenflüh"},"arcs":[[[-8958,-8957,-8135,-8134,10415,-7401]]]},{"type":"MultiPolygon","id":421,"properties":{"name":"Rumendingen"},"arcs":[[[-7403,-7655,10470,-9746,-9745,-8726,-2817]]]},{"type":"MultiPolygon","id":422,"properties":{"name":"Rüti bei Lyssach"},"arcs":[[[-10344,-10343,-8954,-4993,10633,-4991]]]},{"type":"MultiPolygon","id":423,"properties":{"name":"Willadingen"},"arcs":[[[-8508,-10245,-9772,-10436]]]},{"type":"MultiPolygon","id":424,"properties":{"name":"Wynigen"},"arcs":[[[2811,2812,2813,2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828]]]},{"type":"MultiPolygon","id":431,"properties":{"name":"Corgémont"},"arcs":[[[-2936,4471,4472,-3197,4473,4474,-3803]]]},{"type":"MultiPolygon","id":432,"properties":{"name":"Cormoret"},"arcs":[[[-4791,5572,-3623,-2933]]]},{"type":"MultiPolygon","id":433,"properties":{"name":"Cortébert"},"arcs":[[[-2935,-3627,5215,-4472]]]},{"type":"MultiPolygon","id":434,"properties":{"name":"Courtelary"},"arcs":[
 [[3622,3623,3624,3625,3626,-2934]]]},{"type":"MultiPolygon","id":435,"properties":{"name":"La Ferrière"},"arcs":[[[5338,-1251,-3222,-3463]]]},{"type":"MultiPolygon","id":436,"properties":{"name":"La Heutte"},"arcs":[[[-3805,-5157,-5210,-7836,-4919,-4918]]]},{"type":"MultiPolygon","id":437,"properties":{"name":"Mont-Tramelan"},"arcs":[[[-5216,-3626,9890,-3198,-4473]],[[-5206,-3204,-5459]]]},{"type":"MultiPolygon","id":438,"properties":{"name":"Orvin"},"arcs":[[[-3779,3800,3801,-2937,3802,3803,3804,3805,3806]]]},{"type":"MultiPolygon","id":439,"properties":{"name":"Péry"},"arcs":[[[-3806,4917,4918,4919,4920,4921,4922,4923,4924,4925]]]},{"type":"MultiPolygon","id":440,"properties":{"name":"Plagne"},"arcs":[[[8222,-4925,8223]]]},{"type":"MultiPolygon","id":441,"properties":{"name":"Renan (BE)"},"arcs":[[[-494,-1252,-5339,-3462]]]},{"type":"MultiPolygon","id":442,"properties":{"name":"Romont (BE)"},"arcs":[[[-8252,-7761,8425,-8224,-4924,8426,-3265,-2975]]]},{"type":"MultiPolygon","id":
 443,"properties":{"name":"Saint-Imier"},"arcs":[[[-496,-3464,-3225,3869,3870,3871]]]},{"type":"MultiPolygon","id":444,"properties":{"name":"Sonceboz-Sombeval"},"arcs":[[[-3804,-4475,5155,5156]]]},{"type":"MultiPolygon","id":445,"properties":{"name":"Sonvilier"},"arcs":[[[-495,3461,3462,-3221,3463]]]},{"type":"MultiPolygon","id":446,"properties":{"name":"Tramelan"},"arcs":[[[3196,3197,3198,-2489,3199,3200,3201,3202,3203,3204]]]},{"type":"MultiPolygon","id":447,"properties":{"name":"Vauffelin"},"arcs":[[[-3782,-3781,-3780,-3807,-4926,-8223,-8426,-7760]]]},{"type":"MultiPolygon","id":448,"properties":{"name":"Villeret"},"arcs":[[[-497,-3872,4788,4789,4790,-2932]]]},{"type":"MultiPolygon","id":491,"properties":{"name":"Brüttelen"},"arcs":[[[8698,-3433,8699,8700,8701]]]},{"type":"MultiPolygon","id":492,"properties":{"name":"Erlach"},"arcs":[[[-3431,10163,-7909,-7908,-2073,10164,-2071,-9539]],[[-7911,-10261]]]},{"type":"MultiPolygon","id":493,"properties":{"name":"Finsterhennen"},"arcs":
 [[[-5097,-9687,-8701,-9327,-9271]]]},{"type":"MultiPolygon","id":494,"properties":{"name":"Gals"},"arcs":[[[-5809,7904,7905,-7707,-6808,7906,-2074,7907,7908,7909,7910,7911]]]},{"type":"MultiPolygon","id":495,"properties":{"name":"Gampelen"},"arcs":[[[5806,-877,5807,5808,5809,-3429]]]},{"type":"MultiPolygon","id":496,"properties":{"name":"Ins"},"arcs":[[[3426,3427,3428,3429,3430,3431,3432,3433,3434]]]},{"type":"MultiPolygon","id":497,"properties":{"name":"Lüscherz"},"arcs":[[[9326,-8700,9327,-2069,-2068,9328,-9272]]]},{"type":"MultiPolygon","id":498,"properties":{"name":"Müntschemier"},"arcs":[[[-8181,9598,-6251,-3435,-3434,-8699,9599,-6000]]]},{"type":"MultiPolygon","id":499,"properties":{"name":"Siselen"},"arcs":[[[-5098,9270,9271,9272,-8467,-7996]]]},{"type":"MultiPolygon","id":500,"properties":{"name":"Treiten"},"arcs":[[[-9600,-8702,9686,-5096,-6001]]]},{"type":"MultiPolygon","id":501,"properties":{"name":"Tschugg"},"arcs":[[[-5810,-7912,10260,-7910,-10164,-3430]]]},{"type":"M
 ultiPolygon","id":502,"properties":{"name":"Vinelz"},"arcs":[[[-3432,9538,-2070,-9328]]]},{"type":"MultiPolygon","id":532,"properties":{"name":"Bangerten"},"arcs":[[[-3941,10520,-9505,-10188]]]},{"type":"MultiPolygon","id":533,"properties":{"name":"Bätterkinden"},"arcs":[[[6909,6910,6911,6912,6913,6914,6915,6916,6917,6918,6919,6920,-6006,6921,6922,-4656]]]},{"type":"MultiPolygon","id":534,"properties":{"name":"Büren zum Hof"},"arcs":[[[-8131,10212,-10082,-9822,-9821,10213]]]},{"type":"MultiPolygon","id":535,"properties":{"name":"Deisswil bei Münchenbuchsee"},"arcs":[[[-7616,-3943,-10189,-7490,10525]]]},{"type":"MultiPolygon","id":536,"properties":{"name":"Diemerswil"},"arcs":[[[-4033,-7615,-7614,-6176]]]},{"type":"MultiPolygon","id":537,"properties":{"name":"Etzelkofen"},"arcs":[[[-9701,-9509,-9508,-9507,10400,-6214,-10080,-10213,-8130]]]},{"type":"MultiPolygon","id":538,"properties":{"name":"Fraubrunnen"},"arcs":[[[8124,8125,8126,8127,8128,8129,8130,8131,-6912,-6911,6910,8132,81
 33,8134]]]},{"type":"MultiPolygon","id":539,"properties":{"name":"Grafenried"},"arcs":[[[9699,-7496,-9510,9700,-8129,-8128]]]},{"type":"MultiPolygon","id":540,"properties":{"name":"Jegenstorf"},"arcs":[[[7489,7490,7491,7492,7493,7494,7495,7496,7497,7498,7499,7500,7501,7502,7503]]]},{"type":"MultiPolygon","id":541,"properties":{"name":"Iffwil"},"arcs":[[[9503,9504,9505,9506,9507,9508,9509,-7495,-7494]]]},{"type":"MultiPolygon","id":542,"properties":{"name":"Limpach"},"arcs":[[[9819,9820,9821,9822,9823,9824,-6914]]]},{"type":"MultiPolygon","id":543,"properties":{"name":"Mattstetten"},"arcs":[[[-8303,-7501,10101,-8615,10102,-4099,-4735]]]},{"type":"MultiPolygon","id":544,"properties":{"name":"Moosseedorf"},"arcs":[[[-7619,-7618,8813,-8301,-4733]]]},{"type":"MultiPolygon","id":545,"properties":{"name":"Mülchi"},"arcs":[[[10079,-6213,10080,-9823,10081]]]},{"type":"MultiPolygon","id":546,"properties":{"name":"Münchenbuchsee"},"arcs":[[[7612,-6177,7613,7614,-4032,-3932,-3931,7615,7616,76
 17,7618,7619]]]},{"type":"MultiPolygon","id":547,"properties":{"name":"Münchringen"},"arcs":[[[-7500,-7499,-10142,-10249,-8616,-10102]]]},{"type":"MultiPolygon","id":549,"properties":{"name":"Schalunen"},"arcs":[[[-8132,-10214,-9820,-6913]]]},{"type":"MultiPolygon","id":550,"properties":{"name":"Scheunen"},"arcs":[[[-3940,-3939,-6217,-6216,-6215,-10401,-9506,-10521]]]},{"type":"MultiPolygon","id":551,"properties":{"name":"Urtenen-Schönbühl"},"arcs":[[[8300,8301,-7502,8302,-4734]]]},{"type":"MultiPolygon","id":552,"properties":{"name":"Utzenstorf"},"arcs":[[[4654,4655,4656,4657,4658,4659,4660,4661,4662]]]},{"type":"MultiPolygon","id":553,"properties":{"name":"Wiggiswil"},"arcs":[[[-7617,-10526,-7504,-7503,-8302,-8814]]]},{"type":"MultiPolygon","id":554,"properties":{"name":"Wiler bei Utzenstorf"},"arcs":[[[-6923,10070,10071,-4657]]]},{"type":"MultiPolygon","id":555,"properties":{"name":"Zauggenried"},"arcs":[[[10140,10141,-7498,-7497,-9700,-8127]]]},{"type":"MultiPolygon","id":556
 ,"properties":{"name":"Zielebach"},"arcs":[[[-6922,10582,10583,10584,10585,-4658,-10072,-10071]]]},{"type":"MultiPolygon","id":557,"properties":{"name":"Zuzwil (BE)"},"arcs":[[[-3942,10187,-9504,-7493,-7492,-7491,10188]]]},{"type":"MultiPolygon","id":561,"properties":{"name":"Adelboden"},"arcs":[[[-427,770,771,-508,772,-437,773,774,775,776]]]},{"type":"MultiPolygon","id":562,"properties":{"name":"Aeschi bei Spiez"},"arcs":[[[-470,-469,-468,-467,2593,2594,2595,2596,2597,-297]]]},{"type":"MultiPolygon","id":563,"properties":{"name":"Frutigen"},"arcs":[[[-428,-777,-776,-775,-774,-436,-465,941,942,943,944,945]]]},{"type":"MultiPolygon","id":564,"properties":{"name":"Kandergrund"},"arcs":[[[-429,-946,-945,-944,-943,-942,-464]]]},{"type":"MultiPolygon","id":565,"properties":{"name":"Kandersteg"},"arcs":[[[420,421,422,423,424,425,426,427,428,429,-294]]]},{"type":"MultiPolygon","id":566,"properties":{"name":"Krattigen"},"arcs":[[[-4303,-4302,-1772,-6650,-2596]]]},{"type":"MultiPolygon","id"
 :567,"properties":{"name":"Reichenbach im Kandertal"},"arcs":[[[-430,463,464,-446,465,466,467,468,469,-296,-295]]]},{"type":"MultiPolygon","id":571,"properties":{"name":"Beatenberg"},"arcs":[[[-1777,-1244,-1243,2760,2761,-1436,2762]]]},{"type":"MultiPolygon","id":572,"properties":{"name":"Bönigen"},"arcs":[[[-4671,-4670,-4669,-4668,-4667,4946,4947,4948,4949,4950,-3009,-3488]]]},{"type":"MultiPolygon","id":573,"properties":{"name":"Brienz (BE)"},"arcs":[[[-262,1540,1541,1542,-620,1543,1544,1545,1546,1547,1548,1549,1550]]]},{"type":"MultiPolygon","id":574,"properties":{"name":"Brienzwiler"},"arcs":[[[-1551,-1550,-1907]],[[-1548,-7630,-7629,-1636,-1908]]]},{"type":"MultiPolygon","id":575,"properties":{"name":"Därligen"},"arcs":[[[-4156,-6652,-6651,-1779,-5281,8279,8280,-5538]]]},{"type":"MultiPolygon","id":576,"properties":{"name":"Grindelwald"},"arcs":[[[-242,256,257,258,259,260,261,262,263,-208]]]},{"type":"MultiPolygon","id":577,"properties":{"name":"Gsteigwiler"},"arcs":[[[-5543,
 8427,-4947,-4666,-4665]]]},{"type":"MultiPolygon","id":578,"properties":{"name":"Gündlischwand"},"arcs":[[[-302,-301,-300,4663,4664,4665,4666,4667,4668,4669,4670,-3487,-3486,-3485,-3484,4671,4672]]]},{"type":"MultiPolygon","id":579,"properties":{"name":"Habkern"},"arcs":[[[1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,-612,-611,1441]]]},{"type":"MultiPolygon","id":580,"properties":{"name":"Hofstetten bei Brienz"},"arcs":[[[-1547,-1546,7627,-799,-1637,7628,7629]]]},{"type":"MultiPolygon","id":581,"properties":{"name":"Interlaken"},"arcs":[[[-4951,9874,9875,-8280,-5280,-5279,-7398]]]},{"type":"MultiPolygon","id":582,"properties":{"name":"Iseltwald"},"arcs":[[[3482,3483,3484,3485,3486,3487,-3008,-1541,-261,-260]]]},{"type":"MultiPolygon","id":584,"properties":{"name":"Lauterbrunnen"},"arcs":[[[-241,292,293,294,295,296,297,298,299,300,301,302,-258,-257]]]},{"type":"MultiPolygon","id":585,"properties":{"name":"Leissigen"},"arcs":[[[-2597,6649,-1771,6650,6651,-4155]]]},{"type":"Multi
 Polygon","id":586,"properties":{"name":"Lütschental"},"arcs":[[[-303,-4673,-4672,-3483,-259]]]},{"type":"MultiPolygon","id":587,"properties":{"name":"Matten bei Interlaken"},"arcs":[[[-8281,-9876,-9875,-4950,-5541,-5540,-5539]],[[-5542,-4948,-8428]]]},{"type":"MultiPolygon","id":588,"properties":{"name":"Niederried bei Interlaken"},"arcs":[[[-3011,-7399,-1432,-3916]]]},{"type":"MultiPolygon","id":589,"properties":{"name":"Oberried am Brienzersee"},"arcs":[[[-3012,3915,-1442,610,-611,-610,-1543]]]},{"type":"MultiPolygon","id":590,"properties":{"name":"Ringgenberg (BE)"},"arcs":[[[7397,-5282,-1433,7398,-3010]]]},{"type":"MultiPolygon","id":591,"properties":{"name":"Saxeten"},"arcs":[[[-298,-2598,4154,4155,4156]]]},{"type":"MultiPolygon","id":592,"properties":{"name":"Schwanden bei Brienz"},"arcs":[[[-1545,-1544,-800,-7628]]]},{"type":"MultiPolygon","id":593,"properties":{"name":"Unterseen"},"arcs":[[[5278,5279,5280,-1778,-2763,-1435,-1434,5281]]]},{"type":"MultiPolygon","id":594,"pro
 perties":{"name":"Wilderswil"},"arcs":[[[-299,-4157,5537,5538,5539,5540,-4949,5541,5542,-4664]]]},{"type":"MultiPolygon","id":602,"properties":{"name":"Arni (BE)"},"arcs":[[[-6743,6756,6757,6758,-4607,6759,-3829]]]},{"type":"MultiPolygon","id":603,"properties":{"name":"Biglen"},"arcs":[[[10159,10160,-3862,-4609,-4608,-6759,-6758]]]},{"type":"MultiPolygon","id":604,"properties":{"name":"Bleiken bei Oberdiessbach"},"arcs":[[[-8665,10208,10209,-5702,-5050]]]},{"type":"MultiPolygon","id":605,"properties":{"name":"Bowil"},"arcs":[[[-2194,5219,5220,5221,5222,5223,-3662,-3661]]]},{"type":"MultiPolygon","id":606,"properties":{"name":"Brenzikofen"},"arcs":[[[-9349,-9348,-9347,-10216,-10410,-10209,-8664]]]},{"type":"MultiPolygon","id":607,"properties":{"name":"Freimettigen"},"arcs":[[[-5707,-5706,-10311,-5821,-9353,-5652]]]},{"type":"MultiPolygon","id":608,"properties":{"name":"Grosshöchstetten"},"arcs":[[[-9358,10189,-5818,10190,-10160,-6757,-6742]]]},{"type":"MultiPolygon","id":609,"proper
 ties":{"name":"Häutligen"},"arcs":[[[-5705,-6306,-6305,-10144,-5811,10310]]]},{"type":"MultiPolygon","id":610,"properties":{"name":"Herbligen"},"arcs":[[[-10210,10409,-10215,-6307,-5703]]]},{"type":"MultiPolygon","id":611,"properties":{"name":"Kiesen"},"arcs":[[[9714,9715,-6310,-6309,9716,-9345]]]},{"type":"MultiPolygon","id":612,"properties":{"name":"Konolfingen"},"arcs":[[[5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820]]]},{"type":"MultiPolygon","id":613,"properties":{"name":"Landiswil"},"arcs":[[[-6760,-4613,6864,-4614,-3830]]]},{"type":"MultiPolygon","id":614,"properties":{"name":"Linden"},"arcs":[[[-5053,5650,5651,5652,5653,-5220,-2193,-2192]]]},{"type":"MultiPolygon","id":615,"properties":{"name":"Mirchel"},"arcs":[[[-9354,-5819,-10190,-9357,-8988,-8987]]]},{"type":"MultiPolygon","id":616,"properties":{"name":"Münsingen"},"arcs":[[[-3494,6065,-3857,-3856,6066,-5816,-5815,-5814,6067,6068,6069]]]},{"type":"MultiPolygon","id":617,"properties":{"name":"Niederhünigen"},"
 arcs":[[[-5653,9352,-5820,9353,-8986]]]},{"type":"MultiPolygon","id":619,"properties":{"name":"Oberdiessbach"},"arcs":[[[-5052,-5051,5701,5702,5703,5704,5705,5706,-5651]]]},{"type":"MultiPolygon","id":620,"properties":{"name":"Oberthal"},"arcs":[[[-5224,6740,6741,6742,-3828,-3664,-3663]]]},{"type":"MultiPolygon","id":622,"properties":{"name":"Oppligen"},"arcs":[[[-9717,-6308,10214,10215,-9346]]]},{"type":"MultiPolygon","id":623,"properties":{"name":"Rubigen"},"arcs":[[[8518,-3858,-6066,-3493]]]},{"type":"MultiPolygon","id":624,"properties":{"name":"Schlosswil"},"arcs":[[[-5817,-6067,-3855,-10161,-10191]]]},{"type":"MultiPolygon","id":625,"properties":{"name":"Tägertschi"},"arcs":[[[-6304,-6303,-6068,-5813,-5812,10143]]]},{"type":"MultiPolygon","id":626,"properties":{"name":"Walkringen"},"arcs":[[[4606,4607,4608,-3861,-3196,-3195,-3194,-3715,-3714,4609,4610,-4611,4610,4611,4612]]]},{"type":"MultiPolygon","id":627,"properties":{"name":"Worb"},"arcs":[[[3854,3855,3856,3857,3858,3859,-
 3185,3860,3861]]]},{"type":"MultiPolygon","id":628,"properties":{"name":"Zäziwil"},"arcs":[[[-5223,-8989,8987,9356,9357,-6741]]]},{"type":"MultiPolygon","id":629,"properties":{"name":"Oberhünigen"},"arcs":[[[-5654,8985,8986,8987,-8988,8988,-5222,-5221]]]},{"type":"MultiPolygon","id":630,"properties":{"name":"Allmendingen"},"arcs":[[[-8151,-3859,-8519,-3492]]]},{"type":"MultiPolygon","id":632,"properties":{"name":"Wichtrach"},"arcs":[[[6299,6300,6301,-6069,6302,6303,6304,6305,-5704,6306,6307,6308,6309]]]},{"type":"MultiPolygon","id":661,"properties":{"name":"Clavaleyres"},"arcs":[[[-10101,-10219,-10218,-9675]]]},{"type":"MultiPolygon","id":662,"properties":{"name":"Ferenbalm"},"arcs":[[[8014,8015,8016,8017,8018,8019,8020,8021,8022,8023,-2962]],[[-9692,-10629,-9970]]]},{"type":"MultiPolygon","id":663,"properties":{"name":"Frauenkappelen"},"arcs":[[[-2966,-2218,-1385,-1384]]]},{"type":"MultiPolygon","id":664,"properties":{"name":"Golaten"},"arcs":[[[-9957,-6004,-5092,-5217,-2964]]]},
 {"type":"MultiPolygon","id":665,"properties":{"name":"Gurbrü"},"arcs":[[[-8023,-8183,-8182,-5998,-5997,-9956,-9955]]]},{"type":"MultiPolygon","id":666,"properties":{"name":"Kriechenwil"},"arcs":[[[9688,-4869,-4868,4867,-4868,-4867,-4866,9689,-8017,9690,9691,9692,9693,-5303]]]},{"type":"MultiPolygon","id":667,"properties":{"name":"Laupen"},"arcs":[[[-5304,-9694,-9693,9969,9970,-8015,-2961,-3734]]]},{"type":"MultiPolygon","id":668,"properties":{"name":"Mühleberg"},"arcs":[[[2959,2960,2961,2962,2963,2964,-2212,2965,-1383]]]},{"type":"MultiPolygon","id":669,"properties":{"name":"Münchenwiler"},"arcs":[[[-10274,-10222,-10221,-5380,-10085,-9947]]]},{"type":"MultiPolygon","id":670,"properties":{"name":"Neuenegg"},"arcs":[[[3730,3731,3732,3733,-2960,-1382,-1446,-1445]]]},{"type":"MultiPolygon","id":671,"properties":{"name":"Wileroltigen"},"arcs":[[[-8024,9954,9955,-6005,9956,-2963]]]},{"type":"MultiPolygon","id":681,"properties":{"name":"Belprahon"},"arcs":[[[-4058,-7382,-7844,-8718]]]},
 {"type":"MultiPolygon","id":682,"properties":{"name":"Bévilard"},"arcs":[[[-4922,-6853,-8308,-8530,-8529,-8528]]]},{"type":"MultiPolygon","id":683,"properties":{"name":"Champoz"},"arcs":[[[8306,8307,-6852,-6670,-7708,-4052,-3267]]]},{"type":"MultiPolygon","id":684,"properties":{"name":"Châtelat"},"arcs":[[[-5463,-5944,9949,9950,-9167]]]},{"type":"MultiPolygon","id":687,"properties":{"name":"Corcelles (BE)"},"arcs":[[[-6350,-7204,-7203,-2564,-2563,2562,-2563,-2562,-2561,2560,-2561,-2560,-7743]]]},{"type":"MultiPolygon","id":690,"properties":{"name":"Court"},"arcs":[[[3264,3265,3266,3267,3268,3269,3270,-2976]]]},{"type":"MultiPolygon","id":691,"properties":{"name":"Crémines"},"arcs":[[[7199,7200,7201,-2570,-2569,-2568,-2567,-2566,2565,-2566,-2565,7202,7203,-6349]]]},{"type":"MultiPolygon","id":692,"properties":{"name":"Eschert"},"arcs":[[[-3269,-4059,8717,-7843,-7842,-7841,-6347]]]},{"type":"MultiPolygon","id":694,"properties":{"name":"Grandval"},"arcs":[[[7840,7841,7842,7843,-7381
 ,-7744,-7201,-7200,-6348]]]},{"type":"MultiPolygon","id":696,"properties":{"name":"Loveresse"},"arcs":[[[-7840,-7839,-7838,9712,-6666,9713,-6850]]]},{"type":"MultiPolygon","id":697,"properties":{"name":"Malleray"},"arcs":[[[-4921,6848,6849,6850,-6664,6851,6852]]]},{"type":"MultiPolygon","id":699,"properties":{"name":"Monible"},"arcs":[[[-9168,-9951,-10163,-950]]]},{"type":"MultiPolygon","id":700,"properties":{"name":"Moutier"},"arcs":[[[4051,4052,4053,-960,4054,4055,4056,4057,4058,-3268]]]},{"type":"MultiPolygon","id":701,"properties":{"name":"Perrefitte"},"arcs":[[[7707,-6669,-947,-4054,-4053]]]},{"type":"MultiPolygon","id":702,"properties":{"name":"Pontenet"},"arcs":[[[-6851,-9714,-6665]]]},{"type":"MultiPolygon","id":703,"properties":{"name":"Reconvilier"},"arcs":[[[7835,-5209,-5208,-5466,7836,7837,7838,7839,-6849,-4920]]]},{"type":"MultiPolygon","id":704,"properties":{"name":"Roches (BE)"},"arcs":[[[-4057,7377,7378,-6500,7379,7380,7381]]]},{"type":"MultiPolygon","id":706,"proper
 ties":{"name":"Saicourt"},"arcs":[[[-5207,5458,-3203,5459,5460,5461,5462,5463,5464,5465]]]},{"type":"MultiPolygon","id":707,"properties":{"name":"Saules (BE)"},"arcs":[[[-5465,-9166,-6667,-9713,7837,-7838,-7837]]]},{"type":"MultiPolygon","id":708,"properties":{"name":"Schelten"},"arcs":[[[-2577,-7113,-3576,-5756]]]},{"type":"MultiPolygon","id":709,"properties":{"name":"Seehof"},"arcs":[[[-4787,-6351,7742,-2559,-2558,-5755]]]},{"type":"MultiPolygon","id":710,"properties":{"name":"Sornetan"},"arcs":[[[-6668,9165,-5464,9166,9167,-949]]]},{"type":"MultiPolygon","id":711,"properties":{"name":"Sorvilier"},"arcs":[[[-8427,-4923,8527,8528,8529,-8307,-3266]]]},{"type":"MultiPolygon","id":712,"properties":{"name":"Souboz"},"arcs":[[[6663,6664,6665,6666,6667,-948,6668,6669]]]},{"type":"MultiPolygon","id":713,"properties":{"name":"Tavannes"},"arcs":[[[-5156,-4474,-3205,5205,5206,5207,5208,5209]]]},{"type":"MultiPolygon","id":715,"properties":{"name":"Rebévelier"},"arcs":[[[10162,-9950,-5943,-7
 998,-951]]]},{"type":"MultiPolygon","id":721,"properties":{"name":"Diesse"},"arcs":[[[-2939,7197,7198]]]},{"type":"MultiPolygon","id":722,"properties":{"name":"Lamboing"},"arcs":[[[-6478,7375,-7198,-2938,-3802,7376]]]},{"type":"MultiPolygon","id":723,"properties":{"name":"La Neuveville"},"arcs":[[[-6813,-6812,6811,-6812,-6811,-5889,-8456,8607,-2088,-2087,-2086,-2085,-2084,-2083,2082,-2083,-2082,2080,-2081,-2080,2078,-2079,-2078,-2077,-2076]]]},{"type":"MultiPolygon","id":724,"properties":{"name":"Nods"},"arcs":[[[2930,-498,2931,2932,2933,2934,2935,2936,2937,2938,2939]]]},{"type":"MultiPolygon","id":725,"properties":{"name":"Prêles"},"arcs":[[[-5888,-2940,-7199,-7376,-6477,8454,8455]]]},{"type":"MultiPolygon","id":731,"properties":{"name":"Aegerten"},"arcs":[[[-9767,-10467,-9529,-9959,-10415]]]},{"type":"MultiPolygon","id":732,"properties":{"name":"Bellmund"},"arcs":[[[10089,10090,10091,10092,-10093,10092,10093,10094,-10095,10094,10095,10096,10097,-9765]]]},{"type":"MultiPolygon","i
 d":733,"properties":{"name":"Brügg"},"arcs":[[[9525,-3787,9526,9527,9528]]]},{"type":"MultiPolygon","id":734,"properties":{"name":"Bühl"},"arcs":[[[-8473,-8472,-10212,-10205,-10204,-6571]]]},{"type":"MultiPolygon","id":735,"properties":{"name":"Epsach"},"arcs":[[[-8471,-8470,-9849,10210,-10206,10211]]]},{"type":"MultiPolygon","id":736,"properties":{"name":"Hagneck"},"arcs":[[[-9273,-9329,-2120,-9847,-8468]]]},{"type":"MultiPolygon","id":737,"properties":{"name":"Hermrigen"},"arcs":[[[10203,10204,10205,10206,-10157,-10091,10207,-6572]]]},{"type":"MultiPolygon","id":738,"properties":{"name":"Jens"},"arcs":[[[-6574,9762,9763,9764,9765,9766,9767,9768]]]},{"type":"MultiPolygon","id":739,"properties":{"name":"Ipsach"},"arcs":[[[-10097,-10156,-2112,10570,-10465]]]},{"type":"MultiPolygon","id":740,"properties":{"name":"Ligerz"},"arcs":[[[2087,-8608,-8455,-6476,-2090,-2089,2087,-2088]]]},{"type":"MultiPolygon","id":741,"properties":{"name":"Merzligen"},"arcs":[[[-6573,-10208,-10090,-9764,-
 9763]]]},{"type":"MultiPolygon","id":742,"properties":{"name":"Mörigen"},"arcs":[[[-2118,-10159,-10158,-10207,-10211,-9848]]]},{"type":"MultiPolygon","id":743,"properties":{"name":"Nidau"},"arcs":[[[-10571,-2111,-3776,-10466]]]},{"type":"MultiPolygon","id":744,"properties":{"name":"Orpund"},"arcs":[[[-9527,-3786,-3785,-9188,10007,-9960]]]},{"type":"MultiPolygon","id":745,"properties":{"name":"Port"},"arcs":[[[-10098,10464,10465,-3775,-9526,10466,-9766]]]},{"type":"MultiPolygon","id":746,"properties":{"name":"Safnern"},"arcs":[[[9185,9186,9187,-3784,-7759,9188,-5851]]]},{"type":"MultiPolygon","id":747,"properties":{"name":"Scheuren"},"arcs":[[[-9961,-10008,-9187,10550]]]},{"type":"MultiPolygon","id":748,"properties":{"name":"Schwadernau"},"arcs":[[[9957,9958,-9528,9959,9960,9961,-9918,9962]]]},{"type":"MultiPolygon","id":749,"properties":{"name":"Studen (BE)"},"arcs":[[[-10411,-9768,10414,-9958,-10146,-5198]]]},{"type":"MultiPolygon","id":750,"properties":{"name":"Sutz-Lattrigen"},"
 arcs":[[[-2117,-2116,2114,-2115,-2114,-2113,10155,-10096,-10095,10094,-10095,-10094,-10093,10092,-10093,-10092,10156,10157,10158]]]},{"type":"MultiPolygon","id":751,"properties":{"name":"Täuffelen"},"arcs":[[[9846,-2119,9847,9848,-8469]]]},{"type":"MultiPolygon","id":754,"properties":{"name":"Walperswil"},"arcs":[[[8466,8467,8468,8469,8470,8471,8472,-6570,-7997]]]},{"type":"MultiPolygon","id":755,"properties":{"name":"Worben"},"arcs":[[[-6575,-9769,10410,-5197]]]},{"type":"MultiPolygon","id":756,"properties":{"name":"Twann-Tüscherz"},"arcs":[[[-2109,-2108,2107,-2108,-2107,-2106,-2105,-2104,-2103,2101,-2102,-2101,-2100,-2099,-2098,2097,-2098,-2097,-2096,-2095,-2094,2093,-2094,-2093,-2092,2091,-2092,-2091,6475,6476,6477,6478,-3777]],[[-10165,-2072]]]},{"type":"MultiPolygon","id":761,"properties":{"name":"Därstetten"},"arcs":[[[-442,-1650,-1204,2409,2410,2411,2412,-2198]]]},{"type":"MultiPolygon","id":762,"properties":{"name":"Diemtigen"},"arcs":[[[435,436,437,438,439,440,441,442,44
 3,444,445]]]},{"type":"MultiPolygon","id":763,"properties":{"name":"Erlenbach im Simmental"},"arcs":[[[-444,-443,2197,2198,2199,2200,2201]]]},{"type":"MultiPolygon","id":764,"properties":{"name":"Niederstocken"},"arcs":[[[-2200,9302,9303,-6453]]]},{"type":"MultiPolygon","id":765,"properties":{"name":"Oberstocken"},"arcs":[[[-2413,-7023,-9735,-9303,-2199]]]},{"type":"MultiPolygon","id":766,"properties":{"name":"Oberwil im Simmental"},"arcs":[[[-441,-910,-1165,-1293,-1197,1649]]]},{"type":"MultiPolygon","id":767,"properties":{"name":"Reutigen"},"arcs":[[[-3600,-2201,6452,6453,6454,-4300]]]},{"type":"MultiPolygon","id":768,"properties":{"name":"Spiez"},"arcs":[[[-3601,4299,4300,-3660,-1773,4301,4302,-2595]]]},{"type":"MultiPolygon","id":769,"properties":{"name":"Wimmis"},"arcs":[[[-466,-445,-2202,3599,3600,-2594]]]},{"type":"MultiPolygon","id":781,"properties":{"name":"Gadmen"},"arcs":[[[-307,-210,-532,-531,-530,-529,528,-529,-528,-527,-526,540,541,542,-543,543]]]},{"type":"MultiPolygo
 n","id":782,"properties":{"name":"Guttannen"},"arcs":[[[205,206,207,208,209,210]]]},{"type":"MultiPolygon","id":783,"properties":{"name":"Hasliberg"},"arcs":[[[1805,-1639,-1638,-714,-522]]]},{"type":"MultiPolygon","id":784,"properties":{"name":"Innertkirchen"},"arcs":[[[-209,-264,519,520,521,522,523,524,525,526,527,528,-529,528,529,530,531]]]},{"type":"MultiPolygon","id":785,"properties":{"name":"Meiringen"},"arcs":[[[-263,1906,-1549,1907,-1635,-1806,-521,1908,1909,-1910,1909,1910]]]},{"type":"MultiPolygon","id":786,"properties":{"name":"Schattenhalb"},"arcs":[[[-1911,-1910,1909,-1910,-1909,-520]]]},{"type":"MultiPolygon","id":791,"properties":{"name":"Boltigen"},"arcs":[[[906,-516,907,908,909,-440]]]},{"type":"MultiPolygon","id":792,"properties":{"name":"Lenk"},"arcs":[[[499,500,501,502,503,504,505,506,507]]]},{"type":"MultiPolygon","id":793,"properties":{"name":"St. Stephan"},"arcs":[[[-773,-507,-519,-941,-438]]]},{"type":"MultiPolygon","id":794,"properties":{"name":"Zweisimmen"},
 "arcs":[[[940,-518,-517,-907,-439]]]},{"type":"MultiPolygon","id":841,"properties":{"name":"Gsteig"},"arcs":[[[1043,-962,1044,-545,-510]]]},{"type":"MultiPolygon","id":842,"properties":{"name":"Lauenen"},"arcs":[[[-505,1176,-963,-1044,-509]]]},{"type":"MultiPolygon","id":843,"properties":{"name":"Saanen"},"arcs":[[[-506,508,509,510,511,512,513,514,515,516,517,518]]]},{"type":"MultiPolygon","id":852,"properties":{"name":"Guggisberg"},"arcs":[[[1292,-1164,1293,1294,1295,1296,1297,1298,-1199,-1198]]]},{"type":"MultiPolygon","id":853,"properties":{"name":"Rüschegg"},"arcs":[[[1196,1197,1198,1199,1200,1201,1202,1203]]]},{"type":"MultiPolygon","id":855,"properties":{"name":"Schwarzenburg"},"arcs":[[[-1299,-1298,-1297,-1296,1660,1661,1662,1663,-1443,1664,1665,-1200]]]},{"type":"MultiPolygon","id":861,"properties":{"name":"Belp"},"arcs":[[[3489,3490,3491,3492,3493,3494,3495,3496,3497,3498,3499,3500,3501]]]},{"type":"MultiPolygon","id":863,"properties":{"name":"Burgistein"},"arcs":[[[-2748,
 8199,8200,8201,8202,8203,8204,8205,-5235,-5234,-5233]]]},{"type":"MultiPolygon","id":865,"properties":{"name":"Gelterfingen"},"arcs":[[[10177,10178,-9592,-3499,-3498,-3497,-8032,10179,10180,-9725]]]},{"type":"MultiPolygon","id":866,"properties":{"name":"Gerzensee"},"arcs":[[[8031,-3496,-3495,-6070,-6302,8032,8033,8034]]]},{"type":"MultiPolygon","id":867,"properties":{"name":"Gurzelen"},"arcs":[[[9790,9791,-5236,-8206,9792,9793,-6928]]]},{"type":"MultiPolygon","id":868,"properties":{"name":"Jaberg"},"arcs":[[[-10310,-8935,-6300,-9716]]]},{"type":"MultiPolygon","id":869,"properties":{"name":"Kaufdorf"},"arcs":[[[-2462,-9593,-10179,-10178,-9724,-9723,-9722]]]},{"type":"MultiPolygon","id":870,"properties":{"name":"Kehrsatz"},"arcs":[[[-1449,-1448,-8152,-3490,-5615]]]},{"type":"MultiPolygon","id":871,"properties":{"name":"Kienersrüti"},"arcs":[[[-6931,-10418,-8929,-10309]]]},{"type":"MultiPolygon","id":872,"properties":{"name":"Kirchdorf (BE)"},"arcs":[[[8928,8929,-8202,8930,8931,8932,8
 933,-8033,-6301,8934,8935,8936]]]},{"type":"MultiPolygon","id":873,"properties":{"name":"Kirchenthurnen"},"arcs":[[[-9726,-10181,-10505,-10348,-2745]]]},{"type":"MultiPolygon","id":874,"properties":{"name":"Lohnstorf"},"arcs":[[[-2747,-10351,-10350,-8931,-8201,-8200]]]},{"type":"MultiPolygon","id":875,"properties":{"name":"Mühledorf (BE)"},"arcs":[[[-10180,-8035,-8034,-8934,-8933,-10349,10504]]]},{"type":"MultiPolygon","id":876,"properties":{"name":"Mühlethurnen"},"arcs":[[[10347,10348,-8932,10349,10350,-2746]]]},{"type":"MultiPolygon","id":877,"properties":{"name":"Niedermuhlern"},"arcs":[[[-5941,-5619,-5618,-5617,8289,-2460,-2459,-2458]]]},{"type":"MultiPolygon","id":878,"properties":{"name":"Noflen"},"arcs":[[[-10035,-8204,-8203,-8930,10417,-6930]]]},{"type":"MultiPolygon","id":879,"properties":{"name":"Riggisberg"},"arcs":[[[-1202,-2466,-2465,2742,2743,2744,2745,2746,2747,2748,2749,2750,2751,-2752,2751,2752]]]},{"type":"MultiPolygon","id":880,"properties":{"name":"Rüeggisberg
 "},"arcs":[[[-1666,2455,2456,2457,2458,2459,2460,2461,2462,2463,2464,2465,-1201]],[[-1203,-2753,-2752,2751,-2752,-2751,-5004,-2410]]]},{"type":"MultiPolygon","id":881,"properties":{"name":"Rümligen"},"arcs":[[[-2464,-2463,9721,9722,9723,9724,9725,-2744,-2743]]]},{"type":"MultiPolygon","id":883,"properties":{"name":"Seftigen"},"arcs":[[[-9794,-9793,-8205,10034,-6929]]]},{"type":"MultiPolygon","id":884,"properties":{"name":"Toffen"},"arcs":[[[-8290,-5616,-3500,9591,9592,-2461]]]},{"type":"MultiPolygon","id":885,"properties":{"name":"Uttigen"},"arcs":[[[-6932,10308,-8937,-8936,10309,-9715,-9344]]]},{"type":"MultiPolygon","id":886,"properties":{"name":"Wattenwil"},"arcs":[[[-2749,5232,5233,5234,5235,5236,-5005]]]},{"type":"MultiPolygon","id":888,"properties":{"name":"Wald (BE)"},"arcs":[[[-1457,-1456,-1455,1454,-1455,-1454,-1453,-1452,-1451,-1450,5614,-3502,-3501,5615,5616,5617,5618,-5619,5619,5620]]]},{"type":"MultiPolygon","id":901,"properties":{"name":"Eggiwil"},"arcs":[[[1118,1119,
 1120,-1121,1120,1121,1122,1123,1124,1125,1126,-1127,1126,1127,1128,1129,1130,-1047,-626]]]},{"type":"MultiPolygon","id":902,"properties":{"name":"Langnau im Emmental"},"arcs":[[[1577,1578,1579,1580,1581,-1146,-1055,-1054,-1053,-1052,1051,1582,1583,-1128,-1127,1126,-1127,-1126,-1125]]]},{"type":"MultiPolygon","id":903,"properties":{"name":"Lauperswil"},"arcs":[[[-3665,3827,3828,3829,3830,3831,3832,3833,3834,3835,-1580]]]},{"type":"MultiPolygon","id":904,"properties":{"name":"Röthenbach im Emmental"},"arcs":[[[2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,-1123,-1122,-1121,1120,-1121,-1120,2196]]]},{"type":"MultiPolygon","id":905,"properties":{"name":"Rüderswil"},"arcs":[[[-3832,-3831,4613,4614,4615,-4616,4615,4616,-3709,-3843,-3842,-3841,3840,-3841,-3840,-3839,-3838,4617]]]},{"type":"MultiPolygon","id":906,"properties":{"name":"Schangnau"},"arcs":[[[-1441,-1440,-1439,-1438,2202,-2197,-1119,-625,-614,-613]]]},{"type":"MultiPolygon","id":907,"properties":{"name":"Signau"},"a
 rcs":[[[-2196,-2195,3660,3661,3662,3663,3664,-1579,-1578,-1124]]]},{"type":"MultiPolygon","id":908,"properties":{"name":"Trub"},"arcs":[[[1046,1047,1048,1049,-1050,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,-628,-627]]]},{"type":"MultiPolygon","id":909,"properties":{"name":"Trubschachen"},"arcs":[[[-1131,-1130,-1129,-1584,-1583,-1052,-1051,-1050,1049,-1050,-1049,-1048]]]},{"type":"MultiPolygon","id":921,"properties":{"name":"Amsoldingen"},"arcs":[[[9702,9703,-8196,-3650,9704]]]},{"type":"MultiPolygon","id":922,"properties":{"name":"Blumenstein"},"arcs":[[[-2411,5003,-2750,5004,5005,5006,5007]]]},{"type":"MultiPolygon","id":923,"properties":{"name":"Buchholterberg"},"arcs":[[[5043,5044,5045,5046,5047,5048,5049,5050,5051,5052,-2191]]]},{"type":"MultiPolygon","id":924,"properties":{"name":"Eriz"},"arcs":[[[-1437,-2762,3737,3738,3739,-3740,3740,3741,-2186,-2203]]]},{"type":"MultiPolygon","id":925,"properties":{"name":"Fahrni"},"arcs":[[[8662,8663,8664,-5049,-8595,8665,-5611,-5610
 ]]]},{"type":"MultiPolygon","id":927,"properties":{"name":"Heiligenschwendi"},"arcs":[[[-3658,-8758,9217,-1238,9218,9219,9220,9221]]]},{"type":"MultiPolygon","id":928,"properties":{"name":"Heimberg"},"arcs":[[[-6933,9343,9344,9345,9346,9347,9348,-8663,-5609,-3653]]]},{"type":"MultiPolygon","id":929,"properties":{"name":"Hilterfingen"},"arcs":[[[-3659,-9222,-9221,-9220,-10301,-1775]]]},{"type":"MultiPolygon","id":930,"properties":{"name":"Höfen"},"arcs":[[[-6454,-9304,9734,-7022,9735,-9703,9736]]]},{"type":"MultiPolygon","id":931,"properties":{"name":"Homberg"},"arcs":[[[-3657,8754,-5612,-8666,-8594,8755,8756,8757]]]},{"type":"MultiPolygon","id":932,"properties":{"name":"Horrenbach-Buchen"},"arcs":[[[-1242,-1241,1239,4457,-3740,-3739,-3738,-2761]],[[-9788,-9787,-8756,-8593,-7357]]]},{"type":"MultiPolygon","id":934,"properties":{"name":"Oberhofen am Thunersee"},"arcs":[[[10300,-9219,-1237,-1776]]]},{"type":"MultiPolygon","id":935,"properties":{"name":"Oberlangenegg"},"arcs":[[[-3742,
 7356,7357,7358,7359,-2188,-2187]]]},{"type":"MultiPolygon","id":936,"properties":{"name":"Pohlern"},"arcs":[[[-2412,-5008,7020,7021,7022]]]},{"type":"MultiPolygon","id":937,"properties":{"name":"Schwendibach"},"arcs":[[[-3656,3654,-5614,-5613,-8755]]]},{"type":"MultiPolygon","id":938,"properties":{"name":"Sigriswil"},"arcs":[[[1235,1236,1237,1238,1239,-1240,1240,1241,1242,1243]]]},{"type":"MultiPolygon","id":939,"properties":{"name":"Steffisburg"},"arcs":[[[5608,5609,5610,5611,5612,5613,-3655,-3654]]]},{"type":"MultiPolygon","id":940,"properties":{"name":"Teuffenthal (BE)"},"arcs":[[[-1240,-1239,-9218,-8757,9786,9787,-3741,3739,-3740,3739,-4458]]]},{"type":"MultiPolygon","id":941,"properties":{"name":"Thierachern"},"arcs":[[[8195,8196,8197,8198,6925,-6926,-6925,-6924,-3651]]]},{"type":"MultiPolygon","id":942,"properties":{"name":"Thun"},"arcs":[[[3647,3648,3649,3650,3651,3652,3653,3654,-3655,3655,3656,3657,3658,-1774,3659]]]},{"type":"MultiPolygon","id":943,"properties":{"name":"Ueb
 eschi"},"arcs":[[[-9736,-7021,-5007,-9802,-8198,-8197,-9704]]]},{"type":"MultiPolygon","id":944,"properties":{"name":"Uetendorf"},"arcs":[[[6923,6924,6925,6926,6927,6928,6929,6930,6931,6932,-3652]]]},{"type":"MultiPolygon","id":945,"properties":{"name":"Unterlangenegg"},"arcs":[[[-7358,8592,8593,8594,-5048,-5047,8595]]]},{"type":"MultiPolygon","id":946,"properties":{"name":"Wachseldorn"},"arcs":[[[-7360,-7359,-8596,-5046,-5045,-5044,-2190,-2189]]]},{"type":"MultiPolygon","id":947,"properties":{"name":"Zwieselberg"},"arcs":[[[-6455,-9737,-9705,-3649,-3648,-4301]]]},{"type":"MultiPolygon","id":948,"properties":{"name":"Forst-Längenbühl"},"arcs":[[[-5006,-5237,-9792,-9791,-6927,-6926,-8199,9801]]]},{"type":"MultiPolygon","id":951,"properties":{"name":"Affoltern im Emmental"},"arcs":[[[-5144,-3644,-2829,-2828,6334,-2826,6335,-5341,1151,-5340,1153,-1154,-1153,-1152,-1151]]]},{"type":"MultiPolygon","id":952,"properties":{"name":"Dürrenroth"},"arcs":[[[-1155,-1154,5339,-1152,5340,5341,5
 342,5343,-4577,-4576,5344,5345,-5346,5345,5346]]]},{"type":"MultiPolygon","id":953,"properties":{"name":"Eriswil"},"arcs":[[[-1157,-6289,-4585,-4584,4583,-4584,-4583,-6020,-6019,-2045]]]},{"type":"MultiPolygon","id":954,"properties":{"name":"Huttwil"},"arcs":[[[4571,4572,4573,4574,4575,4576,4577,4578,4579,4580,4581,4582,4583,-4584,4583,4584]]]},{"type":"MultiPolygon","id":955,"properties":{"name":"Lützelflüh"},"arcs":[[[3836,3837,3838,3839,3840,-3841,3840,3841,3842,-3722,3843,3844,3845,3846,-1149]],[[-6865,-4612,-4611,4610,-4611,-4610,-3713,-3712,-3711,-3710,-4617,-4616,4615,-4616,-4615]],[[-3718,-3717,10473,-4096,-6293,3717]]]},{"type":"MultiPolygon","id":956,"properties":{"name":"Rüegsau"},"arcs":[[[-3847,-3846,-3845,-3844,-3721,-3647,-3646,-3645,5143,-1150]]]},{"type":"MultiPolygon","id":957,"properties":{"name":"Sumiswald"},"arcs":[[[1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,-1056]]]},{"type":"MultiPolygon","id":958,"properties":{"name":"Trachselwald"},
 "arcs":[[[-3836,-3835,-3834,-3833,-4618,-3837,-1148,-1147,-1582,-1581]]]},{"type":"MultiPolygon","id":959,"properties":{"name":"Walterswil (BE)"},"arcs":[[[-6336,-2825,7982,-7352,7983,-5342]]]},{"type":"MultiPolygon","id":960,"properties":{"name":"Wyssachen"},"arcs":[[[-1156,-5347,-5346,5345,-5346,-5345,-4575,-4574,-4573,-4572,6288]]]},{"type":"MultiPolygon","id":971,"properties":{"name":"Attiswil"},"arcs":[[[8139,8140,8141,8142,8143,8144,8145,8146]]]},{"type":"MultiPolygon","id":972,"properties":{"name":"Berken"},"arcs":[[[-10290,-10289,-9050,-9049,-10307,-10625,-9650]]]},{"type":"MultiPolygon","id":973,"properties":{"name":"Bettenhausen"},"arcs":[[[10012,10013,-10014,10013,10014,10015,-7046,-9782,-9781,-6086]]]},{"type":"MultiPolygon","id":975,"properties":{"name":"Farnern"},"arcs":[[[-8145,-9432,-4782,-9486,-9485,-9484,-9483]]]},{"type":"MultiPolygon","id":976,"properties":{"name":"Graben"},"arcs":[[[-7134,-7043,-9051,9049,10288,10289,-9649,-7013]]]},{"type":"MultiPolygon","id":9
 77,"properties":{"name":"Heimenhausen"},"arcs":[[[9042,9043,9044,9045,9046,9047,9048,9049,-9050,9050,-7042]]]},{"type":"MultiPolygon","id":978,"properties":{"name":"Hermiswil"},"arcs":[[[-4893,-4892,-10612,-10015,-10014,10013,-10014,-10013,-6085]]]},{"type":"MultiPolygon","id":979,"properties":{"name":"Herzogenbuchsee"},"arcs":[[[-4890,7039,7040,7041,7042,7043,7044,7045,7046]]]},{"type":"MultiPolygon","id":980,"properties":{"name":"Inkwil"},"arcs":[[[10223,-8884,10224,-9046,-9045,10225]]]},{"type":"MultiPolygon","id":981,"properties":{"name":"Niederbipp"},"arcs":[[[4562,4563,4564,4565,4566,4567,4568,4569]]]},{"type":"MultiPolygon","id":982,"properties":{"name":"Niederönz"},"arcs":[[[-10079,10401,-10226,-9044,-9043,-7041]]]},{"type":"MultiPolygon","id":983,"properties":{"name":"Oberbipp"},"arcs":[[[7733,7734,7735,7736,7737,7738,7739,-4564]]]},{"type":"MultiPolygon","id":985,"properties":{"name":"Ochlenberg"},"arcs":[[[-2821,-4894,6084,6085,6086,6087,6088,6089,6090,-3519,6091,6092]]]
 },{"type":"MultiPolygon","id":987,"properties":{"name":"Rumisberg"},"arcs":[[[-7738,-8221,-8220,-8146,9482,9483,9484,9485,-5754,-6456,9486,9487,-7739]]]},{"type":"MultiPolygon","id":988,"properties":{"name":"Seeberg"},"arcs":[[[-2820,-2819,4885,4886,4887,4888,4889,4890,4891,4892,4893]]]},{"type":"MultiPolygon","id":989,"properties":{"name":"Thörigen"},"arcs":[[[9780,9781,-7045,-7133,-9136,-6088,-6087]]]},{"type":"MultiPolygon","id":990,"properties":{"name":"Walliswil bei Niederbipp"},"arcs":[[[10624,-10306,-8222,-7735,-9651]]]},{"type":"MultiPolygon","id":991,"properties":{"name":"Walliswil bei Wangen"},"arcs":[[[-9048,10304,-9453,-8218,10305,10306]]]},{"type":"MultiPolygon","id":992,"properties":{"name":"Wangen an der Aare"},"arcs":[[[9449,9450,-8161,9451,-8140,-8219,9452]]]},{"type":"MultiPolygon","id":993,"properties":{"name":"Wangenried"},"arcs":[[[-10225,-8883,-8162,-9451,-9450,-10305,-9047]]]},{"type":"MultiPolygon","id":995,"properties":{"name":"Wiedlisbach"},"arcs":[[[8217,
 8218,-8147,8219,8220,-7737,-7736,8221]]]},{"type":"MultiPolygon","id":996,"properties":{"name":"Wolfisberg"},"arcs":[[[-7740,-7739,7738,-9488,-9487,-6457,-5018,-4565]]]},{"type":"MultiPolygon","id":1001,"properties":{"name":"Doppleschwand"},"arcs":[[[-1918,-2067,-2066,-5311,-1226]]]},{"type":"MultiPolygon","id":1002,"properties":{"name":"Entlebuch"},"arcs":[[[-913,1223,1224,1225,1226,1227,1228,1229,1230,1231,-1232,1231,1232,1233,1234,-1217]],[[-2028,-2061,-1916]]]},{"type":"MultiPolygon","id":1004,"properties":{"name":"Flühli"},"arcs":[[[609,610,611,612,613,614,615,616,617,618,619]]]},{"type":"MultiPolygon","id":1005,"properties":{"name":"Hasle (LU)"},"arcs":[[[-912,-617,1913,1914,1915,1916,1917,-1225,-1224]]]},{"type":"MultiPolygon","id":1007,"properties":{"name":"Romoos"},"arcs":[[[-1917,2060,-2027,-629,-1059,2061,2062,2063,2064,2065,2066]]]},{"type":"MultiPolygon","id":1008,"properties":{"name":"Schüpfheim"},"arcs":[[[-634,-633,-632,-631,-630,2026,2027,-1915,-1914,-616]]]},{"ty
 pe":"MultiPolygon","id":1009,"properties":{"name":"Werthenstein"},"arcs":[[[-1233,-1232,1231,-1232,-1231,-1230,-1229,-1228,4884,-1651,-2801]]]},{"type":"MultiPolygon","id":1010,"properties":{"name":"Escholzmatt-Marbach"},"arcs":[[[613,624,625,626,627,628,629,630,631,632,633,-615,-614]]]},{"type":"MultiPolygon","id":1021,"properties":{"name":"Aesch (LU)"},"arcs":[[[-1765,9073,9074,9075,9076,-5926,-5925,-2943,9077,9078,9079]]]},{"type":"MultiPolygon","id":1022,"properties":{"name":"Altwis"},"arcs":[[[10346,-9079,-9078,-2942,-9139]]]},{"type":"MultiPolygon","id":1023,"properties":{"name":"Ballwil"},"arcs":[[[-5658,-6837,-3475,-3951,-6787]]]},{"type":"MultiPolygon","id":1024,"properties":{"name":"Emmen"},"arcs":[[[-2959,3944,3945,3946,3947,3948,3949,-2581]]]},{"type":"MultiPolygon","id":1025,"properties":{"name":"Ermensee"},"arcs":[[[-1767,9137,9138,-2941,-4555]]]},{"type":"MultiPolygon","id":1026,"properties":{"name":"Eschenbach (LU)"},"arcs":[[[-5024,-5023,-5022,-5021,5654,5655,5656,5
 657,5658,5659,-3948,-3947]]]},{"type":"MultiPolygon","id":1030,"properties":{"name":"Hitzkirch"},"arcs":[[[2940,2941,2942,2943,2944,-2945,2944,2945,2946,2947,2948,2949,2950,2951]],[[-1766,-9080,-10347,-9138]]]},{"type":"MultiPolygon","id":1031,"properties":{"name":"Hochdorf"},"arcs":[[[-4556,-3477,-3476,6836,-5657,6837]]]},{"type":"MultiPolygon","id":1032,"properties":{"name":"Hohenrain"},"arcs":[[[3468,-2950,3469,3470,3471,3472,3473,3474,3475,3476]]]},{"type":"MultiPolygon","id":1033,"properties":{"name":"Inwil"},"arcs":[[[-5659,6786,-3965,6787,6788,6789,6790,6791]]]},{"type":"MultiPolygon","id":1037,"properties":{"name":"Rain"},"arcs":[[[7220,-4561,-4560,-4559,-4558,4557,-4558,-4557,-6838,-5656,-5655,-5020,-2956]]]},{"type":"MultiPolygon","id":1039,"properties":{"name":"Römerswil"},"arcs":[[[-1768,4554,-2952,-2951,-3469,4555,4556,4557,-4558,4557,4558,4559,4560,4561]]]},{"type":"MultiPolygon","id":1040,"properties":{"name":"Rothenburg"},"arcs":[[[-2958,-2957,5019,5020,5021,5022,50
 23,-3946,-3945]]]},{"type":"MultiPolygon","id":1041,"properties":{"name":"Schongau"},"arcs":[[[5924,5925,5926,5927,5928,5929,5930,5931,-5932,5931,5932,-2946,-2945,2944,-2945,-2944]]]},{"type":"MultiPolygon","id":1051,"properties":{"name":"Adligenswil"},"arcs":[[[-2584,-7131,8445,8446,-2268,-5511]]]},{"type":"MultiPolygon","id":1052,"properties":{"name":"Buchrain"},"arcs":[[[-3949,-5660,-6792,-7673,9634,-7129]]]},{"type":"MultiPolygon","id":1053,"properties":{"name":"Dierikon"},"arcs":[[[-7130,-9635,-7672,-8893,-8446]]]},{"type":"MultiPolygon","id":1054,"properties":{"name":"Ebikon"},"arcs":[[[-2583,-2582,-3950,7128,7129,7130]]]},{"type":"MultiPolygon","id":1055,"properties":{"name":"Gisikon"},"arcs":[[[-6790,-10635,-7674]]]},{"type":"MultiPolygon","id":1056,"properties":{"name":"Greppen"},"arcs":[[[-5512,-2266,-2265,2264,-2265,-2264,-3025]]]},{"type":"MultiPolygon","id":1057,"properties":{"name":"Honau"},"arcs":[[[-7675,10634,-6789,-9301,-3548]]]},{"type":"MultiPolygon","id":1058,"p
 roperties":{"name":"Horw"},"arcs":[[[3916,-2898,-2586,3917,3918]]]},{"type":"MultiPolygon","id":1059,"properties":{"name":"Kriens"},"arcs":[[[-1983,-2803,-2578,2897,2898]]]},{"type":"MultiPolygon","id":1061,"properties":{"name":"Luzern"},"arcs":[[[2577,2578,2579,2580,2581,2582,2583,2584,2585]],[[-4630,-3022,-4456]]]},{"type":"MultiPolygon","id":1062,"properties":{"name":"Malters"},"arcs":[[[2800,-1660,2801,-2579,2802,-1982]]]},{"type":"MultiPolygon","id":1063,"properties":{"name":"Meggen"},"arcs":[[[-3918,-2585,5510,-2267,5511,-3024]]]},{"type":"MultiPolygon","id":1064,"properties":{"name":"Meierskappel"},"arcs":[[[-2275,-2274,-2273,-2272,-2271,-2270,7331,7332,-3546,-3545,2273,-3544,-2422,-4877]]]},{"type":"MultiPolygon","id":1065,"properties":{"name":"Root"},"arcs":[[[7670,7671,7672,-6791,7673,7674,-3547,-7333]]]},{"type":"MultiPolygon","id":1066,"properties":{"name":"Schwarzenberg"},"arcs":[[[-1235,-1234,1981,1982,1983,-1218]]]},{"type":"MultiPolygon","id":1067,"properties":{"name
 ":"Udligenswil"},"arcs":[[[-8447,8892,-7671,-7332,-2269]]]},{"type":"MultiPolygon","id":1068,"properties":{"name":"Vitznau"},"arcs":[[[-4457,-3026,-1566,-3466]]]},{"type":"MultiPolygon","id":1069,"properties":{"name":"Weggis"},"arcs":[[[3020,3021,3022,3023,3024,-2263,-1568,-1567,3025]]]},{"type":"MultiPolygon","id":1081,"properties":{"name":"Beromünster"},"arcs":[[[1752,1753,1754,1755,1756,-1757,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769]]]},{"type":"MultiPolygon","id":1082,"properties":{"name":"Büron"},"arcs":[[[-7098,-3674,-3673,-3672,3671,-8311,-8771,-8770]]]},{"type":"MultiPolygon","id":1083,"properties":{"name":"Buttisholz"},"arcs":[[[-2656,-2655,-4051,-4050,4714,4715,4716,4717,-1656,-1655,-1654]]]},{"type":"MultiPolygon","id":1084,"properties":{"name":"Eich"},"arcs":[[[-5193,-6587,7333,-1754,-1753,-6291]]]},{"type":"MultiPolygon","id":1085,"properties":{"name":"Geuensee"},"arcs":[[[-8119,-8118,-8117,8768,-7099,8769,8770,-8310,-8309,-6228,-1759]]]},
 {"type":"MultiPolygon","id":1086,"properties":{"name":"Grosswangen"},"arcs":[[[-2654,-1841,4046,4047,4048,4049,4050]]]},{"type":"MultiPolygon","id":1088,"properties":{"name":"Hildisrieden"},"arcs":[[[-6292,-1769,-4562,-7221,-2955]]]},{"type":"MultiPolygon","id":1089,"properties":{"name":"Knutwil"},"arcs":[[[7096,-3441,-3675,-3674,3673,7097,7098,7099]]]},{"type":"MultiPolygon","id":1091,"properties":{"name":"Mauensee"},"arcs":[[[-4048,-5862,-5861,5860,8292,-3442,-7097,8293,-6584,-6583]]]},{"type":"MultiPolygon","id":1093,"properties":{"name":"Neuenkirch"},"arcs":[[[-1659,-1658,2952,2953,2954,2955,2956,2957,2958,-2580,-2802]]]},{"type":"MultiPolygon","id":1094,"properties":{"name":"Nottwil"},"arcs":[[[-1657,-4718,-4717,5190,5191,5192,5193,-2953]]]},{"type":"MultiPolygon","id":1095,"properties":{"name":"Oberkirch"},"arcs":[[[-4717,-4716,-4715,-4049,6582,6583,6584,6585,6586,-5192,-5191,4716]]]},{"type":"MultiPolygon","id":1097,"properties":{"name":"Rickenbach (LU)"},"arcs":[[[6227,6228,
 6229,6230,6231,-6232,6231,6232,-6233,6232,6233,6234,6235,6236,6237,6238,6239,-1761,-1760]]]},{"type":"MultiPolygon","id":1098,"properties":{"name":"Ruswil"},"arcs":[[[1650,1651,1652,1653,1654,1655,1656,1657,1658,1659]]]},{"type":"MultiPolygon","id":1099,"properties":{"name":"Schenkon"},"arcs":[[[-6586,8115,8116,8117,8118,-1758,-1757,1756,-1757,-1756,-1755,-7334]]]},{"type":"MultiPolygon","id":1100,"properties":{"name":"Schlierbach"},"arcs":[[[8308,8309,8310,-3672,-3671,-7676,-6229]]]},{"type":"MultiPolygon","id":1102,"properties":{"name":"Sempach"},"arcs":[[[-5194,6290,-1770,6291,-2954]]]},{"type":"MultiPolygon","id":1103,"properties":{"name":"Sursee"},"arcs":[[[-8294,-7100,-8769,-8116,-6585]]]},{"type":"MultiPolygon","id":1104,"properties":{"name":"Triengen"},"arcs":[[[-3440,-2915,-2914,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674]]]},{"type":"MultiPolygon","id":1107,"properties":{"name":"Wolhusen"},"arcs":[[[5310,-2065,-2660,-2659,-2658,-2657,-1652,-4885,-1227]]]},{"type":"Mu
 ltiPolygon","id":1121,"properties":{"name":"Alberswil"},"arcs":[[[-1839,-1838,-8953,-5070,-5859]]]},{"type":"MultiPolygon","id":1122,"properties":{"name":"Altbüron"},"arcs":[[[-6860,-6859,-6858,-4470,8608,8609,8610,-7818,8611]]]},{"type":"MultiPolygon","id":1123,"properties":{"name":"Altishofen"},"arcs":[[[9107,-7820,-2902,-3439]]]},{"type":"MultiPolygon","id":1125,"properties":{"name":"Dagmersellen"},"arcs":[[[3435,3436,3437,3438,-2901,-2900,3439,3440,3441]]]},{"type":"MultiPolygon","id":1126,"properties":{"name":"Ebersecken"},"arcs":[[[7816,7817,7818,-2903,7819,7820,-5079,-5078,-5077,-5076,-5075,7821,7822]],[[-7893,10648,-5073,-5457]]]},{"type":"MultiPolygon","id":1127,"properties":{"name":"Egolzwil"},"arcs":[[[-5081,9942,-3437,9943]]]},{"type":"MultiPolygon","id":1128,"properties":{"name":"Ettiswil"},"arcs":[[[-1840,5858,-5083,5859,5860,5861,-4047]]]},{"type":"MultiPolygon","id":1129,"properties":{"name":"Fischbach"},"arcs":[[[-6022,-7245,-7244,7890,-7823,7891,7892,-5456]]]},{"t
 ype":"MultiPolygon","id":1130,"properties":{"name":"Gettnau"},"arcs":[[[-5458,-5071,8952,-1837,-1836,-1835,-1834]]]},{"type":"MultiPolygon","id":1131,"properties":{"name":"Grossdietwil"},"arcs":[[[-7243,-6864,-6863,6862,-6863,-6862,6861,-6862,-6861,-8612,-7817,-7891]],[[-8611,-8911,-4467,-2904,-7819]],[[-7892,-7822,-5074,-10649]]]},{"type":"MultiPolygon","id":1132,"properties":{"name":"Hergiswil bei Willisau"},"arcs":[[[-1058,-2053,-1830,-1829,1828,-1829,-1828,-1827,-1826,2536,-2063,-2062]]]},{"type":"MultiPolygon","id":1135,"properties":{"name":"Luthern"},"arcs":[[[-1057,-1158,2044,2045,2046,-2047,2046,2047,2048,-2049,2048,2049,2050,2051,-1831,2052]]]},{"type":"MultiPolygon","id":1136,"properties":{"name":"Menznau"},"arcs":[[[-2064,-2537,-1845,-1844,-1843,-1842,2653,2654,2655,-1653,2656,2657,2658,2659]]]},{"type":"MultiPolygon","id":1137,"properties":{"name":"Nebikon"},"arcs":[[[-5080,-7821,-9108,-3438,-9943]]]},{"type":"MultiPolygon","id":1139,"properties":{"name":"Pfaffnau"},"arc
 s":[[[4458,4459,4460,4461,4462,4463,-4464,4464,-4263,-4262,-4261,4465,-2905,4466,4467,4468,4469]]]},{"type":"MultiPolygon","id":1140,"properties":{"name":"Reiden"},"arcs":[[[2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909,2910,2911,2912,2913,2914]]]},{"type":"MultiPolygon","id":1142,"properties":{"name":"Roggliswil"},"arcs":[[[-4469,-4468,8910,-8610,-8609]]]},{"type":"MultiPolygon","id":1143,"properties":{"name":"Schötz"},"arcs":[[[5069,5070,5071,5072,5073,5074,5075,5076,5077,5078,5079,5080,5081,5082]]]},{"type":"MultiPolygon","id":1145,"properties":{"name":"Ufhusen"},"arcs":[[[-2052,-2051,-2050,-2049,2048,-2049,-2048,-2047,2046,-2047,-2046,6018,6019,-4582,6020,6021,-5455,-1832]]]},{"type":"MultiPolygon","id":1146,"properties":{"name":"Wauwil"},"arcs":[[[-5860,-5082,-9944,-3436,-8293,-5861]]]},{"type":"MultiPolygon","id":1147,"properties":{"name":"Wikon"},"arcs":[[[-2909,-2908,-5490,-6523,7804,7805]]]},{"type":"MultiPolygon","id":1150,"properties":{"name":"Zell (LU)"},"arcs"
 :[[[5454,5455,5456,-5072,5457,-1833]]]},{"type":"MultiPolygon","id":1151,"properties":{"name":"Willisau"},"arcs":[[[1825,1826,1827,1828,-1829,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844]]]},{"type":"MultiPolygon","id":1201,"properties":{"name":"Altdorf (UR)"},"arcs":[[[-4340,-4896,-1340,-1632]]]},{"type":"MultiPolygon","id":1202,"properties":{"name":"Andermatt"},"arcs":[[[-637,-891,-432,-684,1045]]]},{"type":"MultiPolygon","id":1203,"properties":{"name":"Attinghausen"},"arcs":[[[-937,-1098,-1097,1096,1630,1631,-1339,1632,-1171,-665]]]},{"type":"MultiPolygon","id":1204,"properties":{"name":"Bauen"},"arcs":[[[-1094,-4189,-4018,-4895]]]},{"type":"MultiPolygon","id":1205,"properties":{"name":"Bürglen (UR)"},"arcs":[[[1338,1339,1340,1341,1342,-247,-894,1343,1344,1345]]]},{"type":"MultiPolygon","id":1206,"properties":{"name":"Erstfeld"},"arcs":[[[-666,1170,1171,-389,-388,-890]]]},{"type":"MultiPolygon","id":1207,"properties":{"name":"Flüelen"},"a
 rcs":[[[-1095,4894,-4026,-1341,4895,-4339]]]},{"type":"MultiPolygon","id":1208,"properties":{"name":"Göschenen"},"arcs":[[[-308,-544,542,634,635,636,637,638]]]},{"type":"MultiPolygon","id":1209,"properties":{"name":"Gurtnellen"},"arcs":[[[-667,889,-387,-433,890,-636]]]},{"type":"MultiPolygon","id":1210,"properties":{"name":"Hospental"},"arcs":[[[-638,-1046,-683,681,-905]]]},{"type":"MultiPolygon","id":1211,"properties":{"name":"Isenthal"},"arcs":[[[-936,-935,-712,1090,1091,1092,1093,1094,1095,1096,1097]]]},{"type":"MultiPolygon","id":1212,"properties":{"name":"Realp"},"arcs":[[[-309,-639,904,-682,-681,905]]]},{"type":"MultiPolygon","id":1213,"properties":{"name":"Schattdorf"},"arcs":[[[-1633,-1346,-3584,-892,-390,-1172]]]},{"type":"MultiPolygon","id":1214,"properties":{"name":"Seedorf (UR)"},"arcs":[[[-1096,4338,4339,-1631,-1097]]]},{"type":"MultiPolygon","id":1215,"properties":{"name":"Seelisberg"},"arcs":[[[-2800,4187,-3482,-4019,4188,-1093]]]},{"type":"MultiPolygon","id":1216,"p
 roperties":{"name":"Silenen"},"arcs":[[[386,387,388,389,390,391,-1,392,393]]]},{"type":"MultiPolygon","id":1217,"properties":{"name":"Sisikon"},"arcs":[[[4017,4018,-3481,4019,4020,4021,4022,4023,4024,-1342,4025]]]},{"type":"MultiPolygon","id":1218,"properties":{"name":"Spiringen"},"arcs":[[[-392,-895,-245,-244,-2]],[[-1345,-1344,-893,3583]]]},{"type":"MultiPolygon","id":1219,"properties":{"name":"Unterschächen"},"arcs":[[[891,892,893,-246,894,-391]]]},{"type":"MultiPolygon","id":1220,"properties":{"name":"Wassen"},"arcs":[[[-543,-542,663,664,665,666,-635]]]},{"type":"MultiPolygon","id":1301,"properties":{"name":"Einsiedeln"},"arcs":[[[594,595,596,597,598,599,-600,599,600,601,602,603,604,605,606,607,608]]]},{"type":"MultiPolygon","id":1311,"properties":{"name":"Gersau"},"arcs":[[[-2405,3464,3465,-1577,3466,3467,-2798]]]},{"type":"MultiPolygon","id":1321,"properties":{"name":"Feusisberg"},"arcs":[[[-605,-2262,4533,4534,-3922]]]},{"type":"MultiPolygon","id":1322,"properties":{"name":"
 Freienbach"},"arcs":[[[-606,3921,3922,3923,3924,3925,-2508,-3272]]]},{"type":"MultiPolygon","id":1323,"properties":{"name":"Wollerau"},"arcs":[[[-4535,-8276,-5804,-5803,-3923]]]},{"type":"MultiPolygon","id":1331,"properties":{"name":"Küssnacht (SZ)"},"arcs":[[[1567,2262,2263,2264,-2265,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2274,2275,-1570,-1569,-1568]]]},{"type":"MultiPolygon","id":1341,"properties":{"name":"Altendorf"},"arcs":[[[-607,3271,-2518,3272,3273,-2834]]]},{"type":"MultiPolygon","id":1342,"properties":{"name":"Galgenen"},"arcs":[[[-2837,-2836,-2835,-3274,5638,5639,-2786]]]},{"type":"MultiPolygon","id":1343,"properties":{"name":"Innerthal"},"arcs":[[[-255,1496,-609,1497,1498,1499,-329,-641,-640]]]},{"type":"MultiPolygon","id":1344,"properties":{"name":"Lachen"},"arcs":[[[-3273,-2517,-6562,-5639]]]},{"type":"MultiPolygon","id":1345,"properties":{"name":"Reichenburg"},"arcs":[[[-2793,-2792,-4741,-332]]]},{"type":"MultiPolygon","id":1346,"properties":{"name":"Schü
 belbach"},"arcs":[[[-1500,-1499,2783,2784,2785,2786,2787,2788,2789,2790,2791,2792,-331,-330]]]},{"type":"MultiPolygon","id":1347,"properties":{"name":"Tuggen"},"arcs":[[[-2790,-2789,5125,-2515,5126,5127,-4739]]]},{"type":"MultiPolygon","id":1348,"properties":{"name":"Vorderthal"},"arcs":[[[-608,2833,2834,2835,2836,-2785,-2784,-1498]]]},{"type":"MultiPolygon","id":1349,"properties":{"name":"Wangen (SZ)"},"arcs":[[[-5640,6561,-2516,-5126,-2788,-2787]]]},{"type":"MultiPolygon","id":1361,"properties":{"name":"Alpthal"},"arcs":[[[-2401,-1333,3556,-601,-600,599,-600,-599]]]},{"type":"MultiPolygon","id":1362,"properties":{"name":"Arth"},"arcs":[[[1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576]]]},{"type":"MultiPolygon","id":1363,"properties":{"name":"Illgau"},"arcs":[[[-252,-1335,-2400]]]},{"type":"MultiPolygon","id":1364,"properties":{"name":"Ingenbohl"},"arcs":[[[-3468,4718,-1338,-3479,-3478,-4188,-2799]]]},{"type":"MultiPolygon","id":1365,"properties":{"name":"Lauerz"},"arc
 s":[[[-3467,-1576,7345,-6246,-1327,-4719]]]},{"type":"MultiPolygon","id":1366,"proper

<TRUNCATED>

[32/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/transformations/TransformationsTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/transformations/TransformationsTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/transformations/TransformationsTest.java
new file mode 100644
index 0000000..5ef485e
--- /dev/null
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/transformations/TransformationsTest.java
@@ -0,0 +1,74 @@
+package org.qi4j.library.spatial.transformations;
+
+import org.junit.Test;
+import org.qi4j.api.geometry.TMultiPoint;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.TPolygon;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
+import org.qi4j.library.spatial.conversions.TConversions;
+import org.qi4j.library.spatial.projection.transformations.TTransformations;
+import org.qi4j.test.AbstractQi4jTest;
+
+import static org.junit.Assert.assertTrue;
+import static org.qi4j.api.geometry.TGeometryFactory.*;
+
+
+public class TransformationsTest extends AbstractQi4jTest {
+
+    private final static String CRS_EPSG_4326 = "EPSG:4326";
+    private final static String CRS_EPSG_27572 = "EPSG:27572";
+
+    @Override
+    public void assemble(ModuleAssembly module)
+            throws AssemblyException {
+        new TGeometryAssembler().assemble(module);
+    }
+
+    @Test
+    public void whenTransformTPoint() throws Exception {
+        TPoint tPoint = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry(CRS_EPSG_4326);
+        TTransformations.Transform(module).from(tPoint).to("EPSG:27572");
+    }
+
+    @Test
+    public void whenTransformTMultiPoint() throws Exception {
+        TMultiPoint multiPoint = TMultiPoint(module).points(new double[][]
+                {
+                        {11.57958981111, 48.13905780941111},
+                        {11.57958985111, 48.13905780951111},
+
+                }).geometry(CRS_EPSG_4326);
+
+        TTransformations.Transform(module).from(multiPoint).to("EPSG:27572", 2);
+    }
+
+    @Test
+    public void whenTransformPolygon() throws Exception {
+        TPolygon polygon = TPolygon(module)
+                .shell
+                        (
+                                new double[][]
+                                        {
+                                                {11.32965087890625, 48.122101028190805},
+                                                {11.394195556640625, 48.28593438872724},
+                                                {11.9366455078125, 48.232906106325146},
+                                                {11.852874755859375, 47.95038564051011},
+                                                {11.36810302734375, 47.94486657921015},
+                                                {11.32965087890625, 48.122101028190805}
+                                        }
+                        ).geometry(CRS_EPSG_4326);
+
+        TTransformations.Transform(module).from(polygon).to("EPSG:27572", 2);
+    }
+
+    @Test
+    public void whenConvertFromTGeometryToTGeometry() {
+        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
+        TPoint tPoint2 = (TPoint) TConversions.Convert(module).from(tPoint1).toTGeometry();
+        assertTrue(tPoint1.compareTo(tPoint2) == 0);
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsFromWktTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsFromWktTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsFromWktTest.java
deleted file mode 100644
index bcf1654..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsFromWktTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.junit.Test;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.AbstractQi4jTest;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.qi4j.library.spatial.v2.conversions.TConversions.Convert;
-
-
-/**
- * Created by jj on 04.12.14.
- */
-public class ConversionsFromWktTest extends AbstractQi4jTest {
-
-    private ObjectMapper GeoJsonMapper = new ObjectMapper();
-
-    private final String CRS_EPSG_4326 = "EPSG:4326";
-    private final String CRS_EPSG_27572 = "EPSG:27572";
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        // internal values
-        module.values(Coordinate.class, TLinearRing.class, TGeometry.class);
-
-        // API values
-        module.values(TPoint.class, TMultiPoint.class, TLineString.class, TPolygon.class, TMultiPolygon.class, TFeature.class, TFeatureCollection.class);
-
-        TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
-        tGeometry.CRS().set(CRS_EPSG_4326);
-    }
-
-    @Test
-    public void WhenConvertFromWktToTGeometry() throws Exception
-    {
-        TPoint tPoint = (TPoint)Convert(module).from("POINT(11.57958981111 48.13905780941111 )", CRS_EPSG_27572).toTGeometry();
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsTest.java
deleted file mode 100644
index b4febde..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.geojson.*;
-import org.junit.Test;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.AbstractQi4jTest;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import static org.qi4j.api.geometry.TGeometryFactory.TMultiPoint;
-import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
-import static org.qi4j.library.spatial.v2.conversions.TConversions.*;
-
-import java.util.Arrays;
-
-
-/**
- * Created by jj on 04.12.14.
- */
-public class ConversionsTest extends AbstractQi4jTest {
-
-    private ObjectMapper GeoJsonMapper = new ObjectMapper();
-
-    private final String CRS_EPSG_4326_ = "EPSG:4326";
-    private final String CRS_EPSG_27572 = "EPSG:27572";
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        // internal values
-        module.values(Coordinate.class, TLinearRing.class, TGeometry.class);
-
-        // API values
-        module.values(TPoint.class, TMultiPoint.class, TLineString.class, TPolygon.class, TMultiPolygon.class, TFeature.class, TFeatureCollection.class);
-
-        TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
-        tGeometry.CRS().set(CRS_EPSG_4326_);
-    }
-
-    @Test
-    public void WhenConvertFromTGeometryToTGeometry() throws Exception
-    {
-        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
-        for (int i = 0;i < 1000000; i++) {
-            TPoint tPoint2 = (TPoint) Convert(module).from(tPoint1).toTGeometry(CRS_EPSG_27572);
-            TPoint tPoint3 = (TPoint) Convert(module).from(tPoint1).toTGeometry(CRS_EPSG_4326_);
-
-        }
-        // assertTrue(tPoint1.compareTo(tPoint2) == 0);
-        System.out.println("Point " + tPoint1);
-    }
-
-    @Test
-    public void WhenConvertPointFromGeoJsonToTGeometry()
-    {
-        TPoint tPoint1          = TPoint(module).y(100).x(0).geometry();
-        Point  geoJsonPoint1    = new Point(100, 0);
-        TPoint tPoint2 = (TPoint)Convert(module).from(geoJsonPoint1).toTGeometry();
-        assertTrue(tPoint1.compareTo(tPoint2) == 0);
-    }
-
-    @Test
-    public void WhenConvertMultiPointFromGeoJsonToTGeometry()
-    {
-        TMultiPoint tMultiPoint1 = TMultiPoint(module).points(new double[][]
-                {
-                        {100d, 0d},
-                        {101d, 1d},
-                        {102d, 2d}
-
-                }).geometry();
-
-        MultiPoint geoJsonMultiPoint = new LineString(new LngLatAlt(100, 0), new LngLatAlt(101, 1), new LngLatAlt(102, 2));
-
-        TMultiPoint tMultiPoint2 = (TMultiPoint)Convert(module).from(geoJsonMultiPoint).toTGeometry();
-        System.out.println(tMultiPoint2);
-
-        assertEquals(geoJsonMultiPoint.getCoordinates().size(),tMultiPoint2.getNumPoints());
-        // TODO JJ - Compare further coordinates
-    }
-
-    @Test
-    public void WhenConvertLineStringFromGeoJsonToTGeometry() throws Exception
-    {
-        LineString geoJsonLineString = GeoJsonMapper.readValue("{\"type\":\"LineString\",\"coordinates\":[[100.0,0.0],[101.0,1.0]]}",
-                LineString.class);
-        TLineString tLineString = (TLineString)Convert(module).from(geoJsonLineString).toTGeometry();
-        // System.out.println(Convert(module).from(geoJsonLineString).toTGeometry());
-    }
-
-    @Test
-    public void WhenConvertMultiLineStringFromGeoJsonToTGeometry() throws Exception
-    {
-        MultiLineString multiLineString = new MultiLineString();
-        multiLineString.add(Arrays.asList(new LngLatAlt(100, 0), new LngLatAlt(101, 1)));
-        multiLineString.add(Arrays.asList(new LngLatAlt(102, 2), new LngLatAlt(103, 3)));
-    }
-
-    @Test
-    public void WhenConvertPolygonFromGeoJsonToTGeometry() throws Exception {
-
-        Polygon polygon = GeoJsonMapper.readValue("{\"type\":\"Polygon\",\"coordinates\":"
-                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
-                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]}", Polygon.class);
-        TPolygon tPolygon = (TPolygon)Convert(module).from(polygon).toTGeometry();
-
-        System.out.println(tPolygon);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsWithProjectionsTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsWithProjectionsTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsWithProjectionsTest.java
deleted file mode 100644
index 457f0c9..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConversionsWithProjectionsTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.junit.Test;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.AbstractQi4jTest;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
-import static org.qi4j.library.spatial.v2.conversions.TConversions.Convert;
-
-
-/**
- * Created by jj on 04.12.14.
- */
-public class ConversionsWithProjectionsTest extends AbstractQi4jTest {
-
-    private ObjectMapper GeoJsonMapper = new ObjectMapper();
-
-    // private final String CRS1 = "urn:ogc:def:crs:OGC:1.3:CRS84";
-
-    private final String CRS1 ="EPSG:4326";
-
-
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        // internal values
-        module.values(Coordinate.class, TLinearRing.class, TGeometry.class);
-
-        // API values
-        module.values(TPoint.class, TMultiPoint.class, TLineString.class, TPolygon.class, TMultiPolygon.class, TFeature.class, TFeatureCollection.class);
-
-        TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
-        tGeometry.CRS().set(CRS1);
-
-    }
-
-    @Test
-    public void WhenConvertFromTGeometryToTGeometryConvertProjections() throws Exception
-    {
-        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
-        TPoint tPoint2 = (TPoint)Convert(module).from(tPoint1).toTGeometry(CRS1);
-        assertTrue(tPoint1.compareTo(tPoint2) == 0);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConvertFromGeoJsonToTGeometry.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConvertFromGeoJsonToTGeometry.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConvertFromGeoJsonToTGeometry.java
deleted file mode 100644
index 5a6064a..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/conversions/ConvertFromGeoJsonToTGeometry.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions;
-
-import org.geojson.Point;
-import org.junit.Test;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.AbstractQi4jTest;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-
-import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
-import static org.qi4j.library.spatial.v2.conversions.TConversions.Convert;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class ConvertFromGeoJsonToTGeometry  extends AbstractQi4jTest {
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        // internal values
-        module.values(Coordinate.class, TLinearRing.class, TGeometry.class);
-
-        // API values
-        module.values(TPoint.class, TMultiPoint.class, TLineString.class, TPolygon.class, TMultiPolygon.class, TFeature.class, TFeatureCollection.class);
-
-    }
-
-    @Test
-    public void WhenConvertingPoint()
-    {
-
-        Point point1  = new Point(100, 0);
-        TPoint tPoint1 = (TPoint)Convert(module).from(point1).toTGeometry();
-        Point point2  = (Point)Convert(module).from(point1).toGeoJson();
-        System.out.println(point2.toString());
-        TPoint tPoint2 = (TPoint)Convert(module).from(point2).toTGeometry();
-        System.out.println(tPoint1);
-        System.out.println(tPoint2);
-
-
-        assertTrue(tPoint1.compareTo(tPoint2) == 0);
-    }
-
-    @Test
-    public void WhenConvertingPoint2()
-    {
-        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
-        Point point1  = new Point(1,2 );
-        Point point2  = (Point)Convert(module).from(point1).toGeoJson();
-        System.out.println(point2.getCoordinates().getLatitude());
-        System.out.println(point2.getCoordinates().getLongitude());
-        TPoint tPoint2 = (TPoint)Convert(module).from(point2).toTGeometry();
-        System.out.println(tPoint2);
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/transformations/TransformationsTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/transformations/TransformationsTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/transformations/TransformationsTest.java
deleted file mode 100644
index 4f49a9b..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/v2/transformations/TransformationsTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.qi4j.library.spatial.v2.transformations;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.junit.Test;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.AbstractQi4jTest;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.qi4j.api.geometry.TGeometryFactory.TMultiPoint;
-import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
-import static org.qi4j.api.geometry.TGeometryFactory.TPolygon;
-import static org.qi4j.library.spatial.v2.conversions.TConversions.Convert;
-import static org.qi4j.library.spatial.v2.transformations.TTransformations.Transform;
-
-
-/**
- * Created by jj on 04.12.14.
- */
-public class TransformationsTest extends AbstractQi4jTest {
-
-    private ObjectMapper GeoJsonMapper = new ObjectMapper();
-    private final String CRS_EPSG_4326 = "EPSG:4326";
-    private final String CRS_EPSG_27572 = "EPSG:27572";
-
-
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        // internal values
-        module.values(Coordinate.class, TLinearRing.class, TGeometry.class);
-
-        // API values
-        module.values(TPoint.class, TMultiPoint.class, TLineString.class, TPolygon.class, TMultiPolygon.class, TFeature.class, TFeatureCollection.class);
-
-        TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
-        tGeometry.CRS().set(CRS_EPSG_4326);
-
-    }
-
-    @Test
-    public void WhenTransformTPoint() throws Exception
-    {
-        TPoint tPoint  = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry(CRS_EPSG_4326);
-        TPoint tPoint1  = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry(CRS_EPSG_4326);
-
-        Transform(module).from(tPoint).to("EPSG:27572");
-
-        System.out.println(tPoint1);
-        System.out.println(tPoint);
-    }
-
-    @Test
-    public void WhenTransformTMultiPoint() throws Exception
-    {
-        TMultiPoint multiPoint = TMultiPoint(module).points(new double[][]
-                {
-                        {11.57958981111, 48.13905780941111},
-                        {11.57958985111, 48.13905780951111},
-
-                }).geometry(CRS_EPSG_4326);
-
-        Transform(module).from(multiPoint).to("EPSG:27572", 2);
-        System.out.println(multiPoint);
-    }
-
-    @Test
-    public void WhenTransformPolygon() throws Exception
-    {
-      TPolygon polygon =   TPolygon(module)
-                        .shell
-                                (
-                                        new double[][]
-                                                {
-                                                        {11.32965087890625, 48.122101028190805},
-                                                        {11.394195556640625, 48.28593438872724},
-                                                        {11.9366455078125, 48.232906106325146},
-                                                        {11.852874755859375, 47.95038564051011},
-                                                        {11.36810302734375, 47.94486657921015},
-                                                        {11.32965087890625, 48.122101028190805}
-                                                }
-                                ).geometry(CRS_EPSG_4326);
-
-        Transform(module).from(polygon).to("EPSG:27572", 2);
-
-        System.out.println(polygon);
-    }
-
-    @Test
-    public void WhenConvertFromTGeometryToTGeometry()
-    {
-        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
-        TPoint tPoint2 = (TPoint)Convert(module).from(tPoint1).toTGeometry();
-        assertTrue(tPoint1.compareTo(tPoint2) == 0);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/geojson/swiss/FeatureCollection.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/geojson/swiss/FeatureCollection.json b/libraries/spatial/src/test/resources/topo/geojson/swiss/FeatureCollection.json
index f3e1e00..a2c738d 100644
--- a/libraries/spatial/src/test/resources/topo/geojson/swiss/FeatureCollection.json
+++ b/libraries/spatial/src/test/resources/topo/geojson/swiss/FeatureCollection.json
@@ -1,33 +1,78 @@
-{ "type": "FeatureCollection",
-    "features": [
-        { "type": "Feature",
-            "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
-            "properties": {"prop0": "value0"}
-        },
-        { "type": "Feature",
-            "geometry": {
-                "type": "LineString",
-                "coordinates": [
-                    [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
-                ]
-            },
-            "properties": {
-                "prop0": "value0",
-                "prop1": 0.0
-            }
-        },
-        { "type": "Feature",
-            "geometry": {
-                "type": "Polygon",
-                "coordinates": [
-                    [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
-                        [100.0, 1.0], [100.0, 0.0] ]
-                ]
-            },
-            "properties": {
-                "prop0": "value0",
-                "prop1": {"this": "that"}
-            }
-        }
-    ]
+{
+  "type": "FeatureCollection",
+  "features": [
+    {
+      "type": "Feature",
+      "geometry": {
+        "type": "Point",
+        "coordinates": [
+          102.0,
+          0.5
+        ]
+      },
+      "properties": {"prop0": "value0"}
+    },
+    {
+      "type": "Feature",
+      "geometry": {
+        "type": "LineString",
+        "coordinates": [
+          [
+            102.0,
+            0.0
+          ],
+          [
+            103.0,
+            1.0
+          ],
+          [
+            104.0,
+            0.0
+          ],
+          [
+            105.0,
+            1.0
+          ]
+        ]
+      },
+      "properties": {
+        "prop0": "value0",
+        "prop1": 0.0
+      }
+    },
+    {
+      "type": "Feature",
+      "geometry": {
+        "type": "Polygon",
+        "coordinates": [
+          [
+            [
+              100.0,
+              0.0
+            ],
+            [
+              101.0,
+              0.0
+            ],
+            [
+              101.0,
+              1.0
+            ],
+            [
+              100.0,
+              1.0
+            ],
+            [
+              100.0,
+              0.0
+            ]
+          ]
+        ]
+      },
+      "properties": {
+        "prop0": "value0",
+        "prop1": {"this": "that"}
+      }
+    }
+  ]
 }
\ No newline at end of file


[08/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
index 5799d6a..e77e6fe 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialIndexer.java
@@ -1,5 +1,3 @@
-package org.qi4j.index.elasticsearch.extensions.spatial;
-
 /*
  * Copyright 2014 Jiri Jetmar.
  *
@@ -18,6 +16,8 @@ package org.qi4j.index.elasticsearch.extensions.spatial;
  * limitations under the License.
  */
 
+package org.qi4j.index.elasticsearch.extensions.spatial;
+
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -31,72 +31,66 @@ import org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapp
 import org.qi4j.library.spatial.v2.projections.ProjectionsRegistry;
 
 import java.util.HashMap;
+import java.util.ListIterator;
 import java.util.Map;
+import java.util.Stack;
 
-import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper.*;
-import static org.qi4j.library.spatial.v2.transformations.TTransformations.*;
+import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper.IndexMappingCache;
+import static org.qi4j.library.spatial.v2.transformations.TTransformations.Transform;
 
 public final class ElasticSearchSpatialIndexer {
 
     private static final String EPSG_4326 = "EPSG:4326";
     private static final String DefaultSupportedProjection = EPSG_4326;
     private static final double DefaultProjectionConversionPrecisionInMeters = 2.00;
+    private Module module;
 
-    public static void toJSON(ElasticSearchSupport support, TGeometry geometry, String property, String propertyWithDepth, JSONObject json, Module module) throws ElasticSearchIndexException {
+    private ElasticSearchSpatialIndexer() {
+    }
+
+    public static void toJSON(ElasticSearchSupport support, TGeometry geometry, String property, String deepProperty, JSONObject json, Module module) throws ElasticSearchIndexException {
 
         // Spatial Mappings
         {
-            if (SpatialConfiguration.isEnabled(support.spatialConfiguration()))
-            {
-                SpatialIndexMapper.createIfNotExist(support, geometry, propertyWithDepth);
-            }
-            else throw new  ElasticSearchIndexException("Spatial support is disabled. No spatial indexing available");
+            if (SpatialConfiguration.isEnabled(support.spatialConfiguration())) {
+                SpatialIndexMapper.createIfNotExist(support, geometry, deepProperty);
+            } else throw new ElasticSearchIndexException("Spatial support is disabled. No spatial indexing available");
         }
 
         // Spatial Transformations
         {
-
             if (new ProjectionsRegistry().getCRS(geometry.getCRS()) == null)
                 throw new ElasticSearchIndexException("Project with the CRS Identity " + geometry.getCRS() + " is unknown. Supported projections are JJ TODO");
-            if (SpatialConfiguration.isIndexerProjectionConversionEnabled(support.spatialConfiguration()))
-            {
+            if (SpatialConfiguration.isIndexerProjectionConversionEnabled(support.spatialConfiguration())) {
                 Transform(module).from(geometry).to(DefaultSupportedProjection, SpatialConfiguration.getIndexerProjectionConversionAccuracy(support.spatialConfiguration()));
-            }
+            } else if (!geometry.getCRS().equalsIgnoreCase(DefaultSupportedProjection))
+                throw new ElasticSearchIndexException("Project with the CRS Identity " + geometry.getCRS() + " is not supported by ElasticSearch and projection conversion is " +
+                        "disabled in the configuration.");
         }
 
-
         try {
 
-            if (geometry instanceof TPoint)
-            {
-                if (IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), propertyWithDepth))
-                {
-                    createESGeoPointIndexAsGeoPointValue(property, json, (TPoint) geometry);
-                }
-                else if (IndexMappingCache.isMappedAsGeoShape(support.index(), support.entitiesType(), propertyWithDepth))
-                {
-                    createESGeoPointIndexAsShapeValue(property, json, (TPoint) geometry);
-                }
-                else new ElasticSearchIndexException("No spatial mapping for property " + propertyWithDepth + " available.");
-
-            } else if (geometry instanceof TMultiPoint)
-            {
-                createESGeoMultiPointAsShapeIndexValue(property, json, (TMultiPoint) geometry);
-            } else if (geometry instanceof TLineString)
-            {
-                createESGeoLineStringIndexValue(property, json, (TLineString) geometry);
-            } else if (geometry instanceof TPolygon)
-            {
-                createESGeoPolygonAsShapeIndexValue(property, json, (TPolygon) geometry);
-            } else if (geometry instanceof TMultiPolygon)
-            {
-                throw new ElasticSearchIndexException("JJ TODO");
-            } else if (geometry instanceof TFeature)
-            {
-                throw new ElasticSearchIndexException("JJ TODO");
-            } else if (geometry instanceof TFeatureCollection)
-            {
-                throw new ElasticSearchIndexException("JJ TODO");
+            if (geometry.isPoint()) {
+                if (IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), deepProperty)) {
+                    createIndexPointAsGeoPointType(property, json, (TPoint) geometry);
+                } else if (IndexMappingCache.isMappedAsGeoShape(support.index(), support.entitiesType(), deepProperty)) {
+                    createIndexPointAsGeoShapeType(property, json, (TPoint) geometry);
+                } else
+                    new ElasticSearchIndexException("No spatial mapping for property " + deepProperty + " available.");
+            } else if (geometry.isMultiPoint()) {
+                createIndexMultiPoint(property, json, (TMultiPoint) geometry);
+            } else if (geometry.isLineString()) {
+                createIndexLineString(property, json, (TLineString) geometry);
+            } else if (geometry.isMultiLineString()) {
+                createIndexMultiLineString(property, json, (TMultiLineString) geometry);
+            } else if (geometry.isPolygon()) {
+                createIndexPolygon(property, json, (TPolygon) geometry);
+            } else if (geometry.isMultiPolygon()) {
+                createIndexMultiPolygon(property, json, (TMultiPolygon) geometry);
+            } else if (geometry.isFeature()) {
+                createIndexFeature(property, json, (TFeature) geometry);
+            } else if (geometry.isFeatureCollection()) {
+                createIndexFeatureCollection(property, json, (TFeatureCollection) geometry);
             } else new ElasticSearchIndexException("Unsupported Geometry : " + geometry.getClass());
 
         } catch (JSONException _ex) {
@@ -104,40 +98,36 @@ public final class ElasticSearchSpatialIndexer {
         }
     }
 
+    private static void createIndexMultiPoint(String property, JSONObject json, TMultiPoint tMultiPoint) throws JSONException {
 
-    private static void createESGeoMultiPointAsShapeIndexValue(String property, JSONObject json, TMultiPoint tMultiPoint) throws JSONException {
-
-            Map tMultiPointMap = new HashMap();
-            tMultiPointMap.put("type", "multipoint");
+        Map tMultiPointMap = new HashMap();
+        tMultiPointMap.put("type", "multipoint");
 
-            JSONArray points = new JSONArray();
-            for (int i = 0; i < tMultiPoint.getNumPoints(); i++) {
-                TPoint point = (TPoint) tMultiPoint.getGeometryN(i);
-                points.put(new JSONArray().put(point.y()).put(point.x()));
-            }
+        JSONArray points = new JSONArray();
+        for (int i = 0; i < tMultiPoint.getNumPoints(); i++) {
+            TPoint point = (TPoint) tMultiPoint.getGeometryN(i);
+            points.put(new JSONArray().put(point.y()).put(point.x()));
+        }
 
-            tMultiPointMap.put("coordinates", points);
-            json.put(property, tMultiPointMap);
+        tMultiPointMap.put("coordinates", points);
+        json.put(property, tMultiPointMap);
 
     }
 
-    private static void createESGeoLineStringIndexValue(String property, JSONObject json, TLineString tLineString) throws JSONException {
-
-            Map tLineStringMap = new HashMap();
-            tLineStringMap.put("type", "linestring");
+    private static void createIndexLineString(String property, JSONObject json, TLineString tLineString) throws JSONException {
+        Map tLineStringMap = new HashMap();
+        tLineStringMap.put("type", "linestring");
 
-            JSONArray points = new JSONArray();
-            for (int i = 0; i < tLineString.getNumPoints(); i++) {
-                TPoint point = (TPoint) tLineString.getPointN(i);
-                points.put(new JSONArray().put(point.y()).put(point.x()));
-            }
-
-            tLineStringMap.put("coordinates", points);
-            json.put(property, tLineStringMap);
+        JSONArray points = new JSONArray();
+        for (int i = 0; i < tLineString.getNumPoints(); i++) {
+            TPoint point = (TPoint) tLineString.getPointN(i);
+            points.put(new JSONArray().put(point.y()).put(point.x()));
+        }
 
+        tLineStringMap.put("coordinates", points);
+        json.put(property, tLineStringMap);
     }
 
-
     /**
      * !! ATTENTION !!
      * <p/>
@@ -170,78 +160,187 @@ public final class ElasticSearchSpatialIndexer {
      * @param tPoint
      * @throws Exception
      */
-    private static void createESGeoPointIndexAsGeoPointValue(String property, JSONObject json, TPoint tPoint) throws JSONException
-    {
-            Map tPointMap = new HashMap();
-            tPointMap.put("lat", tPoint.y());
-            tPointMap.put("lon", tPoint.x());
+    private static void createIndexPointAsGeoPointType(String property, JSONObject json, TPoint tPoint) throws JSONException {
+        Map tPointMap = new HashMap();
+        tPointMap.put("lat", tPoint.y());
+        tPointMap.put("lon", tPoint.x());
 
-            json.put(property, tPointMap);
+        json.put(property, tPointMap);
     }
 
-    private static void createESGeoPointIndexAsShapeValue(String property, JSONObject json, TPoint tPoint) throws JSONException {
-            Map tPointMap = new HashMap();
-            // Lat = Y Long = X
-            tPointMap.put("type", "point");
-            tPointMap.put("coordinates", new JSONArray().put(tPoint.x()).put(tPoint.y()));
+    private static void createIndexPointAsGeoShapeType(String property, JSONObject json, TPoint tPoint) throws JSONException {
+        Map tPointMap = new HashMap();
+        tPointMap.put("type", "point");
+        tPointMap.put("coordinates", new JSONArray().put(tPoint.x()).put(tPoint.y()));
 
-            json.put(property, tPointMap);
+        json.put(property, tPointMap);
+    }
 
+    private static void createIndexMultiLineString(String property, JSONObject json, TMultiLineString tMultiLineString) throws JSONException {
+        Map tMultiLineStringMap = new HashMap();
+        tMultiLineStringMap.put("type", "multilinestring");
+
+        JSONArray coordinates = new JSONArray();
+
+        for (int i = 0; i < tMultiLineString.geometries().get().size(); i++) {
+            JSONArray p = new JSONArray();
+            int nPoints = ((TLineString) tMultiLineString.getGeometryN(i)).getNumPoints();
+
+            JSONArray line = new JSONArray();
+            for (int j = 0; j < nPoints; j++) {
+                JSONArray xy = new JSONArray();
+                xy.put(((TLineString) tMultiLineString.getGeometryN(i)).getPointN(j).x());
+                xy.put(((TLineString) tMultiLineString.getGeometryN(i)).getPointN(j).y());
+                line.put(xy);
+            }
+            coordinates.put(line);
+        }
+        tMultiLineStringMap.put("coordinates", coordinates);
+        json.put(property, tMultiLineStringMap);
     }
 
+    private static void createIndexPolygon(String property, JSONObject json, TPolygon tPolygon) throws JSONException {
+        if (!tPolygon.shell().get().isValid())
+            throw new ElasticSearchIndexException("Polygon shell has to be closed - first and last point must match. ");
 
-    private static void createESGeoPolygonAsShapeIndexValue(String property, JSONObject json, TPolygon tPolygon) throws JSONException {
+        Map tPolygonMap = new HashMap();
+        tPolygonMap.put("type", "polygon");
 
+        JSONArray coordinates = new JSONArray();
 
-            if (!tPolygon.shell().get().isValid())
-                throw new ElasticSearchIndexException("Polygon shell has to be closed - first and last point must match. ");
+        // shell
+        {
+            JSONArray shell = new JSONArray();
+            for (int i = 0; i < tPolygon.shell().get().getNumPoints(); i++) {
+                JSONArray p = new JSONArray();
 
-            Map tPolygonMap = new HashMap();
-            tPolygonMap.put("type", "polygon");
+                p.put(tPolygon.shell().get().getPointN(i).x());
+                p.put(tPolygon.shell().get().getPointN(i).y());
 
-            JSONArray coordinates = new JSONArray();
+                shell.put(p);
+            }
+            coordinates.put(shell);
+        }
 
+        // wholes
+        {
+            for (int i = 0; i < tPolygon.holes().get().size(); i++) {
+                JSONArray whole = new JSONArray();
+                // TLinearRing whole = tPolygon.holes().get().get(i);
+                for (int j = 0; j < tPolygon.holes().get().get(i).getNumPoints(); j++) {
+                    if (!tPolygon.holes().get().get(i).isValid())
+                        throw new ElasticSearchIndexException("Polygon whole has to be closed - first and last point must match. ");
 
-            // shell
-            {
-                JSONArray shell = new JSONArray();
-                for (int i = 0; i < tPolygon.shell().get().getNumPoints(); i++) {
                     JSONArray p = new JSONArray();
 
-                    p.put(tPolygon.shell().get().getPointN(i).x());
-                    p.put(tPolygon.shell().get().getPointN(i).y());
+                    p.put(tPolygon.holes().get().get(i).getPointN(j).x());
+                    p.put(tPolygon.holes().get().get(i).getPointN(j).y());
 
-                    shell.put(p);
+                    whole.put(p);
                 }
-                coordinates.put(shell);
+                coordinates.put(whole);
             }
+        }
 
-            // wholes
-            {
-                for (int i = 0; i < tPolygon.holes().get().size(); i++) {
-                    JSONArray whole = new JSONArray();
-                    // TLinearRing whole = tPolygon.holes().get().get(i);
-                    for (int j = 0; j < tPolygon.holes().get().get(i).getNumPoints(); j++) {
-                        if (!tPolygon.holes().get().get(i).isValid())
-                            throw new ElasticSearchIndexException("Polygon whole has to be closed - first and last point must match. ");
+        tPolygonMap.put("coordinates", coordinates);
+        json.put(property, tPolygonMap);
+    }
 
-                        JSONArray p = new JSONArray();
+    private static void createIndexMultiPolygon(String property, JSONObject json, TMultiPolygon tMultiPolygon) throws JSONException {
+        Map tMultiPolygonMap = new HashMap();
+        tMultiPolygonMap.put("type", "multipolygon");
+        JSONArray coordinates = new JSONArray();
 
-                        p.put(tPolygon.holes().get().get(i).getPointN(j).x());
-                        p.put(tPolygon.holes().get().get(i).getPointN(j).y());
+        for (int i = 0; i < tMultiPolygon.geometries().get().size(); i++) {
+            JSONObject _json = new JSONObject();
+            createIndexPolygon(property, _json, (TPolygon) tMultiPolygon.getGeometryN(i));
+            coordinates.put(((JSONObject) _json.get(property)).get("coordinates"));
+        }
+        tMultiPolygonMap.put("coordinates", coordinates);
+        json.put(property, tMultiPolygonMap);
+    }
 
-                        whole.put(p);
-                    }
-                    coordinates.put(whole);
-                }
+    private static void createIndexFeatureCollection(String property, JSONObject json, TFeatureCollection tFeatureCollection) throws JSONException {
+        Map tFeatureMap = new HashMap();
+        tFeatureMap.put("type", "geometrycollection");
+
+        JSONArray geometries = new JSONArray();
+        JSONObject _json = new JSONObject();
+
+        for (TGeometry tGeometry : tFeatureCollection.geometries().get()) {
+            TFeature tFeature = (TFeature) tGeometry;
+            switch (tFeature.asGeometry().getType()) {
+                case POINT:
+                    createIndexPointAsGeoShapeType(property, _json, (TPoint) tFeature.asGeometry());
+                    break;
+                case MULTIPOINT:
+                    createIndexMultiPoint(property, _json, (TMultiPoint) tFeature.asGeometry());
+                    break;
+                case LINESTRING:
+                    createIndexLineString(property, _json, (TLineString) tFeature.asGeometry());
+                    break;
+                case MULTILINESTRING:
+                    createIndexMultiLineString(property, _json, (TMultiLineString) tFeature.asGeometry());
+                    break;
+                case POLYGON:
+                    createIndexPolygon(property, _json, (TPolygon) tFeature.asGeometry());
+                    break;
+                case MULTIPOLYGON:
+                    createIndexMultiPolygon(property, _json, (TMultiPolygon) tFeature.asGeometry());
+                    break;
             }
+            geometries.put(_json.get(property));
+        }
 
-            tPolygonMap.put("coordinates", coordinates);
-            json.put(property, tPolygonMap);
+        tFeatureMap.put("geometries", geometries);
+        json.put(property, tFeatureMap);
     }
 
+    private static void createIndexFeature(String property, JSONObject json, TFeature tFeature) throws JSONException {
+        Map tFeatureMap = new HashMap();
+        tFeatureMap.put("type", "geometrycollection");
+
+        JSONArray geometries = new JSONArray();
+        JSONObject _json = new JSONObject();
+
+        switch (tFeature.asGeometry().getType()) {
+            case POINT:
+                createIndexPointAsGeoShapeType(property, _json, (TPoint) tFeature.asGeometry());
+                break;
+            case MULTIPOINT:
+                createIndexMultiPoint(property, _json, (TMultiPoint) tFeature.asGeometry());
+                break;
+            case LINESTRING:
+                createIndexLineString(property, _json, (TLineString) tFeature.asGeometry());
+                break;
+            case MULTILINESTRING:
+                createIndexMultiLineString(property, _json, (TMultiLineString) tFeature.asGeometry());
+                break;
+            case POLYGON:
+                createIndexPolygon(property, _json, (TPolygon) tFeature.asGeometry());
+                break;
+            case MULTIPOLYGON:
+                createIndexMultiPolygon(property, _json, (TMultiPolygon) tFeature.asGeometry());
+                break;
+        }
+
+        geometries.put(_json.get(property));
 
-    private ElasticSearchSpatialIndexer() {
+        tFeatureMap.put("geometries", geometries);
+        json.put(property, tFeatureMap);
+    }
+
+    public static String spatialMappingPropertyName(Stack<String> stack) {
+        ListIterator<String> it = stack.listIterator();
+        if (!it.hasNext()) return "";
+        StringBuilder sb = new StringBuilder();
+        for (; ; ) {
+            String s = it.next();
+            sb.append(s);
+            if (!it.hasNext())
+                return sb.toString();
+            sb.append('.');
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
index 5c0bca2..d9c37ff 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialConfiguration.java
@@ -1,3 +1,17 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.configuration;
 
 import org.qi4j.api.common.Optional;
@@ -7,92 +21,90 @@ import org.qi4j.api.value.ValueComposite;
 /**
  * Created by jj on 22.12.14.
  */
-public class SpatialConfiguration
-{
-
-    public static enum INDEXING_METHOD {GEO_POINT, GEO_SHAPE}
+public class SpatialConfiguration {
 
-    public interface Configuration extends ValueComposite
-    {
-        @Optional Property<Boolean> Enabled();
-        @Optional Property<IndexerConfiguration> Indexer();
-        @Optional Property<FinderConfiguration>  Finder ();
+    public static boolean isEnabled(Configuration config) {
+        return config.Enabled().get().booleanValue();
     }
 
-    public interface IndexerConfiguration extends ValueComposite
-    {
-        // Property<INDEXING_METHOD> Type();
-        @Optional Property<IndexingMethod> Method();
-        @Optional Property<ProjectionSupport> Projection();
+    public static INDEXING_METHOD getMethod(Configuration config) {
+        return config.Indexer().get().Method().get().Type().get();
     }
 
-    public interface FinderConfiguration extends ValueComposite
-    {
-        @Optional Property<ProjectionSupport> Projection();
+    public static boolean isMethodGeoPoint(Configuration config) {
+        return config.Indexer().get().Method().get().Type().get() == INDEXING_METHOD.GEO_POINT ? true : false;
     }
 
-    public interface IndexingMethod extends ValueComposite
-    {
-        @Optional Property<INDEXING_METHOD> Type();
-        @Optional Property<String> Precision();
+    public static boolean isMethodGeoShape(Configuration config) {
+        return config.Indexer().get().Method().get().Type().get() == INDEXING_METHOD.GEO_SHAPE ? true : false;
     }
 
-    public interface ProjectionSupport extends ValueComposite
-    {
-        @Optional Property<Boolean> ConversionEnabled();
-        @Optional Property<String>  ConversionAccuracy();
+    public static boolean isIndexerProjectionConversionEnabled(Configuration config) {
+        return config.Indexer().get().Projection().get().ConversionEnabled().get().booleanValue();
     }
 
-
-    public static boolean isEnabled(Configuration config)
-    {
-        return config.Enabled().get().booleanValue();
+    public static double getIndexerProjectionConversionAccuracy(Configuration config) {
+        // return config.Indexer().get().Projection().get().
+        return 2;
     }
 
-    public static INDEXING_METHOD getMethod(Configuration config)
-    {
-        return config.Indexer().get().Method().get().Type().get();
+    public static String getIndexerPrecision(Configuration config) {
+        return config.Indexer().get().Method().get().Precision().get();
     }
 
-    public static boolean isMethodGeoPoint(Configuration config)
-    {
-        return config.Indexer().get().Method().get().Type().get() == INDEXING_METHOD.GEO_POINT ? true : false;
-        // return config.Indexer().get().Type().get() == INDEXING_METHOD.GEO_POINT ? true : false;
+    public static boolean isFinderProjectionConversionEnabled(Configuration config) {
+        return config.Finder().get().Projection().get().ConversionEnabled().get().booleanValue();
     }
 
-    public static boolean isMethodGeoShape(Configuration config)
-    {
-        return config.Indexer().get().Method().get().Type().get() == INDEXING_METHOD.GEO_SHAPE ? true : false;
-        //return config.Indexer().get().Type().get() == INDEXING_METHOD.GEO_SHAPE ? true : false;
+    public static double getFinderProjectionConversionAccuracy(Configuration config) {
+        return 2;
     }
 
-    public String getMethodAccuracy(Configuration config)
-    {
+    public String getMethodAccuracy(Configuration config) {
         return config.Indexer().get().Method().get().Precision().get();
     }
 
-    public static boolean isIndexerProjectionConversionEnabled(Configuration config)
-    {
-        return config.Indexer().get().Projection().get().ConversionEnabled().get().booleanValue();
+    public static enum INDEXING_METHOD {GEO_POINT, GEO_SHAPE}
+
+    public interface Configuration extends ValueComposite {
+        @Optional
+        Property<Boolean> Enabled();
+
+        @Optional
+        Property<IndexerConfiguration> Indexer();
+
+        @Optional
+        Property<FinderConfiguration> Finder();
     }
 
-    public static double getIndexerProjectionConversionAccuracy(Configuration config)
-    {
-        // return config.Indexer().get().Projection().get().
-        return 2;
+    public interface IndexerConfiguration extends ValueComposite {
+        @Optional
+        Property<IndexingMethod> Method();
+
+        @Optional
+        Property<ProjectionSupport> Projection();
     }
 
-    public static boolean isFinderProjectionConversionEnabled(Configuration config)
-    {
-        return config.Finder().get().Projection().get().ConversionEnabled().get().booleanValue();
+    public interface FinderConfiguration extends ValueComposite {
+        @Optional
+        Property<ProjectionSupport> Projection();
     }
 
-    public static double getFinderProjectionConversionAccuracy(Configuration config)
-    {
-        return 2;
+    public interface IndexingMethod extends ValueComposite {
+        @Optional
+        Property<INDEXING_METHOD> Type();
+
+        @Optional
+        Property<String> Precision();
     }
 
+    public interface ProjectionSupport extends ValueComposite {
+        @Optional
+        Property<Boolean> ConversionEnabled();
 
+        @Optional
+        Property<String> ConversionAccuracy();
+    }
 
 
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
deleted file mode 100644
index 421375a..0000000
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialExceptionConfiguration.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.qi4j.index.elasticsearch.extensions.spatial.configuration;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.configuration.ConfigurationComposite;
-import org.qi4j.api.property.Property;
-
-/**
- * Created by jj on 25.12.14.
- */
-public interface SpatialExceptionConfiguration extends ConfigurationComposite
-{
-
-    @Optional
-    Property<Integer> index();
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
index c51d31a..fdc29ba 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
@@ -1,3 +1,17 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.configuration;
 
 import com.google.common.collect.HashBasedTable;
@@ -5,8 +19,8 @@ import com.google.common.collect.Table;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TPolygon;
 import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.query.grammar.extensions.spatial.convert.ST_GeomFromTextSpecification;
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
+import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_IntersectsSpecification;
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecification;
 
 import java.lang.reflect.Array;
@@ -17,102 +31,112 @@ import java.util.List;
 /**
  * Created by jj on 22.12.14.
  */
-public class SpatialFunctionsSupportMatrix
-{
-
+public class SpatialFunctionsSupportMatrix {
     private static Boolean OrderBy = true;
     private static Class<? extends TGeometry> AnyGeometry = TGeometry.class;
-    public static Class WKT = ST_GeomFromTextSpecification.class;
-
-    public static enum INDEX_MAPPING_TPOINT_METHOD {TPOINT_AS_GEOPOINT, TPOINT_AS_GEOSHAPE}
-
-
     private static final Table<String, SpatialConfiguration.INDEXING_METHOD, ConfigurationEntry> SPATIAL_SUPPORT_MATRIX = HashBasedTable.create();
 
-
-
     static
     {
         // ST_Within
-        // supports(enable(ST_WithinSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), enable(OrderBy),  INDEX_MAPPING_TPOINT_METHOD.TPOINT_AS_GEOPOINT);
-        // supports(enable(ST_WithinSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), disable(OrderBy), INDEX_MAPPING_TPOINT_METHOD.TPOINT_AS_GEOSHAPE);
-
         supports(enable(ST_WithinSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), enable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_POINT);
         supports(enable(ST_WithinSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), disable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_SHAPE);
 
+        // ST_Disjoint
+        supports(disable(ST_DisjointSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), enable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_POINT);
+        supports(enable(ST_DisjointSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), disable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_SHAPE);
 
-        // supports(ST_WithinV2.class, propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), OrderBy, INDEXING_METHOD.TPOINT_AS_GEOPOINT);
-        //supports(ST_WithinV2.class, propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), disable(OrderBy), INDEXING_METHOD.TPOINT_AS_GEOSHAPE);
 
-        // ST_Disjoint
-        supports(enable(ST_DisjointSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), enable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_POINT);
-        supports(enable(ST_DisjointSpecification.class),  propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), disable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_SHAPE);
+        // ST_Intersects
+        supports(disable(ST_IntersectsSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), enable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_POINT);
+        supports(enable(ST_IntersectsSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), disable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_SHAPE);
+    }
 
 
-        // ST_Disjoint
-        // supports(not(ST_Disjoint.class), AnyGeometry, AnyGeometry, OrderBy, INDEXING_METHOD.TPOINT_AS_GEOPOINT);
-        // supports(ST_Disjoint.class, TGeometry.class, TGeometry.class, not(OrderBy), INDEXING_METHOD.TPOINT_AS_GEOSHAPE);
+    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method, Boolean verifyOrderBy) {
+        System.out.println(SPATIAL_SUPPORT_MATRIX.toString());
 
-        // ST_Intersects
-        // supports(not(ST_Intersects.class), AnyGeometry, AnyGeometry, OrderBy, INDEXING_METHOD.TPOINT_AS_GEOPOINT);
-        // supports(not(ST_Intersects.class), TGeometry.class, TGeometry.class, not(OrderBy), INDEXING_METHOD.TPOINT_AS_GEOSHAPE);
+        System.out.println("isSupported " + expression + " " + geometryOfProperty + " " + geometryOfFilter + " Type " + method);
+        System.out.println("Contains " + SPATIAL_SUPPORT_MATRIX.contains(expression.getName(), method));
+        if (SPATIAL_SUPPORT_MATRIX.contains(expression.getName(), method))
+            return SPATIAL_SUPPORT_MATRIX.get(expression.getName(), method).isSupported(geometryOfProperty, geometryOfFilter, orderBy, verifyOrderBy);
+        else
+            return false;
+    }
+
+    public static boolean isSupported(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, SpatialConfiguration.INDEXING_METHOD method) {
+        return isSupported(expression, geometryOfProperty, geometryOfFilter, false, method, false);
+    }
+
+    private static void supports(Class expression, Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method) {
+        supports
+                (
+                        expression,
+                        (Class<? extends TGeometry>[]) Array.newInstance(geometryOfProperty, 1),
+                        (Class<? extends TGeometry>[]) Array.newInstance(geometryOfFilter, 1),
+                        orderBy, method
+                );
     }
 
+    private static void supports(Class expression, Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method) {
+        SPATIAL_SUPPORT_MATRIX.put(expression.getName(), method, new ConfigurationEntry(geometriesOfProperty, geometriesOfFilter, orderBy, method));
+    }
 
+    private static Class disable(Class clazz) {
+        return Object.class;
+    }
 
+    private static Class enable(Class clazz) {
+        return clazz;
+    }
 
-    private static class ConfigurationEntry
-    {
+    private static Boolean disable(Boolean bool) {
+        return false;
+    }
+
+    private static Boolean enable(Boolean bool) {
+        return true;
+    }
+
+    private static Class<? extends TGeometry>[] filterOf(Class<? extends TGeometry>... geometryOfFilters) {
+        return geometryOfFilters;
+    }
+
+    private static Class<? extends TGeometry>[] propertyOf(Class<? extends TGeometry>... geometryOfProperty) {
+        return geometryOfProperty;
+    }
+
+    private static class ConfigurationEntry {
         private SpatialConfiguration.INDEXING_METHOD method;
         private Boolean orderBy;
-        private List<Class<? extends  TGeometry>> supportedPropertyGeometries = new LinkedList<>();
-        private List<Class<? extends  TGeometry>> supportedFilterGeometries = new LinkedList<>();
+        private List<Class<? extends TGeometry>> supportedPropertyGeometries = new LinkedList<>();
+        private List<Class<? extends TGeometry>> supportedFilterGeometries = new LinkedList<>();
 
-        public ConfigurationEntry(Class<? extends  TGeometry>[] geometriesOfProperty, Class<? extends  TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method)
-        {
+        public ConfigurationEntry(Class<? extends TGeometry>[] geometriesOfProperty, Class<? extends TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method) {
             this.supportedPropertyGeometries = Arrays.asList(geometriesOfProperty);
-            this.supportedFilterGeometries   = Arrays.asList(geometriesOfFilter);
+            this.supportedFilterGeometries = Arrays.asList(geometriesOfFilter);
             this.orderBy = orderBy;
-            this.method  = method;
+            this.method = method;
         }
 
-        public boolean isSupported( Class<? extends  TGeometry> geometryOfProperty, Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, Boolean verifyOrderBy)
-        {
+        public boolean isSupported(Class<? extends TGeometry> geometryOfProperty, Class<? extends TGeometry> geometryOfFilter, Boolean orderBy, Boolean verifyOrderBy) {
             System.out.println("geometryOfProperty " + geometryOfProperty);
             System.out.println("geometryOfFilter " + geometryOfFilter);
             System.out.println("OrderBy " + orderBy);
 
-            if (supportsProperty(geometryOfProperty) && supportsFilter(geometryOfFilter))
-            {
+            if (supportsProperty(geometryOfProperty) && supportsFilter(geometryOfFilter)) {
                 if (verifyOrderBy) {
                     if (this.orderBy && orderBy) return true;
                     if (this.orderBy && !orderBy) return true;
                     if (!this.orderBy && !orderBy) return true;
                     if (!this.orderBy && orderBy) return false;
                 } else return true;
-            }
-            else return false;
-
+            } else return false;
             return false;
-
-
-/**
-            if (supportsProperty(geometryOfProperty) && supportsFilter(geometryOfFilter))
-                if (orderBy && (this.orderBy != orderBy)) // <- when we validate against orderBy, the it has to match. Otherwise ignore.
-                    return false;
-                else
-                if (!orderBy && (this.orderBy != orderBy) )
-                    return true;
-                else
-                    return false;
-            else
-               return false;
- */
         }
 
-        private boolean supportsProperty(Class<? extends  TGeometry> geometryOfProperty)
-        {
-            if (supportedPropertyGeometries.contains(TGeometry.class) )
+        private boolean supportsProperty(Class<? extends TGeometry> geometryOfProperty) {
+            if (supportedPropertyGeometries.contains(TGeometry.class))
                 return true;
             else if (supportedPropertyGeometries.contains(geometryOfProperty))
                 return true;
@@ -120,9 +144,8 @@ public class SpatialFunctionsSupportMatrix
                 return false;
         }
 
-        private boolean supportsFilter(Class<? extends  TGeometry> geometryOfFilter)
-        {
-            if (supportedFilterGeometries.contains(TGeometry.class) )
+        private boolean supportsFilter(Class<? extends TGeometry> geometryOfFilter) {
+            if (supportedFilterGeometries.contains(TGeometry.class))
                 return true;
             else if (supportedFilterGeometries.contains(geometryOfFilter))
                 return true;
@@ -130,73 +153,4 @@ public class SpatialFunctionsSupportMatrix
                 return false;
         }
     }
-
-
-    public static boolean isSupported(Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method, Boolean verifyOrderBy )
-    {
-        System.out.println(SPATIAL_SUPPORT_MATRIX.toString());
-
-        System.out.println("isSupported " +expression + " " +  geometryOfProperty + " " +  geometryOfFilter + " Type " + method);
-        System.out.println("Contains " + SPATIAL_SUPPORT_MATRIX.contains(expression.getName(), method) );
-        if (SPATIAL_SUPPORT_MATRIX.contains(expression.getName(), method))
-            return SPATIAL_SUPPORT_MATRIX.get(expression.getName(), method).isSupported(geometryOfProperty, geometryOfFilter, orderBy, verifyOrderBy);
-        else
-            return false;
-    }
-
-
-    public static boolean isSupported(Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, SpatialConfiguration.INDEXING_METHOD method )
-    {
-        return isSupported(expression, geometryOfProperty, geometryOfFilter, false, method, false);
-    }
-
-    private static void supports (Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method)
-    {
-        supports
-                (
-                 expression,
-                 (Class < ?extends TGeometry >[])Array.newInstance(geometryOfProperty, 1),
-                 (Class<? extends TGeometry>[]) Array.newInstance(geometryOfFilter, 1),
-                 orderBy, method
-                );
-    }
-
-    private static void supports (Class expression, Class<? extends  TGeometry>[] geometriesOfProperty,Class<? extends  TGeometry>[] geometriesOfFilter, Boolean orderBy, SpatialConfiguration.INDEXING_METHOD method)
-    {
-        SPATIAL_SUPPORT_MATRIX.put(expression.getName(), method, new ConfigurationEntry(geometriesOfProperty, geometriesOfFilter,orderBy, method));
-    }
-
-
-
-    private static Class disable(Class clazz)
-    {
-        return Object.class;
-    }
-    private static Class enable(Class clazz)
-    {
-        return clazz;
-    }
-
-
-    private static Boolean disable(Boolean bool)
-    {
-        return false;
-    }
-
-    private static Boolean enable(Boolean bool)
-    {
-        return true;
-    }
-
-
-
-    private static Class<? extends  TGeometry>[] filterOf(Class<? extends  TGeometry>... geometryOfFilters)
-    {
-        return geometryOfFilters;
-    }
-
-    private static Class<? extends  TGeometry>[] propertyOf(Class<? extends  TGeometry>... geometryOfProperty)
-    {
-        return geometryOfProperty;
-    }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java
index 8906f02..a6e4f11 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java
@@ -1,3 +1,17 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.functions.convert;
 
 import org.elasticsearch.index.query.FilterBuilder;
@@ -12,58 +26,45 @@ import org.qi4j.spi.query.EntityFinderException;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Created by jj on 20.11.14.
- */
-public class ConvertFinderSupport implements  ElasticSearchSpatialFinder.SpatialQuerySpecSupport {
 
-    private static final Map<Class<?>, ConvertFinderSupport.ConvertSpecification> SPATIAL_CONVERT_OPERATIONS = new HashMap<>( 2 );
+public class ConvertFinderSupport implements ElasticSearchSpatialFinder.SpatialQuerySpecSupport {
 
-    static
-    {
+    private static final Map<Class<?>, ConvertFinderSupport.ConvertSpecification> SPATIAL_CONVERT_OPERATIONS = new HashMap<>(2);
+    static {
         SPATIAL_CONVERT_OPERATIONS.put(ST_GeomFromTextSpecification.class, new ST_GeometryFromText());
     }
+    private Module module;
+    private ElasticSearchSupport support;
 
-    public static interface ConvertSpecification extends ElasticSearchSpatialFinder.ModuleHelper
-    {
-        void processSpecification(FilterBuilder filterBuilder, SpatialConvertSpecification<?> spec, Map<String, Object> variables)  throws EntityFinderException;
-    }
-
-
-
-    Module module;
-    ElasticSearchSupport support;
-
-    public void setModule(Module module, ElasticSearchSupport support) {
-
+    public ElasticSearchSpatialFinder.SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support) {
         this.module = module;
         this.support = support;
-    }
 
+        return this;
+    }
 
+    public void processSpecification(FilterBuilder filterBuilder,
+                                     Specification<?> spec,
+                                     Map<String, Object> variables)
+            throws EntityFinderException {
 
-    public void processSpecification( FilterBuilder filterBuilder,
-                                      // SpatialPredicatesSpecification<?>  spec,
-                                      Specification<?> spec,
-                                      Map<String, Object> variables )
-            throws EntityFinderException
-    {
-        System.out.println("ElasticSearchSpatialPredicateFinderSupport::processSpecification() " + spec.getClass() );
-
-
-        if( SPATIAL_CONVERT_OPERATIONS.get( spec.getClass() ) != null ) {
-
-            ConvertSpecification ConvertSpecification = SPATIAL_CONVERT_OPERATIONS.get( spec.getClass());
-            ConvertSpecification.setModule(module, support);
-            ConvertSpecification.processSpecification(filterBuilder, (SpatialConvertSpecification)spec, variables);
-
+        if (SPATIAL_CONVERT_OPERATIONS.get(spec.getClass()) != null) {
+            SPATIAL_CONVERT_OPERATIONS.get(spec.getClass()).support(module, support).processSpecification(filterBuilder, (SpatialConvertSpecification) spec, variables);
         } else {
-            throw new UnsupportedOperationException( "Spatial predicates specification unsupported by Elastic Search "
+            throw new UnsupportedOperationException("Spatial predicates specification unsupported by Elastic Search "
                     + "(New Query API support missing?): "
-                    + spec.getClass() + ": " + spec );
+                    + spec.getClass() + ": " + spec);
 
         }
 
     }
 
+    public interface Support {
+        ConvertSpecification support(Module module, ElasticSearchSupport support);
+    }
+
+    public static interface ConvertSpecification extends Support {
+        void processSpecification(FilterBuilder filterBuilder, SpatialConvertSpecification<?> spec, Map<String, Object> variables) throws EntityFinderException;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
index dbb7035..04722c5 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ST_GeometryFromText.java
@@ -1,7 +1,23 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.functions.convert;
 
 import org.elasticsearch.index.query.FilterBuilder;
 import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
+import org.qi4j.api.structure.Module;
+import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.internal.AbstractElasticSearchSpatialFunction;
 import org.qi4j.spi.query.EntityFinderException;
 
@@ -9,27 +25,20 @@ import java.util.Map;
 
 import static org.qi4j.library.spatial.v2.conversions.TConversions.Convert;
 
-/**
- * Created by jj on 20.11.14.
- */
-public class ST_GeometryFromText extends AbstractElasticSearchSpatialFunction implements ConvertFinderSupport.ConvertSpecification {
-
-
-    public void processSpecification(FilterBuilder filterBuilder, SpatialConvertSpecification<?> spec, Map<String, Object> variables)  throws EntityFinderException
-    {
 
-        System.out.println("ST_GeometryFromTextFunction()");
-
-try {
-    spec.setGeometry(Convert(module).from(spec.property()).toTGeometry());
-
-    // return Convert(module).from(spec.property()).toTGeometry();
-
-    // return spec.convert(module);
-} catch(Exception _ex) {
-    _ex.printStackTrace();
-}
+public class ST_GeometryFromText extends AbstractElasticSearchSpatialFunction implements ConvertFinderSupport.ConvertSpecification {
+    public void processSpecification(FilterBuilder filterBuilder, SpatialConvertSpecification<?> spec, Map<String, Object> variables) throws EntityFinderException {
+        try
+        {
+            spec.setGeometry(Convert(module).from(spec.property()).toTGeometry());
+        } catch (Exception _ex) {
+            throw new EntityFinderException(_ex);
+        }
+    }
 
-       //  return null;
+    public ConvertFinderSupport.ConvertSpecification support(Module module, ElasticSearchSupport support) {
+        this.module = module;
+        this.support = support;
+        return this;
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
index 2adcb64..d0e3766 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
@@ -1,3 +1,17 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates;
 
 import org.elasticsearch.index.query.FilterBuilder;
@@ -14,62 +28,49 @@ import org.qi4j.spi.query.EntityFinderException;
 import java.util.HashMap;
 import java.util.Map;
 
-/**
- * Created by jj on 19.11.14.
- */
-public class PredicateFinderSupport implements ElasticSearchSpatialFinder.SpatialQuerySpecSupport {
-
-
-    private static final Map<Class<?>, PredicateFinderSupport.PredicateSpecification> SPATIAL_PREDICATE_OPERATIONS = new HashMap<>( 3 );
-
 
-    public static interface PredicateSpecification extends ElasticSearchSpatialFinder.ModuleHelper
-    {
-        void processSpecification(FilterBuilder filterBuilder, SpatialPredicatesSpecification<?>  spec, Map<String, Object> variables)  throws EntityFinderException;
-    }
-
-    static
-    {
-        SPATIAL_PREDICATE_OPERATIONS.put(ST_WithinSpecification.class, new ST_Within());
-        SPATIAL_PREDICATE_OPERATIONS.put(ST_DisjointSpecification.class, new ST_DisjointV3());
-        SPATIAL_PREDICATE_OPERATIONS.put(ST_IntersectsSpecification.class, new ST_Intersects());
-    }
+public class PredicateFinderSupport implements ElasticSearchSpatialFinder.SpatialQuerySpecSupport {
 
+    private static final Map<Class<?>, PredicateFinderSupport.PredicateSpecification> SPATIAL_PREDICATE_OPERATIONS = new HashMap<>(3);
 
-    Module module;
-    ElasticSearchSupport support;
+    private Module module;
+    private ElasticSearchSupport support;
 
-    public void setModule(Module module, ElasticSearchSupport support)
-    {
+    public ElasticSearchSpatialFinder.SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support) {
         this.module = module;
         this.support = support;
-    }
 
+        return this;
+    }
 
+    public void processSpecification(FilterBuilder filterBuilder,
+                                     Specification<?> spec,
+                                     Map<String, Object> variables)
+            throws EntityFinderException {
 
-    public void processSpecification( FilterBuilder filterBuilder,
-                                      // SpatialPredicatesSpecification<?>  spec,
-                                      Specification<?> spec,
-                                      Map<String, Object> variables )
-            throws EntityFinderException
-    {
-        System.out.println("ElasticSearchSpatialPredicateFinderSupport::processSpecification() " + spec.getClass() );
-
-
-        if( SPATIAL_PREDICATE_OPERATIONS.get( spec.getClass() ) != null ) {
-
-            PredicateSpecification PredicateSpecification = SPATIAL_PREDICATE_OPERATIONS.get( spec.getClass());
-            PredicateSpecification.setModule(module, support);
-            PredicateSpecification.processSpecification(filterBuilder, (SpatialPredicatesSpecification)spec, variables);
-
+        if (SPATIAL_PREDICATE_OPERATIONS.get(spec.getClass()) != null) {
+            SPATIAL_PREDICATE_OPERATIONS.get(spec.getClass()).support(module, support).processSpecification(filterBuilder, (SpatialPredicatesSpecification) spec, variables);
         } else {
-            throw new UnsupportedOperationException( "Spatial predicates specification unsupported by Elastic Search "
+            throw new UnsupportedOperationException("Spatial predicates specification unsupported by Elastic Search "
                     + "(New Query API support missing?): "
-                    + spec.getClass() + ": " + spec );
-
+                    + spec.getClass() + ": " + spec);
         }
     }
 
+    public interface Support {
+        PredicateSpecification support(Module module, ElasticSearchSupport support);
+    }
+
+
+    public static interface PredicateSpecification extends Support {
+        void processSpecification(FilterBuilder filterBuilder, SpatialPredicatesSpecification<?> spec, Map<String, Object> variables) throws EntityFinderException;
+    }
+    static {
+        SPATIAL_PREDICATE_OPERATIONS.put(ST_WithinSpecification.class, new ST_Within());
+        SPATIAL_PREDICATE_OPERATIONS.put(ST_DisjointSpecification.class, new ST_Disjoint());
+        SPATIAL_PREDICATE_OPERATIONS.put(ST_IntersectsSpecification.class, new ST_Intersects());
+    }
+
 }
 
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
index e72eead..b0164b4 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Disjoint.java
@@ -1,3 +1,17 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates;
 
 import org.elasticsearch.common.geo.ShapeRelation;
@@ -9,78 +23,41 @@ import org.qi4j.api.geometry.TPolygon;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
+import org.qi4j.api.structure.Module;
+import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.internal.AbstractElasticSearchSpatialFunction;
 import org.qi4j.spi.query.EntityFinderException;
 
 import java.util.Map;
 
-import static org.elasticsearch.index.query.FilterBuilders.*;
+import static org.elasticsearch.index.query.FilterBuilders.notFilter;
+
 
-/**
- * Created by jj on 19.11.14.
- */
 public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification {
+    public void processSpecification(FilterBuilder filterBuilder,
+                                     SpatialPredicatesSpecification<?> spec,
+                                     Map<String, Object> variables)
+            throws EntityFinderException {
+        TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
+
+        if (!isValid(spec))
+            throw new EntityFinderException(spec.getClass() + " expression invalid.");
+
+        if (!isMapped(spec.property()))
+            throw new EntityFinderException(spec.getClass() + " expression invalid. No spatial mapping available for property " + spec.property());
+
+        if (!isSupported(spec, geomOfFilterProperty))
+            throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
 
 
-    public void processSpecification( FilterBuilder filterBuilder,
-                                      SpatialPredicatesSpecification<?> spec,
-                                      Map<String, Object> variables )
-                                                        throws EntityFinderException
-    {
-        if ((spec.value() == null && spec.operator() == null))
-            throw new EntityFinderException("Insufficient data provided. ST_Disjoint specification requires " +
-                    "valid filter geometry of type " + TGeometry.class.getSimpleName());
-
-        System.out.println("ST_Disjoint");
-
-        TGeometry filterGeometry = resolveGeometry(filterBuilder,spec, module);
-
-        /**
-         * When the geometry used in the ST_Disjoint expression is of type TPoint and a distance is specified, e.g.
-         *
-         * TPoint filterGeometry = TPoint(module).x(..).y(..);
-         * ST_Disjoint (templateFor(x.class).propertyOfTypeTPoint(), filterGeometry, 1, TUnit.METER)
-         *
-         * then a ES GeoDistanceFilter together with a negotiation (notFilter) is used.
-         *
-         */
-
-        if (isMappedAsGeoPoint(spec.property()))
-            throw new EntityFinderException("ST_Disjoint can not be used on values with geo_point mappings. Pls use geo_shape mappings.");
-
-           // if (Mappings(support).onIndex(support.index()).andType(support.entitiesType()).isGeoPoint(spec.property().toString()))
-           //         throw new EntityFinderException("ST_Disjoint can not be used on values with geo_point mappings. Pls use geo_shape mappings.");
-
-
-        /**
-         * When the template property is of type TPoint then the filter property has to have an area.
-         * Currently only filter geometries of type TPolygon are supported. E.g.
-         *
-         * TPolygon polygon = TPolygon(module).shell(..)
-         * ST_Within (templateFor(x.class).propertyOfTypeTPoint(), polygon);
-         *
-         *
-         */
-        else if (isPropertyOfTypeTPoint(spec.property()))
-        {
-
-            if (filterGeometry instanceof TPolygon)
-            {
-                /**
-                 * This must not happen, but in case the expression is defined using WTK like :
-                 *
-                 * ST_Within (templateFor(x.class).propertyOfTypeTPoint(),
-                 *              POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5)),
-                 *              1, TUnit.METER) // <- This is invalid !!
-                 *
-                 * we have to check it here.
-                 *
-                 */
-                if (((ST_DisjointSpecification)spec).getDistance() > 0)
+        if (isPropertyOfType(TPoint.class, spec.property()) && isMappedAsGeoShape(spec.property())) {
+            if (geomOfFilterProperty instanceof TPolygon) {
+
+                if (((ST_DisjointSpecification) spec).getDistance() > 0)
                     throw new EntityFinderException("Invalid ST_Disjoint expression. A " + TPolygon.class.getSimpleName() + " can " +
                             "not be combined with distance.");
 
-                TPolygon polygonFilter = (TPolygon)verifyProjection(filterGeometry);
+                TPolygon polygonFilter = (TPolygon) verifyProjection(geomOfFilterProperty);
 
                 GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
 
@@ -88,54 +65,23 @@ public class ST_Disjoint extends AbstractElasticSearchSpatialFunction implements
                     TPoint point = polygonFilter.shell().get().getPointN(i);
                     geoPolygonFilterBuilder.addPoint(point.x(), point.y());
                 }
-                addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder); // TODO NOT
+                addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder);
+            } else if (geomOfFilterProperty instanceof TPoint && ((ST_DisjointSpecification) spec).getDistance() > 0) {
+                double radiusInMeters = convertDistanceToMeters(((ST_DisjointSpecification) spec).getDistance(), ((ST_DisjointSpecification) spec).getUnit());
+                TPolygon polygonizedCircleFilter = polygonizeCircle((TPoint) verifyProjection(geomOfFilterProperty), radiusInMeters);
+                addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.DISJOINT), filterBuilder);
             }
-            else
-                throw new EntityFinderException("Invalid ST_Disjoint expression. Unsupported type " +  filterGeometry.getType() +
-                        " On properties of type " +  TPoint.class.getSimpleName() +
-                        " only filters of type distance or polygon are supported.");
-        }
-        else
-        {
-            /**
-             * In all other cases we are using a shape filter.
-             */
-            addFilter(createShapeFilter(spec.property().toString(), filterGeometry, ShapeRelation.DISJOINT), filterBuilder);
+        } else {
+            addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.DISJOINT), filterBuilder);
         }
 
 
     }
 
+    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support) {
+        this.module = module;
+        this.support = support;
 
-
-
-
-
-
-
-
-
-
-
-
-
-    public void _processSpecification( FilterBuilder filterBuilder,
-                                      SpatialPredicatesSpecification<?> spec,
-                                      Map<String, Object> variables )
-            throws EntityFinderException
-    {
-        if (spec.value() == null && spec.operator() == null)
-            throw new UnsupportedOperationException("ST_Within specification ...todo :"
-                    + spec.getClass() + ": " + spec);
-
-        System.out.println("ST_DisjointFunction Spec");
-
-        try {
-            TGeometry geometry = resolveGeometry(filterBuilder,spec, module);
-            addFilter(createShapeFilter(spec.property().toString(), geometry, ShapeRelation.DISJOINT), filterBuilder);
-        } catch(Exception _ex) {
-            _ex.printStackTrace();
-        }
+        return this;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV2.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV2.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV2.java
deleted file mode 100644
index 97754c1..0000000
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV2.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates;
-
-import com.spatial4j.core.distance.DistanceUtils;
-import org.elasticsearch.common.geo.ShapeRelation;
-import org.elasticsearch.index.query.FilterBuilder;
-import org.elasticsearch.index.query.FilterBuilders;
-import org.elasticsearch.index.query.GeoPolygonFilterBuilder;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TCircle;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
-import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
-import org.qi4j.index.elasticsearch.extensions.spatial.internal.AbstractElasticSearchSpatialFunction;
-import org.qi4j.spi.query.EntityFinderException;
-
-import java.util.Map;
-
-import static org.elasticsearch.index.query.FilterBuilders.notFilter;
-
-/**
- * Created by jj on 23.12.14.
- */
-public class ST_DisjointV2 extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
-{
-    public void processSpecification(FilterBuilder filterBuilder,
-                                     SpatialPredicatesSpecification<?> spec,
-                                     Map<String, Object> variables)
-            throws EntityFinderException
-    {
-        TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
-
-        if (!isValid(spec))
-            throw new EntityFinderException(spec.getClass() + " expression invalid.");
-
-        if (!isMapped(spec.property()))
-            throw new EntityFinderException(spec.getClass() + " expression invalid. No spatial mapping available for property " + spec.property());
-
-        if (!isSupported(spec, geomOfFilterProperty))
-            throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
-
-
-        if (isPropertyOfType(TPoint.class, spec.property()) && isMappedAsGeoShape(spec.property()))
-        {
-            if (geomOfFilterProperty instanceof TPolygon)
-            {
-                /**
-                 * This must not happen, but in case the expression is defined using WTK like :
-                 *
-                 * ST_Within (templateFor(x.class).propertyOfTypeTPoint(),
-                 *              POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5)),
-                 *              1, TUnit.METER) // <- This is invalid !!
-                 *
-                 * we have to check it here.
-                 *
-                 */
-                if (((ST_DisjointSpecification)spec).getDistance() > 0)
-                    throw new EntityFinderException("Invalid ST_Disjoint expression. A " + TPolygon.class.getSimpleName() + " can " +
-                            "not be combined with distance.");
-
-                TPolygon polygonFilter = (TPolygon)verifyProjection(geomOfFilterProperty);
-
-                GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
-
-                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
-                    TPoint point = polygonFilter.shell().get().getPointN(i);
-                    geoPolygonFilterBuilder.addPoint(point.x(), point.y());
-                }
-                addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder); // TODO NOT
-            }
-            else if (geomOfFilterProperty instanceof TPoint && ((ST_DisjointSpecification)spec).getDistance() > 0 )
-            {
-
-                double distanceMeters = convertDistanceToMeters(((ST_DisjointSpecification)spec).getDistance() , ((ST_DisjointSpecification)spec).getUnit());
-                System.out.println("Distance in Meters " + distanceMeters);
-                double distanceDegrees = DistanceUtils.dist2Degrees(distanceMeters, DistanceUtils.EARTH_MEAN_RADIUS_KM * 1000);
-                // This is a special case. We are using polygon substitution to support a circle. ATTENTION - this is just a approximation !!
-                TPoint circlePoint = (TPoint)verifyProjection(geomOfFilterProperty);
-                TCircle tCircle = module.newValueBuilder(TCircle.class).prototype().of(circlePoint, distanceDegrees);
-                TPolygon polygonizedCircleFilter = tCircle.polygonize(360);
-                addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.DISJOINT), filterBuilder);
-            }
-
-
-        }
-        else
-        {
-            /**
-             * In all other cases we are using a shape filter.
-            */
-            addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.DISJOINT), filterBuilder);
-        }
-
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV3.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV3.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV3.java
deleted file mode 100644
index c89804d..0000000
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV3.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates;
-
-import com.spatial4j.core.distance.DistanceUtils;
-import org.elasticsearch.common.geo.ShapeRelation;
-import org.elasticsearch.index.query.FilterBuilder;
-import org.elasticsearch.index.query.FilterBuilders;
-import org.elasticsearch.index.query.GeoPolygonFilterBuilder;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TCircle;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
-import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecification;
-import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
-import org.qi4j.index.elasticsearch.extensions.spatial.internal.AbstractElasticSearchSpatialFunction;
-import org.qi4j.spi.query.EntityFinderException;
-
-import java.util.Map;
-
-import static org.elasticsearch.index.query.FilterBuilders.andFilter;
-import static org.elasticsearch.index.query.FilterBuilders.notFilter;
-import static org.elasticsearch.index.query.FilterBuilders.termFilter;
-
-/**
- * Created by jj on 23.12.14.
- */
-public class ST_DisjointV3 extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
-{
-    public void processSpecification(FilterBuilder filterBuilder,
-                                     SpatialPredicatesSpecification<?> spec,
-                                     Map<String, Object> variables)
-            throws EntityFinderException
-    {
-        TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
-
-        if (!isValid(spec))
-            throw new EntityFinderException(spec.getClass() + " expression invalid.");
-
-        if (!isMapped(spec.property()))
-            throw new EntityFinderException(spec.getClass() + " expression invalid. No spatial mapping available for property " + spec.property());
-
-        if (!isSupported(spec, geomOfFilterProperty))
-            throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
-
-
-
-
-        /**
-         * When the geometry used in the ST_Within expression is of type TPoint and a distance is specified, e.g.
-         *
-         * TPoint point = TPoint(module).x(..).y(..);
-         * ST_Within (templateFor(x.class).propertyOfTypeTPoint(), point, 1, TUnit.METER)
-         *
-         * then a ES GeoDistanceFilter is used.
-         *
-         */
-        if (
-                isTPoint(geomOfFilterProperty) &&
-                        isMappedAsGeoPoint(spec.property()) &&
-                        ((ST_DisjointSpecification) spec).getDistance() > 0
-                )
-        {
-            addFilter(andFilter(notFilter(createGeoDistanceFilter
-                            (
-                                    spec.property().toString(),
-                                    (TPoint) verifyProjection(geomOfFilterProperty),
-                                    ((ST_DisjointSpecification) spec).getDistance(),
-                                    ((ST_DisjointSpecification) spec).getUnit()
-                            )), null),
-                    // )termFilter( "point.type", "point" )),
-                    filterBuilder
-            );
-        }
-
-
-
-
-        else if (isPropertyOfType(TPoint.class, spec.property()) && isMappedAsGeoShape(spec.property()))
-        {
-            if (geomOfFilterProperty instanceof TPolygon)
-            {
-                /**
-                 * This must not happen, but in case the expression is defined using WTK like :
-                 *
-                 * ST_Within (templateFor(x.class).propertyOfTypeTPoint(),
-                 *              POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5)),
-                 *              1, TUnit.METER) // <- This is invalid !!
-                 *
-                 * we have to check it here.
-                 *
-                 */
-                if (((ST_DisjointSpecification)spec).getDistance() > 0)
-                    throw new EntityFinderException("Invalid ST_Disjoint expression. A " + TPolygon.class.getSimpleName() + " can " +
-                            "not be combined with distance.");
-
-                TPolygon polygonFilter = (TPolygon)verifyProjection(geomOfFilterProperty);
-
-                GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
-
-                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
-                    TPoint point = polygonFilter.shell().get().getPointN(i);
-                    geoPolygonFilterBuilder.addPoint(point.x(), point.y());
-                }
-                addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder); // TODO NOT
-            }
-            else if (geomOfFilterProperty instanceof TPoint && ((ST_DisjointSpecification)spec).getDistance() > 0 )
-            {
-
-                double distanceMeters = convertDistanceToMeters(((ST_DisjointSpecification)spec).getDistance() , ((ST_DisjointSpecification)spec).getUnit());
-                System.out.println("Distance in Meters " + distanceMeters);
-                double distanceDegrees = DistanceUtils.dist2Degrees(distanceMeters, DistanceUtils.EARTH_MEAN_RADIUS_KM * 1000);
-                // This is a special case. We are using polygon substitution to support a circle. ATTENTION - this is just a approximation !!
-                TPoint circlePoint = (TPoint)verifyProjection(geomOfFilterProperty);
-                TCircle tCircle = module.newValueBuilder(TCircle.class).prototype().of(circlePoint, distanceDegrees);
-                TPolygon polygonizedCircleFilter = tCircle.polygonize(360);
-                addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.DISJOINT), filterBuilder);
-            }
-
-
-        }
-        else
-        {
-            /**
-             * In all other cases we are using a shape filter.
-            */
-            addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.DISJOINT), filterBuilder);
-        }
-
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
index b3aae19..a85c66e 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Intersects.java
@@ -1,40 +1,92 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates;
 
 import org.elasticsearch.common.geo.ShapeRelation;
 import org.elasticsearch.index.query.FilterBuilder;
+import org.elasticsearch.index.query.FilterBuilders;
+import org.elasticsearch.index.query.GeoPolygonFilterBuilder;
 import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.TPolygon;
 import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
+import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_IntersectsSpecification;
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
+import org.qi4j.api.structure.Module;
+import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.internal.AbstractElasticSearchSpatialFunction;
 import org.qi4j.spi.query.EntityFinderException;
 
 import java.util.Map;
 
-/**
- * Created by jj on 04.12.14.
- */
-public class ST_Intersects extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
-{
+import static org.elasticsearch.index.query.FilterBuilders.notFilter;
+
+
+public class ST_Intersects extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification {
 
     public void processSpecification(FilterBuilder filterBuilder,
                                      SpatialPredicatesSpecification<?> spec,
                                      Map<String, Object> variables)
             throws EntityFinderException {
-        if ((spec.value() == null && spec.operator() == null))
-            throw new EntityFinderException("Insufficient data provided. ST_Intersects specification requires " +
-                    "valid filter geometry of type " + TGeometry.class.getSimpleName());
+        TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
 
-        TGeometry filterGeometry = resolveGeometry(filterBuilder, spec, module);
+        System.out.println("Spec " + spec);
 
-        if (isPropertyOfTypeTPoint(spec.property()))
-        {
-            throw new EntityFinderException("Invalid ST_Intersects expression. Property on type " +
-                    TPoint.class.getSimpleName() + " not supported.");
-        }
-        else
-        {
-            addFilter(createShapeFilter(spec.property().toString(), filterGeometry, ShapeRelation.INTERSECTS), filterBuilder);
+        if (!isValid(spec))
+            throw new EntityFinderException(spec.getClass() + " expression invalid.");
+
+        if (!isMapped(spec.property()))
+            throw new EntityFinderException(spec.getClass() + " expression invalid. No spatial mapping available for property " + spec.property());
+
+        if (!isSupported(spec, geomOfFilterProperty))
+            throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
+
+
+        if (isPropertyOfType(TPoint.class, spec.property())) {
+            if (geomOfFilterProperty instanceof TPolygon) {
+
+                if (((ST_DisjointSpecification) spec).getDistance() > 0)
+                    throw new EntityFinderException("Invalid ST_Disjoint expression. A " + TPolygon.class.getSimpleName() + " can " +
+                            "not be combined with distance.");
+
+                TPolygon polygonFilter = (TPolygon) verifyProjection(geomOfFilterProperty);
+
+                GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
+
+                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
+                    TPoint point = polygonFilter.shell().get().getPointN(i);
+                    geoPolygonFilterBuilder.addPoint(point.x(), point.y());
+                }
+                addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder);
+            } else if (geomOfFilterProperty instanceof TPoint && ((ST_IntersectsSpecification) spec).getDistance() > 0) {
+                double radiusInMeters = convertDistanceToMeters(((ST_IntersectsSpecification) spec).getDistance(), ((ST_IntersectsSpecification) spec).getUnit());
+                TPolygon polygonizedCircleFilter = polygonizeCircle((TPoint) verifyProjection(geomOfFilterProperty), radiusInMeters);
+                addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.INTERSECTS), filterBuilder);
+            }
+        } else {
+
+            addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.INTERSECTS), filterBuilder);
         }
 
     }
+
+    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support) {
+        this.module = module;
+        this.support = support;
+
+        return this;
+    }
+
 }


[15/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/tg-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/tg-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/tg-municipalities.json
deleted file mode 100644
index a38b3bf..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/tg-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":4401,"properties":{"name":"Arbon"},"arcs":[[[-164,-65,-1,234]]]},{"type":"MultiPolygon","id":4406,"properties":{"name":"Dozwil"},"arcs":[[[-244,-245,-238]]]},{"type":"MultiPolygon","id":4411,"properties":{"name":"Egnach"},"arcs":[[[61,62,-54,63,-2,64],[65]]]},{"type":"MultiPolygon","id":4416,"properties":{"name":"Hefenhofen"},"arcs":[[[235,236,237,238,-217,239,-52]]]},{"type":"MultiPolygon","id":4421,"properties":{"name":"Horn"},"arcs":[[[249]]]},{"type":"MultiPolygon","id":4426,"properties":{"name":"Kesswil"},"arcs":[[[241,-209,-6,242,243,-237]]]},{"type":"MultiPolygon","id":4431,"properties":{"name":"Roggwil (TG)"},"arcs":[[[-62,163,164]]]},{"type":"MultiPolygon","id":4436,"properties":{"name":"Romanshorn"},"arcs":[[[215,216,217,-4]]]},{"type":"MultiPolygon","id":4441,"properties":{"name":"Salmsach"},"arcs":[[[-64,-53,-240,-216,-3]]]},{"type":"MultiPolygon","id":44
 46,"properties":{"name":"Sommeri"},"arcs":[[[-158,-201,-210,-242,-236,-51]]]},{"type":"MultiPolygon","id":4451,"properties":{"name":"Uttwil"},"arcs":[[[-218,-239,244,-243,-5]]]},{"type":"MultiPolygon","id":4461,"properties":{"name":"Amriswil"},"arcs":[[[48,49,50,51,52,53,54]]]},{"type":"MultiPolygon","id":4471,"properties":{"name":"Bischofszell"},"arcs":[[[179,180,-152,-135,181]]]},{"type":"MultiPolygon","id":4476,"properties":{"name":"Erlen"},"arcs":[[[155,-147,-146,156,157,-50,-154,158]]]},{"type":"MultiPolygon","id":4486,"properties":{"name":"Hauptwil-Gottshaus"},"arcs":[[[134,135,136]]]},{"type":"MultiPolygon","id":4495,"properties":{"name":"Hohentannen"},"arcs":[[[-195,-213,-159,-153,-181]]]},{"type":"MultiPolygon","id":4501,"properties":{"name":"Kradolf-Schönenberg"},"arcs":[[[191,-162,192,-177,193,194,-180]]]},{"type":"MultiPolygon","id":4506,"properties":{"name":"Sulgen"},"arcs":[[[-194,-176,-148,-156,212]]]},{"type":"MultiPolygon","id":4511,"properties":{"name":"Zihlschlac
 ht-Sitterdorf"},"arcs":[[[-136,151,152,153,-49,154]]]},{"type":"MultiPolygon","id":4536,"properties":{"name":"Basadingen-Schlattingen"},"arcs":[[[87,88,89]]]},{"type":"MultiPolygon","id":4545,"properties":{"name":"Diessenhofen"},"arcs":[[[-172,204,-89,-98,205]]]},{"type":"MultiPolygon","id":4546,"properties":{"name":"Schlatt (TG)"},"arcs":[[[97,-88,98]]]},{"type":"MultiPolygon","id":4551,"properties":{"name":"Aadorf"},"arcs":[[[44,-19,45,46,47]]]},{"type":"MultiPolygon","id":4561,"properties":{"name":"Felben-Wellhausen"},"arcs":[[[-26,-25,-225,-130,-178,-91]]]},{"type":"MultiPolygon","id":4566,"properties":{"name":"Frauenfeld"},"arcs":[[[18,19,20,21,22,23,24,25,26,27]]]},{"type":"MultiPolygon","id":4571,"properties":{"name":"Gachnang"},"arcs":[[[-21,206]]]},{"type":"MultiPolygon","id":4590,"properties":{"name":"Hüttlingen"},"arcs":[[[177,-129,178,-116,-92]]]},{"type":"MultiPolygon","id":4591,"properties":{"name":"Matzingen"},"arcs":[[[-46,-28,-97,230,-82]]]},{"type":"MultiPolygon",
 "id":4601,"properties":{"name":"Neunforn"},"arcs":[[[68,-69,-68,-121,190]]]},{"type":"MultiPolygon","id":4606,"properties":{"name":"Stettfurt"},"arcs":[[[-231,-96,-222,-83]]]},{"type":"MultiPolygon","id":4611,"properties":{"name":"Thundorf"},"arcs":[[[-27,90,91,92,93,94,95,96]]]},{"type":"MultiPolygon","id":4616,"properties":{"name":"Uesslingen-Buch"},"arcs":[[[120,-67,121,-23,122]]]},{"type":"MultiPolygon","id":4621,"properties":{"name":"Warth-Weiningen"},"arcs":[[[-24,-122,-75,-124,-127,224]]]},{"type":"MultiPolygon","id":4641,"properties":{"name":"Altnau"},"arcs":[[[-8,-208,-199,232]]]},{"type":"MultiPolygon","id":4643,"properties":{"name":"Bottighofen"},"arcs":[[[-10,-241,-214,-183]]]},{"type":"MultiPolygon","id":4646,"properties":{"name":"Ermatingen"},"arcs":[[[-150,201,202,-106,203,-188,-187]]]},{"type":"MultiPolygon","id":4651,"properties":{"name":"Gottlieben"},"arcs":[[[-189,-204,-105]]]},{"type":"MultiPolygon","id":4656,"properties":{"name":"Güttingen"},"arcs":[[[-200,207,
 -7,208,209]]]},{"type":"MultiPolygon","id":4666,"properties":{"name":"Kemmental"},"arcs":[[[28,29,30,31,32,33,34,35]]]},{"type":"MultiPolygon","id":4671,"properties":{"name":"Kreuzlingen"},"arcs":[[[-11,182,183,-29,184,185]]]},{"type":"MultiPolygon","id":4681,"properties":{"name":"Langrickenbach"},"arcs":[[[-145,196,197,198,199,200,-157]]]},{"type":"MultiPolygon","id":4683,"properties":{"name":"Lengwil"},"arcs":[[[213,214,-197,-144,-133,-30,-184]]]},{"type":"MultiPolygon","id":4691,"properties":{"name":"Münsterlingen"},"arcs":[[[-9,-233,-198,-215,240]]]},{"type":"MultiPolygon","id":4696,"properties":{"name":"Tägerwilen"},"arcs":[[[-185,-36,-151,186,187,188,-104,189]]]},{"type":"MultiPolygon","id":4701,"properties":{"name":"Wäldi"},"arcs":[[[-35,-80,148,149,150]]]},{"type":"MultiPolygon","id":4711,"properties":{"name":"Affeltrangen"},"arcs":[[[117,118,-94,-115,-57,119]]]},{"type":"MultiPolygon","id":4716,"properties":{"name":"Bettwiesen"},"arcs":[[[-85,-224,-232,245,-227]]]},{"typ
 e":"MultiPolygon","id":4721,"properties":{"name":"Bichelsee-Balterswil"},"arcs":[[[-15,168,-48,-81,169]],[[251,-13]]]},{"type":"MultiPolygon","id":4723,"properties":{"name":"Braunau"},"arcs":[[[210,211,-120,-56,-196,-160]]]},{"type":"MultiPolygon","id":4724,"properties":{"name":"Eschlikon"},"arcs":[[[-16,-170,-87,-226,-138]]]},{"type":"MultiPolygon","id":4726,"properties":{"name":"Fischingen"},"arcs":[[[12,13,14,15,16,17]]]},{"type":"MultiPolygon","id":4741,"properties":{"name":"Lommis"},"arcs":[[[-84,221,-95,-119,222,223]]]},{"type":"MultiPolygon","id":4746,"properties":{"name":"Münchwilen (TG)"},"arcs":[[[225,-86,226,227,-139]]]},{"type":"MultiPolygon","id":4751,"properties":{"name":"Rickenbach (TG)"},"arcs":[[[-248,250]]]},{"type":"MultiPolygon","id":4756,"properties":{"name":"Schönholzerswilen"},"arcs":[[[195,-61,-175,-174,-193,-161]]]},{"type":"MultiPolygon","id":4761,"properties":{"name":"Sirnach"},"arcs":[[[-17,137,138,139,140,141]]]},{"type":"MultiPolygon","id":4776,"prope
 rties":{"name":"Tobel-Tägerschen"},"arcs":[[[231,-223,-118,-212]]]},{"type":"MultiPolygon","id":4781,"properties":{"name":"Wängi"},"arcs":[[[80,-47,81,82,83,84,85,86]]]},{"type":"MultiPolygon","id":4786,"properties":{"name":"Wilen (TG)"},"arcs":[[[-141,246,247,248]]]},{"type":"MultiPolygon","id":4791,"properties":{"name":"Wuppenau"},"arcs":[[[159,160,161,162]]]},{"type":"MultiPolygon","id":4801,"properties":{"name":"Berlingen"},"arcs":[[[-234,-229,-219,-108]]]},{"type":"MultiPolygon","id":4806,"properties":{"name":"Eschenz"},"arcs":[[[-112,165,-72,166,167]],[[-114]]]},{"type":"MultiPolygon","id":4811,"properties":{"name":"Herdern"},"arcs":[[[123,-74,124,-38,-37,125]]]},{"type":"MultiPolygon","id":4816,"properties":{"name":"Homburg"},"arcs":[[[36,37,38,39,40,41,42,43]]]},{"type":"MultiPolygon","id":4821,"properties":{"name":"Hüttwilen"},"arcs":[[[66,67,68,69,70,71,72,73,74]]]},{"type":"MultiPolygon","id":4826,"properties":{"name":"Mammern"},"arcs":[[[-111,-110,-221,-39,-125,-73,-1
 66]]]},{"type":"MultiPolygon","id":4831,"properties":{"name":"Müllheim"},"arcs":[[[-128,-43,-78,-179]]]},{"type":"MultiPolygon","id":4841,"properties":{"name":"Pfyn"},"arcs":[[[126,-126,-44,127,128,129]]]},{"type":"MultiPolygon","id":4846,"properties":{"name":"Raperswilen"},"arcs":[[[-79,-41,-220,228,229,-202,-149]]]},{"type":"MultiPolygon","id":4851,"properties":{"name":"Salenstein"},"arcs":[[[-203,-230,233,-107]]]},{"type":"MultiPolygon","id":4864,"properties":{"name":"Steckborn"},"arcs":[[[-109,218,219,-40,220]]]},{"type":"MultiPolygon","id":4871,"properties":{"name":"Wagenhausen"},"arcs":[[[-167,-71,170,171,172]]]},{"type":"MultiPolygon","id":4881,"properties":{"name":"Amlikon-Bissegg"},"arcs":[[[114,-93,115,-77,116,-100,-58]]]},{"type":"MultiPolygon","id":4891,"properties":{"name":"Berg (TG)"},"arcs":[[[130,131,-102,-31,132,133]]]},{"type":"MultiPolygon","id":4901,"properties":{"name":"Birwinken"},"arcs":[[[142,-134,143,144,145,146,147]]]},{"type":"MultiPolygon","id":4911,"pro
 perties":{"name":"Bürglen (TG)"},"arcs":[[[173,174,-60,-103,-132,-131,-143,175,176]]]},{"type":"MultiPolygon","id":4921,"properties":{"name":"Bussnang"},"arcs":[[[55,56,57,58,59,60]]]},{"type":"MultiPolygon","id":4941,"properties":{"name":"Märstetten"},"arcs":[[[-117,-76,-33,-101]]]},{"type":"MultiPolygon","id":4946,"properties":{"name":"Weinfelden"},"arcs":[[[-59,99,100,-32,101,102]]]},{"type":"MultiPolygon","id":4951,"properties":{"name":"Wigoltingen"},"arcs":[[[-34,75,76,77,-42,78,79]]]},{"type":"MultiPolygon","id":9329,"properties":{"name":"Bodensee (TG)"},"arcs":[[[0,1,2,3,4,5,6,7,8,9,10,11]],[[103,104,105,106,107,108,109,110,111,112],[113]]]}]}},"arcs":[[[9238,4387],[-23,101],[-6,43],[30,60],[28,-39],[4,9],[-20,28],[-1,20],[18,55],[-15,45],[-30,56],[-17,11],[-21,38],[-14,7],[-31,-29],[-64,69],[-44,98],[-150,228],[-36,64]],[[8846,5251],[-10,53],[-50,41],[-59,69],[-98,154],[-17,45],[-4,28],[6,44],[-2,36],[-10,-15],[-37,84]],[[8565,5790],[-16,112]],[[8549,5902],[-5,37],[13,127]
 ,[21,16],[-21,5],[-3,100],[15,31],[22,23],[-1,50],[-29,6],[-11,38],[-6,66],[-36,19],[-23,31],[-43,25],[-42,44],[-83,91],[-66,55]],[[8251,6666],[-125,109],[-26,47],[-11,-7],[-79,90],[-73,80]],[[7937,6985],[-49,51],[-39,53],[-43,67],[-32,37],[-14,33],[-38,63]],[[7722,7289],[-73,100],[-28,85],[-19,23],[-61,92],[-25,17],[-51,60],[-43,28],[-58,75],[-26,5],[-14,17]],[[7324,7791],[-28,43],[-36,42],[-29,13],[-43,43],[-21,42],[-6,-23],[-37,27]],[[7124,7978],[-81,66],[-30,45],[-30,21],[-43,72],[-62,56],[-43,16],[-30,-13],[-56,36],[0,36],[-22,27],[-14,-35],[-23,-4],[-25,12],[-12,27],[-30,25],[-6,33],[-27,11],[-4,37]],[[6586,8446],[-61,59],[-16,40],[-6,54],[-17,-7],[-61,2],[-7,9]],[[6418,8603],[-25,35],[-43,31],[-15,31],[-28,-7],[-22,37],[-42,13],[-29,15],[-58,130],[-10,14],[-6,-31],[9,-18],[-10,-8],[-19,21],[19,43],[-14,42]],[[6125,8951],[63,51],[185,-57],[380,57],[158,85],[95,0],[143,-85],[659,-569],[1482,-1278],[95,-142],[614,-1330],[-390,-659],[-371,-637]],[[3001,1639],[22,49],[21,27],[6,-2
 0],[12,16],[-7,25],[27,34],[-9,15]],[[3073,1785],[19,8],[28,-6],[40,-41],[24,3],[8,17],[11,-13],[9,9]],[[3212,1762],[0,-19],[37,-7],[18,27],[15,-16],[3,27],[15,15],[21,-21],[30,-18],[29,-35],[9,14],[35,-7],[21,12],[-3,30],[-21,-1],[-31,30],[18,9],[11,48],[14,-3],[-3,49],[32,23],[0,66],[-7,27],[-17,-31],[-6,7],[-3,43],[-30,-4],[-9,50],[-32,25],[13,52],[19,38],[-2,23],[24,53]],[[3412,2268],[16,-17],[-14,-42],[10,-53],[59,17],[23,-3],[13,-15],[24,-3],[33,25],[14,-74],[4,25],[19,32],[5,-12],[34,-23],[-15,119],[13,-9],[9,25],[18,-18],[-3,-15],[17,-10],[20,21],[37,0],[7,56]],[[3755,2294],[31,17],[31,-29],[35,-69],[-9,-30],[21,-17],[2,-60],[12,-9],[0,23],[21,-7],[16,-17],[20,56],[9,-10],[13,18],[19,-6],[19,-27],[-22,-12],[-2,-24],[17,-74],[10,-5],[9,-71],[22,-48]],[[4029,1893],[-9,-40],[17,-54],[-66,-55],[1,-21],[-27,-4],[-20,22],[-2,-20],[-33,-4],[4,-15],[27,1],[-2,-26],[12,-9],[-9,-30],[13,-22],[-20,-47],[26,-26],[-4,-22],[27,-15],[9,-19],[-16,4],[-20,-50],[10,-13],[-11,-68],[-5,-85],[-1
 2,-46],[12,-13],[-13,-25],[-9,-41],[3,-15],[-39,6],[-26,-4],[-18,34],[-11,-13],[-21,0],[-4,-41],[-27,-6],[-18,-76],[-7,-79],[-17,-13],[-7,-53],[21,-38],[5,-46],[17,-54],[-18,-43],[-11,-90],[-18,-72],[-2,-51],[-32,9],[-9,-11],[-9,-55],[-9,-23],[1,-97],[-16,-28],[-12,33],[-17,0],[-14,-20],[-18,20],[-30,13],[-6,-52],[-28,-93],[5,-11],[-13,-21],[-41,-29],[-21,-4],[-18,-21],[-3,-26],[-25,-16],[-13,-64],[-30,68],[-12,49],[17,74],[11,19],[12,53],[-1,41],[-25,55],[-40,41],[-23,45],[-26,13],[-29,30],[-21,35],[-2,19],[-32,44],[1,37],[-17,32],[-20,17],[-17,33],[-27,30],[-55,13],[-33,14],[0,23],[-14,-9],[-11,15],[-50,-15],[-45,33],[11,24],[3,68],[20,60],[36,74],[1,41],[13,44],[23,32],[2,17],[-5,103],[16,51],[-10,34],[-7,61],[-15,55],[19,166]],[[2950,4860],[4,66],[-9,7],[-12,77],[4,16],[-39,24],[-5,18],[19,19],[-16,96],[-14,-6],[-23,-35],[-18,5],[-2,-35],[-25,-27],[-20,-49],[-19,-4],[-44,-26],[2,35],[-13,-2],[-13,-22],[-17,-70],[-11,-20],[19,-43],[4,-23],[-29,-36],[-10,-31]],[[2663,4794],[-15,-1
 6],[-35,46],[-39,-57],[3,-19],[-75,71],[-54,28],[-38,4]],[[2410,4851],[18,34],[8,44],[23,29],[15,-5],[-13,45],[-26,28],[1,72],[9,30],[-16,30],[2,19],[18,5],[5,20],[18,-3],[2,46],[14,-6],[79,31],[5,77],[-23,-3],[-22,-15],[-7,24],[-1,96],[-31,15],[-25,34],[-16,71],[37,13],[-12,98],[-55,-11],[13,12],[-10,45],[-10,-2],[6,27],[-22,71],[-26,-3],[2,110],[12,99],[-110,50],[-11,-87],[-28,7],[-14,-97],[-4,-9]],[[2215,5892],[-80,-14],[6,91],[-32,8],[-5,-16],[-30,-19],[0,99],[-18,3],[11,83]],[[2067,6127],[21,4],[-16,32],[18,45],[3,63],[45,-12],[3,52],[45,-9],[16,4]],[[2202,6306],[52,-3],[105,24],[0,4],[97,20],[125,34],[3,24],[36,10],[78,29],[142,99],[139,95]],[[2979,6642],[0,-76],[19,-60],[9,-45],[43,-54],[-27,-41],[6,-23],[14,-112],[8,-40],[9,-14]],[[3060,6177],[-5,-24],[9,-24],[19,5],[25,28],[6,-13],[7,-71],[-2,-49],[34,28],[13,-19],[12,-53],[7,30],[50,14],[12,-7],[6,-99],[25,-35]],[[3278,5888],[21,-135],[15,16],[11,-29],[14,-75],[10,-10],[-24,-39],[-27,-18],[-22,-32],[4,-17],[-31,-8]],[[3249
 ,5541],[4,34],[-50,-15],[-11,-39],[-31,-48],[10,-24],[-18,-34],[-21,-63],[-3,-49],[5,-1],[2,-98],[15,-24],[-10,-50],[-4,-71],[-35,-81],[-18,-48],[14,-29],[-10,-26],[10,-24],[-9,-18],[-16,17],[-25,2],[-9,-22],[-70,10],[-19,-10],[0,30]],[[5638,8214],[1,-25],[16,-42],[28,1],[2,-27],[16,-20],[2,-26],[14,-7],[45,-63],[55,-71],[17,-28],[-7,-31],[37,-5],[37,-17],[32,5],[-7,44],[-7,-1],[1,43],[-39,18],[-18,20],[45,159],[1,40],[-8,7],[8,44],[29,3],[4,64],[38,-34],[1,16],[17,-21],[-9,-46],[53,-35],[-10,-41],[-5,5],[-10,-58],[34,-22],[7,-40],[13,-23],[-19,-94],[13,-17],[-22,-18]],[[6043,7871],[-12,-40],[81,-102],[-8,-19],[21,-110],[27,-26],[16,2],[-4,-61],[8,-3],[-4,-87],[9,-4],[-5,-31]],[[6172,7390],[-18,-4],[-9,-47],[-18,-66],[-14,-93],[-15,-19],[-3,-27],[-27,1],[3,-76],[0,-90],[7,-58],[-41,-73],[-22,24],[-39,-18],[-14,34],[-33,31],[-29,-104],[-13,4],[-122,76],[-15,5],[0,-89],[-28,7],[-16,-66]],[[5706,6742],[-12,17],[-30,7],[-3,-24],[-51,14],[-19,21],[-4,-26],[-20,1],[0,-66],[-11,-14],[-47,-
 9],[-35,-30],[-15,-6],[-1,32],[-48,9],[-32,-15],[-24,4],[-23,-23],[-14,23],[-13,43]],[[5304,6700],[-39,43],[7,62],[31,78],[-7,73],[-39,-3],[-5,32],[-55,-7],[-5,-15],[-27,-11],[0,39],[7,13],[-14,95],[16,15],[10,60],[-6,35],[11,39],[-14,45]],[[5175,7293],[20,-4],[0,27],[11,6],[-13,34],[-16,19],[-5,24]],[[5172,7399],[8,18],[25,20],[7,31],[-1,31],[16,20],[5,47],[26,24],[18,60],[-13,24],[30,43],[81,132],[7,23],[-30,1],[0,11]],[[5351,7884],[8,46],[16,2],[20,73],[4,50],[-4,44],[16,61],[20,27],[19,0],[31,26],[83,-27],[53,24],[21,4]],[[3506,7954],[-12,16]],[[3494,7970],[-34,48],[-18,4],[-27,-21],[-14,7],[-7,38],[-19,-3],[-20,25],[-49,-2],[-2,17],[-42,1],[-13,-20],[-9,42],[-14,-3],[-11,56],[-45,9],[-20,20],[-17,2],[-14,33],[1,44]],[[3120,8267],[28,-2],[21,57],[38,54],[32,19],[13,17],[17,79],[-12,48],[19,7],[9,-29],[27,63],[23,41],[29,29]],[[3364,8650],[2,-33],[17,10],[69,5],[20,13],[46,-50],[13,23],[9,-24],[18,-12],[16,-29],[14,13],[14,65],[29,3],[20,-23],[57,39],[7,-24],[18,17],[30,-5],[39,-
 21],[-4,107],[14,33],[19,-35],[41,-26],[76,44],[18,1],[39,-21],[2,-16],[16,9],[-12,60],[2,29],[14,-5],[17,13],[62,17],[-2,20],[36,-9],[1,-39],[10,-50],[20,-16],[18,2],[9,49],[8,71],[11,3],[38,-20],[30,-3],[48,9]],[[4333,8844],[6,-35],[-4,-18],[56,22],[23,-12],[-16,-30],[2,-21],[-9,-29],[-38,-23],[-11,-43],[-8,-61],[37,15],[13,30],[1,-55],[-5,-17],[15,-50],[10,-15],[-15,-42],[1,-17],[-13,-74],[24,-58],[-2,-38],[-27,-71],[-34,-25],[0,-47],[-23,-10],[-4,-57],[-12,-27],[-23,-29],[-4,-24],[-18,-23],[-11,-38],[-14,-21],[-27,-9],[-7,-42],[10,-15],[-1,-46],[15,-20]],[[4220,7769],[-11,-13]],[[4209,7756],[-15,-21],[-16,6],[-44,-17],[-4,13],[-26,-28],[-13,10],[-13,-20],[-5,-27],[-27,-27],[-30,-9],[-64,-7],[1,-28],[-12,-9],[-73,4],[0,-55],[-12,-62],[28,-57],[-16,-9],[-100,-28]],[[3768,7385],[-3,25],[6,26],[-61,-1],[-6,14],[-46,-3],[-31,-10],[8,35],[-43,-18],[-18,-18],[-11,59],[16,19],[-18,97],[4,36],[-18,17],[-1,29],[29,25],[9,44],[-13,26],[-8,35],[5,36],[-5,27],[-25,37],[-20,10],[-12,22]],[[27
 64,2734],[-2,15],[-28,20],[23,31],[-23,20],[-14,74],[-2,33],[-42,8],[-7,15],[-20,-13],[-15,15],[-3,32],[14,38],[0,44],[-34,22],[1,14],[33,61],[-1,68],[11,54],[-4,32],[33,26],[7,-5],[22,25],[45,34],[30,17],[10,17],[-11,85],[-24,23],[-24,-6],[6,184],[-4,100],[-8,2],[0,98],[11,3],[15,64],[4,30],[10,9],[11,35],[-11,13],[15,76],[-4,92],[-11,76],[6,92],[-4,41],[5,11],[-22,49],[21,60],[14,92],[-7,-1],[-13,51],[-57,35],[-25,-1],[-22,21],[-6,29]],[[2950,4860],[-24,-13],[-3,16],[-21,-44],[2,-61],[7,2],[1,-53],[20,4],[-2,-53],[9,-2],[-2,-33],[7,-54],[-4,-43],[-10,-12],[6,-30],[-2,-53],[18,-23],[17,-47],[-8,-3],[-3,-36],[104,-50],[52,-34],[47,-50],[10,-52],[16,31]],[[3187,4167],[48,-66],[34,-64],[41,-103],[20,-58],[-25,-27],[2,-25],[-43,-23],[-5,43],[-52,-14],[-38,-25],[-16,-28],[9,-86],[-19,-59],[-15,11],[-7,-25],[-23,20],[-11,-86],[27,-15],[13,4],[0,-32],[9,-10],[0,-35],[13,-1],[-1,-52],[38,-2],[0,-42],[-8,-46],[5,-39],[18,8],[1,-31],[23,-7],[3,-46],[37,-9],[6,-31],[-8,-15],[-1,-32],[27,5],[-
 11,-30]],[[3278,3094],[-9,-2],[-2,-30],[5,-38],[-9,-21],[-31,14],[-6,-26],[-18,-24],[20,-36],[-12,-51],[14,-13],[-14,-39],[11,-29],[-8,-5],[-32,21],[-7,-32],[11,-12],[-8,-32],[10,-7],[-11,-26],[12,1],[0,-46],[-10,-19],[-19,19],[-17,-4],[-44,9],[13,46],[-14,-4],[-7,32],[5,31],[-17,3],[-24,-14],[-5,17],[-60,-57],[-14,5],[22,84],[-34,-11],[-4,26],[-15,30],[-13,-37],[-16,-10],[-13,28],[-8,-10],[-16,-77],[11,-44],[-36,-11],[-44,30],[-18,-1],[-33,12]],[[7511,4803],[-20,30],[-3,45],[-42,-75],[-16,-12],[-21,72],[-13,-6],[-12,-35],[-33,-31],[-11,17],[0,34],[-8,60],[-12,2],[2,63],[-23,6],[-3,23],[-57,62],[-3,20],[-54,-9],[-1,-15],[-43,11],[4,12],[-49,-15],[-63,0],[-28,-12]],[[7002,5050],[-9,1],[8,81],[37,19],[-17,89],[-2,34],[-22,2],[-2,44],[-12,-2],[-9,70],[-20,-2],[3,83],[19,1],[-2,112],[-16,24],[36,32],[-2,51],[45,-6],[0,29],[48,10],[27,16],[7,38],[-12,2],[-7,30],[8,6],[-7,48],[-9,-1],[-9,88],[21,-2],[-7,72],[5,60],[-8,76],[33,3],[27,27],[3,30]],[[7157,6215],[39,-4],[3,-26],[24,3],[3,-39],
 [15,3],[3,19],[17,-2],[-4,-45],[42,13],[11,-52],[40,10],[9,-26],[32,15],[20,-46],[13,-16],[2,-43],[26,8],[3,-59],[68,9]],[[7523,5937],[20,-94],[20,18],[11,-52],[72,29],[33,-14],[15,4],[0,-44],[17,-43],[7,-55],[-14,-24],[18,-8],[6,-132],[24,-22],[54,-28],[38,-12]],[[7844,5460],[12,-36]],[[7856,5424],[-18,-56],[67,-43],[44,-33],[-4,-54],[44,-13],[18,-14],[40,-15],[-17,-72],[28,-27]],[[8058,5097],[-6,-14],[-7,-65],[-17,-9],[-59,23],[-28,3],[-11,-40],[-53,23],[-15,32],[4,42],[-10,12],[-9,-35],[-41,25],[-12,-26],[-25,-21],[16,-49],[-30,-7],[-20,-31],[9,-33],[8,-54],[-1,-39],[-10,-45],[-33,42],[-3,25],[-17,33],[-16,14],[-51,16],[-16,-73],[-61,10],[0,-25],[-11,-32],[-22,4]],[[5165,4286],[-15,19],[11,44],[1,52],[-12,15],[5,22],[-11,10],[-22,68],[-5,-13],[-24,21],[-39,-2],[-3,-29],[-16,15],[-4,30],[-11,9]],[[5020,4547],[19,-4],[-18,22],[0,39],[-25,-9],[4,91],[-15,11],[0,93],[-5,22],[6,22],[29,31],[0,-14],[17,-15],[-6,82],[-1,64],[-14,4],[-6,46],[-50,16],[13,9],[-3,87],[-10,39],[-17,-10],[-1,
 14],[-26,-32],[10,38],[-4,54],[-26,108],[-34,88],[-1,13],[-30,-22],[-23,-8],[7,-31],[-46,-10],[7,-58],[-25,-1],[-12,16],[-63,-20],[-13,12],[-4,24],[-53,-9],[3,-32],[-43,-28],[-5,47],[-34,-26],[-15,-27],[-26,72],[14,11],[-6,20],[22,94],[13,35]],[[4524,5515],[27,7],[27,-20],[24,17],[37,8],[32,61],[-25,20],[9,33],[30,6],[0,39],[33,-6],[19,17],[7,39],[9,-9],[26,39],[0,13],[26,32],[14,53],[-4,6],[13,59],[-43,24],[15,82],[26,53]],[[4826,6088],[38,-55],[141,-154],[29,-27],[41,-25],[142,-61],[31,-28],[51,-62],[153,-121],[31,-10],[54,-6]],[[5537,5539],[-12,-46],[62,-28],[15,-19],[1,-35],[-47,-11],[-1,-111],[21,-4],[66,-34],[-3,-19],[12,-20],[1,-33],[14,-20],[-4,-27],[25,-22],[-3,-27],[14,-16]],[[5698,5067],[-38,-38],[1,-25],[23,2],[8,-78],[-25,17],[-8,-99],[-14,3],[-3,-24],[-25,16],[-5,-18],[-12,5],[-13,-50],[0,-37],[-32,-3],[-8,19],[-24,-20],[0,-36],[-20,12],[-3,63],[-25,-24],[10,38],[-10,10],[-36,-2],[-44,37],[-32,7],[-6,12],[-26,-1],[-17,-11],[-10,-30],[-24,-30],[-42,-1],[-28,25],[-15,-26
 ],[29,-33],[-6,-53],[-12,1],[-5,-99],[21,-8],[-1,-28],[24,-1],[-9,-32],[-20,2],[4,-92],[15,-45],[10,-9],[-9,-49],[6,-10],[-32,-49],[-45,11]],[[8786,5007],[-5,-6],[-39,9],[-1,9],[-52,8],[-24,-22],[-16,-70],[-12,8],[-7,-45],[13,-10],[-9,-65],[0,-27],[10,-11],[-14,-51],[-11,0],[-6,-25],[-4,-99],[31,-10],[1,-67],[4,-22],[-16,-6],[2,-28],[-42,-45],[-62,5],[-3,50],[-18,17],[-4,-37],[-38,2],[-11,-44],[-14,-11],[-3,-44],[-6,2],[-13,-87],[-13,1],[-16,-73],[-18,-40]],[[8370,4173],[-33,32],[-3,-11],[-48,25],[-19,1],[5,-46],[-6,-35],[-47,16],[-29,-3],[-36,16],[-18,22],[-39,31],[-25,-16],[-11,-30],[3,-18],[-15,-30],[-17,47],[22,145],[26,2],[33,-12],[12,58],[22,-7],[12,59],[11,-1],[3,44],[-32,19],[30,68],[18,9],[6,37],[16,1],[21,-15],[20,47],[7,1],[5,103],[-7,7],[-32,-21],[-31,20],[-48,12],[-32,-14],[1,25],[-25,32],[-8,31],[-1,35],[-27,29],[14,51],[-5,115],[-5,43]],[[7856,5424],[22,-3],[36,16],[6,23],[18,7],[15,30],[49,11],[-2,18],[31,10],[30,28],[42,3],[26,12],[37,0],[74,22],[33,-11],[31,-24],[4
 4,-16],[13,9],[20,46],[25,19],[11,56],[35,19],[7,24],[29,32],[77,35]],[[8846,5251],[-20,-19],[-21,-38],[4,-7],[-16,-61],[-7,-119]],[[8238,4482],[9,-75],[43,-37],[10,76],[-28,28],[1,14],[-35,-6]],[[2348,7010],[-45,12],[-37,39],[-5,55],[4,31],[-43,-11],[-1,10],[-38,-14],[-13,32],[-29,13],[2,73],[-56,9],[-13,51],[1,46],[-11,40],[-32,18],[-11,-58],[-33,-47],[-21,-14],[-22,6],[-24,24],[-14,2],[-3,-48],[15,-25],[-8,-9],[-12,-44],[-23,13],[-4,-44],[-19,9],[-17,-89],[-18,-7],[-7,14],[-11,-16],[-48,-18],[-4,-44],[6,-52],[-35,14]],[[1719,6981],[-6,55],[-46,5],[5,18],[-5,62],[-8,-1],[-9,45],[16,15],[-11,85],[-14,14]],[[1641,7279],[0,1]],[[1641,7280],[-9,12],[10,30],[-1,72],[9,64],[22,15],[21,-3],[1,33],[22,3],[10,37],[21,6],[10,21],[-19,5],[5,27],[-16,24],[17,18],[-3,35],[11,1],[8,32],[-17,-4],[10,25],[-25,9],[7,55],[12,-8],[1,47],[-7,0],[2,56],[12,-6],[5,24],[11,-3],[4,28],[22,-14],[1,47],[30,-13],[6,37],[-7,3],[32,82],[20,25],[-11,15],[12,37],[6,60]],[[1886,8214],[37,-16],[120,-64]],[[2043,8
 134],[32,-164],[13,-2],[18,31],[16,-9],[-5,-52],[6,-23],[27,-29],[43,10],[3,-22],[41,8],[78,-25],[-5,-34],[8,-28],[46,-26],[12,-25],[41,-58],[135,-51],[20,-21],[8,-22],[20,-2],[20,51],[46,35],[36,18],[17,40],[31,28],[-5,32],[14,3],[-16,16],[-9,50],[-7,12],[21,25],[22,42]],[[2770,7942],[39,46]],[[2809,7988],[14,-14],[9,-39],[29,-6],[17,38],[26,-47],[24,-73],[23,-50],[-36,-38],[-28,9],[-16,23],[-20,-75],[-24,-45],[-26,-18],[-12,-33],[-19,-18],[-26,1],[-21,-34],[-21,-17],[-14,-30],[-6,-34],[-25,-48],[13,-45],[14,-18],[23,-53],[20,-26],[35,-6],[-17,-13],[-44,6],[-38,-10],[-22,10],[-19,-60],[-13,-2],[-7,-58],[16,-136]],[[2618,7029],[0,-67],[-34,7],[-3,-20],[-45,10],[-12,10],[-90,32],[-22,19],[-6,-7],[-57,6],[-1,-9]],[[5175,7293],[-12,-4],[-1,-27],[-37,12],[-47,-22],[-8,10],[-22,-10],[-10,-19],[-21,-2],[-36,-51],[-50,-10],[-22,4],[-20,-23],[-30,-18],[-23,19],[-24,-9],[-17,6],[-13,-20],[-19,-46],[-20,1],[-12,-30],[-18,8],[-29,27],[-13,-1],[-25,-33],[1,-64],[-14,-103],[-27,-46],[16,-20],[-8
 ,-46],[11,-11],[-6,-50],[-3,-71],[-39,-1],[0,-58],[-13,-29],[22,-120],[4,-38],[-8,-77]],[[4582,6321],[-117,8],[-28,14],[-227,179]],[[4210,6522],[10,50],[-6,5],[10,69],[-27,34],[-22,41],[-29,8],[-37,-15],[-24,-40],[-14,32],[-9,68],[21,79],[22,-33],[1,19],[39,81],[12,76],[-53,29],[40,86],[31,56],[30,39],[41,39],[64,45],[4,50],[11,0],[-6,87],[-22,-4],[-7,57],[-55,-13],[-1,23],[9,40],[20,8],[-3,57],[-39,-6],[-2,55],[37,3],[-9,82],[-27,-12],[-11,39]],[[4220,7769],[32,6],[24,26],[7,-6],[37,20],[10,-3],[29,20],[33,-3],[13,11],[12,-10],[48,16],[15,15],[16,-4],[49,31],[22,-12],[30,25],[17,-25],[-2,-20]],[[4612,7856],[6,-20],[-17,-26],[-13,-5],[-28,-38],[1,-95],[5,-27],[-15,-15],[-11,6],[-24,-53],[20,-28],[7,-82],[22,4],[-1,-20],[28,17],[82,36],[80,22],[77,9],[81,1],[56,-13],[53,-4],[10,-11],[79,16],[20,16],[4,-16],[18,-3],[5,-24],[-4,-31],[-12,-14],[-2,-24],[33,-35]],[[3399,2919],[-7,-18],[-14,26],[-18,10],[4,47],[-22,22],[-7,25],[-10,-2],[-19,-32],[-14,11],[7,60],[-2,23],[-19,3]],[[3187,416
 7],[45,56],[14,24],[23,73],[9,-3]],[[3278,4317],[48,-44],[16,22],[22,-22],[21,23],[31,-40],[1,8],[27,-36],[30,14],[3,19],[17,1],[-5,35],[19,8],[5,24],[32,1],[-5,42],[41,-8],[37,-26],[33,-9],[-4,14],[23,1],[41,19]],[[3711,4363],[8,-79],[20,13],[4,-74],[5,-14],[32,26],[12,-41],[23,30],[18,-45],[1,-44],[22,2],[1,-51],[31,-66],[21,-12],[13,7]],[[3922,4015],[21,-41],[0,-17],[19,-8],[10,-86]],[[3972,3863],[-11,-17],[-17,12],[-21,-47],[-9,-62],[31,-33],[-14,-34],[-54,26],[-28,-1],[1,-28],[-10,-1],[10,-30],[-26,-30],[-10,-41],[4,-16],[-28,-42],[-22,-50],[6,-38],[-11,-16],[5,-38],[-13,-36],[-51,66],[-6,31],[-31,-37],[-6,-23],[-28,33],[-5,-36],[-16,-22],[16,0],[14,-20],[-20,-27],[-2,-38],[17,-10],[-6,-67],[-18,-7],[-2,-49],[-14,2],[0,-42],[-19,-24]],[[3578,3071],[-17,4],[-9,-14],[-26,-17],[-11,-36],[-19,21],[-6,-28],[-19,-11],[-26,14],[-14,24],[-20,-8],[-1,-31],[11,-23],[-22,-28],[0,-19]],[[769,8323],[5,30],[-35,20],[2,39],[10,32],[4,50],[-13,43],[-1,30],[29,9],[3,34],[-12,4],[-35,-9],[-33,1]
 ,[-26,35],[-8,61],[5,55],[0,51],[-13,7],[0,37],[8,65],[16,40],[-29,-1],[0,83],[-24,133]],[[622,9172],[27,15],[-5,36],[16,3],[-5,41],[5,2],[-16,53],[33,-22],[55,9],[26,-17],[3,15],[84,37],[0,44],[29,-1],[26,21],[-6,17],[33,-16],[15,23],[-13,86],[0,25],[46,-35],[45,-1],[0,-77],[98,23],[-13,56],[10,19],[41,-6],[3,-21],[51,-15],[6,-65],[-7,-29],[-23,-38],[28,7],[9,-33],[-9,-19],[43,-40],[7,1],[14,-58],[-16,-33],[18,-2],[16,-21],[2,29],[14,10],[15,-11],[16,27],[15,-10],[31,30],[16,-4],[9,31],[36,-30],[24,-5],[13,-25],[72,-10],[1,-50],[-3,-64]],[[1557,9074],[-62,-11],[-24,4],[-32,16],[-8,-71],[-14,-76],[1,-83],[-8,-12],[2,-80],[-7,-4],[-34,-83],[-18,-25],[-30,-23],[-9,-16],[-18,-53],[-23,-2],[-16,32],[-20,-2],[-28,11],[-25,-35],[-22,-9],[-28,-81],[-32,-25],[-13,-58],[-14,-23],[-21,2],[-5,-34],[-38,11],[0,-36],[-28,5],[-17,-21],[-12,-68],[-23,24],[-22,10],[-6,83],[6,19],[-32,-27],[-32,-11],[-21,14],[-16,-37],[-39,24]],[[3278,5888],[15,1],[14,-16],[19,11],[15,32],[21,-35],[25,23],[21,3],[3,
 25],[12,27],[10,-34],[30,-21],[39,20],[33,31],[14,3],[20,-30],[17,-5]],[[3586,5923],[22,-9],[21,-25],[32,27],[18,28],[40,11],[55,-8],[51,37],[-3,58],[2,55],[10,-13],[32,-12],[21,-19],[34,-8],[17,-23],[17,20],[5,-75],[-3,-21],[28,-1],[-7,-43],[9,5],[0,-37],[27,-2]],[[4014,5868],[4,-42],[12,-81],[16,-27],[12,-62],[-4,-54],[-22,-51],[-6,-58],[-7,-1],[-5,-46],[-50,-27],[0,-51],[32,11],[46,0],[22,18],[10,-11],[-5,-35],[13,-45],[33,44],[9,-42],[16,-19]],[[4140,5289],[13,-18],[11,-35],[6,-56],[-11,-17],[-10,-107]],[[4149,5056],[-14,23],[-32,-39],[-4,-26],[-20,-16],[-6,16],[-29,-21],[-6,31],[-13,-44],[-28,-3],[-8,40],[-16,-39],[-29,-4],[-8,-41],[-7,61],[-15,12],[-27,-31],[-8,-35],[-18,-23],[-13,13],[-44,-35],[-20,9]],[[3784,4904],[-16,28],[-23,1],[-55,26],[4,79],[-78,30],[-35,3],[-16,13],[-3,19],[-22,0],[-22,-12],[-4,27],[-31,-14],[-10,34],[-42,-27],[-9,69],[-15,15],[-31,-14],[-21,13],[-13,-10],[-21,24],[-18,-26],[-20,9]],[[3283,5191],[7,17],[-16,37],[36,24],[-9,16],[18,16],[-18,80],[-33,30
 ],[-24,10],[4,72],[-13,15],[14,33]],[[394,9900],[0,-48],[8,-70],[7,-27],[30,11],[8,-29],[-2,-185],[1,-37],[21,-117],[37,5],[39,77],[10,-6],[3,-77],[31,-107],[21,-59],[14,-59]],[[769,8323],[-26,27],[-58,5],[-13,-15],[-1,-23],[-38,0],[-3,-25],[-35,21],[-10,43],[-18,-3],[-7,40],[-35,-22],[-29,-58],[-8,13],[-56,55],[-10,33],[-21,18],[-7,40],[-21,-1],[-3,22],[-43,10],[-19,-2],[-34,44],[-28,18],[2,39],[-18,72],[-25,-6],[-2,56],[-17,16],[-12,55],[-22,22],[-13,47],[3,36],[-22,56],[-5,103],[16,0],[4,29],[-4,57],[-14,-5],[-8,51],[0,46],[-16,26],[-25,16],[-51,56],[-17,78],[19,136],[-4,47],[0,61],[16,4],[88,81],[17,35],[65,99],[10,24],[17,61],[12,22],[27,15],[46,-35],[41,-25],[40,-38]],[[4826,6088],[67,138],[6,33]],[[4899,6259],[32,19],[-7,60],[13,-10],[31,67],[6,23],[39,97],[19,40],[-6,11],[27,33],[11,37],[68,67],[73,-27],[-6,-11],[38,-17],[35,1],[25,24],[7,27]],[[5706,6742],[14,-26],[-9,-33],[9,-39],[-11,-35],[11,-41],[-9,-14],[-16,-63],[7,-42],[22,-69],[0,-57],[7,-26],[-14,-12],[-14,24],[-34
 ,-13],[-8,12],[8,-63],[-16,-42],[-12,-16],[-3,-71],[4,-5],[-8,-68],[5,-4],[53,6],[-3,-116]],[[5689,5929],[-65,-8],[-25,8],[-26,-150],[-11,-85],[-25,-155]],[[5830,9252],[-41,-22],[-37,14],[-26,21],[-17,-24],[-22,-19],[-4,-16],[-39,-39],[-27,-12],[-12,8]],[[5605,9163],[-16,23],[-61,39],[-29,7],[-35,21],[-19,2],[-40,-27],[-34,7],[-2,-23],[-20,-3],[-4,15]],[[5345,9224],[-14,-7],[-25,13],[-56,7],[-38,-25],[-19,-1],[-1,13],[-41,23],[-28,-19],[-20,3],[-37,61],[-22,61],[-2,42],[-27,68],[-45,15],[-5,11],[-24,-1],[-14,-15],[-13,-63],[-43,-46],[-22,7],[-44,56],[-24,54],[-21,5],[-25,-12]],[[4735,9474],[-9,-10],[-54,-3],[-36,18],[-39,-21],[-26,6],[1,10],[-43,2],[-21,-41],[-30,-9]],[[4478,9426],[-24,1],[-36,48],[-24,14],[-12,-25],[-18,-17],[-46,-14],[-37,-22],[-27,2],[-28,28],[-3,19],[-18,24],[-41,-4],[1,12],[-26,-24],[-7,-40],[-25,-33],[-22,0],[-39,-15],[-43,-23]],[[4003,9357],[-14,-8],[-25,8],[-36,-14],[-12,-17],[-58,-49],[-38,-22],[-31,33],[-23,-1],[-36,-47],[-10,-40],[-1,-46],[-22,-26],[-52,1
 6],[-13,-33],[-17,-65],[7,-60],[-22,-32],[-51,-46],[-35,-41],[-17,-3],[-40,42],[-22,-33],[-4,-26],[-27,-43],[-26,-16],[-23,31]],[[3355,8819],[-20,-4],[-39,-77],[-11,-4],[-44,8],[-26,-33],[-28,10],[-22,-1],[-20,14],[-25,-78],[-36,-47],[-24,-46],[-26,-26],[-29,23]],[[3005,8558],[-20,12],[-1,24],[-13,-1],[-19,-27],[-13,6],[-12,-18],[-36,-31],[-18,-47],[-22,-31],[-26,-12],[-48,4],[-36,-5],[-25,24]],[[2716,8456],[-32,-11],[-16,14],[-24,54],[-42,65],[-27,79],[-8,48],[-12,13],[-60,33],[-12,0],[-22,-59],[-24,4],[-14,-13],[-17,14],[0,45],[-11,9],[-26,-15],[-42,45]],[[2327,8781],[29,38],[21,-3],[65,-62],[53,35],[25,-16],[45,-11],[61,-65],[54,-84],[50,-38],[31,-2],[80,60],[63,54],[50,29],[37,12],[55,30],[49,44],[19,12],[53,18],[68,2],[37,23],[42,93],[26,42],[52,54],[81,56],[21,11],[55,44],[66,90],[50,61],[55,105],[51,65],[108,93],[84,80],[35,30],[82,84],[68,53],[38,20],[46,8],[33,-5],[93,-36],[117,-56],[57,-24],[119,-43],[126,-32],[119,-17],[141,-3],[82,-25],[30,-14],[34,-27],[162,-225],[196,-
 97],[67,-56],[28,1],[64,70],[41,49],[15,-3],[74,-51]],[[2379,8781],[-3,26],[-17,6],[-2,-25],[22,-7]],[[4524,5515],[-10,9],[-22,-5],[-1,21],[-31,1],[-33,-15],[-28,-35],[-16,-43],[-17,-13],[-29,-38],[-28,12],[-9,29],[-23,23],[-29,-33],[3,-10],[-30,-33],[-9,12],[-45,-85],[-27,-23]],[[4014,5868],[11,19],[12,-13],[-2,-31],[48,14],[13,16],[17,2],[6,24],[-1,53],[15,32],[-8,47],[12,58],[-38,35],[9,29],[8,-2],[16,49],[-4,18],[15,20],[-16,45],[10,22],[25,-3],[13,56],[19,-26],[14,23],[-8,21],[-6,56],[3,40],[6,-1],[7,51]],[[4582,6321],[45,-5],[49,-23],[13,99],[57,-31],[9,37],[9,-16],[21,9],[16,-42],[10,24],[39,-26],[-17,-46],[24,-18],[12,12],[5,-17],[25,-19]],[[4811,4617],[-35,-33],[-20,16],[-18,37],[-27,19],[-13,31],[-29,-19],[9,-24],[-31,-25],[-20,56],[-42,-35],[8,53],[-16,-8],[-12,56],[-13,-3],[-44,-37],[-63,-34],[-13,1],[-3,22],[-35,-24],[-2,7],[-33,-41],[-7,-28],[-20,-16],[-9,-62],[-16,-46],[-13,10],[-45,-46],[-49,-79]],[[4200,4365],[-8,22],[10,8],[-13,37],[2,37],[-16,38],[6,9],[-34,95],[3
 3,27],[-8,42],[-17,57],[7,33],[-13,47],[-23,-20],[-14,37],[-9,-10],[-12,32],[39,47],[-9,44],[12,61],[17,16],[-1,32]],[[5020,4547],[-16,1],[-2,-16],[-37,8],[-20,24],[-6,55],[-39,-14],[-1,20],[-89,8],[1,-16]],[[1576,6548],[23,148],[24,-14],[9,45],[-17,11],[19,55],[0,26],[11,23],[-1,66],[23,-7],[4,14],[19,-2],[0,16],[31,19],[-2,33]],[[2348,7010],[-20,-299],[7,-15],[-32,-22],[-1,-43],[28,-24],[-6,-13],[-45,-4],[-28,14],[2,-27],[-16,0],[-41,17],[3,-70],[14,-1],[4,-164],[-16,-24],[1,-29]],[[2067,6127],[-90,65],[-8,-19],[-7,-52],[-74,41],[-17,18],[-4,-46],[-20,24],[-8,-32],[-29,16],[-7,-56],[-34,0],[-76,41],[6,87],[-40,20],[11,67],[-5,5],[10,71],[-60,30],[11,68],[5,7],[36,-22],[6,32],[-97,56]],[[2930,6836],[-10,7],[-1,43],[-28,34],[-14,1],[-5,21],[-49,13],[-34,35],[-28,2],[-16,12],[-57,8],[-20,-13],[-50,30]],[[2809,7988],[29,33],[39,-2],[16,-25],[16,34],[17,-26],[15,-5],[21,17],[13,92],[-10,38],[6,20],[59,19],[6,31],[33,8],[27,36],[24,9]],[[3506,7954],[-14,-38],[-37,-159],[-32,26],[-127,-1
 08],[16,-33],[19,-23],[-53,-9],[0,-32],[25,-109],[16,-47],[-37,-29],[-47,-15],[-34,-23],[-44,11],[-31,-7],[-21,-56],[9,-29],[5,-131],[-5,-64],[-32,-36],[9,-40],[-6,-22],[-60,-49],[-72,-35],[-9,5],[-1,-31],[-13,-35]],[[3001,6657],[-3,29],[-17,62],[-15,-6],[-2,39],[-12,36],[-22,2],[0,17]],[[3768,7385],[-4,-131],[4,-38],[13,-35],[3,-118],[-2,-104],[20,-168],[0,-10]],[[3802,6781],[-36,9],[-40,2],[-233,-24],[-40,-6],[-52,-16]],[[3401,6746],[-189,-60],[-34,-7],[-146,-8],[-31,-14]],[[6331,6349],[-11,-25],[0,-37],[10,-51],[-7,-29],[-20,-25]],[[6303,6182],[-60,-43],[-5,-25],[-31,-36],[-17,0],[-12,-29],[-41,52],[-15,49],[6,1],[0,67],[-45,-9],[-2,-26],[-50,-22],[28,-180],[-69,1],[-18,-9],[2,-55],[-15,1],[2,-57],[-86,58],[-58,25],[-128,-16]],[[6172,7390],[32,0],[8,-10],[-19,-54],[21,-2],[4,-32],[34,-5],[19,-47],[14,-18],[8,-30],[11,20],[0,28],[26,0],[-1,15],[63,-86],[20,-39],[-19,-27],[12,-20],[2,-45]],[[6407,7038],[-14,8],[-18,-20],[-7,23],[-16,-49],[-15,22],[-31,6],[-18,-56],[-36,-20],[-13,-5
 0],[-23,-22],[10,-99],[-1,-45],[-9,-7],[7,-43],[16,-11],[3,-33],[-15,-44],[6,-57],[8,-29],[16,-25],[6,10],[14,-41],[0,-52],[32,16],[22,-71]],[[6878,3454],[54,21],[34,44],[13,8],[1,29],[-10,4],[4,57],[-4,29],[12,56],[42,52],[35,47],[24,17],[11,32],[24,42],[-10,6],[-20,46],[-11,1],[-14,28],[14,11],[-14,48],[-33,44],[-7,61],[-11,36],[12,-9]],[[7024,4164],[12,-25],[21,13],[38,42],[25,-37],[53,73],[10,0],[47,-53],[36,-29],[21,-33],[-6,-14],[10,-22],[18,15],[25,43],[26,91],[20,35],[16,-4],[5,-25],[-4,-48],[8,-77],[14,-31],[85,-102],[26,-10],[17,39],[14,6],[79,-42],[8,19],[-25,72],[3,42],[22,45],[31,10],[20,-22]],[[7699,4135],[9,-19],[-11,-71],[2,-27],[22,8],[39,71],[21,19],[26,-10],[10,-21],[22,-78],[-8,-100],[22,-103],[-16,-3],[-27,-53],[-10,-8],[4,-23],[-13,-10],[5,-21],[-10,-28],[-72,-68],[-8,-35],[2,-36],[-39,-48],[-15,-44],[-37,-43],[-25,-21],[-24,43],[-18,-11],[-10,20],[-65,15],[2,15],[-16,-1],[-11,47],[1,24],[-13,8],[-27,-5],[-29,21],[-26,-52],[-7,-67],[-41,-9],[-29,-22],[-2,-27],[
 -19,2],[-42,-33],[-28,-51],[-25,-22],[-104,13],[-21,17],[-12,-35],[-50,40],[-23,78],[5,22],[-13,40],[-15,-12],[-36,10],[-16,23]],[[3755,2294],[-4,51],[-24,4],[23,88],[-21,23],[-41,34],[-10,36],[5,16],[-13,40],[36,19],[-4,34],[13,27],[12,-27],[21,30],[8,-25],[44,47],[30,-35],[13,34],[-19,24],[-25,12],[-6,42],[11,103],[32,70]],[[3836,2941],[23,156],[48,-35],[63,-22],[3,43],[28,-38],[9,-2],[108,1],[59,-24],[41,-30],[36,-42],[44,-69],[36,-88],[24,-71]],[[4358,2720],[6,-12],[-19,-13],[13,-42],[-2,-34]],[[4356,2619],[-9,16],[-6,-78],[26,-13],[-2,-24],[-22,16],[-18,-18],[0,-98],[15,-16],[-13,-54],[29,-27],[9,-22],[-19,-8],[-12,-38],[24,-20],[-12,-35],[-7,15],[-34,30],[-15,-28],[-10,-50],[25,-44],[-4,-13]],[[4301,2110],[-30,-43],[7,-15],[-9,-26],[-7,-73],[-19,-8],[-34,-45],[-27,-55],[-11,-3],[-12,61],[-23,-32],[-12,7],[-18,-13],[-14,19],[-14,-26],[-23,24],[-20,-2],[-6,13]],[[6368,5989],[3,17],[-12,29],[3,73],[14,7],[-6,66],[8,26],[14,6],[-8,103],[-16,5],[-13,59],[-24,-31]],[[6407,7038],[18,
 -105],[21,-1],[1,50],[10,1],[18,-35],[25,39],[7,-34],[18,19],[9,-4],[23,17]],[[6557,6985],[0,-55],[19,26],[10,29],[15,16],[23,1],[7,-59],[10,-8],[24,15],[11,-27],[18,-16],[27,20],[20,-13],[27,-33],[-3,-46],[13,-42],[-2,-39],[-13,-61],[21,-34],[-8,-15],[51,-119],[-3,-4],[14,-72],[55,27],[5,11],[21,-86],[-20,-18],[25,-89]],[[6924,6294],[-25,-25],[-15,10],[-17,-30],[-36,-24],[10,-45],[-31,-5],[4,-8],[-26,-44],[-15,-5],[-13,-29],[-22,-10],[7,-33]],[[6745,6046],[17,-18],[18,-48],[0,-20],[-30,-22],[-29,-38],[-25,-12],[-14,-34],[-17,4],[-16,-26],[-51,-13],[-5,36],[-11,6],[-61,-15],[-27,-24]],[[6494,5822],[-3,52],[-20,-8],[-8,38],[-23,-29],[-14,-1],[-3,24],[-22,43],[-17,53],[-16,-5]],[[4612,7856],[33,39],[-4,16],[21,31],[-8,38],[18,12],[0,24],[19,25],[-8,35],[-25,-14],[-6,18],[17,52],[-26,89],[31,15],[13,-17],[15,-53],[33,32],[-2,23],[22,15],[60,15],[-6,54],[36,13],[-12,50],[8,84],[14,24]],[[4855,8476],[32,16],[23,-15],[12,-39],[35,-32],[39,12],[22,-29],[14,-4],[16,-25],[27,33],[15,-5],[20,
 -48],[5,19],[48,-52],[22,32],[34,-27],[16,-33]],[[5235,8279],[-4,-13],[16,-38],[13,-51],[9,-55],[4,-64],[9,-40],[-4,-35],[7,-27],[27,-53],[39,-19]],[[7024,4164],[-11,36],[-16,-4],[-9,-18],[-12,-76],[-34,-122],[-5,-8],[-27,56],[-13,-19],[-3,22],[-18,40],[18,38],[-30,53],[14,21],[-24,7],[-10,-48],[-25,0],[-14,32]],[[6805,4174],[22,30],[-11,32],[39,45],[-1,15],[20,20],[-10,117],[-29,169],[13,8],[-8,46],[5,29],[36,18],[-8,55],[10,3],[-2,83],[15,2],[2,54],[26,17],[0,39],[20,1],[-1,26]],[[6943,4983],[26,10],[33,26],[0,31]],[[7511,4803],[-132,-76],[31,-67],[-20,-47],[-7,-53],[3,-23],[-38,-23],[6,-16],[-3,-52],[10,-15],[-1,-39],[-29,6],[-2,49],[-10,2],[-19,37],[-23,-18],[-23,-40],[-17,33],[-16,-26],[-4,-25],[7,-16],[19,-7],[13,-71],[20,9],[5,-34],[51,-5],[9,-13],[27,2],[2,-20],[24,9],[39,27],[0,26],[62,-28],[4,47],[40,48],[29,-12],[18,92],[18,-8],[6,30],[15,-12],[7,40],[-16,16],[16,49],[20,-28],[-1,-22],[32,-27],[20,-41],[30,-45],[45,-23],[15,2],[5,-30],[-12,3],[-10,-60],[-12,27],[-18,-25],
 [-29,19],[-2,-45],[-18,-29],[-5,-43],[15,-21],[-8,-56]],[[6694,5111],[2,67],[-13,7],[-7,24],[-12,-10],[-19,65],[-54,-15],[-26,-19],[-2,21],[-19,0],[-41,-21],[-15,19],[-11,-18],[-17,12],[-10,30],[-32,-29],[-16,4],[-4,22],[-17,11],[8,25],[-11,25],[93,100],[-8,49],[10,43],[32,42],[-36,101],[8,8],[-6,25],[16,16],[-10,40],[17,18],[0,49]],[[6924,6294],[25,31],[43,22],[2,52],[12,17],[6,30],[18,-44],[-1,-42],[-16,-2],[9,-29],[11,2],[1,-28],[13,12],[2,-23],[36,-3],[-2,35],[-10,2],[-6,66],[17,22],[-4,26],[21,4],[14,-49],[8,0],[8,-40],[-4,-15],[11,-62]],[[7138,6278],[19,-63]],[[6943,4983],[-44,14],[-3,-22],[-15,7],[-11,71],[-10,19],[-5,73],[-17,-3],[-47,-25],[-28,-1],[-34,12],[-35,-17]],[[4996,3824],[31,62],[23,70],[38,33],[18,29],[21,13],[-3,21],[28,30],[17,56],[-7,33],[2,36]],[[5164,4207],[16,16],[21,-50],[13,17],[-4,41],[7,1],[36,69],[25,-6],[36,92],[18,10],[4,-16],[36,-6],[28,-23],[23,-64],[2,-40],[-36,-62],[3,-11],[-35,-48],[11,-9],[10,19],[10,-13],[-8,-17],[15,-23],[10,24],[28,37],[6,-9]
 ,[66,44],[1,37],[17,31],[27,9],[10,-39],[1,-62],[6,-21],[25,-36],[10,-2],[36,-80],[-10,-49],[-12,-21],[15,-91],[8,4],[23,-44],[13,25],[14,-15],[14,28],[6,-40],[7,49],[15,14],[20,-30],[16,71],[25,49],[13,39],[1,45],[25,18]],[[5831,4069],[56,26],[11,20],[32,17],[30,6],[29,45],[6,-38]],[[5995,4145],[-23,-72],[-16,-19],[-3,-25],[-19,-14],[0,-41],[26,-57],[-15,-42],[-11,-54],[4,-12],[-24,-65],[-8,-74],[-18,-17],[-13,-32],[-22,-21],[-8,20],[-18,-5],[-60,-39],[-37,-35],[-13,-28],[-8,12],[-12,-12],[-8,26],[-20,0],[-9,15],[-157,-73],[-3,-23],[11,-38],[-23,-33],[-33,-25],[-46,-8],[1,11],[-19,66],[-2,24],[-24,6],[4,39],[-17,-14],[-9,9],[-17,-11],[-33,25],[-31,-16],[-11,13],[-42,14],[-11,11],[-9,-55],[-51,-18],[-19,3],[-24,-23],[-17,52],[-2,46],[-25,67],[1,7],[-34,22],[14,16],[3,23],[-16,27],[10,32],[-11,12],[-2,41],[-14,3],[-6,38]],[[8786,5007],[18,-1],[1,-28],[20,-17],[-1,-37],[-19,-66],[1,-14],[63,-38],[17,-19],[50,-40],[-6,-64],[-10,4],[-6,-35],[19,-42],[2,-52],[-20,-21],[-22,-4],[-42,27],[
 -11,-6],[1,-25],[29,-21],[0,-23],[23,-5],[-1,-19],[-16,-59],[0,-21],[-21,22],[31,-105],[38,-104],[6,19],[33,2],[44,-33],[17,0],[3,-19],[-7,-54],[-19,-26]],[[9001,4083],[-12,-23],[-33,3],[-8,-63],[-10,5],[-17,-35],[-10,-39],[-37,20],[-6,-27],[6,-23],[-7,-20],[-14,-85],[-15,-15],[5,-30],[-8,-19],[-31,-35],[21,-37],[-4,-51],[-11,-28],[6,-53],[-9,-17],[1,-34],[-13,-39],[-11,6],[-24,-11],[0,-49],[8,-42],[-15,18],[-30,13],[-26,44],[5,46],[-12,21],[-22,63],[-13,13],[-34,3],[-34,72],[-32,34],[15,55],[-69,-12],[-13,-22],[-9,-33],[-34,1],[-25,-23],[-20,23],[19,82],[26,37],[12,-9],[16,51],[-53,49],[17,78],[24,-8],[14,8],[11,29],[2,136],[-27,37],[-40,7],[-8,-23],[-43,41]],[[2716,8456],[-3,-28],[5,-46],[-3,-32],[8,-74],[-10,-75],[14,8],[-1,-22],[13,-32],[-24,-67],[18,-20],[-6,-9],[5,-47],[20,-23],[18,-47]],[[2043,8134],[58,49],[14,23],[52,-22],[26,30],[-6,43],[4,39],[-7,103],[-17,53],[1,29],[-19,41],[2,26],[33,75],[11,38]],[[2195,8661],[75,-35],[21,67],[-3,5],[19,62],[20,21]],[[3212,1762],[9,46]
 ,[16,30],[-9,12],[5,29],[-19,-9],[-49,2],[-22,-20],[-10,9],[-32,-8],[-21,16],[-13,26],[-53,14],[-25,-10],[-16,6],[-51,66],[3,24],[-16,39],[-5,33],[-13,17],[-20,57],[16,22],[18,61],[35,20],[3,28],[-16,44],[-6,33],[-16,15],[-7,27],[-21,43],[-37,34],[-31,103],[4,12],[-30,34],[7,36],[-9,70],[-17,11]],[[3399,2919],[13,-59],[18,11],[9,-52],[7,-2],[-9,-61],[-8,0],[-3,-40],[-9,-6],[5,-81],[-21,-28],[21,-35],[-18,-35],[4,-21],[-21,-18],[-1,-24],[47,-25],[-14,-38],[-6,10],[-10,-38],[-27,-2],[-3,-25],[15,15],[20,-20],[14,-34],[1,-31],[-11,-12]],[[1886,8214],[16,15],[8,37],[3,58],[-11,54],[1,25],[-13,28],[8,70],[-26,41],[-42,34],[-21,-2],[-29,20],[-11,-15],[-53,63],[-18,15],[-61,17],[4,79],[-11,6],[6,89],[0,84],[-19,7],[9,103],[12,27],[-25,16]],[[1613,9085],[29,4],[6,39],[-55,52],[-25,3],[11,39],[-15,15],[5,42],[-4,7],[8,46],[-2,57],[-12,41]],[[1559,9430],[30,49],[15,16],[28,1],[30,-34],[26,-7],[51,29],[34,2],[24,-12],[54,-39],[31,-30],[51,-15],[67,-80],[25,-42],[15,-37],[11,-98],[9,-38],[22,-3
 1],[56,-26],[40,-39],[24,-12],[25,-27],[-28,-84],[-41,-100],[-13,13],[-9,-24],[11,-24],[-24,-25],[8,-25],[37,-39],[8,29],[19,-20]],[[5890,5058],[-27,-12],[2,-38],[-48,-3],[-50,-12],[0,-21],[-30,-4]],[[5737,4968],[-20,1],[-1,60],[-18,38]],[[6368,5989],[-26,-5],[-1,-36],[-35,-24],[-18,-35],[8,-44],[-37,-27],[-1,-22],[-18,4],[2,-37],[-10,-1],[-6,-71],[-25,2],[-8,-27],[-31,16],[-1,30],[-23,-25],[-34,-5],[-6,28],[-73,-32],[4,-111],[-19,-119],[12,-96],[6,-7],[10,-53],[19,-37],[8,-55],[18,-78],[10,-23],[11,-66],[-39,-29]],[[6065,5004],[-47,136],[-14,25],[-46,40],[-5,-80],[-41,1],[13,-44],[-14,-17],[-21,-7]],[[3586,5923],[18,32],[-44,99],[-23,-25],[-15,18],[-10,39],[2,56],[-15,77],[-6,107],[-32,-19],[-4,80],[33,22],[-9,66],[-28,-21],[-27,115],[30,22],[-18,84],[-30,-6],[-7,77]],[[3802,6781],[41,-18],[202,-122],[165,-119]],[[6137,3928],[-4,49],[13,75],[7,21],[-5,76],[19,49],[1,39],[25,28],[107,105],[10,37],[8,75],[14,14],[22,-11],[14,5],[21,-23],[16,-33],[6,17],[41,-70],[-21,-32],[16,-66],[13
 ,-8],[27,24]],[[6487,4299],[58,-106],[7,-33],[-2,-73],[5,-40],[14,-25],[37,-26],[11,-16],[24,-55],[29,-30],[17,-4],[14,27],[32,43],[-8,41],[21,4],[-9,40],[20,34],[-7,13],[48,90],[7,-9]],[[6878,3454],[-13,21],[-10,-27],[-58,2],[0,70],[-41,30],[-14,-26],[-11,22],[-25,11],[-60,-41],[-17,14],[-40,-66],[-18,-45],[5,-15],[-6,-30],[-28,27],[-23,11],[10,58],[-29,19],[2,62],[-10,19],[-4,51],[18,26],[21,54],[-27,-23],[-31,5],[-23,12],[-18,-14],[-19,23],[-16,-20],[-25,49],[-42,-52],[-10,19],[13,53],[-56,58],[-6,-18],[-64,-42],[-16,89],[-9,100],[-10,-10],[-31,-2]],[[6418,8603],[-9,-93],[-10,-62],[8,2],[-4,-60],[-18,-3],[-7,-101],[-15,-50],[-31,-46]],[[6332,8190],[-42,42],[-16,-82],[-21,23],[-5,-23],[-44,22],[-4,-35],[-27,-38],[13,-36],[-15,-27],[-3,-39],[-12,4],[0,-20],[-22,-84],[23,-16],[-16,-39],[-9,7],[-53,-2],[-36,24]],[[5638,8214],[25,71],[4,34],[22,58],[3,34],[-7,5],[7,50],[19,-12],[22,62],[7,118],[26,5],[15,52],[3,38],[19,-20],[11,19],[19,-12],[7,43],[7,-2],[9,37],[10,-1],[7,43],[0,60],[
 -20,45],[13,24],[12,-7],[20,48],[-18,16],[26,58]],[[5906,9080],[76,-132],[11,-38],[16,20],[17,-1],[25,13],[5,-55],[23,27],[46,37]],[[5235,8279],[14,47],[4,50],[-11,45],[-1,77],[8,31],[18,36],[12,48],[12,9],[18,75],[-5,37],[-23,12],[-10,35],[3,35],[-6,33],[46,12],[15,-2]],[[5329,8859],[-10,14],[19,97],[16,-11],[13,27],[15,61],[15,-4],[6,74],[0,54]],[[5403,9171],[122,0],[34,-26],[25,16],[-3,-13],[33,-10],[-9,25]],[[5830,9252],[26,-50],[7,-45],[43,-77]],[[1576,6548],[-365,213],[-34,16],[-34,5],[-73,-1],[-91,-21],[-11,89],[0,21],[-19,16],[19,43],[8,62],[9,14],[-31,9],[5,18],[-23,42],[-13,9],[-18,58],[-4,92],[-31,23],[4,13],[4,104],[30,3],[5,36],[32,0],[-2,96],[8,78],[-8,64],[7,45],[20,35],[34,-102],[32,-34],[18,-27],[1,-20],[15,-17],[23,58],[46,-8],[54,-47],[35,-45],[34,-20],[0,18],[27,-6],[6,-37],[17,-10],[-3,-14],[37,-3],[91,-99],[9,-14],[25,13],[5,-31],[-17,-51],[-6,-85],[7,-22],[62,-29],[30,5],[30,-11],[17,-19],[30,-14],[-14,56],[15,53],[-1,62],[12,49]],[[6137,3928],[13,-29],[-13,-3
 9],[-31,13],[-13,-26],[-8,49],[-17,33],[-14,4],[-17,32],[31,160],[-33,19],[-9,-80],[-20,7],[9,59],[-20,15]],[[5831,4069],[-29,61],[10,0],[4,45],[18,27],[-8,7],[18,28],[22,10],[3,61],[23,46],[71,69],[15,62],[-5,46],[-28,-14],[-16,5],[-12,-12],[-30,24],[-10,34],[-12,9],[8,50],[-8,81],[-23,-12],[-2,61],[32,32],[-10,37],[-11,95],[12,-1],[4,46],[17,22],[13,2],[-7,68]],[[6065,5004],[53,-151],[9,49],[14,-1],[41,80],[10,-32],[21,-23],[27,30],[19,-16],[11,14],[15,-10],[8,27],[32,21],[30,-16],[17,19],[10,-23],[16,3],[7,-39],[35,1],[31,-20],[43,27]],[[6514,4944],[18,-82],[33,-5],[5,-99],[-11,-23],[-29,-14],[2,-37],[-29,-20],[-18,-22],[17,-82],[-1,-47],[-14,-72],[-6,-59],[0,-47],[6,-36]],[[5164,4207],[-20,23],[21,56]],[[6557,6985],[6,17],[-7,41],[32,17],[19,43],[14,4],[13,25],[-48,83],[7,24],[-2,31],[17,-12],[13,15],[0,26],[-13,67],[-13,-11],[9,49],[-16,32],[13,47],[-13,0],[-15,26],[-25,19],[13,105],[-9,8],[-3,51],[18,2],[14,36]],[[6581,7730],[48,-37],[4,41],[13,40],[25,-25],[16,25],[-4,18],[27
 ,47],[29,-34],[21,-43],[24,44],[19,-50],[36,-60]],[[6839,7696],[-17,-33],[38,-53],[16,-38],[13,-16],[-9,-18],[25,-54],[19,-54],[-27,-44],[16,-36],[65,-124],[71,-150],[6,-9],[-32,-50],[35,-68],[11,-78],[-12,-12],[2,-95],[24,5],[25,17]],[[7108,6786],[12,-72],[-26,-49],[-13,-38],[13,-26],[24,72],[13,15],[12,-25],[-16,-27],[6,-43],[-13,-27],[24,-42],[19,15],[5,95],[39,-13],[24,7],[14,-33],[25,-9]],[[7270,6586],[1,-65],[-6,4],[-10,-65],[-74,-1],[1,-24],[-23,-19],[-14,0],[0,-56],[10,-58],[-17,-24]],[[4855,8476],[-38,76]],[[4817,8552],[17,30],[-9,35],[-14,18],[7,19],[37,28],[31,98],[-11,39],[9,25],[-9,36],[5,35],[-13,38],[7,29],[-77,40],[-4,45],[27,15],[14,25],[-22,52],[-6,-7],[-37,55],[-28,14],[-20,22],[-32,58],[10,48],[31,95],[5,30]],[[5345,9224],[0,-39],[58,-6],[0,-8]],[[1613,9085],[-48,-14],[-8,3]],[[394,9900],[22,-40],[26,-27],[38,-17],[39,10],[38,3],[75,69],[39,21],[22,6],[85,10],[24,-5],[63,-40],[17,-7],[69,-6],[69,-19],[46,-27],[46,-45],[57,-48],[52,-78],[9,-33],[27,-48],[130,-138]
 ,[57,-46],[39,-8],[43,12],[33,31]],[[2410,4851],[-101,-7],[-5,11],[-22,-9],[2,32],[-52,-14],[-52,5],[-75,41],[2,80],[-7,19],[6,36],[-5,14],[-17,-5],[8,38],[-1,29],[-21,1],[4,25],[-18,35],[-10,49],[-22,1],[-10,48],[5,19],[-17,31],[7,19],[-14,23],[7,49],[-21,27],[-15,60],[11,12],[-23,69],[-12,53],[20,9],[-2,43],[32,8],[70,-15],[26,20],[5,48],[12,20],[49,25],[19,-4],[44,7],[-2,89]],[[7108,6786],[3,27],[15,29],[31,14],[19,28],[12,46],[-11,11],[14,24],[-9,28],[12,41],[32,41],[-2,23],[30,-30],[17,50],[-23,28],[11,24],[-39,61],[7,22],[-8,29],[21,70],[-16,17],[19,64],[-8,7],[26,47],[-20,26],[24,43],[-29,44],[27,48],[-12,31],[17,5],[23,46],[7,-1],[26,62]],[[7722,7289],[-19,-60],[-11,13],[-10,-22],[-18,23],[-24,-51],[-14,21],[-18,-44],[-26,-80],[-28,-42],[22,-24],[42,-71],[-58,-160],[-9,-34],[-5,-142],[-9,-39]],[[7537,6577],[-15,28],[-37,-12],[-13,10],[-21,-40],[-13,-7],[-17,20],[-13,60],[-31,6],[-33,-23],[-15,4],[-15,35],[-17,3],[-28,-25],[1,-50]],[[4996,3824],[-17,-1],[-38,-46],[-13,-30],[-
 20,-15],[-6,26],[-14,15],[-17,-35],[-11,2],[-14,-29],[-23,-11],[-15,6],[-12,-22],[-27,48],[-12,-45],[-13,-11],[-10,15],[-16,-43],[12,-34],[-6,-19],[-37,-25],[-22,71],[-23,-6],[-7,11],[-5,51],[-12,-6],[10,26],[-17,-11],[-25,-1],[-8,34],[-14,12],[-18,-16],[-26,93]],[[4520,3828],[7,9],[0,39],[30,40],[23,0],[-7,42],[-16,25],[-29,62],[-11,49],[11,-1],[12,23],[-10,47],[5,4],[-4,66],[-25,74],[27,-7],[30,24],[77,44],[12,-31],[18,28],[-8,48],[31,8],[9,-6],[26,12],[19,-20],[1,-45],[15,-38],[18,-4],[18,-23],[50,-6],[0,-20],[22,-8],[0,-25],[20,30],[21,6],[9,20],[-6,24],[-41,32],[-13,30],[10,12],[-1,27],[-25,52],[15,7],[-3,21],[-28,53],[-15,39],[10,20],[-13,6]],[[6694,5111],[-21,-26],[-35,-22],[-32,-36],[-35,-28],[-31,-12],[-9,-34],[-17,-9]],[[6332,8190],[-3,-79],[10,-31],[-7,-10],[32,-65],[6,52],[28,53],[53,-61],[-8,-40],[16,-35],[9,21],[17,-15],[-8,-23],[22,-27],[-4,-27],[9,-18]],[[6504,7885],[48,-38],[-16,-75],[45,-42]],[[8549,5902],[-37,-5],[-15,7],[-22,-12],[-28,18],[-39,-32],[-4,11],[-51,8
 ],[-12,-8],[2,-43],[-9,5],[7,-33],[-16,7],[-5,-17],[-29,14],[-23,-27],[-2,17],[-27,0],[-46,-39],[23,-10],[8,-61],[-9,-24],[-29,3],[-4,10],[-30,-3],[-28,20],[-7,-8],[-61,28],[-20,-1],[-8,-16],[-21,15],[-17,-4],[-3,-46],[-16,-3]],[[7971,5673],[-13,21],[2,110],[-7,22],[5,44],[-12,3],[-1,26],[-53,-6],[-3,22],[11,25],[2,31],[-17,103]],[[7885,6074],[29,67],[25,-13],[37,-2],[24,43],[39,40],[5,44],[17,30],[28,60],[12,63],[38,-57],[14,31],[31,29],[2,27],[29,70],[19,28],[-12,25],[27,53],[-15,15],[17,39]],[[4003,9357],[18,-128],[66,18],[27,-3],[-1,-28],[17,-25],[22,-12],[5,-22],[20,-8],[-12,-33],[34,-7],[26,-19],[33,-37],[4,-25],[30,-25],[18,-98],[29,-9],[5,-14]],[[4344,8882],[-11,-38]],[[3364,8650],[0,26],[-23,55],[14,54],[0,34]],[[3711,4363],[-4,51],[-23,-9],[-5,51],[-25,-4],[-3,80],[-15,8],[-2,106],[10,8],[-1,28],[-21,0],[2,40],[25,94],[19,-19],[26,3],[30,47],[26,-9],[7,30],[22,-7],[5,43]],[[4200,4365],[-46,-58],[-11,-29],[-18,-20],[14,-26],[5,-44],[-6,-65]],[[4138,4123],[-17,53],[-34,-5],[
 -7,-15],[-16,7],[-3,32],[-22,-1],[-5,-20],[-40,-75],[-40,-28],[-10,-40],[-22,-16]],[[3001,6657],[-22,-15]],[[3836,2941],[-11,52],[-12,-19],[-18,12],[-3,-22],[-29,3],[-18,25],[-30,1],[-25,-28],[-20,10],[-17,-11],[-8,-25],[-27,25],[-35,46],[5,36],[-10,25]],[[3972,3863],[15,-10],[29,7],[23,69],[16,23],[49,-21],[9,-41],[29,-43],[-11,-14],[12,-44],[-6,-16],[9,-33],[7,-84],[-2,-36],[14,-2]],[[4165,3618],[-20,-40],[-3,-18],[16,-27],[-9,-44],[-31,-59],[-16,16],[1,-43],[-39,-52],[2,-9],[31,-2],[-2,-21],[14,-21],[19,9],[3,-80],[-3,-46],[21,-15],[18,3],[-33,-59],[-11,-37],[22,-23],[90,-59],[49,-16],[60,-38],[34,-33],[-11,-45],[0,-37],[7,-40],[22,-33],[-38,-29]],[[4344,8882],[22,-8],[57,-9],[22,-19]],[[4445,8846],[-2,-24],[21,-45],[49,13],[21,-19],[48,-22],[-14,-34],[19,-71],[4,-76],[-8,-17],[3,-36],[31,32],[24,12],[5,-34],[22,-1],[8,-23],[22,47],[26,44],[14,-5],[7,23],[42,3],[12,-11],[18,-50]],[[3283,5191],[-27,-36],[24,-24],[16,15],[12,-76],[9,3],[43,-117],[12,-48],[13,6],[3,-18],[-16,-18],[-
 12,-66],[-41,3],[-11,10],[8,-47],[-29,-24],[37,-156],[-14,-37],[44,30],[0,-27],[24,-41],[-9,-47],[-47,-42],[-21,-27],[12,-11],[-41,-24],[15,-45],[-9,-10]],[[4520,3828],[-14,29],[-12,79],[12,14],[-14,31],[-56,-12],[-42,59],[-46,-29],[-7,22],[-17,3],[-21,33],[-18,-42],[-20,-12],[-9,23],[-15,-29],[-11,18],[-13,-26],[-36,42],[-29,-58],[-26,47],[16,32],[-10,43],[-18,2],[24,26]],[[6839,7696],[35,100],[15,-19],[21,33],[27,-40],[23,43],[30,-36],[27,42],[16,-33],[43,72],[48,120]],[[4445,8846],[0,39],[13,44],[-9,33],[-12,161],[8,30],[19,15],[-25,57],[-9,9],[-5,60],[-21,25],[-21,45],[17,14],[38,1],[2,-57],[13,-9],[8,27],[20,8],[-7,31],[4,47]],[[9238,4387],[-22,-27],[-30,-18],[1,-23],[-20,-2],[-13,-19],[-7,-34],[-47,-64],[-7,-5],[-23,-70],[-21,-99],[-30,18],[-18,39]],[[7523,5937],[9,3],[6,42],[-15,59],[-15,-5],[-4,97],[5,-1],[5,71],[28,-12],[4,51],[-8,12],[8,35],[17,36],[-19,38],[13,40],[-5,6],[10,123]],[[7562,6532],[54,3],[22,-30],[6,-47],[19,-36],[-9,-35]],[[7654,6387],[-13,-25],[-17,-96],[6,
 -36],[43,83],[46,54],[16,-48],[31,49],[28,0],[2,11],[37,-2],[5,-31],[20,-5]],[[7858,6341],[-2,-13],[18,-47],[1,-32],[-11,-43],[3,-31],[-17,-53],[0,-41],[29,5],[6,-12]],[[7971,5673],[7,-24],[-6,-35],[-37,0],[-59,12],[10,-50],[-3,-61],[-9,-54],[-23,9],[-7,-10]],[[6504,7885],[5,28],[23,57],[16,-10],[16,15],[17,37],[-7,21],[20,63],[-48,51],[19,53],[17,-17],[14,40],[-27,56],[-31,33],[18,70],[13,19],[17,45]],[[7562,6532],[-15,-4],[-10,49]],[[7937,6985],[-8,-45],[-12,-35],[-16,-20],[-15,-43],[6,-7],[-9,-35],[25,-41],[-25,-52],[25,-31],[-17,-36]],[[7891,6640],[-70,97],[-25,-59],[2,-17],[-24,-21],[-25,12],[-2,-48],[-9,-32],[-13,-11],[7,-86],[-20,-66],[-45,-27],[-13,5]],[[7858,6341],[6,86],[32,19],[33,56],[-47,67],[26,22],[-17,49]],[[4520,3828],[-22,-1],[10,-34],[-39,-46],[-16,-31],[-4,-29],[-11,24],[-59,-58],[-1,-20],[-20,-36],[-25,44],[-26,-37],[-34,-2],[-14,-21],[-6,21],[-17,8],[-9,27],[-26,-5],[-9,-11],[-24,10],[-3,-13]],[[4356,2619],[7,-7],[70,-41],[22,-32],[4,12],[34,-24],[60,-23]],[[45
 53,2504],[-2,-21],[-17,0],[-18,-85],[-21,-21],[-26,-108],[38,-25],[-9,-7],[-24,-51],[38,-1],[14,9],[2,-57],[-23,19],[-8,-6],[-5,-40]],[[4492,2110],[-2,-60],[-15,-2],[24,-43],[-3,-31],[-17,-26],[-34,-28],[-5,12],[33,35],[4,21],[-22,51],[-25,13],[-2,-32],[-13,-34],[-14,1],[-32,-20],[-17,6],[-12,56],[-39,81]],[[9387,3916],[4,33],[-19,11],[24,108],[-27,31],[14,51],[-11,35],[11,22],[22,-28],[27,-12],[4,-13],[58,-61],[39,-29],[34,7],[31,-35],[1,-13],[19,-18],[3,-25],[19,-42],[78,-88],[-114,-134],[-34,-46],[-3,34],[3,57],[14,31],[-33,31],[-4,-26],[-42,34],[-74,17],[-2,33],[9,19],[-51,16]],[[4553,2504],[48,-8],[1,-16],[33,-4],[36,-60],[11,-12],[4,-63],[41,-17],[10,-20],[39,-26],[5,-10],[-21,-29],[-19,27],[-25,-16],[23,-51],[1,-25],[-21,-9],[-28,16],[-12,-8],[-24,30],[15,-52],[-68,51],[-1,-41],[-26,-2],[14,-39],[-13,-33],[3,33],[-15,3],[-3,-28],[-12,-25],[-34,20],[-23,20]],[[3001,1639],[-53,40],[-14,24],[2,32],[17,29],[16,59],[17,-10],[20,-68],[15,26],[25,27],[13,-24],[14,11]]],"transform":{
 "scale":[0.08601952233751939,-0.048004800480048],"translate":[49.94539807357188,490]}}


[50/50] [abbrv] zest-qi4j git commit: Merge branch 'fb/spatial.queries' of https://github.com/ramtej/qi4j-sdk into ramtej-fb/spatial.queries

Posted by ni...@apache.org.
Merge branch 'fb/spatial.queries' of https://github.com/ramtej/qi4j-sdk into ramtej-fb/spatial.queries


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/a1053748
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/a1053748
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/a1053748

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: a1053748fe5a986f6aa312aad736edebacaf0f4b
Parents: 6ab86be 778c8c4
Author: Niclas Hedhman <ni...@hedhman.org>
Authored: Sun Jan 18 13:28:57 2015 +0800
Committer: Niclas Hedhman <ni...@hedhman.org>
Committed: Sun Jan 18 13:28:57 2015 +0800

----------------------------------------------------------------------
 build.gradle                                    |    94 +-
 .../main/java/org/qi4j/api/geometry/TCRS.java   |    49 +
 .../java/org/qi4j/api/geometry/TFeature.java    |   124 +
 .../qi4j/api/geometry/TFeatureCollection.java   |    67 +
 .../org/qi4j/api/geometry/TGeometryFactory.java |    67 +
 .../java/org/qi4j/api/geometry/TLineString.java |   187 +
 .../org/qi4j/api/geometry/TMultiLineString.java |    66 +
 .../java/org/qi4j/api/geometry/TMultiPoint.java |    69 +
 .../org/qi4j/api/geometry/TMultiPolygon.java    |    67 +
 .../main/java/org/qi4j/api/geometry/TPoint.java |   189 +
 .../java/org/qi4j/api/geometry/TPolygon.java    |   139 +
 .../main/java/org/qi4j/api/geometry/TUnit.java  |    37 +
 .../qi4j/api/geometry/internal/Coordinate.java  |   189 +
 .../geometry/internal/GeometryCollections.java  |   100 +
 .../org/qi4j/api/geometry/internal/TCircle.java |   116 +
 .../qi4j/api/geometry/internal/TGeometry.java   |   223 +
 .../qi4j/api/geometry/internal/TLinearRing.java |    40 +
 .../org/qi4j/api/geometry/internal/TShape.java  |    20 +
 .../geometry/internal/builders/TCRSBuilder.java |    39 +
 .../internal/builders/TFeatureBuilder.java      |    57 +
 .../builders/TFeatureCollectionBuilder.java     |    57 +
 .../internal/builders/TLineStringBuilder.java   |    68 +
 .../internal/builders/TLinearRingBuilder.java   |    62 +
 .../builders/TMultiLineStringBuilder.java       |    68 +
 .../internal/builders/TMultiPointBuilder.java   |    64 +
 .../builders/TMultiPolygonsBuilder.java         |    69 +
 .../internal/builders/TPointBuilder.java        |    88 +
 .../internal/builders/TPolygonBuilder.java      |    64 +
 .../src/main/java/org/qi4j/api/query/Query.java |    14 +
 .../org/qi4j/api/query/QueryExpressions.java    |     4 +-
 .../org/qi4j/api/query/grammar/OrderBy.java     |    15 +
 .../spatial/SpatialQueryExpressions.java        |    86 +
 .../convert/ST_GeomFromTextSpecification.java   |    19 +
 .../convert/SpatialConvertSpecification.java    |    44 +
 .../predicate/ST_DisjointSpecification.java     |    68 +
 .../predicate/ST_IntersectsSpecification.java   |    68 +
 .../predicate/ST_WithinSpecification.java       |    75 +
 .../SpatialPredicatesSpecification.java         |    74 +
 .../main/java/org/qi4j/api/type/ValueType.java  |    12 +
 .../api/configuration/ConfigurationTest.java    |     1 -
 .../qi4j/api/geometry/TGeometryFactoryTest.java |   477 +
 .../org/qi4j/api/geometry/TGeometryTest.java    |   361 +
 .../java/org/qi4j/runtime/query/QueryImpl.java  |    34 +-
 .../test/indexing/AbstractAnyQueryTest.java     |    17 +
 .../qi4j/test/indexing/AbstractQueryTest.java   |    17 +-
 .../test/indexing/AbstractSpatialQueryTest.java |   300 +
 .../indexing/AbstractSpatialRegressionTest.java |   844 +
 .../java/org/qi4j/test/indexing/TestData.java   |     5 +-
 .../java/org/qi4j/test/indexing/model/City.java |    10 +
 .../org/qi4j/test/indexing/model/Female.java    |     5 +
 .../org/qi4j/test/indexing/model/Person.java    |     4 +
 extensions/indexing-elasticsearch/build.gradle  |     7 +-
 .../ElasticSearchClusterConfiguration.java      |     1 +
 .../ElasticSearchConfiguration.java             |     7 +
 .../elasticsearch/ElasticSearchFinder.java      |   134 +-
 .../ElasticSearchFinderSupport.java             |    17 +-
 .../ElasticSearchIndexMappingException.java     |    34 +
 .../elasticsearch/ElasticSearchIndexer.java     |    58 +-
 .../elasticsearch/ElasticSearchSupport.java     |     6 +
 .../assembly/ESClusterIndexQueryAssembler.java  |     9 +
 .../ESFilesystemIndexQueryAssembler.java        |     9 +
 .../assembly/ESMemoryIndexQueryAssembler.java   |     7 +
 .../elasticsearch/cluster/ESClusterSupport.java |    14 +-
 .../spatial/ElasticSearchSpatialFinder.java     |   154 +
 .../spatial/ElasticSearchSpatialIndexer.java    |   385 +
 .../configuration/SpatialConfiguration.java     |   127 +
 .../SpatialFunctionsSupportMatrix.java          |   165 +
 .../functions/convert/ConvertFinderSupport.java |    80 +
 .../functions/convert/ST_GeometryFromText.java  |    48 +
 .../predicates/PredicateFinderSupport.java      |    86 +
 .../functions/predicates/ST_Disjoint.java       |    95 +
 .../functions/predicates/ST_Intersects.java     |    98 +
 .../spatial/functions/predicates/ST_Within.java |   152 +
 .../AbstractElasticSearchSpatialFunction.java   |   291 +
 .../spatial/internal/InternalUtils.java         |    60 +
 .../spatial/mappings/SpatialIndexMapper.java    |   101 +
 .../mappings/builders/AbstractBuilder.java      |    75 +
 .../mappings/builders/GeoPointBuilder.java      |    72 +
 .../mappings/builders/GeoShapeBuilder.java      |    77 +
 .../mappings/builders/MappingQueryBuilder.java  |    30 +
 .../builders/SpatialMappingFactory.java         |    40 +
 .../spatial/mappings/cache/MappingsCache.java   |   102 +
 .../mappings/cache/MappingsCachesTable.java     |    47 +
 .../filesystem/ESFilesystemSupport.java         |     7 +-
 .../AbstractElasticSearchAssembler.java         |     5 +-
 .../internal/AbstractElasticSearchSupport.java  |    70 +
 .../elasticsearch/memory/ESMemorySupport.java   |     7 +-
 .../ElasticSearchComplexQueryTest.java          |     7 +
 .../elasticsearch/ElasticSearchFinderTest.java  |     7 +
 .../elasticsearch/ElasticSearchQueryTest.java   |    19 +
 .../index/elasticsearch/ElasticSearchTest.java  |     7 +
 .../index/elasticsearch/ImmenseTermTest.java    |     7 +
 ...chSpatialQueryTestUsingGeoPointIndexing.java |   157 +
 ...chSpatialQueryTestUsingGeoShapeIndexing.java |   139 +
 ...earchSpatialQueryTestUsingUsingDefaults.java |   149 +
 .../ElasticSearchGeoPointIndexing.properties    |    28 +
 .../ElasticSearchGeoShapeIndexing.properties    |    28 +
 libraries.gradle                                |    13 +-
 libraries/spatial/build.gradle                  |    14 +
 libraries/spatial/dev-status.xml                |    19 +
 libraries/spatial/src/docs/spatial.txt          |    77 +
 .../spatial/assembly/TGeometryAssembler.java    |    80 +
 .../formats/conversions/TConversions.java       |    31 +
 .../formats/conversions/from/FromHelper.java    |    61 +
 .../conversions/from/GeoJsonFromConverter.java  |   200 +
 .../from/TGeometryFromConverter.java            |    39 +
 .../conversions/from/WKTFromConverter.java      |   164 +
 .../conversions/to/GeoJsonToConverter.java      |    76 +
 .../conversions/to/Spatial4JToConverter.java    |   114 +
 .../conversions/to/TGeometryToConverter.java    |    47 +
 .../formats/conversions/to/ToHelper.java        |    63 +
 .../projections/ProjectionsRegistry.java        |    79 +
 .../transformations/TTransformations.java       |    32 +
 .../transformations/fromto/FromHelper.java      |    44 +
 .../transformations/fromto/ToHelper.java        |   158 +
 .../conversions/ConversionsFromWktTest.java     |    33 +
 .../ConvertFromGeoJsonToTGeometryTest.java      |   189 +
 .../formats/data/GeoJSONSpec20080616.java       |    28 +
 .../formats/data/GeoJSONSwissLakes2013.java     |   176 +
 .../transformations/TransformationsTest.java    |    80 +
 .../src/test/resources/data/munich.geojson      | 15834 ++++
 .../geojson/germany/bavaria.neustadt.geojson    | 81909 +++++++++++++++++
 .../topo/geojson/swiss/FeatureCollection.json   |    78 +
 .../resources/topo/geojson/swiss/ch-lakes.json  |  6123 ++
 settings.gradle                                 |     1 +
 125 files changed, 113890 insertions(+), 130 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/a1053748/build.gradle
----------------------------------------------------------------------


[22/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ch.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ch.json
deleted file mode 100644
index 4e6b1b2..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"country":{"type":"GeometryCollection","geometries":[{"type":"Polygon","id":"CH","properties":{"name":"Schweiz"},"arcs":[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238
 ,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473],[474,475,476,477],[478,479,480,481,482,483,484]]}]},"ca
 ntons":{"type":"GeometryCollection","geometries":[{"type":"Polygon","id":1,"properties":{"name":"Zürich","abbr":"ZH"},"arcs":[[485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,-501,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,416,417,536,419,420,421,422,423,537,538,539,540,-541,540,541,542,543,426,544,428,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,-576,575,576,577,578,579,580,581,582,583,-584,583,584,585,586,587,588,-589,588,589,590,591,592,593,594,-595,594,595,596,597,598,599,600,601,602,603,-604,603,604,605,606,607,608,609,610]]},{"type":"MultiPolygon","id":2,"properties":{"name":"Bern","abbr":"BE"},"arcs":[[[611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,-647,646,647,648,649,650,651,652,653,6
 54,655,656,657,658,659,660,661,-662,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,-696,695,696,697,-698,697,698,699,-700,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,-728,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,-774,773,774,-775,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860],[861,862,863,864],[865,866]],[[867,868,869,870]],[[871,872]],[[873,874,875,876]]]},{"type":"Polygon","id":
 3,"properties":{"name":"Luzern","abbr":"LU"},"arcs":[[-802,-801,-800,-799,-798,-797,-796,-795,-794,-793,-792,-791,-790,-789,-788,-787,-786,-785,-784,-783,-782,-781,-780,-779,-778,-777,-776,-775,774,-775,-774,773,-774,-773,-772,-771,-770,-769,-768,877,878,879,880,881,882,883,884,885,886,887,888,889,890,890,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,-909,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,-921,927,928,929,930,931,932,933,-934,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959]]},{"type":"Polygon","id":4,"properties":{"name":"Uri","abbr":"UR"},"arcs":[[960,961,962,-823,-822,-821,-820,-819,-818,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007]]},{"type":"Polygon","id":5,"properties":{"name":"Schwyz","abbr":"SZ"},"arcs":[[
 -991,-990,-989,-988,-987,-986,-985,-984,-983,-982,-981,-980,-979,1008,1009,1010,1011,-939,-938,-937,-936,-935,-934,933,-934,-933,-932,-931,-930,-929,-928,920,-927,-926,-925,1012,1013,1014,1015,1016,1017,1018,1019,1020,-1021,1020,1021,1022,-1023,1022,1023,1024,1025,1026,1027,-490,-489,-488,-487,-486,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050]]},{"type":"MultiPolygon","id":6,"properties":{"name":"Obwalden","abbr":"OW"},"arcs":[[[-812,-811,-810,-809,-808,-807,-806,-805,-804,-803,-960,-959,-958,-957,-956,-955,-954,-953,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062]],[[-817,-816,-815,-814,1063,1064,1065,1066,1067,1068,1069,-968,-967,-966,-965,-964]]]},{"type":"Polygon","id":7,"properties":{"name":"Nidwalden","abbr":"NW"},"arcs":[[-813,-1063,-1062,-1061,-1060,-1059,-1058,-1057,-1056,-1055,-1054,-1053,-1052,-952,-951,-950,-949,-948,-947,-946,-945,-944,-943,-942,-941,-940,-1012,-1011,-1010,-1009,-978,-977,
 -976,-975,-974,-973,-972,-971,-970,-969,-1070,-1069,-1068,-1067,-1066,-1065,-1064]]},{"type":"Polygon","id":8,"properties":{"name":"Glarus","abbr":"GL"},"arcs":[[-996,-995,-994,-993,-992,-1051,-1050,-1049,-1048,-1047,-1046,-1045,-1044,-1043,-1042,-1041,-1040,-1039,-1038,-1037,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097]]},{"type":"Polygon","id":9,"properties":{"name":"Zug","abbr":"ZG"},"arcs":[[-924,-923,-922,-921,-920,-919,-918,1098,1099,1100,1101,1102,1103,1104,-507,-506,-505,-504,-503,-502,-501,500,-501,-500,-499,-498,-497,-496,-495,-494,-493,-492,-491,-1028,-1027,-1026,-1025,-1024,-1023,1022,-1023,-1022,-1021,1020,-1021,-1020,-1019,-1018,-1017,-1016,-1015,-1014,-1013]]},{"type":"MultiPolygon","id":10,"properties":{"name":"Fribourg","abbr":"FR"},"arcs":[[[1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,-1126,1125,1126,1127,-1128,
 1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,-1172,1171,1172,1173,1174,-1175,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,-877,-876,-875,1189,1190,1191,-659,-658,-657,-656,-655,-654,-653,-652,-651,-650,-649,-648,-647,646,-647,-646,-645,-644,-643,-642,-641,-640,-639,-638,-637,-636,-635,-634,-633,-632,-631,-630,-629,-628,-627,-626,-625,-624,-623,-622,-621,-620],[-873,-872]],[[1192,1193,1194,1195,1196,1197,1198,1199,-1200,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214]],[[1215,1216,1217,1218,1219,1220,1221,1222,1223,1224]],[[1225,1226,1227,1228]],[[-865,-864,-863,-862]]]},{"type":"MultiPolygon","id":11,"properties":{"name":"Solothurn","abbr":"SO"},"arcs":[[[-871,-870,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,-1241,1240,1241,1242,
 1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,-764,-763,-762,-761,-760,-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,-745,-744,-743,-742,-741,-740,-739,-738,-737,-736,-735,-734,-733,-732,-731,-730,-729,-728,727,-728,-727,-726,-725,-724,-723,-722,-721,-720,-719,-718,-717,-716,-715,-714,-713,-712,-711,-710,-709,-708,-707,-706,-705,-704,-703]],[[359,360,361,362,363,1301,1302,1303,1304,1305,1306,1307]],[[357,1308,1309,1310,1311]],[[-866,-867]]]},{"type":"Polygon","id":12,"properties":{"name":"Basel-Stadt","abbr":"BS"},"arcs":[[1312,1313,1314,1315,1316,1317,1318,1319,374,375,376,377,378,379,380,1320]]},{"type":"MultiPolygon","id":13,"properties":{"name":"Basel-Landschaft","abbr":"BL"},"arcs":[[[-1311,-1310,-1309,358,-1308,-1
 307,-1306,-1305,-1304,-1303,1321,365,366,367,368,1322,371,372,1323,-1319,-1318,-1317,-1316,-1315,-1314,-1313,1324,1325,382,383,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,-1280,-1279,-1278,-1277,-1276,-1275,-1274,-1273,-1272,-1271,-1270,-1269,-1268,-1267,-1266,-1265,-1264,-1263,-1262,-1261,-1260,-1259,-1258,-1257,-1256,-1255,-1254,-1253,-1252,-1251,-1250,-1249,-1248,-1247,-1246,-1245,-1244,-1243,-1242,-1241,1240,-1241,-1240,-1239,-1238,-1237,-1236,-1235,-1234,1347,1348,1349,1350,1351]],[[1352,355,356,-1312,1353,1354,1355,1356]]]},{"type":"MultiPolygon","id":14,"properties":{"name":"Schaffhausen","abbr":"SH"},"arcs":[[[-551,-550,-549,-548,-547,1357,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,1358,481,482,483,1359]],[[1360,1361,1362,1363,1364,1365,449,450,451,452,453,454,455]],[[1366,1367,-543,-542,-541,540,-541,-540,-539]]]},{"type":"Polygon","id":15,"properties":{"name":"Appenzell Ausserrhoden",
 "abbr":"AR"},"arcs":[[1368,1369,1370,-1371,1370,1371,1372,1373,1374,1375,1376,1377,-1378,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,-1391,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,-1412,1411,1412,1413,1414,1415,-1416,1416,1417,1418,1419,1420,-1421,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,-1434,1433,1434,1435,1436,1437]]},{"type":"MultiPolygon","id":16,"properties":{"name":"Appenzell Innerrhoden","abbr":"AI"},"arcs":[[[-1438,-1437,-1436,-1435,-1434,1433,-1434,-1433,-1432,-1431,-1430,-1429,-1428,-1427,-1426,-1425,1438,1439,1440,1441,1442,1443,1444,1445]],[[-1421,-1420,-1419,-1418,-1417,1415,1446]],[[1447,1448,1449,-1413,-1412,1411,-1412,-1411,-1410,-1409,-1408,-1407]]]},{"type":"Polygon","id":17,"properties":{"name":"St. Gallen","abbr":"SG"},"arcs":[[-1083,-1082,-1081,-1080,-1079,-1078,-1077,-1076,-1075,-1074,-1073,-1072,-1071,-1036,-1035,-1034,-1033,-1032,-1031,-1030
 ,-1029,-611,-610,-609,-608,-607,-606,-605,-604,603,-604,-603,-602,-601,-600,-599,-598,1450,1451,1452,1453,1454,1455,1456,-1457,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,-1475,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,-1485,1484,-1485,1484,1485,1486,1487,1488,-1489,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,461,462,463,1500,465,466,467,468,469,470,1501,1502,0,1,2,3,4,5,6,7,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520],[-1406,-1405,-1404,-1403,-1402,-1401,-1400,-1399,-1398,-1397,-1396,-1395,-1394,-1393,-1392,-1391,1390,-1391,-1390,-1389,-1388,-1387,-1386,-1385,-1384,-1383,-1382,-1381,-1380,-1379,-1378,1377,-1378,-1377,-1376,-1375,-1374,-1373,-1372,-1371,1370,-1371,-1370,-1369,-1446,-1445,-1444,-1443,-1442,-1441,-1440,-1439,-1424,-1423,-1422,1420,-1447,-1416,-1415,-1414,-1450,-1449,-1448],[1521,1522,1523,1524]]},{"type":"Polygon","id":18,"properties":{"name":"
 Graubünden","abbr":"GR"},"arcs":[[-1004,-1003,-1002,-1001,-1000,-999,-998,-997,-1098,-1097,-1096,-1095,-1094,-1093,-1092,-1091,-1090,-1089,-1088,-1087,-1086,-1085,-1084,-1521,-1520,-1519,-1518,-1517,-1516,-1515,-1514,-1513,-1512,-1511,-1510,-1509,-1508,-1507,-1506,-1505,-1504,8,9,10,11,12,13,1525,1526,16,1527,1528,19,1529,1530,1531,1532,1533,1534,1535,1536,26,27,28,1537,31,32,1538,34,1539,36,1540,38,39,40,41,42,43,44,45,46,47,48,49,50,51,1541,53,54,1542,1543,57,58,59,60,61,62,63,64,65,1544,67,1545,1546,69,70,71,1547,73,74,75,76,77,78,79,80,81,1548,83,1549,85,1550,87,1551,1552,89,90,91,92,93,94,95,96,1553,98,1554,100,1555,102,1556,104,1557,106,107,108,109,110,111,112,113,114,115,116,117,118,1558,1559,120,121,1560,1561,124,125,126,127,128,129,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596]]},{"type":"Polygon","id":19,"properties":{"name":"Aargau","abbr":"AG"
 },"arcs":[[-1301,-1300,-1299,-1298,-1297,-1296,-1295,-1294,-1293,-1292,-1291,-1290,-1289,-1288,-1287,-1286,-1285,-1284,-1283,-1282,-1281,-1347,-1346,-1345,-1344,-1343,-1342,-1341,-1340,-1339,-1338,-1337,-1336,-1335,-1334,-1333,-1332,-1331,-1330,-1329,1597,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,1598,-535,-534,-533,-532,-531,-530,-529,-528,-527,-526,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,-515,-514,-513,-512,-511,-510,-509,-508,-1105,-1104,-1103,-1102,-1101,-1100,-1099,-917,-916,-915,-914,-913,-912,-911,-910,-909,908,-909,-908,-907,-906,-905,-904,-903,-902,-901,-900,-899,-898,-897,-896,-895,-894,-893,-892,890,890,890,-890,-889,-888,-887,-886,-885,-884,-883,-882,-881,-880,-879,-878,-767,-766,-765]]},{"type":"MultiPolygon","id":20,"properties":{"name":"Thurgau","abbr":"TG"},"arcs":[[[-1499,-1498,-1497,-1496,-1495,-1494,-1493,-1492,-1491,-1490,-1489,1488,-1489,-1488,-1487,-1486,-1485,1484,-1485,148
 4,-1485,-1484,-1483,-1482,-1481,-1480,-1479,-1478,-1477,-1476,-1475,1474,-1475,-1474,-1473,-1472,-1471,-1470,-1469,-1468,-1467,-1466,-1465,-1464,-1463,-1462,-1461,-1460,-1459,-1458,-1457,1456,-1457,-1456,-1455,-1454,-1453,-1452,-1451,-597,-596,-595,594,-595,-594,-593,-592,-591,-590,-589,588,-589,-588,-587,-586,-585,-584,583,-584,-583,-582,-581,-580,-579,-578,-577,-576,575,-576,-575,-574,-573,-572,-571,-570,-569,-568,-567,-566,-565,-564,-563,-562,-561,-560,-559,-558,-557,-556,-555,-554,-553,1599,478,479,480,-1359,448,-1366,-1365,-1364,-1363,-1362,-1361,456,457,458,459,1600]],[[-1525,-1524,-1523,-1522]]]},{"type":"Polygon","id":21,"properties":{"name":"Ticino","abbr":"TI"},"arcs":[[1601,-1008,-1007,-1006,-1005,-1597,-1596,-1595,-1594,-1593,-1592,-1591,-1590,-1589,-1588,-1587,-1586,-1585,-1584,-1583,-1582,-1581,-1580,-1579,-1578,-1577,-1576,-1575,-1574,-1573,-1572,-1571,-1570,-1569,-1568,-1567,-1566,-1565,-1564,-1563,130,131,132,133,134,135,136,137,138,139,140,1602,1603,142,143,144,145
 ,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,1604,170,171,172,173,1605,175,176,177,178,179,180,181,182,183,1606],[1607,1608,1609,476,1610]]},{"type":"MultiPolygon","id":22,"properties":{"name":"Vaud","abbr":"VD"},"arcs":[[[238,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,282,283,284,285,286,287,288,289,290,291,292,293,1623,1624,295,296,297,298,299,300,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,-1214,-1213,-1212,-1211,-1210,-1209,-1208,-1207,-1206,-1205,-1204,-1203,-1202,-1201,-1200,1199,-1200,-1199,-1198,-1197,-1196,-1195,-1194,-1193,1640,-1177,-1176,-1175,1174,-1175,-1174,-1173,-1172,1171,-1172,-1171,-1170,-1169,-1168,-1167,-1166,-1165,-1164,-1163,-1162,-1161,-1160,-1159,-1158,-1157,-1156,-1155,-1154,-1153,-1152,-1151,-1150,-1149,-1148,-1147,-1146,-1145,-1144,-1143,-1142,-1141,-1140,-1139,-1138,-1137,-1136,-1135,-1134,-1133,-1132,-1131,-1130,-1129,-1128,1127,-1128,-1127,-1126,1125,-1126,-
 1125,-1124,-1123,-1122,-1121,-1120,-1119,-1118,-1117,-1116,-1115,-1114,-1113,-1112,-1111,-1110,-1109,-1108,-1107,-1106,-619,-618,-617,-616,-615,-614,-613,-612,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657],[1658,1659,1660],[-1229,-1228,-1227,-1226],[-1220,-1219,-1218,-1217,-1216,-1225,-1224,-1223,-1222,-1221]],[[1661,1662,-1191,-1190,-874,-1189,-1188,-1187,-1186,-1185,-1184,-1183,-1182,-1181,-1180,-1179]]]},{"type":"Polygon","id":23,"properties":{"name":"Valais","abbr":"VS"},"arcs":[[1663,185,186,1664,188,1665,190,191,192,193,194,195,196,197,198,199,200,201,202,1666,204,205,1667,207,208,209,210,211,1668,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,1669,236,237,-1658,-1657,-1656,-1655,-1654,-1653,-1652,-1651,-1650,-1649,-1648,-1647,-1646,-1645,-1644,-1643,-1642,-861,-860,-859,-858,-857,-856,-855,-854,-853,-852,-851,-850,-849,-848,-847,-846,-845,-844,-843,-842,-841,-840,-839,-838,-837,-836,-835,-834,-833
 ,-832,-831,-830,-829,-828,-827,-826,-825,-824,-963,-962,-961,-1602]]},{"type":"Polygon","id":24,"properties":{"name":"Neuchâtel","abbr":"NE"},"arcs":[[-1641,-1215,-1640,-1639,-1638,-1637,-1636,-1635,-1634,-1633,-1632,-1631,-1630,-1629,-1628,-1627,-1626,301,302,303,304,305,306,307,308,1670,310,311,1671,313,1672,1673,315,1674,1675,-675,-674,-673,-672,-671,-670,-669,-668,-667,-666,-665,-664,-663,-662,661,-662,-661,-660,-1192,-1663,-1662,-1178]]},{"type":"MultiPolygon","id":25,"properties":{"name":"Genève","abbr":"GE"},"arcs":[[[240,241,242,243,244,1676,1677,246,247,248,249,250,251,1678,1679,253,254,1680,257,258,259,260,1681,1682,1683,262,1684,1685,265,1686,267,268,1687,270,1688,273,274,275,276,277,1689,279,1690,1691,1692,-1622,-1621,-1620,-1619]],[[1693,-1617,-1616,-1615,-1614,-1613]],[[-1660,-1659,-1661]]]},{"type":"Polygon","id":26,"properties":{"name":"Jura","abbr":"JU"},"arcs":[[-1676,1694,317,1695,319,320,321,322,323,324,325,326,327,328,329,330,1696,332,333,334,335,336,337,338,3
 39,340,341,1697,343,344,345,346,347,348,349,350,351,352,353,1698,-1357,-1356,-1355,-1354,-1352,-1351,-1350,-1349,-1348,-1233,-1232,-1231,-1230,-869,-868,-702,-701,-700,699,-700,-699,-698,697,-698,-697,-696,695,-696,-695,-694,-693,-692,-691,-690,-689,-688,-687,-686,-685,-684,-683,-682,-681,-680,-679,-678,-677,-676]]}]},"municipalities":{"type":"GeometryCollection","geometries":[{"type":"Polygon","id":1,"properties":{"name":"Aeugst am Albis"},"arcs":[[1699,1700,1701,1702,1703,1704,1705,-1700]]},{"type":"Polygon","id":2,"properties":{"name":"Affoltern am Albis"},"arcs":[[1706,1707,-1708,1707,1708,1709,1710,1711,1712,-1703,1713,1714]]},{"type":"Polygon","id":3,"properties":{"name":"Bonstetten"},"arcs":[[1715,1716,1717,1718,1719,1720,-1721,1721]]},{"type":"Polygon","id":4,"properties":{"name":"Hausen am Albis"},"arcs":[[1722,1723,1699,-1706,1724,1725,1726,1727,1728]]},{"type":"Polygon","id":5,"properties":{"name":"Hedingen"},"arcs":[[1729,1730,1731,-1716,1732,-1712]]},{"type":"Polygon","
 id":6,"properties":{"name":"Kappel am Albis"},"arcs":[[1733,1734,1735,-1736,1736,1737,-1723,1738,499,500,-501,500,501,1739]]},{"type":"Polygon","id":7,"properties":{"name":"Knonau"},"arcs":[[1740,503,1741,1742,1743,-1736,-1735,1744]]},{"type":"Polygon","id":8,"properties":{"name":"Maschwanden"},"arcs":[[1745,1746,1747,-1743,1748,505,1749,1750]]},{"type":"Polygon","id":9,"properties":{"name":"Mettmenstetten"},"arcs":[[-1744,-1748,1751,1714,-1715,-1714,-1702,1752,-1737,1735]]},{"type":"Polygon","id":10,"properties":{"name":"Obfelden"},"arcs":[[1753,507,1754,1755,-1709,-1708,1707,-1708,-1707,-1715,-1752,-1747]]},{"type":"Polygon","id":11,"properties":{"name":"Ottenbach"},"arcs":[[1756,1757,509,1758,-1710,-1756]]},{"type":"Polygon","id":12,"properties":{"name":"Rifferswil"},"arcs":[[-1738,-1753,-1701,-1700,-1724]]},{"type":"Polygon","id":13,"properties":{"name":"Stallikon"},"arcs":[[-1704,-1713,-1733,-1722,1720,-1721,1720,1759,1760,1761,1762,1763,1764,1765]]},{"type":"Polygon","id":14,"
 properties":{"name":"Wettswil am Albis"},"arcs":[[-1720,1766,-1760,-1721]]},{"type":"Polygon","id":21,"properties":{"name":"Adlikon"},"arcs":[[1767,1768,1769,1770,-1771,1770,1771,1772,1773]]},{"type":"Polygon","id":22,"properties":{"name":"Benken (ZH)"},"arcs":[[1774,1775,1776,1777,-1778,1777,1778,1779,1780,1781]]},{"type":"Polygon","id":23,"properties":{"name":"Berg am Irchel"},"arcs":[[1782,1783,1784,1785,1786,1787,1788,-1789,1788,1789]]},{"type":"Polygon","id":24,"properties":{"name":"Buch am Irchel"},"arcs":[[1790,1791,-1790,-1789,1788,-1789,-1788,-1787,1786,-1787,1792,1793,1794,1795,-1796,1795,-1796,1795,1796]]},{"type":"Polygon","id":25,"properties":{"name":"Dachsen"},"arcs":[[-1780,-1779,1797,1798,1799]]},{"type":"Polygon","id":26,"properties":{"name":"Dorf"},"arcs":[[-1794,1800,1801,1802,1803,1804]]},{"type":"Polygon","id":27,"properties":{"name":"Feuerthalen"},"arcs":[[1805,1806,1807,550,551,1808]]},{"type":"Polygon","id":28,"properties":{"name":"Flaach"},"arcs":[[1809,1810
 ,1811,1812,1813,1814,1815,-1785]]},{"type":"Polygon","id":29,"properties":{"name":"Flurlingen"},"arcs":[[1816,1817,548,1818,-1807]]},{"type":"Polygon","id":30,"properties":{"name":"Andelfingen"},"arcs":[[1819,-1802,1820,-1815,1821,1822,-1772,-1771,1770,-1771,-1770]]},{"type":"Polygon","id":31,"properties":{"name":"Henggart"},"arcs":[[1823,-1804,1824,1825,1826]]},{"type":"Polygon","id":32,"properties":{"name":"Humlikon"},"arcs":[[-1825,-1803,-1820,-1769,1827]]},{"type":"Polygon","id":33,"properties":{"name":"Kleinandelfingen"},"arcs":[[-1822,-1814,1828,1829,-1830,1830,1831]]},{"type":"Polygon","id":34,"properties":{"name":"Laufen-Uhwiesen"},"arcs":[[1832,-1781,-1800,1833,546,1834,-1817,-1806,1835,1836]]},{"type":"Polygon","id":35,"properties":{"name":"Marthalen"},"arcs":[[-1813,1837,1838,543,1839,1775,-1776,-1775,1840,-1830,-1829]]},{"type":"Polygon","id":36,"properties":{"name":"Oberstammheim"},"arcs":[[1841,1842,565,1843,1844,1845,1846,561,1847,1848,563,1849]]},{"type":"Polygon","i
 d":37,"properties":{"name":"Ossingen"},"arcs":[[1850,-1773,-1823,-1832,1851,1852,1853,1854,568]]},{"type":"Polygon","id":38,"properties":{"name":"Rheinau"},"arcs":[[-1776,-1840,426,544,1855,-1798,1778,-1779,-1778,1777,-1778,-1777]]},{"type":"Polygon","id":39,"properties":{"name":"Thalheim an der Thur"},"arcs":[[1856,1857,-1774,-1851,1858,1859]]},{"type":"Polygon","id":40,"properties":{"name":"Trüllikon"},"arcs":[[-1852,-1831,1829,-1841,-1782,-1833,1860,554,1861,1862]]},{"type":"Polygon","id":41,"properties":{"name":"Truttikon"},"arcs":[[-1853,-1863,1863,1864,1865,1866]]},{"type":"Polygon","id":42,"properties":{"name":"Unterstammheim"},"arcs":[[-1846,1867,1868,1869,558,1870,1871,1872,1873]]},{"type":"Polygon","id":43,"properties":{"name":"Volken"},"arcs":[[-1793,1786,-1787,-1786,-1816,-1821,-1801]]},{"type":"Polygon","id":44,"properties":{"name":"Waltalingen"},"arcs":[[-1854,-1867,1874,1875,1868,-1869,-1868,-1845,1876,1877]]},{"type":"Polygon","id":51,"properties":{"name":"Bachenbü
 lach"},"arcs":[[1878,1879,1880,1881]]},{"type":"Polygon","id":52,"properties":{"name":"Bassersdorf"},"arcs":[[1882,1883,1884,1885,1886]]},{"type":"Polygon","id":53,"properties":{"name":"Bülach"},"arcs":[[-1881,1887,1888,1889,1890,1891,1892,1893]]},{"type":"Polygon","id":54,"properties":{"name":"Dietlikon"},"arcs":[[1894,1895,-1883,1896,1897]]},{"type":"Polygon","id":55,"properties":{"name":"Eglisau"},"arcs":[[-1891,1898,1899,1900,1901,1902,1903,1904,1905,1906,539,540,-541,540,1907,1908,1909]]},{"type":"Polygon","id":56,"properties":{"name":"Embrach"},"arcs":[[1910,1911,1912,-1893,1913,1914,1915,1916]]},{"type":"Polygon","id":57,"properties":{"name":"Freienstein-Teufen"},"arcs":[[-1915,1917,-1909,1918,1919,-1783,-1792,1920]]},{"type":"MultiPolygon","id":58,"properties":{"name":"Glattfelden"},"arcs":[[[1921,1922,1923,1924,1925,-1899,-1890]],[[1926,1927,-1901]]]},{"type":"Polygon","id":59,"properties":{"name":"Hochfelden"},"arcs":[[1928,1929,-1922,-1889,1930,1931,-1932]]},{"type":"Pol
 ygon","id":60,"properties":{"name":"Höri"},"arcs":[[1932,1933,-1932,1931,-1932,-1931,-1888,-1880,1934]]},{"type":"Polygon","id":61,"properties":{"name":"Hüntwangen"},"arcs":[[1935,1936,1937,-1902,-1928]]},{"type":"Polygon","id":62,"properties":{"name":"Kloten"},"arcs":[[1938,1939,1940,1941,1942,-1943,1943,1944,-1884,-1896,1945]]},{"type":"Polygon","id":63,"properties":{"name":"Lufingen"},"arcs":[[1946,-1912,1947,-1943,-1942]]},{"type":"Polygon","id":64,"properties":{"name":"Nürensdorf"},"arcs":[[-1885,-1945,1948,1949,-1950,1949,1950,1951,1952,1953,-1954,1954]]},{"type":"Polygon","id":65,"properties":{"name":"Oberembrach"},"arcs":[[1955,1956,1957,-1958,1957,1958,1951,-1952,-1951,-1950,1949,-1950,-1949,-1944,1942,-1948,-1911,1959,1960]]},{"type":"Polygon","id":66,"properties":{"name":"Opfikon"},"arcs":[[1961,1962,-1939,1963]]},{"type":"Polygon","id":67,"properties":{"name":"Rafz"},"arcs":[[-1904,1964,1965,423,537,1966,1967]]},{"type":"Polygon","id":68,"properties":{"name":"Rorbas"}
 ,"arcs":[[-1892,-1910,-1918,-1914]]},{"type":"Polygon","id":69,"properties":{"name":"Wallisellen"},"arcs":[[1968,-1964,-1946,-1895,1969]]},{"type":"Polygon","id":70,"properties":{"name":"Wasterkingen"},"arcs":[[1970,420,1971,-1937]]},{"type":"Polygon","id":71,"properties":{"name":"Wil (ZH)"},"arcs":[[-1938,-1972,421,1972,-1965,-1903]]},{"type":"Polygon","id":72,"properties":{"name":"Winkel"},"arcs":[[1973,1974,-1882,-1894,-1913,-1947,-1941]]},{"type":"Polygon","id":81,"properties":{"name":"Bachs"},"arcs":[[1975,1976,1977,1978,1979,532,1980,1981,1982]]},{"type":"Polygon","id":82,"properties":{"name":"Boppelsen"},"arcs":[[1983,1984,1985,1986]]},{"type":"Polygon","id":83,"properties":{"name":"Buchs (ZH)"},"arcs":[[1987,1988,1989,1990,-1984,1991,1992,1993]]},{"type":"Polygon","id":84,"properties":{"name":"Dällikon"},"arcs":[[1994,1995,1996,-1989,1997]]},{"type":"Polygon","id":85,"properties":{"name":"Dänikon"},"arcs":[[-1997,1998,1999,2000,-1990]]},{"type":"Polygon","id":86,"propertie
 s":{"name":"Dielsdorf"},"arcs":[[-1993,2001,2002,2003,-2004,2004]]},{"type":"Polygon","id":87,"properties":{"name":"Hüttikon"},"arcs":[[2005,2006,2007,-2000,2008]]},{"type":"Polygon","id":88,"properties":{"name":"Neerach"},"arcs":[[2009,-1983,2010,-1929,1931,-1934,2011]]},{"type":"Polygon","id":89,"properties":{"name":"Niederglatt"},"arcs":[[2012,2013,-2012,-1933,2014]]},{"type":"Polygon","id":90,"properties":{"name":"Niederhasli"},"arcs":[[2015,-1994,-2005,2003,2016,-2013,2017,2018]]},{"type":"Polygon","id":91,"properties":{"name":"Niederweningen"},"arcs":[[526,2019,528,529,2020,2021,2022]]},{"type":"Polygon","id":92,"properties":{"name":"Oberglatt"},"arcs":[[-2018,-2015,-1935,-1879,-1975,2023]]},{"type":"Polygon","id":93,"properties":{"name":"Oberweningen"},"arcs":[[2024,2025,2026,2027,-1978,2028,2029]]},{"type":"Polygon","id":94,"properties":{"name":"Otelfingen"},"arcs":[[2030,523,2031,2032,525,-2023,2033,-1985,-1991,-2001,-2008]]},{"type":"Polygon","id":95,"properties":{"name":
 "Regensberg"},"arcs":[[-1992,-1987,2034,-2025,2035,-2002]]},{"type":"Polygon","id":96,"properties":{"name":"Regensdorf"},"arcs":[[2036,2037,2038,-1998,-1988,-2016,2039,2040]]},{"type":"Polygon","id":97,"properties":{"name":"Rümlang"},"arcs":[[2041,-2040,-2019,-2024,-1974,-1940,-1963]]},{"type":"Polygon","id":98,"properties":{"name":"Schleinikon"},"arcs":[[-1986,-2034,-2022,2042,-2026,-2035]]},{"type":"Polygon","id":99,"properties":{"name":"Schöfflisdorf"},"arcs":[[-2029,-1977,2043]]},{"type":"Polygon","id":100,"properties":{"name":"Stadel"},"arcs":[[-1982,2044,-1923,-1930,-2011]]},{"type":"Polygon","id":101,"properties":{"name":"Steinmaur"},"arcs":[[-2004,-2003,-2036,-2030,-2044,-1976,-2010,-2014,-2017]]},{"type":"Polygon","id":102,"properties":{"name":"Weiach"},"arcs":[[-1981,533,534,535,416,2045,-1924,-2045]]},{"type":"Polygon","id":111,"properties":{"name":"Bäretswil"},"arcs":[[2046,2047,-2048,2047,2048,2049,2050,2051,2052,2053,-2054,2053,2054,2055,-2056,2055,2056,2057]]},{"ty
 pe":"Polygon","id":112,"properties":{"name":"Bubikon"},"arcs":[[2058,2059,2060,2061,2062,2063,-2064,2063,2064,2065,2066,2067]]},{"type":"Polygon","id":113,"properties":{"name":"Dürnten"},"arcs":[[-2065,-2064,2063,-2064,-2063,2068,2069,2070]]},{"type":"Polygon","id":114,"properties":{"name":"Fischenthal"},"arcs":[[2071,2072,2073,-2057,-2056,2055,-2056,-2055,-2054,2053,-2054,-2053,2074,2075,2076,598]]},{"type":"Polygon","id":115,"properties":{"name":"Gossau (ZH)"},"arcs":[[2077,2078,2079,-2080,2080,2081,2082,2083,2084,-2085,2084,2085,2086,-2061]]},{"type":"Polygon","id":116,"properties":{"name":"Grüningen"},"arcs":[[2087,2088,2089,-2078,-2060]]},{"type":"Polygon","id":117,"properties":{"name":"Hinwil"},"arcs":[[-2087,2090,-2058,-2074,2091,-2069,-2062]]},{"type":"Polygon","id":118,"properties":{"name":"Rüti (ZH)"},"arcs":[[-2066,-2071,2092,2093,605,2094,2095,607,2096]]},{"type":"Polygon","id":119,"properties":{"name":"Seegräben"},"arcs":[[2097,2098,-2099,2099,2100,2101]]},{"type":"
 Polygon","id":120,"properties":{"name":"Wald (ZH)"},"arcs":[[-2070,-2092,-2073,2102,600,2103,602,603,-604,603,2104,-2093]]},{"type":"Polygon","id":121,"properties":{"name":"Wetzikon (ZH)"},"arcs":[[-2086,-2085,2084,-2085,-2084,2105,-2102,2106,-2049,-2048,2047,-2048,-2047,-2091]]},{"type":"Polygon","id":131,"properties":{"name":"Adliswil"},"arcs":[[-1765,-1764,2107,2108,2109,-2110,2109,2110,2111,2112]]},{"type":"Polygon","id":132,"properties":{"name":"Hirzel"},"arcs":[[2113,2114,2115,497,2116,-1727,2117,2118,2119]]},{"type":"Polygon","id":133,"properties":{"name":"Horgen"},"arcs":[[-2118,-1726,2120,2121,-2122,2121,2122,2123,2124,2125,2126]]},{"type":"Polygon","id":134,"properties":{"name":"Hütten"},"arcs":[[490,2127,2128,2129,492,2130,2131,2132,-2133,2132,2133,2134,2135,2136,2137]]},{"type":"Polygon","id":135,"properties":{"name":"Kilchberg (ZH)"},"arcs":[[2138,2139,-2111,-2110,2109,-2110,-2109,2140,2141]]},{"type":"Polygon","id":136,"properties":{"name":"Langnau am Albis"},"arcs":[
 [-1705,-1766,-2113,2142,2143,-2123,-2122,2121,-2122,-2121,-1725]]},{"type":"Polygon","id":137,"properties":{"name":"Oberrieden"},"arcs":[[-2125,2144,2145,2146]]},{"type":"Polygon","id":138,"properties":{"name":"Richterswil"},"arcs":[[2147,487,2148,-2135,2149,2150,2151,2152]]},{"type":"Polygon","id":139,"properties":{"name":"Rüschlikon"},"arcs":[[-2143,-2112,-2140,2153,2154]]},{"type":"Polygon","id":140,"properties":{"name":"Schönenberg (ZH)"},"arcs":[[2155,494,2156,-2120,2157,-2150,-2134,-2133,2132,-2133,-2132]]},{"type":"Polygon","id":141,"properties":{"name":"Thalwil"},"arcs":[[-2144,-2155,2158,2159,2160,-2145,-2124]]},{"type":"Polygon","id":142,"properties":{"name":"Wädenswil"},"arcs":[[-2151,-2158,-2119,-2127,2161,2162,2163,2164]]},{"type":"Polygon","id":151,"properties":{"name":"Erlenbach (ZH)"},"arcs":[[2165,2166,-2167,2166,2167,-2160,2168]]},{"type":"Polygon","id":152,"properties":{"name":"Herrliberg"},"arcs":[[2169,2170,-2171,2170,2171,-2146,-2161,-2168,-2167,2166,-2167,-
 2166,2172,2173,2174]]},{"type":"Polygon","id":153,"properties":{"name":"Hombrechtikon"},"arcs":[[485,2175,2176,2177,-2178,2177,2178,2179,-2088,-2059,2180,610]]},{"type":"Polygon","id":154,"properties":{"name":"Küsnacht (ZH)"},"arcs":[[-2173,-2169,-2159,-2154,-2139,2181,2182,2183,-2184,2184]]},{"type":"Polygon","id":155,"properties":{"name":"Männedorf"},"arcs":[[2185,-2164,2186,2187,2188]]},{"type":"Polygon","id":156,"properties":{"name":"Meilen"},"arcs":[[-2162,-2126,-2147,-2172,-2171,2170,-2171,-2170,2189,2190]]},{"type":"Polygon","id":157,"properties":{"name":"Oetwil am See"},"arcs":[[2191,2192,-2193,2192,2193,2188,-2189,-2188,2194,2195,-2089,-2180]]},{"type":"Polygon","id":158,"properties":{"name":"Stäfa"},"arcs":[[2196,-2152,-2165,-2186,-2189,-2194,-2193,2192,-2193,-2192,-2179,-2178,2177,-2178,-2177]]},{"type":"Polygon","id":159,"properties":{"name":"Uetikon am See"},"arcs":[[-2187,-2163,-2191,2197,-2195]]},{"type":"Polygon","id":160,"properties":{"name":"Zumikon"},"arcs":[[-
 2184,-2183,2198,2199]]},{"type":"Polygon","id":161,"properties":{"name":"Zollikon"},"arcs":[[-2182,-2142,2200,2201,-2202,2201,2202,2203,-2199]]},{"type":"Polygon","id":171,"properties":{"name":"Bauma"},"arcs":[[-2075,-2052,2204,2205,2206,2207,2208]]},{"type":"Polygon","id":172,"properties":{"name":"Fehraltorf"},"arcs":[[2209,2210,2211,2212,2213,-2214,2214]]},{"type":"Polygon","id":173,"properties":{"name":"Hittnau"},"arcs":[[2215,-2205,-2051]]},{"type":"Polygon","id":174,"properties":{"name":"Illnau-Effretikon"},"arcs":[[2216,2217,2218,2219,2220,2221,-2211]]},{"type":"Polygon","id":175,"properties":{"name":"Kyburg"},"arcs":[[2222,2223,-2224,2223,2224,-2220,2225,2226]]},{"type":"Polygon","id":176,"properties":{"name":"Lindau"},"arcs":[[2227,2228,2229,-2230,2229,2230,-1886,-1955,1953,2231,2232,-2218]]},{"type":"Polygon","id":177,"properties":{"name":"Pfäffikon"},"arcs":[[-2107,-2101,2233,-2214,-2213,2234,2235,-2206,-2216,-2050]]},{"type":"Polygon","id":178,"properties":{"name":"Russi
 kon"},"arcs":[[-2235,-2212,-2222,2236,2237,-2238,2237,2238,2239,2240,2241,-2242,2241,2242]]},{"type":"Polygon","id":179,"properties":{"name":"Sternenberg"},"arcs":[[-2076,-2209,2243,2244,2245,2246,594,-595,594,595,2247]]},{"type":"Polygon","id":180,"properties":{"name":"Weisslingen"},"arcs":[[2248,2239,-2240,-2239,-2238,2237,-2238,-2237,-2221,-2225,-2224,2223,-2224,-2223,2249,2250,2251]]},{"type":"Polygon","id":181,"properties":{"name":"Wila"},"arcs":[[-2246,2244,-2244,-2208,2252,2253,2254]]},{"type":"Polygon","id":182,"properties":{"name":"Wildberg"},"arcs":[[-2207,-2236,-2243,-2242,2241,-2242,-2241,-2240,-2249,2255,2256,-2253]]},{"type":"Polygon","id":191,"properties":{"name":"Dübendorf"},"arcs":[[2257,-1970,-1898,2258,2259,2260,2261,2262,-2263,2262,2263]]},{"type":"Polygon","id":192,"properties":{"name":"Egg"},"arcs":[[-2196,-2198,-2190,-2175,2264,2265,-2266,2265,2266,2267,-2080,-2079,-2090]]},{"type":"Polygon","id":193,"properties":{"name":"Fällanden"},"arcs":[[2268,2269,-2264
 ,-2263,2262,-2263,-2262,2270,2271]]},{"type":"Polygon","id":194,"properties":{"name":"Greifensee"},"arcs":[[2272,-2272,2273,2274,2275]]},{"type":"Polygon","id":195,"properties":{"name":"Maur"},"arcs":[[-2267,-2266,2265,-2266,-2265,-2174,-2185,2183,-2200,-2204,2276,-2269,-2273,2277,2278]]},{"type":"MultiPolygon","id":196,"properties":{"name":"Mönchaltorf"},"arcs":[[[-2268,-2279,2279,-2081,2079]],[[-2083,2280,-2099,-2098,-2106]]]},{"type":"Polygon","id":197,"properties":{"name":"Schwerzenbach"},"arcs":[[-2271,-2261,2281,-2274]]},{"type":"Polygon","id":198,"properties":{"name":"Uster"},"arcs":[[-2280,-2278,-2276,2282,-2215,2213,-2234,-2100,2098,-2281,-2082]]},{"type":"Polygon","id":199,"properties":{"name":"Volketswil"},"arcs":[[-2275,-2282,-2260,2283,-2228,-2217,-2210,-2283]]},{"type":"Polygon","id":200,"properties":{"name":"Wangen-Brüttisellen"},"arcs":[[-2259,-1897,-1887,-2231,-2230,2229,-2230,-2229,-2284]]},{"type":"Polygon","id":211,"properties":{"name":"Altikon"},"arcs":[[2284,
 -1860,2285,2286,2287,2288,2289,-2290,2290]]},{"type":"Polygon","id":212,"properties":{"name":"Bertschikon"},"arcs":[[2291,2292,-2293,2292,2293,2294,2295,575,-576,575,576,2296,2297,2298,2299,2300]]},{"type":"Polygon","id":213,"properties":{"name":"Brütten"},"arcs":[[-2232,-1954,-1953,-1952,-1959,-1958,1957,-1958,-1957,-1956,1955,2301]]},{"type":"Polygon","id":214,"properties":{"name":"Dägerlen"},"arcs":[[2302,2303,2304,-1826,-1828,-1768,-1858,2305]]},{"type":"Polygon","id":215,"properties":{"name":"Dättlikon"},"arcs":[[-1916,-1921,-1791,2306,2307]]},{"type":"Polygon","id":216,"properties":{"name":"Dinhard"},"arcs":[[2308,2309,-2303,-2306,-1857,-2285,2310]]},{"type":"Polygon","id":217,"properties":{"name":"Elgg"},"arcs":[[2311,-2300,2312,2313,2314,582,583,-584,583,584,2315]]},{"type":"Polygon","id":218,"properties":{"name":"Ellikon an der Thur"},"arcs":[[2316,-2290,-2289,2317,571,572,573,2318,-2295,2319]]},{"type":"Polygon","id":219,"properties":{"name":"Elsau"},"arcs":[[2320,2321,
 -2301,-2312,2322,2323,2324]]},{"type":"Polygon","id":220,"properties":{"name":"Hagenbuch"},"arcs":[[-2313,-2299,2325,2326,578,2327,2328]]},{"type":"Polygon","id":221,"properties":{"name":"Hettlingen"},"arcs":[[2329,2330,-1827,-2305,2331]]},{"type":"Polygon","id":222,"properties":{"name":"Hofstetten (ZH)"},"arcs":[[2332,-2324,-2323,-2316,585,2333,2334]]},{"type":"Polygon","id":223,"properties":{"name":"Neftenbach"},"arcs":[[2335,-2307,-1797,-1796,1795,-1796,1795,-1796,-1795,-1805,-1824,-2331,2336]]},{"type":"Polygon","id":224,"properties":{"name":"Pfungen"},"arcs":[[-1960,-1917,-2308,-2336,2337]]},{"type":"Polygon","id":225,"properties":{"name":"Rickenbach (ZH)"},"arcs":[[2338,-2311,-2291,2289,-2317,2339]]},{"type":"Polygon","id":226,"properties":{"name":"Schlatt (ZH)"},"arcs":[[2340,2341,-2342,2341,2342,2343,-2325,-2324,2323,-2333,2344]]},{"type":"Polygon","id":227,"properties":{"name":"Seuzach"},"arcs":[[2345,-2332,-2304,-2303,2302,-2310]]},{"type":"Polygon","id":228,"properties":{
 "name":"Turbenthal"},"arcs":[[-2254,-2257,2346,-2345,-2335,2347,2348,2349,587,588,-589,588,589,2350,2351,2352,591,2353,2354]]},{"type":"Polygon","id":229,"properties":{"name":"Wiesendangen"},"arcs":[[2355,2356,-2357,2356,2357,-2340,-2320,-2294,-2293,2292,-2293,-2292,-2322]]},{"type":"Polygon","id":230,"properties":{"name":"Winterthur"},"arcs":[[2358,2359,-2360,2359,2360,-2226,-2219,-2233,-2302,-1956,-1961,-2338,-2337,-2330,-2346,-2309,-2339,-2358,-2357,2356,-2357,-2356,-2321,-2344]]},{"type":"Polygon","id":231,"properties":{"name":"Zell (ZH)"},"arcs":[[-2256,-2252,2250,-2250,-2227,-2361,-2360,2359,-2360,-2359,-2343,-2342,2341,-2342,-2341,-2347]]},{"type":"Polygon","id":241,"properties":{"name":"Aesch (ZH)"},"arcs":[[2361,512,513,2362,2363,-1719,2364]]},{"type":"Polygon","id":242,"properties":{"name":"Birmensdorf (ZH)"},"arcs":[[-1761,-1767,-2364,-2363,514,2365,2366,2367,2368,2369,2370,-2371,2370,2371]]},{"type":"Polygon","id":243,"properties":{"name":"Dietikon"},"arcs":[[2372,2373,5
 17,2374,519,2375,2376,2377,2378,2379]]},{"type":"Polygon","id":244,"properties":{"name":"Geroldswil"},"arcs":[[-2377,2380,2381,2382]]},{"type":"Polygon","id":245,"properties":{"name":"Oberengstringen"},"arcs":[[2383,2384,-2037,2385]]},{"type":"Polygon","id":246,"properties":{"name":"Oetwil an der Limmat"},"arcs":[[2386,2387,2388,-2009,-1999,-1996,2389,-2382,-2381,-2376]]},{"type":"Polygon","id":247,"properties":{"name":"Schlieren"},"arcs":[[2390,-2380,2391,-2384,2392]]},{"type":"Polygon","id":248,"properties":{"name":"Uitikon"},"arcs":[[-1762,-2372,-2371,2370,-2371,-2370,2393,2394]]},{"type":"Polygon","id":249,"properties":{"name":"Unterengstringen"},"arcs":[[-2379,2395,-2038,-2385,-2392]]},{"type":"Polygon","id":250,"properties":{"name":"Urdorf"},"arcs":[[-2394,-2369,2396,2397,-2373,-2391]]},{"type":"Polygon","id":251,"properties":{"name":"Weiningen (ZH)"},"arcs":[[-2378,-2383,-2382,2381,-2390,-1995,-2039,-2396]]},{"type":"Polygon","id":261,"properties":{"name":"Zürich"},"arcs":[[
 -2277,-2203,-2202,2201,-2202,-2201,-2141,-2108,1763,-1764,-1763,-2395,-2393,-2386,-2041,-2042,-1962,-1969,-2258,-2270]]},{"type":"Polygon","id":301,"properties":{"name":"Aarberg"},"arcs":[[2398,2399,2400,2401,2402]]},{"type":"Polygon","id":302,"properties":{"name":"Bargen (BE)"},"arcs":[[2403,2404,2405,2406,-2400,2407]]},{"type":"Polygon","id":303,"properties":{"name":"Grossaffoltern"},"arcs":[[2408,2409,2410,2411,2412,2413,-2414,2414]]},{"type":"Polygon","id":304,"properties":{"name":"Kallnach"},"arcs":[[2415,2416,2417,656,2418,2419,2420,2421,2422,-2404,2423]]},{"type":"Polygon","id":305,"properties":{"name":"Kappelen"},"arcs":[[-2407,2424,2425,2426,2427,2428,2429,2430,-2401]]},{"type":"Polygon","id":306,"properties":{"name":"Lyss"},"arcs":[[-2402,-2431,2431,2432,2433,2434,-2409,2435]]},{"type":"Polygon","id":307,"properties":{"name":"Meikirch"},"arcs":[[2436,2437,2438,2439]]},{"type":"Polygon","id":309,"properties":{"name":"Radelfingen"},"arcs":[[2440,2441,-2424,-2408,-2399,2442,2
 443]]},{"type":"Polygon","id":310,"properties":{"name":"Rapperswil (BE)"},"arcs":[[2444,2445,-2412,2446,2447,734,2448,2449,2450,2451,2452]]},{"type":"Polygon","id":311,"properties":{"name":"Schüpfen"},"arcs":[[-2439,2453,-2414,2413,-2414,-2413,-2446,2454,2455,2456]]},{"type":"Polygon","id":312,"properties":{"name":"Seedorf (BE)"},"arcs":[[-2443,-2403,-2436,-2415,2413,-2454,-2438,2457]]},{"type":"Polygon","id":321,"properties":{"name":"Aarwangen"},"arcs":[[2458,2459,2460,2461,2462,2463,2464]]},{"type":"Polygon","id":322,"properties":{"name":"Auswil"},"arcs":[[2465,2466,2467,2468]]},{"type":"Polygon","id":323,"properties":{"name":"Bannwil"},"arcs":[[2469,2470,2471,2472,2473,2474,-2462]]},{"type":"Polygon","id":324,"properties":{"name":"Bleienbach"},"arcs":[[2475,2476,2477,2478,2479,2480,2481]]},{"type":"Polygon","id":325,"properties":{"name":"Busswil bei Melchnau"},"arcs":[[2482,2483,2484,2485,2486]]},{"type":"Polygon","id":326,"properties":{"name":"Gondiswil"},"arcs":[[2487,-2469,24
 88,2489,2490,2491,2492,2493,777,2494]]},{"type":"Polygon","id":329,"properties":{"name":"Langenthal"},"arcs":[[2495,-2486,2496,2497,-2479,2498,-2459,2499,2500,769,2501]]},{"type":"Polygon","id":331,"properties":{"name":"Lotzwil"},"arcs":[[2502,2503,-2481,-2480,-2498,2504,-2484]]},{"type":"Polygon","id":332,"properties":{"name":"Madiswil"},"arcs":[[-2468,2505,2506,2507,2508,2509,-2503,-2483,2510,2511,-2489]]},{"type":"Polygon","id":333,"properties":{"name":"Melchnau"},"arcs":[[-2491,2512,-2511,-2487,-2496,2513,2514,771,2515,2516,773,-774,773,774,-775,774,2517]]},{"type":"Polygon","id":334,"properties":{"name":"Obersteckholz"},"arcs":[[-2505,-2497,-2485]]},{"type":"Polygon","id":335,"properties":{"name":"Oeschenbach"},"arcs":[[2518,2519,2520,2521]]},{"type":"Polygon","id":336,"properties":{"name":"Reisiswil"},"arcs":[[-2512,-2513,-2490]]},{"type":"Polygon","id":337,"properties":{"name":"Roggwil (BE)"},"arcs":[[-2501,-2500,-2465,2522,2523,-2524,2524,766,767,2525,-2526,768]]},{"type":"P
 olygon","id":338,"properties":{"name":"Rohrbach"},"arcs":[[2526,-2506,-2467,2527]]},{"type":"Polygon","id":339,"properties":{"name":"Rohrbachgraben"},"arcs":[[2528,2529,2530,-2507,-2527,2531]]},{"type":"Polygon","id":340,"properties":{"name":"Rütschelen"},"arcs":[[2532,-2482,-2481,2480,-2504,-2510]]},{"type":"Polygon","id":341,"properties":{"name":"Schwarzhäusern"},"arcs":[[-2463,-2475,2533,761,762,2534]]},{"type":"Polygon","id":342,"properties":{"name":"Thunstetten"},"arcs":[[-2499,-2478,2535,2536,2537,-2460]]},{"type":"Polygon","id":344,"properties":{"name":"Ursenbach"},"arcs":[[2538,-2521,2539,-2508,-2531]]},{"type":"Polygon","id":345,"properties":{"name":"Wynau"},"arcs":[[-2464,-2535,763,764,2540,-2524,-2523]]},{"type":"Polygon","id":351,"properties":{"name":"Bern"},"arcs":[[2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551]]},{"type":"Polygon","id":352,"properties":{"name":"Bolligen"},"arcs":[[2552,2553,2554,2555,2556,2557,2558,2559]]},{"type":"Polygon","id":353,"propert
 ies":{"name":"Bremgarten bei Bern"},"arcs":[[2560,2561,-2547]]},{"type":"Polygon","id":354,"properties":{"name":"Kirchlindach"},"arcs":[[2562,-2440,-2457,2563,2564,2565,-2561,-2546]]},{"type":"Polygon","id":355,"properties":{"name":"Köniz"},"arcs":[[2566,636,2567,2568,-2552,2569,2570,2571,2572,2573,2574,-2575,2574,2575,2576,2577,-2578,2577,2578,2579,-2580,2579,2580]]},{"type":"Polygon","id":356,"properties":{"name":"Muri bei Bern"},"arcs":[[-2570,-2551,2581,2582,2583,2584,2585,2586,2587]]},{"type":"Polygon","id":357,"properties":{"name":"Oberbalm"},"arcs":[[2588,-2581,-2580,2579,-2580,-2579,-2578,2577,-2578,-2577,2589,2590,2591,2592]]},{"type":"Polygon","id":358,"properties":{"name":"Stettlen"},"arcs":[[2593,-2559,2594,-2583]]},{"type":"Polygon","id":359,"properties":{"name":"Vechigen"},"arcs":[[2595,-2584,-2595,-2558,2596,2597,2598,2599,2600]]},{"type":"Polygon","id":360,"properties":{"name":"Wohlen bei Bern"},"arcs":[[2601,-2444,-2458,-2437,-2563,-2545,2602]]},{"type":"Polygon","
 id":361,"properties":{"name":"Zollikofen"},"arcs":[[-2548,-2562,-2566,2603,2604]]},{"type":"Polygon","id":362,"properties":{"name":"Ittigen"},"arcs":[[-2549,-2605,2605,-2553,2606]]},{"type":"Polygon","id":363,"properties":{"name":"Ostermundigen"},"arcs":[[-2550,-2607,-2560,-2594,-2582]]},{"type":"Polygon","id":371,"properties":{"name":"Biel/Bienne"},"arcs":[[2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617]]},{"type":"Polygon","id":372,"properties":{"name":"Evilard"},"arcs":[[2618,2619,2620,-2612]]},{"type":"Polygon","id":381,"properties":{"name":"Arch"},"arcs":[[713,2621,2622,715,2623,722,2624]]},{"type":"Polygon","id":382,"properties":{"name":"Büetigen"},"arcs":[[-2434,2625,2626,2627,2628]]},{"type":"Polygon","id":383,"properties":{"name":"Büren an der Aare"},"arcs":[[2629,2630,2631,2632,2633,2634,2635,2636,2637,2638]]},{"type":"Polygon","id":385,"properties":{"name":"Diessbach bei Büren"},"arcs":[[-2435,-2629,2639,-2639,2640,730,2641,2642,-2410]]},{"type":"Polygon","id":
 386,"properties":{"name":"Dotzigen"},"arcs":[[-2628,2643,2644,-2630,-2640]]},{"type":"Polygon","id":387,"properties":{"name":"Lengnau (BE)"},"arcs":[[2645,2646,2647,2648,710,2649,-2634]]},{"type":"Polygon","id":388,"properties":{"name":"Leuzigen"},"arcs":[[2650,719,2651,2652,2653,721,-2624,2654,2655,717,2656]]},{"type":"Polygon","id":389,"properties":{"name":"Meienried"},"arcs":[[2657,2658,2659,-2631,-2645]]},{"type":"Polygon","id":390,"properties":{"name":"Meinisberg"},"arcs":[[2660,2661,-2646,-2633]]},{"type":"Polygon","id":391,"properties":{"name":"Oberwil bei Büren"},"arcs":[[-2637,2662,2663,724,2664,2665,2666,2667,2668,727,-728,727,728]]},{"type":"Polygon","id":392,"properties":{"name":"Pieterlen"},"arcs":[[2669,-2615,2670,2671,-2647,-2662]]},{"type":"Polygon","id":393,"properties":{"name":"Rüti bei Büren"},"arcs":[[-2636,2672,712,-2625,2673,2674,-2663]]},{"type":"Polygon","id":394,"properties":{"name":"Wengi"},"arcs":[[-2643,2675,2676,2677,2678,-2447,-2411]]},{"type":"Polyg
 on","id":401,"properties":{"name":"Aefligen"},"arcs":[[2679,2680,2681,2682,2683]]},{"type":"Polygon","id":402,"properties":{"name":"Alchenstorf"},"arcs":[[2684,2685,2686,2687,2688,2689,2690]]},{"type":"Polygon","id":403,"properties":{"name":"Bäriswil"},"arcs":[[2691,2692,2693]]},{"type":"Polygon","id":404,"properties":{"name":"Burgdorf"},"arcs":[[2694,2695,2696,2697,2698,2699,2700,2701,2702,2703,2704]]},{"type":"Polygon","id":405,"properties":{"name":"Ersigen"},"arcs":[[2705,2706,2707,2708]]},{"type":"Polygon","id":406,"properties":{"name":"Hasle bei Burgdorf"},"arcs":[[2709,2710,2711,2599,-2600,-2599,2712,2713,2714,2715,-2695,2716,2717,2718]]},{"type":"MultiPolygon","id":407,"properties":{"name":"Heimiswil"},"arcs":[[[-2717,-2705,2719,2720,2721]],[[2722,2723]]]},{"type":"Polygon","id":408,"properties":{"name":"Hellsau"},"arcs":[[-2689,2724,2725,2726]]},{"type":"Polygon","id":409,"properties":{"name":"Hindelbank"},"arcs":[[2727,-2694,2728,2729,2730,2731,2732]]},{"type":"Polygon","i
 d":410,"properties":{"name":"Höchstetten"},"arcs":[[2733,2734,-2735,2734,2735,2736,2737,746,-2725,-2688]]},{"type":"Polygon","id":411,"properties":{"name":"Kernenried"},"arcs":[[-2731,2738,2739,2740,2741]]},{"type":"Polygon","id":412,"properties":{"name":"Kirchberg (BE)"},"arcs":[[-2703,2742,2743,2744,-2706,2745,2746]]},{"type":"Polygon","id":413,"properties":{"name":"Koppigen"},"arcs":[[2747,2748,2749,2750,2751,-2736,-2735,2734,-2735,-2734,-2687]]},{"type":"Polygon","id":414,"properties":{"name":"Krauchthal"},"arcs":[[2752,2753,2754,-2597,-2557,2755,-2692,-2728,2756,-2697]]},{"type":"Polygon","id":415,"properties":{"name":"Lyssach"},"arcs":[[-2702,2757,2758,-2732,-2742,2759,2760,-2743]]},{"type":"Polygon","id":416,"properties":{"name":"Mötschwil"},"arcs":[[-2757,-2733,-2759,2761,-2698]]},{"type":"Polygon","id":417,"properties":{"name":"Niederösch"},"arcs":[[2762,2763,2764,-2748,-2686]]},{"type":"MultiPolygon","id":418,"properties":{"name":"Oberburg"},"arcs":[[[-2716,-2715,2765,-
 2753,-2696]],[[-2598,-2755,2766,-2713]],[[2767,-2700]]]},{"type":"Polygon","id":419,"properties":{"name":"Oberösch"},"arcs":[[-2708,2768,-2764,2769]]},{"type":"Polygon","id":420,"properties":{"name":"Rüdtligen-Alchenflüh"},"arcs":[[-2761,2770,-2680,-2744]]},{"type":"Polygon","id":421,"properties":{"name":"Rumendingen"},"arcs":[[-2746,-2709,-2770,-2763,-2685,2771]]},{"type":"Polygon","id":422,"properties":{"name":"Rüti bei Lyssach"},"arcs":[[-2762,-2758,-2701,-2768,-2699]]},{"type":"Polygon","id":423,"properties":{"name":"Willadingen"},"arcs":[[-2752,2772,2773,-2737]]},{"type":"Polygon","id":424,"properties":{"name":"Wynigen"},"arcs":[[-2720,-2704,-2747,-2772,-2691,2774,2775,-2519,2776,2777,-2723,2778]]},{"type":"Polygon","id":431,"properties":{"name":"Corgémont"},"arcs":[[2779,2780,2781,2782,2783,2784,2785]]},{"type":"Polygon","id":432,"properties":{"name":"Cormoret"},"arcs":[[2786,2787,2788,2789]]},{"type":"Polygon","id":433,"properties":{"name":"Cortébert"},"arcs":[[2790,279
 1,2792,-2781]]},{"type":"Polygon","id":434,"properties":{"name":"Courtelary"},"arcs":[[-2789,2793,2794,2795,-2792,2796]]},{"type":"Polygon","id":435,"properties":{"name":"La Ferrière"},"arcs":[[2797,2798,674,675,2799,2800]]},{"type":"Polygon","id":436,"properties":{"name":"La Heutte"},"arcs":[[2801,2802,2803,2804,2805]]},{"type":"MultiPolygon","id":437,"properties":{"name":"Mont-Tramelan"},"arcs":[[[-2793,-2796,2806,2807,-2782]],[[2808,2809,2810]]]},{"type":"Polygon","id":438,"properties":{"name":"Orvin"},"arcs":[[-2613,-2621,2811,2812,-2786,2813,-2802,2814,2815]]},{"type":"Polygon","id":439,"properties":{"name":"Péry"},"arcs":[[-2815,-2806,2816,2817,2818,2819,2820,2821,2822]]},{"type":"Polygon","id":440,"properties":{"name":"Plagne"},"arcs":[[2823,-2822,2824]]},{"type":"Polygon","id":441,"properties":{"name":"Renan (BE)"},"arcs":[[2825,671,672,2826,-2798,2827]]},{"type":"Polygon","id":442,"properties":{"name":"Romont (BE)"},"arcs":[[-2648,-2672,2828,-2825,-2821,2829,2830,2831]]},
 {"type":"Polygon","id":443,"properties":{"name":"Saint-Imier"},"arcs":[[2832,668,2833,2834,2835,2836,679,2837,2838]]},{"type":"Polygon","id":444,"properties":{"name":"Sonceboz-Sombeval"},"arcs":[[-2814,-2785,2839,-2803]]},{"type":"Polygon","id":445,"properties":{"name":"Sonvilier"},"arcs":[[2840,2841,-2828,-2801,2842,677,2843,-2835]]},{"type":"Polygon","id":446,"properties":{"name":"Tramelan"},"arcs":[[-2783,-2808,2844,2845,2846,2847,682,2848,2849,-2810,2850]]},{"type":"Polygon","id":447,"properties":{"name":"Vauffelin"},"arcs":[[-2614,-2816,-2823,-2824,-2829,-2671]]},{"type":"Polygon","id":448,"properties":{"name":"Villeret"},"arcs":[[2851,-2839,2852,2853,2854,-2787,2855]]},{"type":"Polygon","id":491,"properties":{"name":"Brüttelen"},"arcs":[[2856,2857,2858,2859,2860]]},{"type":"MultiPolygon","id":492,"properties":{"name":"Erlach"},"arcs":[[[2861,2862,2863,2864,2865,2866,2867]],[[2868,2869]]]},{"type":"Polygon","id":493,"properties":{"name":"Finsterhennen"},"arcs":[[-2422,2870,-28
 60,2871,2872]]},{"type":"Polygon","id":494,"properties":{"name":"Gals"},"arcs":[[2873,2874,2875,2876,2877,2878,2879,2880,-2864,2881,-2869,2882]]},{"type":"Polygon","id":495,"properties":{"name":"Gampelen"},"arcs":[[2883,2884,2885,-2874,2886,2887]]},{"type":"Polygon","id":496,"properties":{"name":"Ins"},"arcs":[[2888,2889,658,-2888,2890,-2862,2891,-2858,2892]]},{"type":"Polygon","id":497,"properties":{"name":"Lüscherz"},"arcs":[[-2872,-2859,2893,2894,2895,2896]]},{"type":"Polygon","id":498,"properties":{"name":"Müntschemier"},"arcs":[[2897,2898,2899,-2893,-2857,2900,2901]]},{"type":"Polygon","id":499,"properties":{"name":"Siselen"},"arcs":[[-2423,-2873,-2897,2902,2903,-2405]]},{"type":"Polygon","id":500,"properties":{"name":"Treiten"},"arcs":[[-2901,-2861,-2871,-2421,2904]]},{"type":"Polygon","id":501,"properties":{"name":"Tschugg"},"arcs":[[-2887,-2883,-2870,-2882,-2863,-2891]]},{"type":"Polygon","id":502,"properties":{"name":"Vinelz"},"arcs":[[-2892,-2868,2905,-2894]]},{"type":"P
 olygon","id":532,"properties":{"name":"Bangerten"},"arcs":[[-2451,2906,2907,2908]]},{"type":"Polygon","id":533,"properties":{"name":"Bätterkinden"},"arcs":[[-2683,-2682,2909,2910,2911,741,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923]]},{"type":"Polygon","id":534,"properties":{"name":"Büren zum Hof"},"arcs":[[2924,2925,2926,2927,2928]]},{"type":"Polygon","id":535,"properties":{"name":"Deisswil bei Münchenbuchsee"},"arcs":[[2929,-2453,2930,2931,2932]]},{"type":"Polygon","id":536,"properties":{"name":"Diemerswil"},"arcs":[[-2456,2933,-2564]]},{"type":"Polygon","id":537,"properties":{"name":"Etzelkofen"},"arcs":[[2934,2935,2936,2937,2938,2939,-2926,2940]]},{"type":"Polygon","id":538,"properties":{"name":"Fraubrunnen"},"arcs":[[-2760,-2741,2941,2942,-2941,-2925,2943,-2910,2681,-2682,-2681,-2771]]},{"type":"Polygon","id":539,"properties":{"name":"Grafenried"},"arcs":[[2944,2945,2946,-2935,-2943]]},{"type":"Polygon","id":540,"properties":{"name":"Jegenstorf"},"arcs":[[-29
 32,2947,2948,-2946,2949,2950,-2951,2951,2952,2953,2954]]},{"type":"Polygon","id":541,"properties":{"name":"Iffwil"},"arcs":[[2955,-2908,2956,-2936,-2947,-2949]]},{"type":"Polygon","id":542,"properties":{"name":"Limpach"},"arcs":[[2957,-2928,2958,2959,2960,-2912]]},{"type":"Polygon","id":543,"properties":{"name":"Mattstetten"},"arcs":[[2961,-2953,2962,-2729,-2693,-2756,-2556]]},{"type":"Polygon","id":544,"properties":{"name":"Moosseedorf"},"arcs":[[2963,2964,2965,-2554]]},{"type":"Polygon","id":545,"properties":{"name":"Mülchi"},"arcs":[[-2940,2966,739,2967,2968,-2959,-2927]]},{"type":"Polygon","id":546,"properties":{"name":"Münchenbuchsee"},"arcs":[[-2604,-2565,-2934,-2455,-2445,-2930,2969,-2964,-2606]]},{"type":"Polygon","id":547,"properties":{"name":"Münchringen"},"arcs":[[-2952,2950,2970,-2739,-2730,-2963]]},{"type":"Polygon","id":549,"properties":{"name":"Schalunen"},"arcs":[[-2944,-2929,-2958,-2911]]},{"type":"Polygon","id":550,"properties":{"name":"Scheunen"},"arcs":[[-2450
 ,2971,736,2972,-2937,-2957,-2907]]},{"type":"Polygon","id":551,"properties":{"name":"Urtenen-Schönbühl"},"arcs":[[-2966,2973,-2954,-2962,-2555]]},{"type":"Polygon","id":552,"properties":{"name":"Utzenstorf"},"arcs":[[-2684,-2924,2974,2975,-2749,-2765,-2769,-2707,-2745]]},{"type":"Polygon","id":553,"properties":{"name":"Wiggiswil"},"arcs":[[-2970,-2933,-2955,-2974,-2965]]},{"type":"Polygon","id":554,"properties":{"name":"Wiler bei Utzenstorf"},"arcs":[[-2923,2976,2977,-2975]]},{"type":"Polygon","id":555,"properties":{"name":"Zauggenried"},"arcs":[[-2740,-2971,-2951,-2950,-2945,-2942]]},{"type":"Polygon","id":556,"properties":{"name":"Zielebach"},"arcs":[[-2922,2978,2979,744,-2976,-2978,-2977]]},{"type":"Polygon","id":557,"properties":{"name":"Zuzwil (BE)"},"arcs":[[-2452,-2909,-2956,-2948,-2931]]},{"type":"Polygon","id":561,"properties":{"name":"Adelboden"},"arcs":[[2980,2981,847,2982,2983,2984,2985,2986]]},{"type":"Polygon","id":562,"properties":{"name":"Aeschi bei Spiez"},"arcs":
 [[2987,2988,2989,2990,2991,2992,2993]]},{"type":"Polygon","id":563,"properties":{"name":"Frutigen"},"arcs":[[2994,-2987,2995,2996,2997]]},{"type":"Polygon","id":564,"properties":{"name":"Kandergrund"},"arcs":[[2998,-2998,2999]]},{"type":"Polygon","id":565,"properties":{"name":"Kandersteg"},"arcs":[[3000,839,3001,3002,3003,3004,841,3005,3006,3007,843,3008,845,3009,-2981,-2995,-2999,3010,3011]]},{"type":"Polygon","id":566,"properties":{"name":"Krattigen"},"arcs":[[3012,3013,3014,-2991]]},{"type":"Polygon","id":567,"properties":{"name":"Reichenbach im Kandertal"},"arcs":[[-3011,-3000,-2997,3015,3016,-2988,3017]]},{"type":"Polygon","id":571,"properties":{"name":"Beatenberg"},"arcs":[[3018,3019,3020,3021,3022,3023]]},{"type":"Polygon","id":572,"properties":{"name":"Bönigen"},"arcs":[[3024,3025,3026,3027,3028,3029,3030,3031]]},{"type":"Polygon","id":573,"properties":{"name":"Brienz (BE)"},"arcs":[[3032,3033,3034,3035,800,3036,3037,3038,3039,3040,3041,3042]]},{"type":"MultiPolygon","id":5
 74,"properties":{"name":"Brienzwiler"},"arcs":[[[-3043,3043]],[[-3041,-3040,3044,3045,3046]]]},{"type":"Polygon","id":575,"properties":{"name":"Därligen"},"arcs":[[3047,3048,3049,3050,3051,3052,3053]]},{"type":"Polygon","id":576,"properties":{"name":"Grindelwald"},"arcs":[[3054,831,3055,3056,3057,3058,-3033,3059,3060,3061]]},{"type":"Polygon","id":577,"properties":{"name":"Gsteigwiler"},"arcs":[[3062,3063,-3026,3064]]},{"type":"Polygon","id":578,"properties":{"name":"Gündlischwand"},"arcs":[[3065,3066,-3065,-3025,3067,3068]]},{"type":"Polygon","id":579,"properties":{"name":"Habkern"},"arcs":[[3069,3070,3071,-3023,3072,3073,3074,3075,3076]]},{"type":"Polygon","id":580,"properties":{"name":"Hofstetten bei Brienz"},"arcs":[[-3040,-3039,3077,803,804,-3045,3039]]},{"type":"Polygon","id":581,"properties":{"name":"Interlaken"},"arcs":[[-3030,3078,-3052,3079,3080]]},{"type":"Polygon","id":582,"properties":{"name":"Iseltwald"},"arcs":[[3081,-3068,-3032,3082,-3034,-3059]]},{"type":"Polygon"
 ,"id":584,"properties":{"name":"Lauterbrunnen"},"arcs":[[3083,833,3084,835,3085,3086,837,3087,-3012,-3018,-2994,3088,3089,-3066,3090,-3057]]},{"type":"Polygon","id":585,"properties":{"name":"Leissigen"},"arcs":[[-2992,-3015,3091,-3049,3092]]},{"type":"Polygon","id":586,"properties":{"name":"Lütschental"},"arcs":[[-3091,-3069,-3082,-3058]]},{"type":"MultiPolygon","id":587,"properties":{"name":"Matten bei Interlaken"},"arcs":[[[-3053,-3079,-3029,3093]],[[3094,-3027,-3064]]]},{"type":"Polygon","id":588,"properties":{"name":"Niederried bei Interlaken"},"arcs":[[3095,3096,-3070,3097]]},{"type":"Polygon","id":589,"properties":{"name":"Oberried am Brienzersee"},"arcs":[[3098,-3098,-3077,-3076,3075,3099,799,-3036]]},{"type":"Polygon","id":590,"properties":{"name":"Ringgenberg (BE)"},"arcs":[[-3081,3100,-3071,-3097,3101]]},{"type":"Polygon","id":591,"properties":{"name":"Saxeten"},"arcs":[[-3089,-2993,-3093,-3048,3102]]},{"type":"Polygon","id":592,"properties":{"name":"Schwanden bei Brienz"
 },"arcs":[[-3038,802,-3078]]},{"type":"Polygon","id":593,"properties":{"name":"Unterseen"},"arcs":[[-3080,-3051,3103,-3024,-3072,-3101]]},{"type":"Polygon","id":594,"properties":{"name":"Wilderswil"},"arcs":[[-3090,-3103,-3054,-3094,-3028,-3095,-3063,-3067]]},{"type":"Polygon","id":602,"properties":{"name":"Arni (BE)"},"arcs":[[3104,3105,3106,3107,3108,3109]]},{"type":"Polygon","id":603,"properties":{"name":"Biglen"},"arcs":[[3110,3111,3112,3113,-3107]]},{"type":"Polygon","id":604,"properties":{"name":"Bleiken bei Oberdiessbach"},"arcs":[[3114,3115,3116,3117,3118]]},{"type":"Polygon","id":605,"properties":{"name":"Bowil"},"arcs":[[3119,3120,3121,3122,3123,3124]]},{"type":"Polygon","id":606,"properties":{"name":"Brenzikofen"},"arcs":[[3125,3126,3127,-3116,3128]]},{"type":"Polygon","id":607,"properties":{"name":"Freimettigen"},"arcs":[[3129,3130,3131,3132,3133]]},{"type":"Polygon","id":608,"properties":{"name":"Grosshöchstetten"},"arcs":[[3134,3135,3136,3137,-3111,-3106,3138]]},{"typ
 e":"Polygon","id":609,"properties":{"name":"Häutligen"},"arcs":[[3139,3140,3141,3142,-3131]]},{"type":"Polygon","id":610,"properties":{"name":"Herbligen"},"arcs":[[-3117,-3128,3143,3144,3145]]},{"type":"Polygon","id":611,"properties":{"name":"Kiesen"},"arcs":[[3146,3147,3148,3149,3150]]},{"type":"Polygon","id":612,"properties":{"name":"Konolfingen"},"arcs":[[-3143,3151,3152,3153,-3137,3154,3155,-3132]]},{"type":"Polygon","id":613,"properties":{"name":"Landiswil"},"arcs":[[-3109,3156,3157,3158,3159]]},{"type":"Polygon","id":614,"properties":{"name":"Linden"},"arcs":[[3160,3161,-3134,3162,3163,-3121,3164]]},{"type":"Polygon","id":615,"properties":{"name":"Mirchel"},"arcs":[[3165,-3155,-3136,3166,3167,3168]]},{"type":"Polygon","id":616,"properties":{"name":"Münsingen"},"arcs":[[3169,3170,3171,3172,-3153,3173,3174,3175]]},{"type":"Polygon","id":617,"properties":{"name":"Niederhünigen"},"arcs":[[-3163,-3133,-3156,-3166,3176]]},{"type":"Polygon","id":619,"properties":{"name":"Oberdiess
 bach"},"arcs":[[3177,-3118,-3146,3178,-3140,-3130,-3162]]},{"type":"Polygon","id":620,"properties":{"name":"Oberthal"},"arcs":[[-3124,3179,-3139,-3105,3180,3181]]},{"type":"Polygon","id":622,"properties":{"name":"Oppligen"},"arcs":[[-3150,3182,-3144,-3127,3183]]},{"type":"Polygon","id":623,"properties":{"name":"Rubigen"},"arcs":[[3184,3185,-3171,3186]]},{"type":"Polygon","id":624,"properties":{"name":"Schlosswil"},"arcs":[[-3154,-3173,3187,-3112,-3138]]},{"type":"Polygon","id":625,"properties":{"name":"Tägertschi"},"arcs":[[3188,-3174,-3152,-3142]]},{"type":"Polygon","id":626,"properties":{"name":"Walkringen"},"arcs":[[-3108,-3114,3189,-2601,-2600,-2712,3190,3191,-3192,3191,3192,-3157]]},{"type":"Polygon","id":627,"properties":{"name":"Worb"},"arcs":[[-3188,-3172,-3186,3193,-2585,-2596,-3190,-3113]]},{"type":"Polygon","id":628,"properties":{"name":"Zäziwil"},"arcs":[[-3123,3194,-3168,-3167,-3135,-3180]]},{"type":"Polygon","id":629,"properties":{"name":"Oberhünigen"},"arcs":[[-316
 4,-3177,-3169,-3168,3167,-3195,-3122]]},{"type":"Polygon","id":630,"properties":{"name":"Allmendingen"},"arcs":[[-2586,-3194,-3185,3195]]},{"type":"Polygon","id":632,"properties":{"name":"Wichtrach"},"arcs":[[3196,3197,3198,-3175,-3189,-3141,-3179,-3145,-3183,-3149]]},{"type":"Polygon","id":661,"properties":{"name":"Clavaleyres"},"arcs":[[873,874,3199,876]]},{"type":"MultiPolygon","id":662,"properties":{"name":"Ferenbalm"},"arcs":[[[3200,3201,863,3202,3203,3204,3205,649,3206,3207,3208,3209,3210,3211]],[[3212,861,3213]]]},{"type":"Polygon","id":663,"properties":{"name":"Frauenkappelen"},"arcs":[[3214,-2603,-2544]]},{"type":"Polygon","id":664,"properties":{"name":"Golaten"},"arcs":[[3215,3216,3217,-2416,-2442,3218]]},{"type":"Polygon","id":665,"properties":{"name":"Gurbrü"},"arcs":[[-3210,651,3219,3220,653,3221,3222]]},{"type":"Polygon","id":666,"properties":{"name":"Kriechenwil"},"arcs":[[644,645,646,-647,646,647,3223,3224,-3204,3225,-3213,3226,3227,643]]},{"type":"Polygon","id":667
 ,"properties":{"name":"Laupen"},"arcs":[[3228,641,3229,-3227,-3214,3230,-3201,3231,3232]]},{"type":"Polygon","id":668,"properties":{"name":"Mühleberg"},"arcs":[[3233,-3232,-3212,3234,-3219,-2441,-2602,-3215,-2543]]},{"type":"Polygon","id":669,"properties":{"name":"Münchenwiler"},"arcs":[[3235,3236,3237,3238,3239,3240,3241]]},{"type":"Polygon","id":670,"properties":{"name":"Neuenegg"},"arcs":[[3242,3243,638,3244,3245,3246,-3233,-3234,-2542,-2569]]},{"type":"Polygon","id":671,"properties":{"name":"Wileroltigen"},"arcs":[[-3211,-3223,3247,-3216,-3235]]},{"type":"Polygon","id":681,"properties":{"name":"Belprahon"},"arcs":[[3248,3249,3250,3251]]},{"type":"Polygon","id":682,"properties":{"name":"Bévilard"},"arcs":[[-2819,3252,3253,3254]]},{"type":"Polygon","id":683,"properties":{"name":"Champoz"},"arcs":[[3255,-3254,3256,3257,3258,3259,3260]]},{"type":"Polygon","id":684,"properties":{"name":"Châtelat"},"arcs":[[3261,3262,3263,3264,3265]]},{"type":"Polygon","id":687,"properties":{"name
 ":"Corcelles (BE)"},"arcs":[[3266,3267,3268,697,-698,697,698,699,-700,699,3269,3270]]},{"type":"Polygon","id":690,"properties":{"name":"Court"},"arcs":[[-2831,3271,-3261,3272,3273,3274,3275,3276,707,3277]]},{"type":"Polygon","id":691,"properties":{"name":"Crémines"},"arcs":[[3278,3279,3280,694,695,-696,695,3281,-3268,3282,3283]]},{"type":"Polygon","id":692,"properties":{"name":"Eschert"},"arcs":[[-3274,3284,-3252,3285,3286]]},{"type":"Polygon","id":694,"properties":{"name":"Grandval"},"arcs":[[-3286,-3251,3287,3288,-3279,3289]]},{"type":"Polygon","id":696,"properties":{"name":"Loveresse"},"arcs":[[3290,3291,3292,3293,3294,3295]]},{"type":"Polygon","id":697,"properties":{"name":"Malleray"},"arcs":[[-2818,3296,-3296,3297,3298,-3257,-3253]]},{"type":"Polygon","id":699,"properties":{"name":"Monible"},"arcs":[[3299,-3265,3300,3301]]},{"type":"Polygon","id":700,"properties":{"name":"Moutier"},"arcs":[[-3260,3302,3303,3304,3305,3306,3307,-3249,-3285,-3273]]},{"type":"Polygon","id":701,"pr
 operties":{"name":"Perrefitte"},"arcs":[[-3259,3308,3309,-3303]]},{"type":"Polygon","id":702,"properties":{"name":"Pontenet"},"arcs":[[-3298,-3295,3310]]},{"type":"Polygon","id":703,"properties":{"name":"Reconvilier"},"arcs":[[-2805,3311,3312,3313,-3292,-3291,-3297,-2817]]},{"type":"Polygon","id":704,"properties":{"name":"Roches (BE)"},"arcs":[[-3308,3314,3315,691,3316,3317,-3288,-3250]]},{"type":"Polygon","id":706,"properties":{"name":"Saicourt"},"arcs":[[3318,-2811,-2850,3319,684,3320,-3262,3321,3322,-3313]]},{"type":"Polygon","id":707,"properties":{"name":"Saules (BE)"},"arcs":[[-3323,3323,3324,-3293,-3292,3291,-3314]]},{"type":"Polygon","id":708,"properties":{"name":"Schelten"},"arcs":[[867,868,869,870]]},{"type":"Polygon","id":709,"properties":{"name":"Seehof"},"arcs":[[3325,703,3326,3327,-3271,3328,701,3329]]},{"type":"Polygon","id":710,"properties":{"name":"Sornetan"},"arcs":[[3330,-3324,-3322,-3266,-3300,3331]]},{"type":"Polygon","id":711,"properties":{"name":"Sorvilier"},"a
 rcs":[[-2830,-2820,-3255,-3256,-3272]]},{"type":"Polygon","id":712,"properties":{"name":"Souboz"},"arcs":[[-3299,-3311,-3294,-3325,-3331,687,3332,-3309,-3258]]},{"type":"Polygon","id":713,"properties":{"name":"Tavannes"},"arcs":[[-2840,-2784,-2851,-2809,-3319,-3312,-2804]]},{"type":"Polygon","id":715,"properties":{"name":"Rebévelier"},"arcs":[[-3301,-3264,3333,3334,3335,3336]]},{"type":"Polygon","id":721,"properties":{"name":"Diesse"},"arcs":[[3337,3338,3339]]},{"type":"Polygon","id":722,"properties":{"name":"Lamboing"},"arcs":[[3340,3341,-3339,3342,-2812,-2620]]},{"type":"Polygon","id":723,"properties":{"name":"La Neuveville"},"arcs":[[3343,661,-662,661,662,663,3344,3345,3346,3347,3348,-3349,3348,3349,3350,-3351,3351,3352,-3353,3353]]},{"type":"Polygon","id":724,"properties":{"name":"Nods"},"arcs":[[3354,665,666,-2856,-2790,-2797,-2791,-2780,-2813,-3343,-3338,3355]]},{"type":"Polygon","id":725,"properties":{"name":"Prêles"},"arcs":[[3356,-3356,-3340,-3342,3357,3358,-3345]]},{"typ
 e":"Polygon","id":731,"properties":{"name":"Aegerten"},"arcs":[[3359,3360,3361,3362,3363]]},{"type":"Polygon","id":732,"properties":{"name":"Bellmund"},"arcs":[[3364,3365,3366,3367,-3368,3367,3368,3369,-3370,3369,3370,3371,3372,3373]]},{"type":"Polygon","id":733,"properties":{"name":"Brügg"},"arcs":[[3374,-2618,3375,3376,-3362]]},{"type":"Polygon","id":734,"properties":{"name":"Bühl"},"arcs":[[3377,3378,3379,-2426]]},{"type":"Polygon","id":735,"properties":{"name":"Epsach"},"arcs":[[3380,3381,3382,3383,-3379]]},{"type":"Polygon","id":736,"properties":{"name":"Hagneck"},"arcs":[[-2903,-2896,3384,3385,3386]]},{"type":"Polygon","id":737,"properties":{"name":"Hermrigen"},"arcs":[[-3380,-3384,3387,3388,-3366,3389,-2427]]},{"type":"Polygon","id":738,"properties":{"name":"Jens"},"arcs":[[-2429,3390,-3374,3391,-3360,3392,3393]]},{"type":"Polygon","id":739,"properties":{"name":"Ipsach"},"arcs":[[-3372,3394,3395,3396,3397]]},{"type":"Polygon","id":740,"properties":{"name":"Ligerz"},"arcs":[
 [-3347,-3346,-3359,3398,3399,-3347,3346]]},{"type":"Polygon","id":741,"properties":{"name":"Merzligen"},"arcs":[[-2428,-3390,-3365,-3391]]},{"type":"Polygon","id":742,"properties":{"name":"Mörigen"},"arcs":[[3400,3401,-3388,-3383,3402]]},{"type":"Polygon","id":743,"properties":{"name":"Nidau"},"arcs":[[-3397,3403,-2609,3404]]},{"type":"Polygon","id":744,"properties":{"name":"Orpund"},"arcs":[[-3376,-2617,3405,3406,3407]]},{"type":"Polygon","id":745,"properties":{"name":"Port"},"arcs":[[-3373,-3398,-3405,-2608,-3375,-3361,-3392]]},{"type":"Polygon","id":746,"properties":{"name":"Safnern"},"arcs":[[-2660,3408,-3406,-2616,-2670,-2661,-2632]]},{"type":"Polygon","id":747,"properties":{"name":"Scheuren"},"arcs":[[3409,-3407,-3409,-2659]]},{"type":"Polygon","id":748,"properties":{"name":"Schwadernau"},"arcs":[[3410,-3363,-3377,-3408,-3410,-2658,-2644,-2627]]},{"type":"Polygon","id":749,"properties":{"name":"Studen (BE)"},"arcs":[[3411,-3393,-3364,-3411,-2626,-2433]]},{"type":"Polygon","id
 ":750,"properties":{"name":"Sutz-Lattrigen"},"arcs":[[3412,3413,-3414,3413,3414,-3395,-3371,-3370,3369,-3370,-3369,-3368,3367,-3368,-3367,-3389,-3402]]},{"type":"Polygon","id":751,"properties":{"name":"Täuffelen"},"arcs":[[-3386,3415,-3403,-3382,3416]]},{"type":"Polygon","id":754,"properties":{"name":"Walperswil"},"arcs":[[-2904,-3387,-3417,-3381,-3378,-2425,-2406]]},{"type":"Polygon","id":755,"properties":{"name":"Worben"},"arcs":[[-2430,-3394,-3412,-2432]]},{"type":"MultiPolygon","id":756,"properties":{"name":"Twann-Tüscherz"},"arcs":[[[3417,3418,-3419,3418,3419,3420,3421,3422,-3423,3422,3423,3424,-3425,3424,3425,3426,-3427,3426,3427,-3399,-3358,-3341,-2619,-2611]],[[-2866,3428]]]},{"type":"Polygon","id":761,"properties":{"name":"Därstetten"},"arcs":[[3429,3430,3431,3432,3433,3434,3435,3436]]},{"type":"Polygon","id":762,"properties":{"name":"Diemtigen"},"arcs":[[-2996,-2986,3437,3438,3439,3440,-3430,3441,3442,-3016]]},{"type":"Polygon","id":763,"properties":{"name":"Erlenbach i
 m Simmental"},"arcs":[[-3442,-3437,3443,3444,3445,3446]]},{"type":"Polygon","id":764,"properties":{"name":"Niederstocken"},"arcs":[[-3445,3447,3448,3449]]},{"type":"Polygon","id":765,"properties":{"name":"Oberstocken"},"arcs":[[-3436,3450,3451,-3448,-3444]]},{"type":"Polygon","id":766,"properties":{"name":"Oberwil im Simmental"},"arcs":[[-3441,3452,3453,625,3454,3455,-3431]]},{"type":"Polygon","id":767,"properties":{"name":"Reutigen"},"arcs":[[3456,-3446,-3450,3457,3458,3459]]},{"type":"Polygon","id":768,"properties":{"name":"Spiez"},"arcs":[[3460,-3460,3461,3462,3463,-3013,-2990]]},{"type":"Polygon","id":769,"properties":{"name":"Wimmis"},"arcs":[[-3017,-3443,-3447,-3457,-3461,-2989]]},{"type":"Polygon","id":781,"properties":{"name":"Gadmen"},"arcs":[[823,3464,3465,3466,3467,-3468,3467,3468,814,3469,816,3470,3471,819,3472,-3473,820,3473,822]]},{"type":"Polygon","id":782,"properties":{"name":"Guttannen"},"arcs":[[826,3474,3475,3476,829,3477,-3062,3478,-3466,3479,825]]},{"type":"Poly
 gon","id":783,"properties":{"name":"Hasliberg"},"arcs":[[3480,3481,806,807,3482,809,3483,3484]]},{"type":"Polygon","id":784,"properties":{"name":"Innertkirchen"},"arcs":[[-3479,-3061,3485,3486,-3485,3487,811,812,813,-3469,-3468,3467,-3468,-3467]]},{"type":"Polygon","id":785,"properties":{"name":"Meiringen"},"arcs":[[-3060,-3044,-3042,-3047,3488,-3481,-3487,3489,3490,-3491,3490,3491]]},{"type":"Polygon","id":786,"properties":{"name":"Schattenhalb"},"arcs":[[-3492,-3491,3490,-3491,-3490,-3486]]},{"type":"Polygon","id":791,"properties":{"name":"Boltigen"},"arcs":[[3492,3493,3494,622,623,3495,-3453,-3440]]},{"type":"Polygon","id":792,"properties":{"name":"Lenk"},"arcs":[[3496,849,850,3497,3498,3499,852,3500,3501,854,3502,3503,3504,3505,-2984]]},{"type":"Polygon","id":793,"properties":{"name":"St. Stephan"},"arcs":[[-2985,-3506,3506,3507,-3438]]},{"type":"Polygon","id":794,"properties":{"name":"Zweisimmen"},"arcs":[[-3508,3508,-3493,-3439]]},{"type":"Polygon","id":841,"properties":{"name
 ":"Gsteig"},"arcs":[[3509,858,3510,860,611,612,3511]]},{"type":"Polygon","id":842,"properties":{"name":"Lauenen"},"arcs":[[-3504,3512,3513,3514,857,-3510,3515]]},{"type":"Polygon","id":843,"properties":{"name":"Saanen"},"arcs":[[-3505,-3516,-3512,613,614,3516,616,3517,618,3518,3519,620,3520,-3494,-3509,-3507]]},{"type":"Polygon","id":852,"properties":{"name":"Guggisberg"},"arcs":[[-3455,626,3521,3522,3523,3524,629,3525,3526,3527,3528,3529]]},{"type":"Polygon","id":853,"properties":{"name":"Rüschegg"},"arcs":[[-3456,-3530,3530,3531,3532,3533,-3432]]},{"type":"Polygon","id":855,"properties":{"name":"Schwarzenburg"},"arcs":[[-3529,3527,-3527,3534,3535,631,3536,3537,633,3538,3539,635,-2567,-2589,3540,-3531]]},{"type":"Polygon","id":861,"properties":{"name":"Belp"},"arcs":[[3541,-2587,-3196,-3187,-3170,3542,3543,3544,3545]]},{"type":"Polygon","id":863,"properties":{"name":"Burgistein"},"arcs":[[3546,3547,3548,3549,3550,3551,3552]]},{"type":"Polygon","id":865,"properties":{"name":"Gelter
 fingen"},"arcs":[[3553,3554,-3544,3555,3556,3557,3558]]},{"type":"Polygon","id":866,"properties":{"name":"Gerzensee"},"arcs":[[-3556,-3543,-3176,-3199,3559,3560]]},{"type":"Polygon","id":867,"properties":{"name":"Gurzelen"},"arcs":[[3561,3562,-3552,3563,3564]]},{"type":"Polygon","id":868,"properties":{"name":"Jaberg"},"arcs":[[3565,3566,-3197,-3148]]},{"type":"Polygon","id":869,"properties":{"name":"Kaufdorf"},"arcs":[[3567,3568,-3554,3569]]},{"type":"Polygon","id":870,"properties":{"name":"Kehrsatz"},"arcs":[[-2571,-2588,-3542,3570]]},{"type":"Polygon","id":871,"properties":{"name":"Kienersrüti"},"arcs":[[3571,3572,3573,3574]]},{"type":"Polygon","id":872,"properties":{"name":"Kirchdorf (BE)"},"arcs":[[-3574,3575,-3549,3576,3577,3578,-3560,-3198,-3567,3579]]},{"type":"Polygon","id":873,"properties":{"name":"Kirchenthurnen"},"arcs":[[3580,-3558,3581,3582,3583]]},{"type":"Polygon","id":874,"properties":{"name":"Lohnstorf"},"arcs":[[3584,3585,-3577,-3548]]},{"type":"Polygon","id":875,
 "properties":{"name":"Mühledorf (BE)"},"arcs":[[-3557,-3561,-3579,3586,-3582]]},{"type":"Polygon","id":876,"properties":{"name":"Mühlethurnen"},"arcs":[[-3583,-3587,-3578,-3586,3587]]},{"type":"Polygon","id":877,"properties":{"name":"Niedermuhlern"},"arcs":[[-2592,-2591,3588,3589,3590]]},{"type":"Polygon","id":878,"properties":{"name":"Noflen"},"arcs":[[3591,-3550,-3576,-3573,3592]]},{"type":"Polygon","id":879,"properties":{"name":"Riggisberg"},"arcs":[[-3533,3593,3594,-3584,-3588,-3585,-3547,3595,3596,3597,3598,-3599,3598,3599]]},{"type":"MultiPolygon","id":880,"properties":{"name":"Rüeggisberg"},"arcs":[[[-3541,-2593,-3591,3600,-3568,3601,-3594,-3532]],[[-3534,-3600,-3599,3598,-3599,-3598,3602,-3433]]]},{"type":"Polygon","id":881,"properties":{"name":"Rümligen"},"arcs":[[-3602,-3570,-3559,-3581,-3595]]},{"type":"Polygon","id":883,"properties":{"name":"Seftigen"},"arcs":[[-3564,-3551,-3592,3603]]},{"type":"Polygon","id":884,"properties":{"name":"Toffen"},"arcs":[[-3590,3604,-35
 45,-3555,-3569,-3601]]},{"type":"Polygon","id":885,"properties":{"name":"Uttigen"},"arcs":[[3605,-3575,-3580,-3566,-3147,3606]]},{"type":"Polygon","id":886,"properties":{"name":"Wattenwil"},"arcs":[[-3596,-3553,-3563,3607,3608]]},{"type":"Polygon","id":888,"properties":{"name":"Wald (BE)"},"arcs":[[-2576,-2575,2574,-2575,-2574,2572,-2572,-3571,-3546,-3605,-3589,2590,-2591,-2590]]},{"type":"Polygon","id":901,"properties":{"name":"Eggiwil"},"arcs":[[3609,3610,3611,-3612,3611,3612,3613,3614,3615,-3616,3615,3616,3617,3618,3619,795,3620]]},{"type":"Polygon","id":902,"properties":{"name":"Langnau im Emmental"},"arcs":[[3621,3622,3623,3624,3625,3626,-3627,3627,-3617,-3616,3615,-3616,-3615]]},{"type":"Polygon","id":903,"properties":{"name":"Lauperswil"},"arcs":[[3628,-3181,-3110,-3160,3629,3630,-3623]]},{"type":"Polygon","id":904,"properties":{"name":"Röthenbach im Emmental"},"arcs":[[3631,3632,3633,3634,-3165,-3120,3635,-3613,-3612,3611,-3612,-3611,3636]]},{"type":"Polygon","id":905,"prop
 erties":{"name":"Rüderswil"},"arcs":[[-3630,-3159,3637,3638,-3639,3638,3639,-2710,3640,3641,-3642,3641,3642,3643]]},{"type":"Polygon","id":906,"properties":{"name":"Schangnau"},"arcs":[[-3074,3644,-3637,-3610,3645,797,3646,3647,3648]]},{"type":"Polygon","id":907,"properties":{"name":"Signau"},"arcs":[[-3636,-3125,-3182,-3629,-3622,-3614]]},{"type":"Polygon","id":908,"properties":{"name":"Trub"},"arcs":[[-3619,3649,3650,-3651,3650,3651,-3627,-3626,3652,785,3653,3654,3655,787,3656,3657,789,3658,791,3659,793,3660]]},{"type":"Polygon","id":909,"properties":{"name":"Trubschachen"},"arcs":[[-3618,-3628,3626,-3652,-3651,3650,-3651,-3650]]},{"type":"Polygon","id":921,"properties":{"name":"Amsoldingen"},"arcs":[[3661,3662,3663,3664,3665]]},{"type":"Polygon","id":922,"properties":{"name":"Blumenstein"},"arcs":[[-3434,-3603,-3597,-3609,3666,3667,3668]]},{"type":"Polygon","id":923,"properties":{"name":"Buchholterberg"},"arcs":[[3669,3670,3671,-3119,-3178,-3161,-3635]]},{"type":"Polygon","id":9
 24,"properties":{"name":"Eriz"},"arcs":[[-3073,-3022,3672,3673,-3674,3674,3675,-3632,-3645]]},{"type":"Polygon","id":925,"properties":{"name":"Fahrni"},"arcs":[[3676,-3129,-3115,-3672,3677,3678,3679]]},{"type":"Polygon","id":927,"properties":{"name":"Heiligenschwendi"},"arcs":[[3680,3681,3682,3683,3684,3685]]},{"type":"Polygon","id":928,"properties":{"name":"Heimberg"},"arcs":[[3686,-3607,-3151,-3184,-3126,-3677,3687,3688]]},{"type":"Polygon","id":929,"properties":{"name":"Hilterfingen"},"arcs":[[3689,-3686,3690,3691]]},{"type":"Polygon","id":930,"properties":{"name":"Höfen"},"arcs":[[-3458,-3449,-3452,3692,3693,-3662,3694]]},{"type":"Polygon","id":931,"properties":{"name":"Homberg"},"arcs":[[3695,3696,3697,-3679,3698,3699,3700,-3682]]},{"type":"MultiPolygon","id":932,"properties":{"name":"Horrenbach-Buchen"},"arcs":[[[3701,3702,3703,-3674,-3673,-3021]],[[3704,-3700,3705,3706]]]},{"type":"Polygon","id":934,"properties":{"name":"Oberhofen am Thunersee"},"arcs":[[-3691,-3685,3707,370
 8]]},{"type":"Polygon","id":935,"properties":{"name":"Oberlangenegg"},"arcs":[[-3676,-3707,3709,3710,-3633]]},{"type":"Polygon","id":936,"properties":{"name":"Pohlern"},"arcs":[[-3435,-3669,3711,-3693,-3451]]},{"type":"Polygon","id":937,"properties":{"name":"Schwendibach"},"arcs":[[3712,3713,3714,-3697]]},{"type":"Polygon","id":938,"properties":{"name":"Sigriswil"},"arcs":[[3715,-3708,-3684,3716,3702,-3703,-3702,-3020]]},{"type":"Polygon","id":939,"properties":{"name":"Steffisburg"},"arcs":[[-3688,-3680,-3698,-3715,-3714,3717]]},{"type":"Polygon","id":940,"properties":{"name":"Teuffenthal (BE)"},"arcs":[[-3703,-3717,-3683,-3701,-3705,-3675,3673,-3674,3673,-3704]]},{"type":"Polygon","id":941,"properties":{"name":"Thierachern"},"arcs":[[-3664,3718,3719,3720,-3721,3721,3722]]},{"type":"Polygon","id":942,"properties":{"name":"Thun"},"arcs":[[3723,-3665,-3723,3724,-3689,-3718,3713,-3714,-3713,-3696,-3681,-3690,3725,-3463]]},{"type":"Polygon","id":943,"properties":{"name":"Uebeschi"},"arc
 s":[[-3694,-3712,-3668,3726,-3719,-3663]]},{"type":"Polygon","id":944,"properties":{"name":"Uetendorf"},"arcs":[[-3722,3720,3727,-3565,-3604,-3593,-3572,-3606,-3687,-3725]]},{"type":"Polygon","id":945,"properties":{"name":"Unterlangenegg"},"arcs":[[-3710,-3706,-3699,-3678,-3671,3728]]},{"type":"Polygon","id":946,"properties":{"name":"Wachseldorn"},"arcs":[[-3711,-3729,-3670,-3634]]},{"type":"Polygon","id":947,"properties":{"name":"Zwieselberg"},"arcs":[[-3459,-3695,-3666,-3724,-3462]]},{"type":"Polygon","id":948,"properties":{"name":"Forst-Längenbühl"},"arcs":[[-3667,-3608,-3562,-3728,-3721,-3720,-3727]]},{"type":"Polygon","id":951,"properties":{"name":"Affoltern im Emmental"},"arcs":[[3729,-2721,-2779,-2724,-2778,3730,3731,3732,-3733,3733]]},{"type":"Polygon","id":952,"properties":{"name":"Dürrenroth"},"arcs":[[3734,-3733,-3732,3735,-2529,3736,3737,3738,-3739,3738,3739]]},{"type":"Polygon","id":953,"properties":{"name":"Eriswil"},"arcs":[[3740,3741,3742,3743,-3744,3743,3744,3745
 ,3746,3747,782,3748]]},{"type":"Polygon","id":954,"properties":{"name":"Huttwil"},"arcs":[[3749,-3737,-2532,-2528,-2466,-2488,3750,779,3751,-3745,-3744,3743,-3744,-3743]]},{"type":"MultiPolygon","id":955,"properties":{"name":"Lützelflüh"},"arcs":[[[3752,-3643,-3642,3641,-3642,-3641,-2719,3753,3754]],[[-3158,-3193,-3192,3191,-3192,-3191,-2711,-3640,-3639,3638,-3639,-3638]],[[-2715,-2714,-2767,-2754,-2766,2714]]]},{"type":"Polygon","id":956,"properties":{"name":"Rüegsau"},"arcs":[[-3754,-2718,-2722,-3730,3755]]},{"type":"Polygon","id":957,"properties":{"name":"Sumiswald"},"arcs":[[-3625,3756,-3755,-3756,-3734,3732,-3735,3757,-3741,3758,784,-3653]]},{"type":"Polygon","id":958,"properties":{"name":"Trachselwald"},"arcs":[[-3631,-3644,-3753,-3757,-3624]]},{"type":"Polygon","id":959,"properties":{"name":"Walterswil (BE)"},"arcs":[[-3731,-2777,-2522,-2539,-2530,-3736]]},{"type":"Polygon","id":960,"properties":{"name":"Wyssachen"},"arcs":[[-3758,-3740,-3739,3738,-3739,-3738,-3750,-3742]]
 },{"type":"Polygon","id":971,"properties":{"name":"Attiswil"},"arcs":[[3759,3760,3761,3762,3763,3764,3765,3766]]},{"type":"Polygon","id":972,"properties":{"name":"Berken"},"arcs":[[3767,3768,3769,3770,3771,-2471]]},{"type":"Polygon","id":973,"properties":{"name":"Bettenhausen"},"arcs":[[3772,3773,-3774,3773,3774,3775,3776,3777,3778]]},{"type":"Polygon","id":975,"properties":{"name":"Farnern"},"arcs":[[-3765,3779,3780,3781]]},{"type":"Polygon","id":976,"properties":{"name":"Graben"},"arcs":[[-2538,3782,3783,-3769,-3768,-2470,-2461]]},{"type":"Polygon","id":977,"properties":{"name":"Heimenhausen"},"arcs":[[3784,3785,3786,3787,-3770,-3769,3768,-3784,3788]]},{"type":"Polygon","id":978,"properties":{"name":"Hermiswil"},"arcs":[[3789,3790,-3775,-3774,3773,-3774,-3773,3791]]},{"type":"Polygon","id":979,"properties":{"name":"Herzogenbuchsee"},"arcs":[[3792,3793,3794,-3789,-3783,-2537,3795,-3777,3796,3797]]},{"type":"Polygon","id":980,"properties":{"name":"Inkwil"},"arcs":[[751,3798,3799,-37
 86,3800]]},{"type":"Polygon","id":981,"properties":{"name":"Niederbipp"},"arcs":[[-2474,3801,3802,3803,3804,3805,758,3806,3807,760,-2534]]},{"type":"Polygon","id":982,"properties":{"name":"Niederönz"},"arcs":[[3808,3809,3810,-3801,-3785,-3795]]},{"type":"Polygon","id":983,"properties":{"name":"Oberbipp"},"arcs":[[-2473,3811,3812,3813,3814,3815,-3802]]},{"type":"Polygon","id":985,"properties":{"name":"Ochlenberg"},"arcs":[[-2776,3816,-3792,-3779,3817,-2476,-2533,-2509,-2540,-2520]]},{"type":"Polygon","id":987,"properties":{"name":"Rumisberg"},"arcs":[[-3814,3818,-3766,-3782,3819,3820,3821,-3815]]},{"type":"Polygon","id":988,"properties":{"name":"Seeberg"},"arcs":[[-2775,-2690,-2727,3822,3823,748,-3793,3824,-3790,-3817]]},{"type":"Polygon","id":989,"properties":{"name":"Thörigen"},"arcs":[[-3778,-3796,-2536,-2477,-3818]]},{"type":"Polygon","id":990,"properties":{"name":"Walliswil bei Niederbipp"},"arcs":[[-3772,3825,3826,-3812,-2472]]},{"type":"Polygon","id":991,"properties":{"name"
 :"Walliswil bei Wangen"},"arcs":[[-3788,3827,3828,3829,-3826,-3771]]},{"type":"Polygon","id":992,"properties":{"name":"Wangen an der Aare"},"arcs":[[3830,3831,754,3832,3833,-3760,3834,-3829]]},{"type":"Polygon","id":993,"properties":{"name":"Wangenried"},"arcs":[[-3800,3835,3836,3837,-3831,-3828,-3787]]},{"type":"Polygon","id":995,"properties":{"name":"Wiedlisbach"},"arcs":[[-3830,-3835,-3767,-3819,-3813,-3827]]},{"type":"Polygon","id":996,"properties":{"name":"Wolfisberg"},"arcs":[[-3816,-3815,3814,-3822,3838,3839,-3803]]},{"type":"Polygon","id":1001,"properties":{"name":"Doppleschwand"},"arcs":[[3840,3841,3842,3843]]},{"type":"MultiPolygon","id":1002,"properties":{"name":"Entlebuch"},"arcs":[[[955,3844,-3844,3845,3846,3847,-3848,3847,3848,3849,3850,954]],[[3851,3852,3853]]]},{"type":"Polygon","id":1004,"properties":{"name":"Flühli"},"arcs":[[-800,-3100,-3076,-3075,-3649,-3648,3854,3855,3856,957,3857,3858,959,-3037,-801]]},{"type":"Polygon","id":1005,"properties":{"name":"Hasle (L
 U)"},"arcs":[[956,-3857,3859,-3854,3860,-3841,-3845]]},{"type":"Polygon","id":1007,"properties":{"name":"Romoos"},"arcs":[[-3861,-3853,3861,3862,-3657,-788,-3656,3863,3864,3865,-3842]]},{"type":"Polygon","id":1008,"properties":{"name":"Schüpfheim"},"arcs":[[3866,-3862,-3852,-3860,-3856]]},{"type":"Polygon","id":1009,"properties":{"name":"Werthenstein"},"arcs":[[-3849,-3848,3847,-3848,-3847,3867,3868,3869]]},{"type":"Polygon","id":1010,"properties":{"name":"Escholzmatt-Marbach"},"arcs":[[-3648,-3647,-798,-3646,-3621,-796,-3620,-3661,-794,-3660,-792,-3659,-790,-3658,-3863,-3867,-3855,3647]]},{"type":"Polygon","id":1021,"properties":{"name":"Aesch (LU)"},"arcs":[[3870,3871,3872,901,3873,3874,3875,3876,3877]]},{"type":"Polygon","id":1022,"properties":{"name":"Altwis"},"arcs":[[3878,-3877,3879,3880]]},{"type":"Polygon","id":1023,"properties":{"name":"Ballwil"},"arcs":[[3881,3882,3883,3884,3885]]},{"type":"Polygon","id":1024,"properties":{"name":"Emmen"},"arcs":[[3886,3887,3888,3889,3890
 ,3891]]},{"type":"Polygon","id":1025,"properties":{"name":"Ermensee"},"arcs":[[3892,3893,-3881,3894,3895]]},{"type":"Polygon","id":1026,"properties":{"name":"Eschenbach (LU)"},"arcs":[[3896,3897,3898,-3882,3899,3900,-3889]]},{"type":"MultiPolygon","id":1030,"properties":{"name":"Hitzkirch"},"arcs":[[[-3895,-3880,-3876,3901,3902,-3903,3902,3903,3904,3905,3906,3907,3908]],[[3909,-3878,-3879,-3894]]]},{"type":"Polygon","id":1031,"properties":{"name":"Hochdorf"},"arcs":[[3910,3911,-3883,-3899,3912]]},{"type":"Polygon","id":1032,"properties":{"name":"Hohenrain"},"arcs":[[3913,-3908,3914,911,3915,3916,3917,913,3918,3919,-3884,-3912]]},{"type":"Polygon","id":1033,"properties":{"name":"Inwil"},"arcs":[[-3900,-3886,3920,915,3921,3922,3923,3924]]},{"type":"Polygon","id":1037,"properties":{"name":"Rain"},"arcs":[[3925,3926,3927,-3928,3927,3928,-3913,-3898,3929,3930]]},{"type":"Polygon","id":1039,"properties":{"name":"Römerswil"},"arcs":[[3931,-3896,-3909,-3914,-3911,-3929,-3928,3927,-3928,-39
 27,3932]]},{"type":"Polygon","id":1040,"properties":{"name":"Rothenburg"},"arcs":[[3933,-3930,-3897,-3888]]},{"type":"Polygon","id":1041,"properties":{"name":"Schongau"},"arcs":[[-3875,3934,903,3935,3936,905,3937,3938,907,908,-909,908,909,3939,-3904,-3903,3902,-3903,-3902]]},{"type":"Polygon","id":1051,"properties":{"name":"Adligenswil"},"arcs":[[3940,3941,3942,3943,3944,3945]]},{"type":"Polygon","id":1052,"properties":{"name":"Buchrain"},"arcs":[[-3890,-3901,-3925,3946,3947,3948]]},{"type":"Polygon","id":1053,"properties":{"name":"Dierikon"},"arcs":[[3949,-3948,3950,3951,-3943]]},{"type":"Polygon","id":1054,"properties":{"name":"Ebikon"},"arcs":[[3952,-3891,-3949,-3950,-3942]]},{"type":"Polygon","id":1055,"properties":{"name":"Gisikon"},"arcs":[[-3923,3953,3954]]},{"type":"Polygon","id":1056,"properties":{"name":"Greppen"},"arcs":[[3955,3956,932,933,-934,933,3957,3958]]},{"type":"Polygon","id":1057,"properties":{"name":"Honau"},"arcs":[[3959,-3954,-3922,916,917,3960]]},{"type":"Pol
 ygon","id":1058,"properties":{"name":"Horw"},"arcs":[[946,3961,948,3962,3963,3964,3965,945]]},{"type":"Polygon","id":1059,"properties":{"name":"Kriens"},"arcs":[[3966,3967,3968,-3964,3969,950]]},{"type":"MultiPolygon","id":1061,"properties":{"name":"Luzern"},"arcs":[[[-3969,3970,3971,-3892,-3953,-3941,3972,-3965]],[[943,3973,941,3974]]]},{"type":"Polygon","id":1062,"properties":{"name":"Malters"},"arcs":[[-3870,3975,3976,-3971,-3968,3977]]},{"type":"Polygon","id":1063,"properties":{"name":"Meggen"},"arcs":[[-3966,-3973,-3946,3978,3979,-3956,3980]]},{"type":"Polygon","id":1064,"properties":{"name":"Meierskappel"},"arcs":[[924,3981,926,-921,927,3982,3983,3984,3985,919,920,921,922,923]]},{"type":"Polygon","id":1065,"properties":{"name":"Root"},"arcs":[[3986,-3951,-3947,-3924,-3955,-3960,3987,-3985]]},{"type":"Polygon","id":1066,"properties":{"name":"Schwarzenberg"},"arcs":[[-3850,-3978,-3967,951,952,3988]]},{"type":"Polygon","id":1067,"properties":{"name":"Udligenswil"},"arcs":[[-3944,
 -3952,-3987,-3984,3989,929,3990]]},{"type":"Polygon","id":1068,"properties":{"name":"Vitznau"},"arcs":[[939,3991,3992,3993,936,3994,3995,938]]},{"type":"Polygon","id":1069,"properties":{"name":"Weggis"},"arcs":[[3996,-3974,944,-3981,-3959,3997,3998,3999,-3993]]},{"type":"Polygon","id":1081,"properties":{"name":"Beromünster"},"arcs":[[4000,4001,4002,-4003,4002,4003,4004,4005,898,899,4006,-3871,-3910,-3893,-3932,4007,4008]]},{"type":"Polygon","id":1082,"properties":{"name":"Büron"},"arcs":[[4009,4010,4011,4012,-4013,4013,4014]]},{"type":"Polygon","id":1083,"properties":{"name":"Buttisholz"},"arcs":[[4015,4016,4017,4018,4019,4020]]},{"type":"Polygon","id":1084,"properties":{"name":"Eich"},"arcs":[[4021,4022,4023,-4001,4024]]},{"type":"Polygon","id":1085,"properties":{"name":"Geuensee"},"arcs":[[4025,4026,4027,-4015,4028,4029,-4005]]},{"type":"Polygon","id":1086,"properties":{"name":"Grosswangen"},"arcs":[[4030,4031,4032,4033,4034,-4017]]},{"type":"Polygon","id":1088,"properties":{"na
 me":"Hildisrieden"},"arcs":[[4035,-4008,-3933,-3926,4036]]},{"type":"Polygon","id":1089,"properties":{"name":"Knutwil"},"arcs":[[4037,4038,4039,4010,-4011,-4010,-4028,4040]]},{"type":"Polygon","id":1091,"properties":{"name":"Mauensee"},"arcs":[[-4034,4041,4042,-4043,4043,4044,-4038,4045,4046]]},{"type":"Polygon","id":1093,"properties":{"name":"Neuenkirch"},"arcs":[[4047,4048,4049,-4037,-3931,-3934,-3887,-3972,-3977]]},{"type":"Polygon","id":1094,"properties":{"name":"Nottwil"},"arcs":[[4050,-4020,-4019,4051,-4022,4052,-4049]]},{"type":"Polygon","id":1095,"properties":{"name":"Oberkirch"},"arcs":[[-4019,-4018,-4035,-4047,4053,4054,-4023,-4052,4018]]},{"type":"Polygon","id":1097,"properties":{"name":"Rickenbach (LU)"},"arcs":[[-4030,4055,4056,4057,890,890,890,891,4058,4059,893,4060,4061,895,4062,4063,4064,4065,-4006]]},{"type":"Polygon","id":1098,"properties":{"name":"Ruswil"},"arcs":[[-3869,4066,4067,-4021,-4051,-4048,-3976]]},{"type":"Polygon","id":1099,"properties":{"name":"Schenko
 n"},"arcs":[[-4055,4068,-4026,-4004,-4003,4002,-4003,-4002,-4024]]},{"type":"Polygon","id":1100,"properties":{"name":"Schlierbach"},"arcs":[[-4029,-4014,4012,4069,4070,-4056]]},{"type":"Polygon","id":1102,"properties":{"name":"Sempach"},"arcs":[[-4053,-4025,-4009,-4036,-4050]]},{"type":"Polygon","id":1103,"properties":{"name":"Sursee"},"arcs":[[-4046,-4041,-4027,-4069,-4054]]}

<TRUNCATED>

[47/50] [abbrv] zest-qi4j git commit: Fixed Javadoc issues

Posted by ni...@apache.org.
Fixed Javadoc issues


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/df3b3953
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/df3b3953
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/df3b3953

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: df3b39538e43135df6e41b76d9f25bda89d848c0
Parents: 684bb9e
Author: jj <ju...@gmail.com>
Authored: Sat Jan 17 22:28:04 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Sat Jan 17 22:28:04 2015 +0100

----------------------------------------------------------------------
 core/api/src/main/java/org/qi4j/api/geometry/TPoint.java       | 2 +-
 .../spatial/predicate/SpatialPredicatesSpecification.java      | 6 +-----
 2 files changed, 2 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/df3b3953/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java b/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
index e7106ef..268d78c 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
@@ -27,7 +27,7 @@ import java.util.List;
 
 /**
  * Lat = Y Lon = X
- * <p/>
+ *
  * For type "Point", each element in the coordinates array is a number representing the point coordinate in one
  * dimension. There must be at least two elements, and may be more. The order of elements must follow x, y, z order
  * (or longitude, latitude, altitude for coordinates in a geographic coordinate reference system). Any number of

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/df3b3953/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
index 2e876b5..bd793fb 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
@@ -8,11 +8,7 @@ import org.qi4j.api.query.grammar.PropertyFunction;
 import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.functional.Specification;
 
-/**
- * Base Spatial Predicates Specification.
- * <p/>
- * ST_Equals, ST_Disjoint, ST_Intersects, ST_Touches, ST_Crosses, ST_Within, ST_Contains, ST_Overlaps and ST_Relate
- */
+
 public abstract class SpatialPredicatesSpecification<T extends TGeometry>
         extends ExpressionSpecification
 {


[11/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/zh-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/zh-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/zh-municipalities.json
deleted file mode 100644
index ea496ad..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/zh-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":1,"properties":{"name":"Aeugst am Albis"},"arcs":[[[409,-219,-291,-247,-378,-203]]]},{"type":"MultiPolygon","id":2,"properties":{"name":"Affoltern am Albis"},"arcs":[[[285,286,287,288,289,-248,290,-218]]]},{"type":"MultiPolygon","id":3,"properties":{"name":"Bonstetten"},"arcs":[[[431,432,433,434,-250]]]},{"type":"MultiPolygon","id":4,"properties":{"name":"Hausen am Albis"},"arcs":[[[200,201,202,203,-67,204,205]]]},{"type":"MultiPolygon","id":5,"properties":{"name":"Hedingen"},"arcs":[[[468,-432,-249,-290]]]},{"type":"MultiPolygon","id":6,"properties":{"name":"Kappel am Albis"},"arcs":[[[406,-221,407,-201,408]]]},{"type":"MultiPolygon","id":7,"properties":{"name":"Knonau"},"arcs":[[[469,-215,-407,470]]]},{"type":"MultiPolygon","id":8,"properties":{"name":"Maschwanden"},"arcs":[[[-431,-216,-470,522]]]},{"type":"MultiPolygon","id":9,"properties":{"name":"Mettmenstetten"
 },"arcs":[[[214,215,216,217,218,219,220]]]},{"type":"MultiPolygon","id":10,"properties":{"name":"Obfelden"},"arcs":[[[428,429,-287,-286,-217,430]]]},{"type":"MultiPolygon","id":11,"properties":{"name":"Ottenbach"},"arcs":[[[510,-288,-430]]]},{"type":"MultiPolygon","id":12,"properties":{"name":"Rifferswil"},"arcs":[[[-408,-220,-410,-202]]]},{"type":"MultiPolygon","id":13,"properties":{"name":"Stallikon"},"arcs":[[[246,247,248,249,250,251,252,-7,253,254]]]},{"type":"MultiPolygon","id":14,"properties":{"name":"Wettswil am Albis"},"arcs":[[[-435,-269,-251]]]},{"type":"MultiPolygon","id":21,"properties":{"name":"Adlikon"},"arcs":[[[-402,465,-463,-462,-208,466,467]]]},{"type":"MultiPolygon","id":22,"properties":{"name":"Benken (ZH)"},"arcs":[[[-186,-373,498,-476,-324]]]},{"type":"MultiPolygon","id":23,"properties":{"name":"Berg am Irchel"},"arcs":[[[-384,453,-312,454,-306]]]},{"type":"MultiPolygon","id":24,"properties":{"name":"Buch am Irchel"},"arcs":[[[303,304,305,306,307,-157,-156]]]},
 {"type":"MultiPolygon","id":25,"properties":{"name":"Dachsen"},"arcs":[[[-499,-372,540,-477]]]},{"type":"MultiPolygon","id":26,"properties":{"name":"Dorf"},"arcs":[[[-308,499,-460,500,501,-158]]]},{"type":"MultiPolygon","id":27,"properties":{"name":"Feuerthalen"},"arcs":[[[-480,541,542]]]},{"type":"MultiPolygon","id":28,"properties":{"name":"Flaach"},"arcs":[[[308,-183,-297,309,310,311]]]},{"type":"MultiPolygon","id":29,"properties":{"name":"Flurlingen"},"arcs":[[[-479,543,-542]]]},{"type":"MultiPolygon","id":30,"properties":{"name":"Andelfingen"},"arcs":[[[458,459,460,-310,-296,-209,461,462]]]},{"type":"MultiPolygon","id":31,"properties":{"name":"Henggart"},"arcs":[[[-159,-502,-533,-532,-400,-488]]]},{"type":"MultiPolygon","id":32,"properties":{"name":"Humlikon"},"arcs":[[[531,532,-501,-459,-466,-401]]]},{"type":"MultiPolygon","id":33,"properties":{"name":"Kleinandelfingen"},"arcs":[[[295,296,-188,297,-210]]]},{"type":"MultiPolygon","id":34,"properties":{"name":"Laufen-Uhwiesen"},"
 arcs":[[[-325,475,476,477,478,479,480]]]},{"type":"MultiPolygon","id":35,"properties":{"name":"Marthalen"},"arcs":[[[182,183,184,185,186,187]]]},{"type":"MultiPolygon","id":36,"properties":{"name":"Oberstammheim"},"arcs":[[[330,331,332]]]},{"type":"MultiPolygon","id":37,"properties":{"name":"Ossingen"},"arcs":[[[206,207,208,209,210,211,212,213]]]},{"type":"MultiPolygon","id":38,"properties":{"name":"Rheinau"},"arcs":[[[-185,370,371,372]]]},{"type":"MultiPolygon","id":39,"properties":{"name":"Thalheim an der Thur"},"arcs":[[[-452,-403,-468,-467,-207,471,-420]]]},{"type":"MultiPolygon","id":40,"properties":{"name":"Trüllikon"},"arcs":[[[-211,-298,-187,323,324,325,326]]]},{"type":"MultiPolygon","id":41,"properties":{"name":"Truttikon"},"arcs":[[[-212,-327,526,-439]]]},{"type":"MultiPolygon","id":42,"properties":{"name":"Unterstammheim"},"arcs":[[[-332,-441,442]]]},{"type":"MultiPolygon","id":43,"properties":{"name":"Volken"},"arcs":[[[-307,-455,-311,-461,-500]]]},{"type":"MultiPolygon
 ","id":44,"properties":{"name":"Waltalingen"},"arcs":[[[-213,438,439,440,-331,441]]]},{"type":"MultiPolygon","id":51,"properties":{"name":"Bachenbülach"},"arcs":[[[-388,-522,-137,-391]]]},{"type":"MultiPolygon","id":52,"properties":{"name":"Bassersdorf"},"arcs":[[[363,-113,-314,-257,364]]]},{"type":"MultiPolygon","id":53,"properties":{"name":"Bülach"},"arcs":[[[136,137,138,139,140,141,142,143]]]},{"type":"MultiPolygon","id":54,"properties":{"name":"Dietlikon"},"arcs":[[[-475,-474,-114,-364,-406,-196]]]},{"type":"MultiPolygon","id":55,"properties":{"name":"Eglisau"},"arcs":[[[-141,-264,356,357,358,359,-283,360,361,362]]]},{"type":"MultiPolygon","id":56,"properties":{"name":"Embrach"},"arcs":[[[235,236,237,-143,238,239,240,241]]]},{"type":"MultiPolygon","id":57,"properties":{"name":"Freienstein-Teufen"},"arcs":[[[-240,381,-362,382,383,-305,384]]]},{"type":"MultiPolygon","id":58,"properties":{"name":"Glattfelden"},"arcs":[[[260,-228,261,262,263,-140]],[[545,-519,-358]]]},{"type":"Mul
 tiPolygon","id":59,"properties":{"name":"Hochfelden"},"arcs":[[[481,-229,-261,-139,482]]]},{"type":"MultiPolygon","id":60,"properties":{"name":"Höri"},"arcs":[[[520,-485,-483,-138,521,-387]]]},{"type":"MultiPolygon","id":61,"properties":{"name":"Hüntwangen"},"arcs":[[[516,517,-368,-359,518]]]},{"type":"MultiPolygon","id":62,"properties":{"name":"Kloten"},"arcs":[[[106,107,108,109,110,111,112,113,114]]]},{"type":"MultiPolygon","id":63,"properties":{"name":"Lufingen"},"arcs":[[[-392,-237,-301,-110]]]},{"type":"MultiPolygon","id":64,"properties":{"name":"Nürensdorf"},"arcs":[[[313,-112,-300,314,-259,-258]]]},{"type":"MultiPolygon","id":65,"properties":{"name":"Oberembrach"},"arcs":[[[298,299,-111,300,-236,301,-23]]]},{"type":"MultiPolygon","id":66,"properties":{"name":"Opfikon"},"arcs":[[[-13,-246,-107,-473]]]},{"type":"MultiPolygon","id":67,"properties":{"name":"Rafz"},"arcs":[[[282,283,284]]]},{"type":"MultiPolygon","id":68,"properties":{"name":"Rorbas"},"arcs":[[[-142,-363,-382,-
 239]]]},{"type":"MultiPolygon","id":69,"properties":{"name":"Wallisellen"},"arcs":[[[-15,-14,472,-115,473,474,-195,14]]]},{"type":"MultiPolygon","id":70,"properties":{"name":"Wasterkingen"},"arcs":[[[529,-369,-518]]]},{"type":"MultiPolygon","id":71,"properties":{"name":"Wil (ZH)"},"arcs":[[[367,368,369,-284,-360]]]},{"type":"MultiPolygon","id":72,"properties":{"name":"Winkel"},"arcs":[[[-245,-389,390,-144,-238,391,-109]]]},{"type":"MultiPolygon","id":81,"properties":{"name":"Bachs"},"arcs":[[[-338,352,353,354,-322,-226,355]]]},{"type":"MultiPolygon","id":82,"properties":{"name":"Boppelsen"},"arcs":[[[-493,-448,-447,-495,528]]]},{"type":"MultiPolygon","id":83,"properties":{"name":"Buchs (ZH)"},"arcs":[[[-172,490,491,-449,492,493,-489,-274]]]},{"type":"MultiPolygon","id":84,"properties":{"name":"Dällikon"},"arcs":[[[-507,523,524,525,-491,-171]]]},{"type":"MultiPolygon","id":85,"properties":{"name":"Dänikon"},"arcs":[[[-526,-525,534,535,536,-450,-492]]]},{"type":"MultiPolygon","id":8
 6,"properties":{"name":"Dielsdorf"},"arcs":[[[488,489,-334,-275]]]},{"type":"MultiPolygon","id":87,"properties":{"name":"Hüttikon"},"arcs":[[[544,-451,-537,-536,-539]]]},{"type":"MultiPolygon","id":88,"properties":{"name":"Neerach"},"arcs":[[[-339,-356,-230,-482,484,485]]]},{"type":"MultiPolygon","id":89,"properties":{"name":"Niederglatt"},"arcs":[[[-278,-277,-340,-486,-521,-386]]]},{"type":"MultiPolygon","id":90,"properties":{"name":"Niederhasli"},"arcs":[[[-173,273,274,275,276,277,278,-243]]]},{"type":"MultiPolygon","id":91,"properties":{"name":"Niederweningen"},"arcs":[[[455,456,457,-445]]]},{"type":"MultiPolygon","id":92,"properties":{"name":"Oberglatt"},"arcs":[[[-279,385,386,387,388,-244]]]},{"type":"MultiPolygon","id":93,"properties":{"name":"Oberweningen"},"arcs":[[[513,-497,514,-354,515,-336]]]},{"type":"MultiPolygon","id":94,"properties":{"name":"Otelfingen"},"arcs":[[[443,444,445,446,447,448,449,450]]]},{"type":"MultiPolygon","id":95,"properties":{"name":"Regensberg"},"a
 rcs":[[[-494,-529,-498,-514,-335,-490]]]},{"type":"MultiPolygon","id":96,"properties":{"name":"Regensdorf"},"arcs":[[[167,168,169,170,171,172,173,-11]]]},{"type":"MultiPolygon","id":97,"properties":{"name":"Rümlang"},"arcs":[[[-12,-174,242,243,244,-108,245]]]},{"type":"MultiPolygon","id":98,"properties":{"name":"Schleinikon"},"arcs":[[[494,-446,-458,-457,495,496,497]]]},{"type":"MultiPolygon","id":99,"properties":{"name":"Schöfflisdorf"},"arcs":[[[-516,-353,-337]]]},{"type":"MultiPolygon","id":100,"properties":{"name":"Stadel"},"arcs":[[[225,226,227,228,229]]]},{"type":"MultiPolygon","id":101,"properties":{"name":"Steinmaur"},"arcs":[[[333,334,335,336,337,338,339,-276]]]},{"type":"MultiPolygon","id":102,"properties":{"name":"Weiach"},"arcs":[[[321,322,-262,-227]]]},{"type":"MultiPolygon","id":111,"properties":{"name":"Bäretswil"},"arcs":[[[86,87,88,89,-46,-82]]]},{"type":"MultiPolygon","id":112,"properties":{"name":"Bubikon"},"arcs":[[[-147,264,-122,-86,265,266,267]]]},{"type":"M
 ultiPolygon","id":113,"properties":{"name":"Dürnten"},"arcs":[[[-266,-85,-84,-83,-56,302]]]},{"type":"MultiPolygon","id":114,"properties":{"name":"Fischenthal"},"arcs":[[[43,44,45,46,47,48]]]},{"type":"MultiPolygon","id":115,"properties":{"name":"Gossau (ZH)"},"arcs":[[[115,116,117,118,-43,119,120,-80,121]]]},{"type":"MultiPolygon","id":116,"properties":{"name":"Grüningen"},"arcs":[[[-146,375,-179,-116,-265]]]},{"type":"MultiPolygon","id":117,"properties":{"name":"Hinwil"},"arcs":[[[79,80,81,-45,-57,82,83,84,85]]]},{"type":"MultiPolygon","id":118,"properties":{"name":"Rüti (ZH)"},"arcs":[[[-267,-303,-59,312]]]},{"type":"MultiPolygon","id":119,"properties":{"name":"Seegräben"},"arcs":[[[530,-41,-102,-136]]]},{"type":"MultiPolygon","id":120,"properties":{"name":"Wald (ZH)"},"arcs":[[[55,56,-44,57,58]]]},{"type":"MultiPolygon","id":121,"properties":{"name":"Wetzikon (ZH)"},"arcs":[[[-121,134,135,-101,-87,-81]]]},{"type":"MultiPolygon","id":131,"properties":{"name":"Adliswil"},"arcs
 ":[[[-254,-6,416,417,-379]]]},{"type":"MultiPolygon","id":132,"properties":{"name":"Hirzel"},"arcs":[[[320,-205,-66,-75,-281]]]},{"type":"MultiPolygon","id":133,"properties":{"name":"Horgen"},"arcs":[[[65,66,67,68,69,70,71]]]},{"type":"MultiPolygon","id":134,"properties":{"name":"Hütten"},"arcs":[[[-282,-233,437]]]},{"type":"MultiPolygon","id":135,"properties":{"name":"Kilchberg (ZH)"},"arcs":[[[-165,519,-417,-5,-348]]]},{"type":"MultiPolygon","id":136,"properties":{"name":"Langnau am Albis"},"arcs":[[[377,-255,378,379,380,-68,-204]]]},{"type":"MultiPolygon","id":137,"properties":{"name":"Oberrieden"},"arcs":[[[-70,-416,-415,-292,-131]]]},{"type":"MultiPolygon","id":138,"properties":{"name":"Richterswil"},"arcs":[[[232,233,-73,-97,234]]]},{"type":"MultiPolygon","id":139,"properties":{"name":"Rüschlikon"},"arcs":[[[-380,-418,-520,-164,-413,-412,411,-412,-411]]]},{"type":"MultiPolygon","id":140,"properties":{"name":"Schönenberg (ZH)"},"arcs":[[[279,280,-74,-234,281]]]},{"type":"Mul
 tiPolygon","id":141,"properties":{"name":"Thalwil"},"arcs":[[[-381,410,411,-412,411,412,-163,413,-293,414,415,-69]]]},{"type":"MultiPolygon","id":142,"properties":{"name":"Wädenswil"},"arcs":[[[72,73,74,-72,75,76,77,78]]]},{"type":"MultiPolygon","id":151,"properties":{"name":"Erlenbach (ZH)"},"arcs":[[[-294,-414,-162]]]},{"type":"MultiPolygon","id":152,"properties":{"name":"Herrliberg"},"arcs":[[[-132,291,292,293,-161,-124,-177]]]},{"type":"MultiPolygon","id":153,"properties":{"name":"Hombrechtikon"},"arcs":[[[-100,144,145,146,147]]]},{"type":"MultiPolygon","id":154,"properties":{"name":"Küsnacht (ZH)"},"arcs":[[[160,161,162,163,164,165,166,-125]]]},{"type":"MultiPolygon","id":155,"properties":{"name":"Männedorf"},"arcs":[[[-98,-78,392,393,394]]]},{"type":"MultiPolygon","id":156,"properties":{"name":"Meilen"},"arcs":[[[-76,-71,130,131,132,133]]]},{"type":"MultiPolygon","id":157,"properties":{"name":"Oetwil am See"},"arcs":[[[-99,-395,483,-175,-376,-145]]]},{"type":"MultiPolygon",
 "id":158,"properties":{"name":"Stäfa"},"arcs":[[[95,96,-79,97,98,99]]]},{"type":"MultiPolygon","id":159,"properties":{"name":"Uetikon am See"},"arcs":[[[-394,-393,-77,-134,-176,-484]]]},{"type":"MultiPolygon","id":160,"properties":{"name":"Zumikon"},"arcs":[[[-167,-350,-349,-126]]]},{"type":"MultiPolygon","id":161,"properties":{"name":"Zollikon"},"arcs":[[[-166,347,-4,-3,-127,348,349]]]},{"type":"MultiPolygon","id":171,"properties":{"name":"Bauma"},"arcs":[[[-47,-90,90,91,92,93,94]]]},{"type":"MultiPolygon","id":172,"properties":{"name":"Fehraltorf"},"arcs":[[[-194,-55,-180,-103,-39]]]},{"type":"MultiPolygon","id":173,"properties":{"name":"Hittnau"},"arcs":[[[-106,-91,-89]]]},{"type":"MultiPolygon","id":174,"properties":{"name":"Illnau-Effretikon"},"arcs":[[[49,50,-20,51,52,53,54]]]},{"type":"MultiPolygon","id":175,"properties":{"name":"Kyburg"},"arcs":[[[-232,-52,-19,-224]]]},{"type":"MultiPolygon","id":176,"properties":{"name":"Lindau"},"arcs":[[[-193,255,256,257,258,259,-21,-51]
 ]]},{"type":"MultiPolygon","id":177,"properties":{"name":"Pfäffikon"},"arcs":[[[100,101,-40,102,103,104,-92,105,-88]]]},{"type":"MultiPolygon","id":178,"properties":{"name":"Russikon"},"arcs":[[[-104,179,-54,180,181]]]},{"type":"MultiPolygon","id":179,"properties":{"name":"Sternenberg"},"arcs":[[[-48,-95,-351,376]]]},{"type":"MultiPolygon","id":180,"properties":{"name":"Weisslingen"},"arcs":[[[230,-181,-53,231,-223]]]},{"type":"MultiPolygon","id":181,"properties":{"name":"Wila"},"arcs":[[[350,-94,-295,-60,351]]]},{"type":"MultiPolygon","id":182,"properties":{"name":"Wildberg"},"arcs":[[[-93,-105,-182,-231,-222,-61,294]]]},{"type":"MultiPolygon","id":191,"properties":{"name":"Dübendorf"},"arcs":[[[-16,-15,194,195,196,-191,197,198,199]]]},{"type":"MultiPolygon","id":192,"properties":{"name":"Egg"},"arcs":[[[174,175,-133,176,-123,177,-117,178]]]},{"type":"MultiPolygon","id":193,"properties":{"name":"Fällanden"},"arcs":[[[-128,-17,-200,-199,435,436]]]},{"type":"MultiPolygon","id":194
 ,"properties":{"name":"Greifensee"},"arcs":[[[-129,-437,527,-189,-37]]]},{"type":"MultiPolygon","id":195,"properties":{"name":"Maur"},"arcs":[[[122,123,124,125,126,-2,-1,127,128,-36,129]]]},{"type":"MultiPolygon","id":196,"properties":{"name":"Mönchaltorf"},"arcs":[[[-178,-130,-35,-34,-119,-118]],[[-120,-42,-531,-135]]]},{"type":"MultiPolygon","id":197,"properties":{"name":"Schwerzenbach"},"arcs":[[[-436,-198,-190,-528]]]},{"type":"MultiPolygon","id":198,"properties":{"name":"Uster"},"arcs":[[[33,34,35,36,37,38,39,40,41,42]]]},{"type":"MultiPolygon","id":199,"properties":{"name":"Volketswil"},"arcs":[[[188,189,190,191,192,-50,193,-38]]]},{"type":"MultiPolygon","id":200,"properties":{"name":"Wangen-Brüttisellen"},"arcs":[[[-197,405,-365,-256,-192]]]},{"type":"MultiPolygon","id":211,"properties":{"name":"Altikon"},"arcs":[[[418,419,420,421,422]]]},{"type":"MultiPolygon","id":212,"properties":{"name":"Bertschikon"},"arcs":[[[315,316,317,318,-150,319]]]},{"type":"MultiPolygon","id":21
 3,"properties":{"name":"Brütten"},"arcs":[[[-260,-315,-299,-22]]]},{"type":"MultiPolygon","id":214,"properties":{"name":"Dägerlen"},"arcs":[[[395,396,397,398,399,400,401,402,403,404]]]},{"type":"MultiPolygon","id":215,"properties":{"name":"Dättlikon"},"arcs":[[[-241,-385,-304,-155,-513]]]},{"type":"MultiPolygon","id":216,"properties":{"name":"Dinhard"},"arcs":[[[-28,-428,-405,-404,451,-419,452]]]},{"type":"MultiPolygon","id":217,"properties":{"name":"Elgg"},"arcs":[[[148,149,150,151,152]]]},{"type":"MultiPolygon","id":218,"properties":{"name":"Ellikon an der Thur"},"arcs":[[[-487,-422,511,-317,-329]]]},{"type":"MultiPolygon","id":219,"properties":{"name":"Elsau"},"arcs":[[[-32,-330,-320,-149,-374,-366]]]},{"type":"MultiPolygon","id":220,"properties":{"name":"Hagenbuch"},"arcs":[[[-151,-319,389]]]},{"type":"MultiPolygon","id":221,"properties":{"name":"Hettlingen"},"arcs":[[[-26,-160,487,-399,-398,-397,-427]]]},{"type":"MultiPolygon","id":222,"properties":{"name":"Hofstetten (ZH)"}
 ,"arcs":[[[-367,373,-153,374,-64]]]},{"type":"MultiPolygon","id":223,"properties":{"name":"Neftenbach"},"arcs":[[[153,154,155,156,157,158,159,-25]]]},{"type":"MultiPolygon","id":224,"properties":{"name":"Pfungen"},"arcs":[[[-302,-242,512,-154,-24]]]},{"type":"MultiPolygon","id":225,"properties":{"name":"Rickenbach (ZH)"},"arcs":[[[-29,-453,-423,486,-328]]]},{"type":"MultiPolygon","id":226,"properties":{"name":"Schlatt (ZH)"},"arcs":[[[-225,-33,365,366,-63]]]},{"type":"MultiPolygon","id":227,"properties":{"name":"Seuzach"},"arcs":[[[-27,426,-396,427]]]},{"type":"MultiPolygon","id":228,"properties":{"name":"Turbenthal"},"arcs":[[[59,60,61,62,63,64]]]},{"type":"MultiPolygon","id":229,"properties":{"name":"Wiesendangen"},"arcs":[[[-31,-30,327,328,-316,329]]]},{"type":"MultiPolygon","id":230,"properties":{"name":"Winterthur"},"arcs":[[[17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]]]},{"type":"MultiPolygon","id":231,"properties":{"name":"Zell (ZH)"},"arcs":[[[221,222,223,-18,224,-62]]]
 },{"type":"MultiPolygon","id":241,"properties":{"name":"Aesch (ZH)"},"arcs":[[[-270,-434,509]]]},{"type":"MultiPolygon","id":242,"properties":{"name":"Birmensdorf (ZH)"},"arcs":[[[-252,268,269,270,271,272]]]},{"type":"MultiPolygon","id":243,"properties":{"name":"Dietikon"},"arcs":[[[340,341,342,343,344,345,346]]]},{"type":"MultiPolygon","id":244,"properties":{"name":"Geroldswil"},"arcs":[[[-344,-540,-504,-503]]]},{"type":"MultiPolygon","id":245,"properties":{"name":"Oberengstringen"},"arcs":[[[-465,-534,-168,-10]]]},{"type":"MultiPolygon","id":246,"properties":{"name":"Oetwil an der Limmat"},"arcs":[[[537,538,-535,-524,-506,-505,539,-343]]]},{"type":"MultiPolygon","id":247,"properties":{"name":"Schlieren"},"arcs":[[[-426,-347,463,464,-9]]]},{"type":"MultiPolygon","id":248,"properties":{"name":"Uitikon"},"arcs":[[[-253,-273,-424,-8]]]},{"type":"MultiPolygon","id":249,"properties":{"name":"Unterengstringen"},"arcs":[[[-346,-509,-508,-169,533,-464]]]},{"type":"MultiPolygon","id":250,"p
 roperties":{"name":"Urdorf"},"arcs":[[[423,-272,424,-341,425]]]},{"type":"MultiPolygon","id":251,"properties":{"name":"Weiningen (ZH)"},"arcs":[[[-345,502,503,504,505,506,-170,507,508]]]},{"type":"MultiPolygon","id":261,"properties":{"name":"Zürich"},"arcs":[[[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]]]}]}},"arcs":[[[4222,3743],[-2,-53],[33,-26]],[[4253,3664],[18,-32]],[[4271,3632],[-37,-15],[-106,18],[-29,-8]],[[4099,3627],[-52,-13],[-85,4],[-26,-19],[-6,-35],[-55,12],[-89,1],[-47,31],[-74,-8],[-37,-38],[-23,-4],[-63,-37],[-26,-2],[-103,-36],[-10,15],[-72,-21],[-176,-107]],[[3155,3370],[-171,-103],[-107,-100]],[[2877,3167],[-68,-13],[-12,-32],[-54,-32],[-53,-2],[-9,-36],[-70,-3],[-24,-16],[-75,-7],[-21,-13],[-60,-3],[-40,-12],[-33,-23]],[[2358,2975],[-43,48],[6,59],[13,32],[-19,40],[0,41],[22,31],[-7,64],[-48,47],[-29,52],[18,40],[-31,36],[-55,32],[-32,45],[-14,-2],[-48,38]],[[2091,3578],[-33,39],[-6,36],[-47,57],[-48,19],[-27,-9],[-67,9],[-36,15],[-17,51],[-55,28],[-29,25],[7,35]
 ,[73,42],[12,48],[-41,-6],[-36,16],[-87,55],[-57,10],[-93,4],[-41,36]],[[1463,4088],[61,8],[24,-6],[53,13],[0,28],[26,-4],[-13,28],[29,27],[26,54],[64,61],[33,-11],[2,40],[-41,37],[50,-1],[61,-15],[-8,17],[33,23],[-132,41],[8,18],[29,-9],[7,16],[-29,9],[24,55]],[[1770,4517],[33,0],[132,17],[-18,44],[2,55],[-30,10],[28,43],[-57,2],[-15,-28],[-26,6],[-12,29],[-24,-5],[-12,20],[32,43],[-7,36],[31,2],[88,41],[-6,7]],[[1909,4839],[15,37],[55,-14],[6,31],[62,-25],[46,21],[26,-7],[13,30],[-15,35],[-77,27],[-15,47],[22,23],[155,35],[99,35]],[[2301,5114],[128,-45],[52,-23],[88,20],[93,-11],[15,35],[74,-19],[53,9],[56,-19],[50,8],[52,-7],[-13,27],[88,-26],[110,-13]],[[3147,5050],[26,-83],[7,-40],[-47,-62],[106,-48],[39,-47],[71,23],[26,46],[44,-6],[22,20]],[[3441,4853],[-2,-53],[8,-73],[-13,-34],[239,-62],[27,-10],[121,-19],[-2,-6]],[[3819,4596],[-1,0]],[[3818,4596],[-17,2],[-35,-73],[39,-12],[-22,-45],[40,-13],[-16,-37],[-28,11],[-18,-18],[-30,16],[-49,-24],[25,-18],[-38,-35],[-46,-18],[-22,
 -56],[20,-13],[8,33],[34,1],[1,-41],[71,-26],[34,-23],[-13,-20],[-30,11],[-11,-18],[63,-65],[51,-34],[-2,-48],[18,-26],[44,-25],[117,-102],[61,-14],[26,23],[44,7],[19,-30]],[[4156,3866],[-13,-28],[-28,-13],[11,-36],[-14,-22],[82,-8],[28,-16]],[[6932,5795],[-33,-30],[-99,-50],[-59,-7],[-42,-28],[-44,-12],[-48,-29],[-44,0],[2,-15],[-163,40],[-3,-9]],[[6399,5655],[-48,24],[-12,27],[4,42],[-35,43],[-32,11],[-29,-23],[-41,-104],[-31,-15],[-43,11],[-52,29],[-86,-1],[-25,-28],[0,-60],[-34,-17],[-36,11],[-14,57],[-113,-27]],[[5772,5635],[-63,17],[-5,-26],[22,-62],[-25,-45],[-40,-20],[22,-33],[-16,-29],[-70,39],[-14,-38]],[[5583,5438],[-65,28],[17,42],[16,87],[-86,4],[13,41],[35,18],[25,27],[-12,65],[-26,16],[-9,-18],[-28,27],[-125,-31],[-27,19]],[[5311,5763],[55,36],[55,-1],[-39,58],[-29,3],[9,26],[-24,32],[-41,9],[-23,38],[-52,29],[-69,63],[-27,68],[-40,-19],[-70,-70],[-28,-2],[-15,19],[-50,7],[-30,52],[-52,56],[-50,16]],[[4791,6183],[2,59],[-23,-5],[10,34],[-31,7],[5,40]],[[4754,6318],[25
 ,22],[-21,37],[18,11],[-23,38],[1,39],[17,4],[-46,47],[26,74],[11,57],[27,1],[3,22]],[[4792,6670],[107,-5],[61,29],[83,9],[42,51],[-12,8],[25,45],[32,2],[-4,31],[22,11],[61,61],[10,20],[-15,29],[75,14],[22,17],[65,-3]],[[5366,6989],[45,4]],[[5411,6993],[22,-40],[-38,-21],[22,-70],[-40,-14],[5,-37],[22,-22],[35,-11],[51,46],[78,-9],[9,14],[32,-15],[64,-10],[42,7],[75,-23],[33,1],[70,-25],[-6,21],[43,18],[57,-1],[-5,58],[-14,28],[19,3],[-5,46],[40,-9],[27,17],[21,36],[30,-2],[28,56],[3,29],[30,0],[6,25],[30,3],[-16,26],[35,5],[9,48],[-13,27],[28,23],[-2,50],[26,12]],[[6264,7283],[49,-25],[41,15],[55,-17],[12,-18],[36,30],[53,-30],[83,-23]],[[6593,7215],[26,-50],[-18,-9],[52,-92],[26,25],[31,-25],[18,-32],[20,1]],[[6748,7033],[-10,-11],[-168,-78],[-22,-24],[-25,20],[-24,-66],[-21,-7],[-13,-89],[58,-27],[-18,-25],[27,-12],[47,26],[8,-71],[81,1],[47,11],[31,-23]],[[6746,6658],[26,-47],[40,-3],[127,30]],[[6939,6638],[40,-43],[-36,-21],[-55,-16],[-19,21],[-7,-30],[-66,3],[-77,-41],[-22,-36
 ],[-13,7],[-26,-45],[50,-12],[-14,-15],[39,-30],[-41,-21],[33,-35],[52,3],[19,-22],[56,-9],[12,-45],[63,1],[78,-11],[82,9],[0,-22],[39,0],[0,-34],[21,5],[3,-54],[-39,-6],[5,-22]],[[7116,6117],[26,-38],[-70,-18],[21,-25],[30,-2],[-4,-37],[33,-53],[-119,-19],[-83,-60],[-18,-70]],[[6130,3044],[-104,103]],[[6026,3147],[-109,-32],[-1,-23],[-31,12],[-34,-12],[-43,7],[-38,-21],[7,-20],[-58,-22],[-12,13],[-66,-37],[-36,43],[-45,32],[-77,31],[-84,55]],[[5399,3173],[-248,399]],[[5151,3572],[152,54],[64,20],[35,49],[-56,78],[-37,17],[28,35],[4,25],[-85,18],[-28,22],[-64,24],[40,39],[-101,67]],[[5103,4020],[24,48],[39,11],[145,98],[27,-16],[56,-1],[49,37],[84,-3],[104,-65],[42,-38],[71,-34],[17,24],[20,-6],[15,24],[46,1],[48,61],[22,16]],[[5912,4177],[35,10],[139,-98],[16,13],[43,-57],[-23,-32],[46,-48],[47,-19],[51,7],[-4,-35],[45,-16],[32,-62]],[[6339,3840],[-54,-32],[18,-32],[-23,-18],[45,-51],[-32,-17],[23,-46],[22,-14],[32,-57]],[[6370,3573],[-36,5],[9,-37],[-30,-7],[7,-38],[25,-9],[47,-48
 ],[37,-23],[-33,-19],[3,-37],[-35,-21],[-4,-28]],[[6360,3311],[-24,12],[-28,-52],[42,-37],[-8,-10],[40,-38],[4,-27]],[[6386,3159],[-109,-49],[-39,9],[-38,-16],[-70,-59]],[[9846,2829],[-153,69],[-28,25],[-130,-8],[-3,-13],[-47,34],[-149,-1],[-16,-13],[-86,35],[-21,-32],[-52,39],[-25,-20],[-20,15],[-50,-57],[-51,-4],[8,31],[-47,-18],[-17,-28],[-22,23],[-49,1],[-8,-21],[-23,11],[-47,-19]],[[8810,2878],[-93,8],[-37,-11],[-38,20],[-81,3],[-46,46],[-4,24],[-40,13]],[[8471,2981],[26,81],[41,-2],[69,-23],[62,21],[65,-18],[138,-23],[26,60],[-8,66],[-41,23],[-31,-17],[-18,18],[15,35],[34,-3],[-24,42],[-62,36],[-26,47],[41,21],[-7,13],[34,23],[-84,93],[40,133]],[[8761,3607],[40,-5],[40,-28],[13,23],[-47,39],[32,25],[-26,94],[33,41],[26,9],[38,-29],[40,7],[35,37],[27,58],[22,11],[84,7],[21,68],[49,37],[0,25],[33,4],[50,52]],[[9271,4082],[46,25]],[[9317,4107],[26,-20],[47,0],[54,-62],[8,-56],[42,-72],[28,-69],[54,-58],[16,-73],[50,14],[63,-3],[34,-30],[34,-11],[46,-85],[-17,-22],[13,-91],[-13,-2
 8],[98,-34],[-10,-75],[-19,-27],[-7,-61],[13,-42],[36,-28],[0,-27],[73,-64],[13,-21],[-42,-54],[-19,-47],[-43,-53],[-49,-79]],[[5943,4395],[-78,27],[-38,-5],[-63,37],[-62,1],[9,-60],[-48,-4],[-45,22],[27,27],[-40,34],[-36,4],[-51,21],[-67,60],[-21,-22],[-53,77],[-61,29],[-51,-12],[-34,57],[-32,26],[-15,-13],[-9,31],[-51,5],[-23,-49],[-32,9],[5,26],[-57,65],[-13,0]],[[5004,4788],[-23,24],[36,14],[11,29],[-34,7],[16,17],[79,-13],[12,46],[57,37],[-9,86],[-19,23],[30,10],[-29,107],[65,59],[93,60],[44,1],[40,-16],[29,-38],[62,14],[41,-15],[12,51],[40,-5],[40,35],[-11,47],[15,58],[-18,12]],[[5772,5635],[-5,-29],[25,-40],[42,-18],[11,-42],[28,-7],[31,11],[0,-23],[-33,-69],[-11,-72],[-22,-21],[27,-31],[-9,-16],[20,-30],[22,38],[24,-3],[32,41],[68,-3],[-18,-26],[30,-14],[109,9],[-8,-23],[37,-22]],[[6172,5245],[30,-19],[29,-74],[-24,-69],[-44,-65],[34,-23],[-10,-39],[19,-44],[39,-7],[-1,-38],[33,-25],[-10,-59],[40,8],[-10,-41]],[[6297,4750],[-34,-49],[19,-72],[-9,-23]],[[6273,4606],[-44,-4],[
 -59,24],[-62,-14],[-41,1],[-33,-35],[-93,-35],[54,-70],[-43,-34],[-9,-44]],[[8527,2124],[6,36],[-19,63],[13,10],[-7,46]],[[8520,2279],[22,17],[-17,75],[12,65],[-14,52],[-37,40],[-45,85],[32,40],[-8,31],[72,57],[-17,22],[29,65],[74,6],[116,-2],[22,-7],[49,53]],[[9846,2829],[-125,-28],[-42,12],[-57,-14],[-67,-27],[-69,-146],[-53,-57],[7,-25],[-64,-24],[-28,6],[-35,-25],[-86,-17],[-27,-17],[47,-21],[23,-29],[40,-21],[23,-48],[-10,-34],[39,-8],[30,48],[50,-21],[-15,-33],[-3,-68],[-41,-25],[-19,-24],[-42,-25],[29,-32],[28,-7],[-23,-40],[-42,-1],[8,-34],[-47,-24],[-4,-33],[-26,-42],[-41,-27],[-65,20],[-10,-22],[-56,-12],[-69,-28],[-55,-11],[-132,-38],[-7,44],[-59,-22],[-87,-12],[-21,-15],[-76,-14],[-122,-16]],[[8445,1792],[18,31],[52,8],[28,38],[-23,43],[75,17],[2,17],[36,1],[6,48],[116,24],[9,13],[-16,92],[-31,-17],[-44,-2],[0,48],[-34,7],[-112,-36]],[[8670,4593],[-15,-13],[-55,8],[-41,-11],[-23,24],[-29,1],[-54,39],[-18,-4],[-47,44],[0,28],[-37,41],[-33,3],[-52,-42],[-106,11],[-47,0],[-
 31,-16],[-55,7],[-43,-6],[-24,32],[-85,36],[-19,20],[61,14],[-24,39],[34,-11],[123,5],[17,36],[66,9],[5,21],[-48,1],[18,25],[-10,20],[-68,2],[-94,-14],[-30,8],[-60,-7],[1,74],[22,8],[-26,19],[-90,-2],[-11,-27],[-53,94],[1,28]],[[7690,5137],[19,56],[-18,72],[-39,27],[-122,-1],[-28,-7]],[[7502,5284],[-10,43],[40,22],[19,51],[39,17],[-5,15],[80,18],[16,23],[-10,27],[64,78],[26,7]],[[7761,5585],[23,-15],[77,-26],[19,16],[5,39],[29,35],[63,10]],[[7977,5644],[-6,-40],[-29,8],[-11,-67],[32,-70],[36,18],[73,4],[28,27],[50,13],[40,-10],[45,26],[26,-103],[51,-39],[5,38],[29,51],[-23,19],[7,50],[-8,29],[32,14],[37,-1],[89,53],[-38,23],[-6,32],[56,18]],[[8492,5737],[26,-14],[13,-37],[-7,-29],[34,-27],[41,-61],[48,-19],[36,-42],[21,-8],[31,-47],[-3,-16],[-47,-13],[-41,-57],[39,-35],[25,-57],[63,-38],[57,2],[70,-8],[46,-26],[59,0],[25,12],[69,-1],[29,-20],[-34,-44],[-77,-9],[-48,24],[-78,-9],[-18,14],[-53,-31],[-26,41],[-23,5],[-44,-71],[17,-14],[68,-24],[-23,-97],[41,-89],[-23,-49],[7,-52],[-48,
 -46],[-1,-25],[-50,-45],[-26,-36],[-17,-46]],[[4196,1174],[-51,41],[-37,-15],[-11,40],[-55,64],[-21,56],[-16,13],[-47,92],[-9,-41],[-34,1],[-39,-54],[-15,25],[-53,-10],[-22,29],[-13,59],[-64,-21],[-53,2],[-18,-11],[-45,7],[-9,-28],[-29,15],[-28,-48],[15,-98],[34,-39],[89,-30],[6,-21],[-43,-29],[-20,-29]],[[3608,1144],[-42,8],[-24,57],[-40,21],[-72,22],[-33,64],[-54,38],[-47,109],[-54,71],[-65,33],[-28,31],[-62,29],[-63,75],[-18,41],[-85,68],[-7,34],[-26,27]],[[2888,1872],[59,-11],[0,54],[37,25],[12,22],[48,15],[45,49],[62,27],[-24,42]],[[3127,2095],[58,0]],[[3185,2095],[19,-11],[52,-70],[8,-29],[28,-13],[8,23],[77,-11],[64,-37],[74,-26],[27,59],[31,21],[52,12],[22,32],[42,-8],[27,29],[10,-13],[180,115]],[[3906,2168],[152,-119],[179,-93],[194,-61]],[[4431,1895],[-77,-186],[4,-28],[36,-35],[-1,-29],[27,-39],[25,-12],[3,-27],[-54,-40],[-5,-40],[-53,-36],[-35,-1],[-14,-41],[23,-67],[-19,-45],[-69,-55],[-26,-40]],[[5544,1352],[-176,-215],[-36,-30],[-44,-56],[-41,-25],[1,-29],[26,-41],[-9
 ,-23],[-70,-24],[-2,-41],[-22,-20],[-71,-22],[-45,-47]],[[5055,779],[-35,21],[-30,-39],[-46,12],[1,26],[-73,40],[-24,24],[-46,-23],[-54,59],[-71,11],[-24,-14],[-37,5],[-34,31],[-35,49],[-59,18],[-70,-15],[-39,8]],[[4379,992],[-35,53],[-82,51],[-22,44],[-44,34]],[[4431,1895],[235,-53],[217,-81]],[[4883,1761],[143,-74]],[[5026,1687],[413,-276]],[[5439,1411],[105,-59]],[[7274,2513],[-57,74]],[[7217,2587],[75,86],[-98,68],[-11,22],[-51,33],[10,47],[21,15],[41,6],[33,57],[33,-22],[28,45],[54,50],[91,-77],[20,-2],[72,-69],[37,20],[64,-13],[9,24],[45,0],[25,50],[-21,18],[41,41],[-26,19],[16,31],[8,52],[-21,20],[5,34],[44,22]],[[7761,3164],[28,-7],[1,-38],[33,-24],[36,8],[13,-15],[34,9],[60,-45],[20,4],[44,-19],[44,31],[39,-2],[51,-58],[55,-22],[71,-10],[43,8],[37,-26],[83,3],[18,20]],[[8520,2279],[-29,27],[-59,-25],[-48,30],[11,11],[-82,50],[0,14],[-50,22],[-13,18],[-54,0],[-13,-15]],[[8183,2411],[-52,-3],[-11,17],[-46,-9],[-2,-25],[-47,5],[-31,-24],[-19,-50],[-25,-10],[-34,20],[-12,56],[-
 30,4],[1,37],[-16,19],[-104,-2],[-59,22],[-13,-19]],[[7683,2449],[-36,-3],[-14,20],[-46,-41],[-65,-31],[14,-24],[-37,-27],[-27,-37],[7,-23]],[[7479,2283],[-57,23],[-31,-6],[-16,46],[-39,-9],[-2,23],[-26,-1],[5,27],[-23,21],[22,14],[0,41],[-38,51]],[[7761,3164],[-27,48],[-19,11],[3,38],[-22,18],[-15,-13],[-45,13],[-51,-11],[-12,37],[-30,3],[-41,54],[13,42]],[[7515,3404],[-84,67],[-36,22]],[[7395,3493],[-12,31],[36,-11],[26,43],[34,-34],[5,13],[51,0],[9,-15],[103,14],[24,13],[-11,27],[43,36],[113,68],[22,-13],[24,31],[26,-11],[-5,36],[39,46],[5,66],[22,9],[-1,44]],[[7948,3886],[25,16],[10,-24],[45,-40],[34,6],[108,-56],[20,-58],[42,-25],[41,-9],[8,12],[55,-28],[20,-27],[28,-5],[1,26],[32,5],[45,-44],[68,21],[60,44],[17,-20],[-23,-22],[57,-14],[50,24],[35,-16],[35,-45]],[[7948,3886],[-21,-6],[-36,31],[20,22],[-67,5],[-13,20],[23,27],[-42,44],[1,39],[-18,-4],[-27,61],[16,27],[-47,8],[-4,17],[-65,22],[31,25],[-47,25],[13,18],[-24,36]],[[7641,4303],[55,17],[0,62],[-46,48],[36,25]],[[7686,
 4455],[104,6],[31,16],[54,-10],[-5,40]],[[7870,4507],[83,-115],[38,0],[33,17],[22,-7],[12,-30],[93,38],[40,9],[90,-4],[6,-15],[85,4]],[[8372,4404],[63,-32],[10,-34],[-13,-31],[20,-11],[28,17],[65,-40],[-7,-49],[24,-35],[35,15],[50,-6],[49,-44],[34,-9],[1,-22],[34,-18],[63,6],[100,-15],[22,31],[38,-26],[29,17],[122,-10],[0,-11],[64,-4],[16,9],[52,-20]],[[6743,1133],[-576,-143]],[[6167,990],[-623,362]],[[5439,1411],[175,208],[27,56],[34,32],[10,34],[56,50],[-28,64],[19,33],[-44,43],[27,53]],[[5715,1984],[51,-32],[27,15],[25,-22],[49,9],[2,-32],[40,2],[47,-11],[18,6]],[[5974,1919],[44,-6],[-13,-43],[110,-17],[47,-47],[53,-1],[-10,-72],[71,-44],[-9,-17],[46,-3],[15,-13],[-7,-38],[61,16],[43,-74],[35,-12],[57,12],[35,-20],[-16,-31],[29,-56],[37,-16],[56,17],[25,-3],[10,-25],[50,-293]],[[7515,3404],[-32,-12],[-48,4],[-23,-19],[-55,-1],[-18,-22],[-31,20],[-96,13],[-14,-18],[-70,38],[-44,-22],[-12,26],[-31,10],[-54,-25],[-36,14],[-68,42],[-158,112]],[[6725,3564],[-133,94],[-110,-63],[-16,19
 ],[-96,-41]],[[6339,3840],[47,8],[-14,88],[50,36],[-36,26],[36,28],[26,0],[21,-27],[35,11],[37,41],[-36,23],[17,60],[58,-5],[33,70],[24,-8],[27,22]],[[6664,4213],[55,-22],[24,-23],[62,-12],[31,49],[91,2],[134,96],[42,-15],[-2,-21],[57,-5],[8,19],[36,5],[18,-39],[57,37],[-9,36],[24,18],[-31,71],[26,56],[-13,33],[26,35]],[[7300,4533],[49,-5],[9,-28],[68,44],[17,-25],[38,7],[-2,38],[36,-18],[47,11],[5,-52],[39,-40],[52,16],[28,-26]],[[7641,4303],[-13,9],[-66,-6],[-6,-14],[-68,16],[-53,-14],[20,-14],[-67,-31],[-28,18],[-74,-35],[-75,-71],[-40,-10],[-15,-90],[-48,-1],[-31,-68],[42,-42],[62,-30],[39,-71],[-3,-42],[-23,-10],[10,-42],[-28,-1],[0,-24],[33,-33],[26,-1],[22,-29],[7,-37],[-18,-49],[35,-33],[-11,-24],[43,-12],[21,-26],[61,7]],[[3739,5153],[-9,19],[-81,38],[-66,4],[-11,-15],[-105,34],[-5,-15],[-28,22],[-24,-19],[-36,-7],[-4,42],[-34,-20],[-46,5],[-29,-28],[-37,-1],[-5,25],[-39,27],[-46,-32]],[[3134,5232],[-141,131],[42,109],[-11,20],[-44,11],[90,157],[50,64]],[[3120,5724],[40,-33
 ],[101,79],[-48,56],[-27,53],[21,11],[47,-40],[64,-16],[17,24],[95,-5],[23,23],[-22,28],[22,46],[35,35],[23,-7]],[[3511,5978],[46,-28],[31,-1],[42,-32],[-6,-11],[35,-30],[70,-19],[0,-31],[40,-7],[35,-83],[53,55],[9,-38],[18,22],[5,36],[52,1],[-11,73],[-25,26],[41,20],[42,38],[18,38]],[[4006,6007],[1,-27],[39,3],[34,-22],[30,-3],[-16,-45],[17,-69],[19,22],[66,17],[41,-5]],[[4237,5878],[10,-15],[-27,-20],[24,-37],[-5,-43],[18,-34],[56,-38],[45,1],[-80,-69],[19,-26],[-45,-19]],[[4252,5578],[-40,-8],[-8,26],[-74,12],[-31,-27],[5,-17],[-35,-18],[-31,18],[-29,-67],[-30,-26],[-34,-11],[16,-13],[-15,-61],[18,-5],[-22,-39],[21,-9],[-14,-46],[-22,-19],[-26,-50]],[[3901,5218],[-41,-35],[-52,22],[-16,-49]],[[3792,5156],[-53,-3]],[[6991,2207],[-66,7],[-15,31],[9,24],[-33,23],[15,11],[-88,30],[-49,0],[-72,70],[-68,45],[-30,27],[-110,43],[-20,-15],[-78,11],[-13,-33],[-94,32],[-28,-53],[-70,5],[-18,18],[-48,17],[4,-33],[-30,-3],[-6,-45]],[[6083,2419],[-71,19],[-39,1],[-3,40],[-26,0],[-40,34],[39,39
 ]],[[5943,2552],[51,25],[62,-5],[6,-36],[69,51],[-47,33]],[[6084,2620],[20,17],[-22,28],[52,43],[-108,51],[-65,46],[106,71],[-40,40],[25,-5],[61,34],[28,37],[-11,62]],[[6386,3159],[8,-10],[93,0]],[[6487,3149],[23,-26],[26,14],[99,-111],[46,-30],[-21,-12],[28,-26],[47,28],[39,-41],[55,1],[37,-39],[-9,-42],[18,-6],[52,-60],[20,19],[42,-34],[-33,-22],[33,-68],[26,-29],[62,-5],[11,8],[70,-26],[9,9],[50,-64]],[[7274,2513],[-65,11],[-15,-17],[-67,-14],[-37,-29],[-5,-36],[104,-42],[-34,-16],[57,-37],[-67,-17],[-22,-40],[-64,-7],[-5,-18],[-44,-18],[-19,-26]],[[5439,3022],[-5,-38],[-40,10],[-19,-16],[-59,6],[0,-13],[-66,-41],[-60,-48],[-59,50],[-26,-32],[-10,21],[-52,-23],[-36,-50],[-53,-17],[-30,-19],[-98,-11],[-37,-22]],[[4789,2779],[-22,40]],[[4767,2819],[-7,13],[31,46],[33,7],[-31,74],[-27,99],[-28,40],[-44,10],[-72,74]],[[4622,3182],[-4,62],[-27,12],[27,49],[-110,43],[-25,37],[-25,-1],[-21,29],[20,25],[-51,36],[-27,-33],[-34,37],[29,14],[-17,36],[-60,27]],[[4297,3555],[6,28],[-32,49]],[
 [4222,3743],[24,18],[42,-18],[21,35],[41,-44],[0,-14],[47,-32],[30,18],[28,-17],[26,35],[44,-24],[-2,17],[44,19],[9,-35],[67,4],[-4,13],[36,20],[44,-42],[32,18],[16,-18],[135,92]],[[4902,3788],[249,-216]],[[5399,3173],[40,-151]],[[3906,2168],[-26,28]],[[3880,2196],[187,98],[66,39],[88,-16],[57,-28],[45,41],[44,1],[37,16],[59,0],[20,18],[79,3],[16,32],[35,19],[5,33],[52,67],[0,26],[27,35],[65,9],[53,-1],[44,63],[25,-8]],[[4884,2643],[39,-27],[9,16],[50,-38],[24,-65],[59,-75],[27,-23],[88,-40],[42,0],[10,-56]],[[5232,2335],[-14,-31],[-39,-47],[-40,4],[9,-17],[-35,-28],[-13,-42],[-35,-12],[-18,-38],[14,-18],[-4,-43],[-32,-26],[8,-25],[-31,-85],[-119,-166]],[[6487,3149],[13,29],[-16,40]],[[6484,3218],[21,11],[22,52],[74,-2],[19,-38],[68,28],[32,-17],[49,50],[-28,21],[11,45],[-40,42],[13,154]],[[3296,6556],[-18,18],[-41,-29],[-20,20],[-50,15],[-4,47],[-31,-8],[-80,-43],[-31,-46],[-79,-31],[-37,-24],[-68,-28],[-233,-125]],[[2604,6322],[-69,24],[10,60],[-54,45],[6,24],[99,37],[-31,53]],[[2
 565,6565],[28,76],[53,28],[13,53],[-35,25],[0,17],[-45,3],[-43,22],[3,49],[23,60],[39,63],[0,57],[-32,34],[5,52],[-68,50],[-2,16]],[[2504,7170],[19,14],[51,8],[30,77],[35,12],[55,-30],[-6,91],[-22,135]],[[2666,7477],[41,14],[16,-14],[52,-8],[49,-47],[52,-27],[22,-26],[58,-40],[50,-13],[31,-28]],[[3037,7288],[-4,-20],[21,-51],[-4,-102],[73,-38],[17,-48],[51,-44],[46,-59],[-20,-21],[29,-36],[-33,-59],[30,-9],[31,-43],[44,23],[50,-17],[-4,-12],[42,-14],[28,-42]],[[3434,6696],[-31,-13],[7,-44],[26,-35],[-17,-53],[-58,-22]],[[3361,6529],[-32,36],[-33,-9]],[[5974,1919],[42,36],[48,0],[-11,19],[53,2],[31,28],[72,21],[29,16]],[[6238,2041],[140,13],[105,19],[73,20],[207,-84],[21,-4]],[[6784,2005],[34,-43],[24,0],[-8,-41],[18,-64],[87,-46],[0,-51],[59,-16],[-6,-12],[35,-40],[79,11],[132,-20]],[[7238,1683],[-101,-24],[3,-24],[-35,-18],[-20,-44],[-44,6],[-10,-64],[210,-352],[-243,42],[-255,-72]],[[7474,6429],[14,67],[-40,-12],[-29,46],[31,57],[-15,20]],[[7435,6607],[92,32],[50,-10],[49,21],[16,
 -22],[57,-34],[31,20],[34,4]],[[7764,6618],[30,-20],[49,-8],[80,-40],[63,52],[49,-6],[30,-46],[42,-11],[45,59],[38,0],[19,-58],[31,-46],[-23,-16],[2,-43],[67,6],[83,-5],[-12,27],[98,13],[39,-8]],[[8494,6468],[-37,-42],[0,-56],[11,-2],[6,-59],[-9,-110],[63,-8],[15,-52],[-129,-50],[-65,-17],[-10,-50],[5,-36],[-47,-41],[43,-22],[-13,-67]],[[8327,5856],[-38,-58],[-86,10],[-4,-20],[-57,-42],[-66,5],[-12,25],[-45,17],[-33,43],[-57,8],[3,24],[38,3],[-2,27],[-41,-3],[-11,47],[-59,7],[18,47],[-13,39],[26,27],[-29,10],[-41,37],[-56,-21],[7,20],[-73,-19],[-93,109],[-41,4],[-19,46],[65,34],[70,6],[31,29],[-31,1],[16,30],[-47,41],[-50,16],[-13,25],[-59,8],[0,19],[-51,-28]],[[4792,6670],[-96,22],[-188,75],[-44,-10]],[[4464,6757],[-11,32],[-20,-11],[-16,30],[-37,25],[-5,34]],[[4375,6867],[10,27],[-22,9],[44,63],[34,-6],[40,16],[-9,41],[27,12]],[[4499,7029],[-9,19],[29,3],[8,23],[47,10],[79,68],[-15,17],[-92,32],[-8,37],[17,3],[52,-27],[-20,54],[16,29],[-16,41],[-40,45],[68,33],[-35,38]],[[4580,745
 4],[16,10],[59,-24],[39,2],[0,38],[26,-18],[40,29],[-12,26],[16,12],[50,-14],[31,18],[30,-6]],[[4875,7527],[28,-37],[64,8],[43,-53],[23,11],[10,-35],[-18,-27],[27,-5],[24,-40],[-3,-35],[18,-1],[44,29],[1,22],[60,-12]],[[5196,7352],[-4,-25],[39,-14],[32,-30],[15,-45],[-37,-21],[29,-65],[59,19],[30,-77],[9,-57],[-2,-48]],[[4767,2819],[-49,-11],[-75,1],[-50,19],[-63,-9],[-36,11],[-40,-28],[5,-12],[-59,-14]],[[4400,2776],[-34,10],[-49,53],[32,40],[-52,6],[-27,-15],[-76,-21],[19,-40],[-18,-16],[-61,19],[-27,-27],[-70,28],[-5,-17],[-35,-3],[1,-19],[-31,-7],[-63,15],[-70,-6],[-72,-31],[-9,19],[-33,-18],[-13,36],[-16,-33],[-175,-78]],[[3516,2671],[-34,57]],[[3482,2728],[-126,224]],[[3356,2952],[-97,197]],[[3259,3149],[180,59],[80,31],[45,-18],[30,18],[45,-19],[65,-52],[58,2],[46,34],[49,5],[19,28],[-20,24],[55,22],[22,-16]],[[3933,3267],[-1,-19],[101,-38],[10,-29],[-47,-15],[23,-20],[58,20],[-17,-51],[50,1],[22,-18],[73,-19],[11,-15],[63,-3],[44,-29],[68,-3],[13,35],[38,50],[61,7],[74,-11],
 [16,59],[29,13]],[[1909,4839],[-33,-2],[2,20],[-49,-22],[-39,-35],[-4,18],[-104,-5]],[[1682,4813],[-26,19],[-81,18],[-25,-11],[-19,15]],[[1531,4854],[-5,44],[-17,4],[-22,44],[-94,40]],[[1393,4986],[68,81],[43,88],[-52,14],[11,25],[-55,26],[6,34],[-61,8],[4,63],[-28,30]],[[1329,5355],[59,-6],[-8,61],[81,26],[-9,28],[114,-8],[4,63],[73,10],[46,43]],[[1689,5572],[61,-2],[44,30],[36,10],[59,-7],[-3,-9],[84,-8],[13,-51],[44,-39],[-6,-10],[48,-25],[22,49],[21,7],[9,-30],[45,-8],[-5,-59],[20,-63],[43,-21],[40,2],[7,-19]],[[2271,5319],[2,-54],[20,3],[22,-63],[-11,-32],[-3,-59]],[[6077,2366],[-39,24],[-20,-12],[-23,20],[-12,-22],[-40,25],[-15,-31],[-65,42],[-55,-48],[-40,-4],[-4,-31],[-25,17],[-39,-13],[-29,-73],[-26,-48],[-39,-22],[-75,31],[-40,-8],[-74,-41]],[[5417,2172],[-68,43],[-33,43],[9,17],[-80,22],[-13,38]],[[4884,2643],[-26,43],[-28,13],[18,34],[-42,44],[-17,2]],[[5439,3022],[51,-34],[27,26],[58,-43],[-62,-59],[71,-33],[-28,-37],[-47,6],[-26,-14],[48,-33],[-26,-37],[48,-38],[20,5],
 [6,-32],[29,-1],[24,-32],[53,-1],[48,20],[9,-25],[43,-17],[22,17],[9,-21],[127,-87]],[[6083,2419],[18,-23],[-24,-30]],[[6664,4213],[-88,50],[-53,17],[-18,20],[10,27],[-28,12],[-16,38],[13,44],[-35,30],[11,8],[-17,48],[-31,50],[-16,-15],[-57,29],[-32,41],[-34,-6]],[[6297,4750],[61,-2],[7,54],[69,15],[-25,-50],[28,-39],[42,23],[70,-6],[8,-38],[44,2],[50,22],[20,26],[30,-9],[21,15],[32,74],[61,19],[34,50],[55,6],[18,18],[119,21],[44,42]],[[7085,4993],[24,-68],[-19,-49],[26,-21],[-19,-16],[31,-11],[14,-81],[70,-86],[21,-13],[28,14],[44,-25],[-28,-24],[22,-38],[-17,-30],[18,-12]],[[4099,8201],[-30,-18],[-89,-3],[-43,-10],[-24,-21],[-136,44],[-68,-69],[-22,17]],[[3687,8141],[22,18],[9,36],[-12,52],[12,62],[21,36],[44,28],[64,57]],[[3847,8430],[48,-71],[51,11],[4,-34],[-48,-26],[20,-40],[107,10],[88,49],[-46,47],[52,47],[38,19],[-3,45],[-78,-17],[-43,63],[93,18],[126,89],[1,55],[-58,38],[-92,44],[13,26],[43,24],[35,5],[29,31],[11,29],[41,-1],[39,-21],[27,6],[49,50],[39,24],[-70,88],[17,8]]
 ,[[4380,9046],[22,-31],[84,-24],[9,5],[6,69],[36,-46],[25,27],[59,3],[54,-60]],[[4675,8989],[81,-73],[92,-67],[-24,-21],[-15,14],[-40,-18],[74,-38]],[[4843,8786],[-8,-56],[2,-74],[17,-26],[-2,-129],[-35,-43],[-46,-27],[-110,-19],[-66,-30],[-74,-20],[-58,-31],[-12,-46],[-25,-7],[7,-21],[-14,-35],[-102,-7],[-42,7],[-4,-20],[-44,3],[-128,-4]],[[5103,4020],[-152,91]],[[4951,4111],[-80,48],[10,17],[-19,33],[-45,14],[3,124],[-53,12],[-19,-33],[-21,21],[-39,-2],[17,33],[-27,-9]],[[4678,4369],[27,42]],[[4705,4411],[18,43],[39,-3],[62,43],[61,52],[-20,21],[62,9],[-15,23],[33,-2],[-8,26],[49,29],[-28,52],[23,38],[-17,28]],[[4964,4770],[40,18]],[[5943,4395],[38,-25],[-74,-27],[47,-42],[-19,-32],[-49,28],[-43,-20],[26,-10],[47,-53],[-17,-4],[13,-33]],[[3819,4596],[33,-6],[48,-37],[37,15],[35,-2],[-17,20],[32,26],[37,-18],[8,20],[67,26],[62,-15]],[[4161,4625],[4,-22],[73,11],[84,37]],[[4322,4651],[19,14],[44,-48],[20,9],[191,-180],[37,25],[52,-16],[-6,-43],[26,-1]],[[4678,4369],[-31,-54],[-27,-7
 ],[-24,-42],[35,-19],[-38,-58],[-19,12],[-31,-58]],[[4543,4143],[-133,3],[-56,35],[-88,-65],[-36,-14],[-41,2],[-7,-26],[-34,-13],[-10,-28],[25,-48]],[[4163,3989],[15,-15],[-17,-53],[11,-21],[-16,-34]],[[3028,1146],[7,23],[-42,16],[31,12],[-35,11],[-5,18],[-50,42],[35,24],[20,-25],[29,21],[-86,71],[-113,15],[-107,83],[-26,7],[0,-28]],[[2686,1436],[-124,-3],[-8,36],[15,69],[-8,20],[-7,104],[22,26],[-103,98],[-18,26],[-42,13],[-53,49]],[[2360,1874],[18,68],[-37,146],[42,5]],[[2383,2093],[21,-27],[33,13],[66,-40],[42,55],[18,-14],[17,-58],[15,-4],[23,-46],[43,-23],[27,29],[42,18],[20,-15],[80,-10],[27,-30],[-4,-24],[35,-45]],[[3608,1144],[4,-37],[-46,-18]],[[3566,1089],[-7,-20],[-36,-12],[-22,24],[-95,4],[-48,20],[-60,-2],[-46,40],[-59,28],[-13,-30],[-96,5],[-17,-12],[-39,12]],[[6137,8110],[-53,-27],[-27,-37],[-43,-22],[-38,10],[-48,39],[-16,24],[-3,57],[-16,29],[-38,9],[-65,-15]],[[5790,8177],[-79,-34],[-46,1],[-16,26],[17,20],[70,16],[32,28],[-1,20],[-38,46],[-44,37],[-34,3],[-24,-24]
 ,[-23,-51],[-79,-30],[-58,-38],[-21,-29],[-35,-11],[-39,18]],[[5372,8175],[-34,18]],[[5338,8193],[35,15],[-13,33],[41,-2],[0,46],[-52,5],[-3,31],[20,32],[35,18],[38,50],[-28,66],[-91,28],[-61,-28],[-22,29],[-44,21],[19,63],[6,69],[-65,9],[5,48],[34,-5],[-9,25]],[[5183,8746],[57,20],[52,2],[41,-16],[11,-19],[72,-23],[10,30],[-11,24],[-40,5],[-4,96],[56,26],[100,3],[34,-8]],[[5561,8886],[-21,-83],[79,-7],[29,-13],[-10,-54],[49,-10],[-4,-40],[52,7],[7,-27],[94,-2],[13,28],[45,5],[10,22],[37,-12],[31,46],[51,-14],[8,47],[36,-10]],[[6067,8769],[29,10],[43,-15],[4,15],[40,3],[24,-28],[21,-56],[-13,-18],[-67,-28]],[[6148,8652],[-24,33],[-35,-36],[12,-65],[-13,-28],[4,-61],[-43,1],[-6,-22],[-40,-1],[-11,-71],[42,-12],[5,-55],[23,-34],[82,-46],[-21,-44],[-27,-27],[23,-7],[18,-67]],[[2108,1068],[-9,49],[-72,41],[-24,4],[-37,32],[-68,15],[-18,29],[-53,39],[-20,68],[-32,28],[-73,-18],[-26,1],[-13,30],[-36,-7],[-54,75],[-53,-5],[-5,-23],[-30,31],[-25,49],[-26,1],[-13,-25],[-29,70],[-48,-21]],[[1
 344,1531],[-43,73]],[[1301,1604],[30,34],[-83,81],[19,35],[-13,18],[20,15],[-24,44],[44,31],[-11,22],[37,-7],[79,16],[-15,51],[57,12]],[[1441,1956],[30,-5],[-2,-48],[34,8],[-16,64],[28,-1],[40,22],[35,0],[40,-20],[24,-26],[52,-20],[35,-3],[16,-22],[59,0],[7,25],[63,-24]],[[1886,1906],[16,-39],[40,-20],[35,-2],[94,-51],[29,54],[67,5],[22,-12],[57,1],[30,18],[60,12]],[[2336,1872],[-19,-32],[11,-28],[-20,-22],[-37,-8],[-38,-41],[-35,-24],[22,-37],[-45,-17],[-47,15],[0,14],[-44,43],[-63,-11],[-53,9],[-77,-28],[63,-25],[25,-25],[-49,-29],[47,-16],[10,-16],[-48,-8],[-9,-16],[53,-15],[57,-80],[18,4],[21,-25],[20,5],[-22,-33]],[[2077,1426],[-19,-34],[44,-28],[17,-43],[55,-32],[26,-36],[-15,-67],[-29,-26],[25,-37],[-20,-11],[4,-36],[-57,-8]],[[7502,5284],[-41,-44],[33,-15],[6,-20],[-56,-17],[-51,-52],[-7,42],[-78,-7],[-42,7],[-39,45],[-7,28],[-21,-4],[-16,-43],[-41,-23],[-10,12],[-57,7],[26,-32],[-8,-43],[13,-19],[-36,-4]],[[7070,5102],[-63,28],[-25,56],[-37,3],[5,18],[-38,69],[-74,-13],[-48
 ,25],[-21,-5],[-6,26],[21,13],[8,57],[26,42],[21,1],[21,33],[-34,32],[-77,24],[-24,-1],[-106,28],[-31,16]],[[6588,5554],[-107,61],[-82,40]],[[6932,5795],[51,-17],[-18,-29],[32,3],[106,-33],[23,11],[55,-4],[39,9],[62,-21],[47,9],[14,-17],[71,-38],[36,4],[16,-16],[85,24],[26,-9],[16,-39],[108,1],[60,-48]],[[1636,6612],[-46,56],[-50,-3],[-27,34],[-13,-5],[-31,73],[16,39],[-82,66],[-19,33],[-44,51],[37,24],[-86,28],[10,30]],[[1301,7038],[24,22],[43,-20],[18,11],[-11,47],[61,25],[11,17],[-48,20],[55,2],[40,51],[-9,29],[31,-18],[17,22],[13,82],[-17,20],[21,36],[-37,18],[26,16]],[[1539,7418],[69,-45],[13,19],[63,-1],[11,27],[27,19],[55,14],[33,-43],[-7,-24],[95,-19],[94,-55],[24,1],[66,-25],[46,-54],[70,-38],[42,-56]],[[2240,7138],[-79,-39],[31,-99],[-55,-69],[-44,-21],[-3,-53]],[[2090,6857],[-28,-93],[-41,5],[-34,-14],[-63,11],[-202,-36],[4,-38],[-33,-6],[-57,-74]],[[7070,5102],[38,-50],[-26,-39],[3,-20]],[[6172,5245],[22,24],[51,18],[-29,18],[79,12],[18,11],[72,3],[81,-20],[66,58],[22,0]
 ,[39,26],[13,77],[-26,63],[8,19]],[[5230,455],[-15,-26],[-32,46],[-45,3],[-104,-31],[-81,73],[-31,1]],[[4922,521],[9,39],[38,83],[25,27],[28,-2],[-5,44],[11,35],[27,32]],[[6167,990],[-373,-156],[-62,-10],[-47,-51],[-80,39],[-35,-16],[-4,-67],[-75,-30],[-58,-5],[-101,-148],[-32,-37],[-33,-13],[-37,-41]],[[4310,6471],[6,-61],[-39,14],[7,-79],[-75,18],[-27,-35],[-70,11],[-62,-31],[-8,-26],[-92,-14],[-72,-54],[-20,-2]],[[3858,6212],[-17,35],[-33,-22],[-3,17],[-83,-3],[-59,22],[-20,29],[-59,-78],[-25,-17],[-105,7],[-37,-9]],[[3417,6193],[-29,43],[12,30],[-27,6],[-49,38],[24,45],[33,16],[-26,43],[3,23],[35,40],[-32,52]],[[3434,6696],[11,-8],[86,38],[-16,48],[34,11],[-9,42],[19,11],[39,-13],[29,40],[-15,16]],[[3612,6881],[42,21],[40,-11],[40,-39],[13,-54],[54,12],[24,-11],[40,-45],[27,31],[27,3]],[[3919,6788],[40,-22],[31,-1],[28,30],[90,-37]],[[4108,6758],[9,-15],[47,-16],[53,-32],[-19,-30],[-64,-44],[60,-23],[2,-19],[68,-23],[-11,-47],[29,1],[28,-39]],[[2271,5319],[44,81],[33,-1],[68,26]
 ,[-13,19],[41,13],[-24,22],[24,9],[-24,78],[96,7],[-6,59],[134,37]],[[2644,5669],[48,-1],[72,22],[18,-43],[35,11],[3,45],[-12,15],[23,32],[30,10],[34,-55],[175,61]],[[3070,5766],[50,-42]],[[3134,5232],[-7,-3],[42,-82],[35,-22],[-59,-55],[2,-20]],[[2426,2333],[-57,-5],[-35,28],[-59,30],[-31,41],[-78,12],[-29,17],[-53,8],[-22,-72],[-30,-17],[-75,10]],[[1957,2385],[-11,78]],[[1946,2463],[46,38],[18,0],[6,31],[24,8]],[[2040,2540],[18,19],[-18,25],[-33,17],[-6,57],[22,62],[-9,21],[33,64],[37,-12],[31,15],[55,3],[11,14],[-47,4],[-43,17],[-53,63],[6,55],[40,42],[-37,32]],[[2047,3038],[-3,78],[31,47],[-41,-4],[13,28],[-29,45],[-4,37],[22,10],[-147,152],[-20,4],[-59,57]],[[1810,3492],[18,20],[-22,19],[23,26],[44,0],[25,40]],[[1898,3597],[24,-8],[55,27],[85,-34],[29,-4]],[[2358,2975],[10,-45],[39,-62],[0,-37],[22,-41],[41,-31],[-19,-38],[-26,-24],[30,-55],[-4,-28],[-31,-36],[24,-61],[28,-31],[-25,2],[23,-60],[-14,-14],[10,-55]],[[2466,2359],[-40,-26]],[[4964,4770],[-10,23],[-47,19],[-26,-8],[
 -22,37],[-24,-11],[-52,46]],[[4783,4876],[22,12],[23,38],[-30,9],[10,25],[-59,16],[-13,36],[25,54],[-10,50],[55,-7],[0,22],[-26,29]],[[4780,5160],[34,15],[14,46]],[[4828,5221],[-17,55],[43,7],[-26,57],[31,9],[-13,42],[21,8],[14,-21],[53,35],[48,0],[50,23],[62,57],[-7,18],[-45,34],[-25,74],[-15,13]],[[5002,5632],[27,4],[-5,35],[71,16],[30,17],[65,60],[82,8],[39,-9]],[[2504,7170],[-42,-1],[-57,-20],[-47,-29],[-63,-69],[-25,24],[-30,63]],[[1539,7418],[42,14],[38,29],[48,15],[70,72],[-75,132]],[[1662,7680],[87,37],[89,62],[62,12],[70,-16]],[[1970,7775],[-51,-34],[33,5],[24,-22],[45,-9],[28,15],[101,3],[72,11],[13,-11],[-21,-66],[45,0],[29,23],[53,-39],[68,-23],[0,36],[60,-27],[22,13],[22,-27],[-7,-43],[19,-7],[-20,-31],[16,-29],[-15,-22],[33,-23],[13,-40],[35,-1],[-13,31],[48,9],[44,31],[0,-21]],[[6784,2005],[14,32],[40,29],[-9,21],[22,28],[21,-1],[47,45],[37,2],[35,46]],[[7479,2283],[54,-68],[-67,-15],[28,-50],[-7,-24],[72,-78],[3,-26],[53,-36],[63,-14],[-17,-13]],[[7661,1959],[-61,-8]
 ,[-5,-21],[-63,-94],[-7,-62],[18,-39]],[[7543,1735],[-24,19],[-84,-14],[-91,-35],[-106,-22]],[[1810,3492],[-17,12],[-95,21],[-68,-2],[-4,-30],[-34,-21],[-4,-47],[22,-33],[44,-12],[22,-113],[17,-23],[-41,7],[-60,-12]],[[1592,3239],[-19,26],[-13,57],[-51,31],[22,29],[-37,4],[-79,26],[-31,40],[-27,-19],[9,-29],[-39,19],[-3,25],[-48,-3],[-24,13],[-26,-30],[-47,4],[-52,-23],[-27,-28],[-68,8],[-59,-35],[16,-56],[-13,-21]],[[976,3277],[-27,-6],[-18,25],[-26,1],[-24,36],[-50,26],[-11,45],[-45,48],[25,41],[4,43],[37,41],[16,35],[-29,6],[-11,51],[5,31],[-14,52],[-21,28],[21,34],[29,14]],[[837,3828],[55,-22],[64,28],[24,-5],[63,19],[11,-14],[55,26],[40,-33],[44,25],[39,5],[42,21]],[[1274,3878],[11,-44],[39,-6],[51,15],[31,-23],[37,0],[24,-27],[42,7],[17,-21],[46,-3],[-10,-49],[63,-9],[24,38],[40,1],[52,-57],[-6,-22],[36,-33],[6,-36],[37,-10],[13,24],[71,-26]],[[1689,5572],[-5,31],[-21,13]],[[1663,5616],[-5,30],[18,10],[4,47],[-10,21],[61,22],[13,34],[2,59],[57,3],[-22,70],[7,32],[24,36],[51,10
 1],[4,55]],[[1867,6136],[0,32]],[[1867,6168],[31,-9],[22,-54],[44,0],[-13,37],[41,12],[48,42],[20,-51],[33,0],[24,-40],[20,14],[52,-3],[7,-57]],[[2196,6059],[31,-53],[40,11]],[[2267,6017],[-36,-80],[64,-22],[16,-47],[35,-11],[17,-27],[-37,1],[34,-22],[0,-23],[38,-72],[50,9],[35,-38],[1,-20],[74,38],[-19,49],[76,44],[29,-127]],[[4466,225],[-75,2],[-61,17],[-7,28],[18,38],[31,25],[16,35],[-28,16],[-15,32],[-79,102],[2,51],[-56,37],[14,29],[-34,53],[-16,44]],[[4176,734],[49,39],[39,47],[-11,44],[33,14],[74,5],[7,40],[-18,13],[43,29],[-13,27]],[[4922,521],[-73,-42],[-1,-33],[-30,-30],[-36,22],[-86,-34],[-50,-71],[-112,-23],[-1,-15],[-40,-32],[-27,-38]],[[2975,8079],[-28,24],[-29,-19]],[[2918,8084],[-57,59],[-86,45],[-34,45],[-16,-5],[-13,29],[-24,-7],[-35,48],[-60,126],[-35,48],[12,94],[-20,6],[41,96],[-50,28],[-24,38],[-7,51],[-41,24]],[[2469,8809],[-14,32],[80,11],[78,-48],[95,5],[81,-19],[33,2],[7,-49],[-9,-38],[67,15],[29,-36],[46,7],[79,-12],[82,-5],[33,-62],[23,-6],[27,-76],[101,1
 0],[31,-88],[50,-3],[-26,-27],[-42,-1],[-57,-19],[2,-70],[-39,-61],[-35,-29],[22,-35],[-42,-5],[-70,-43],[0,-43],[-47,-32],[-37,-13],[-42,8]],[[1441,1956],[-26,24],[4,22],[-61,46],[-53,63],[41,45],[-26,16],[-22,40],[-50,6],[-5,-34],[-42,31],[-50,-24]],[[1151,2191],[-4,3]],[[1147,2194],[-36,66],[11,15],[-48,89],[-15,-6],[-22,42],[2,49],[-48,-23],[-31,37]],[[960,2463],[39,3],[49,37],[-5,15],[27,24],[118,55]],[[1188,2597],[20,-31],[-13,-7],[44,-23],[31,5],[19,-38],[55,1],[11,-41],[31,9],[40,-63],[39,5],[9,-14],[39,9],[22,-28],[69,40],[41,10],[31,-21],[17,50],[-6,20],[55,-24],[17,25],[27,-32],[17,19],[35,-12],[75,12],[33,-5]],[[1957,2385],[-31,-27],[-37,-4],[-26,-56],[23,-11],[49,-2],[8,-32],[-50,-4],[5,-33],[-12,-29],[-6,-81],[24,1],[31,-77],[20,-18],[-31,-27],[18,-27],[-13,-30],[-43,-22]],[[3880,2196],[-140,164]],[[3740,2360],[-38,50]],[[3702,2410],[173,90],[45,9],[41,-9],[7,16],[52,12],[-5,14],[39,31],[-40,27],[-29,38],[18,44],[18,-4],[48,27],[25,26],[67,9],[72,-38],[67,40],[63,-13],
 [39,23],[-2,24]],[[7690,5137],[-36,-6],[5,-18],[-66,-15],[-23,-17],[-8,-38],[35,-10],[-20,-32],[-67,-41],[-1,-25],[83,-15],[-16,-30],[-51,-15],[-38,-58],[44,-48],[44,6],[10,-28],[-21,-4],[26,-24],[57,14],[20,-10],[-2,-34],[31,14],[96,-9],[16,9],[15,-33],[-11,-39],[13,-15],[45,57],[26,-10],[17,-90],[-43,-66]],[[5338,8193],[-79,6],[-66,-21],[-68,-4],[-43,10],[-63,36],[-41,42],[-38,60],[-41,35],[-45,18],[-41,2],[-53,-22],[-22,-30],[-15,-44],[-26,-40],[-64,-63],[-29,-63],[0,-82],[-36,-15],[-137,53]],[[4431,8071],[-42,14],[-17,36],[-73,-5],[-33,-13],[-39,28],[-37,-3],[-9,29],[-33,32],[-49,12]],[[4843,8786],[44,-3],[19,13],[122,7],[29,-22],[16,18],[43,-17],[19,-25],[48,-11]],[[4791,6183],[-21,-28],[-44,-19],[-3,-30],[-60,4],[0,-50],[24,2],[-6,-24],[27,-15],[-39,-25],[5,-26],[33,-27],[-10,-36],[22,-17],[-9,-29],[-24,-1],[-11,-36]],[[4675,5826],[-18,18],[-57,-34],[-62,40],[-37,-21],[-40,21],[3,33],[-15,33],[-38,15],[-20,36],[-98,-41],[-31,-1],[-25,-47]],[[4006,6007],[14,38],[-85,80],[26,33]
 ,[-103,54]],[[4310,6471],[26,-7],[0,41],[27,16],[53,-17],[8,-18],[-14,-88],[26,-19],[56,-3],[13,9],[50,-9],[34,-24],[46,6],[12,25],[22,-2],[45,-29],[-1,-31],[41,-3]],[[8527,2124],[-51,10],[-88,-17],[-58,-20],[-18,18],[-41,-5],[-21,-19],[-87,13],[-55,-24],[-41,-36],[-57,-12],[-53,6],[-5,-30],[16,-26],[-52,-13],[-3,-40],[-28,-1],[-57,26],[-54,-17],[-8,12],[-50,-1],[-55,11]],[[4375,6867],[-34,16],[-53,4],[29,35],[-16,35],[-40,19],[-66,61],[-17,-6],[-24,26],[-59,-34],[-81,-6]],[[4014,7017],[-50,26],[-15,35],[-100,20],[-37,-1],[10,24],[-56,84],[22,9],[-18,27]],[[3770,7241],[88,5],[86,-14],[18,54],[58,84],[-30,11],[9,43],[-12,0],[16,49],[-27,21],[48,29],[56,82]],[[4080,7605],[72,-7],[52,-18],[96,0]],[[4300,7580],[41,-15],[-1,-24],[40,-7],[8,-38],[23,-15],[43,0],[5,22],[70,-23],[8,8],[43,-34]],[[3364,7740],[31,22],[77,13],[17,44],[-28,54],[-21,70],[14,71],[53,62],[65,33],[115,32]],[[4431,8071],[11,-52],[31,-5],[-15,-17]],[[4458,7997],[-54,-16],[-122,-17],[-33,16],[-3,-42],[-24,1],[-10,-38]
 ,[-48,0],[3,-42],[-29,-2],[-25,-31],[21,-5],[-8,-53],[-24,-25],[24,-17],[-6,-20],[-73,-3],[2,-59],[-37,-14]],[[4012,7630],[-53,1],[-119,73],[-74,-11],[-55,24],[-79,0],[-193,23],[-55,-10],[-20,10]],[[8445,1792],[-111,-13],[-74,-5],[6,-81],[-47,-14],[3,-20],[-68,-36],[-5,16],[-88,-31],[-56,30],[-32,-11],[-13,29],[-31,18],[5,45],[-14,27],[-115,-41],[0,-31],[-101,-2],[-46,17],[-14,28],[-42,12],[-48,-4],[-11,10]],[[4780,5160],[-50,3],[-35,26],[-64,17],[-51,65],[-28,12],[-28,37],[-47,23],[-1,43],[-109,103],[-26,-10],[-53,73],[-20,-9],[-16,35]],[[4675,5826],[22,-41],[68,-22],[84,-54],[38,-51],[47,20],[33,-36],[35,-10]],[[7432,6748],[-24,16],[53,12],[-11,39],[22,-3],[-17,39],[-29,14],[-61,-18],[-7,14],[-92,-11],[1,-18],[-69,-16],[-4,25],[-73,-30],[-39,40],[-33,7],[21,49],[15,-4],[2,36],[37,5],[-15,14],[41,14],[-10,51],[23,10],[-73,54],[63,48],[-37,-8],[-23,42],[59,28],[-21,36],[29,18],[52,-13],[33,15],[21,-32],[62,48],[63,61],[-29,14],[-8,48]],[[7354,7392],[89,2]],[[7443,7394],[18,-60],[28,
 -20],[-8,-26],[31,-43],[7,-40],[29,0],[37,-50],[23,-15],[-10,-40],[30,-6],[-2,-79],[103,-25],[65,-2],[68,8],[-1,-20],[206,3],[83,-18]],[[8150,6961],[-21,-19],[-13,-38],[-31,-34],[-26,-12],[-40,45],[-38,10],[-52,-8],[3,-14],[-190,-13],[-10,-51],[21,-34],[-28,-29],[33,-25],[50,-10],[23,-24],[-21,-6],[-21,-34],[5,-31],[-30,-16]],[[7435,6607],[-35,22],[26,39],[4,32],[-18,8],[43,19],[-23,21]],[[4176,734],[-29,24],[-9,27],[-32,12],[-31,31],[-46,15],[-42,-40],[-52,-30],[-27,4],[-28,40],[11,34],[-13,21],[13,46],[-48,49],[-49,-8],[-56,18],[-22,-22],[-51,-19],[-18,12],[-19,59],[37,52],[-11,18],[-51,-10],[-37,22]],[[1301,7038],[-27,13],[-66,-31],[-101,94],[-35,11],[-68,62],[-29,-13],[-44,7]],[[931,7181],[-37,43],[29,39],[-40,35],[-2,32],[31,64],[20,22],[2,42],[-15,4],[28,80],[75,24],[33,27],[43,-16],[71,-7],[85,13],[172,67],[116,35],[84,-9],[36,4]],[[4675,8989],[25,12],[-22,32],[52,35],[23,-41],[51,25],[-30,36],[15,21],[70,27],[-24,12],[-3,47],[62,4],[-5,41],[-21,11],[-14,37],[14,11],[-1,55],[
 32,94],[-19,35]],[[4880,9483],[115,-12]],[[4995,9471],[4,-61],[31,-31],[-5,-24],[18,-28],[33,-17],[35,-38],[1,-33],[32,4],[25,-43],[-3,-24],[84,-35],[81,-5],[31,-13],[10,-23],[44,-31],[83,-39],[29,29],[53,18],[10,-24],[23,1],[16,-25]],[[5630,9029],[24,-53],[-45,-3],[40,-54],[-48,7],[4,-49],[-44,9]],[[6748,7033],[114,30],[8,23],[83,87],[30,23],[17,-18],[53,20],[57,8],[-53,41],[128,126]],[[7185,7373],[24,-8],[11,32],[72,9],[62,-14]],[[7432,6748],[-41,-10],[-17,20],[-25,-26],[-19,16],[-16,-20],[-125,-50],[13,-20],[-70,-11],[-84,-22],[-8,32],[-101,-19]],[[6756,8441],[8,19],[-31,13],[41,37],[11,30],[-70,44],[22,30],[-59,46],[29,42],[-52,0],[-19,12],[40,57],[-54,20]],[[6622,8791],[7,21],[75,4],[11,11],[61,0],[3,66],[34,0],[64,61],[24,2],[3,43],[34,36],[-6,25],[19,18],[59,8],[54,36],[32,5],[-13,40],[51,28],[29,0]],[[7163,9195],[98,-10],[59,-20],[32,-24],[-10,-38],[32,-67],[-17,-57],[-21,-7],[-8,-68],[-28,-15],[-43,-48],[2,-24],[-39,10],[-3,-30],[-28,8],[-42,-24],[5,-62],[-16,5],[-8,-33],[3
 2,-5],[-11,-53],[-22,-11],[14,-30],[-29,-41],[-29,-2],[-3,-19],[-54,-7],[-15,-38],[0,-67],[-14,-25],[0,-41],[-21,-31],[20,-34],[-100,26],[-45,-3],[-77,17],[-11,13],[8,50],[24,30],[-8,19],[-31,2]],[[1867,6136],[-82,0],[-89,-14],[-66,6],[-16,-24],[-54,18],[-53,-44],[-92,-46]],[[1415,6032],[-18,23],[-103,-13],[-62,-33],[-24,1],[-143,-18],[-15,3],[-204,-5]],[[846,5990],[42,67]],[[888,6057],[76,17],[38,42],[28,2],[44,72],[35,14],[5,37],[37,54],[35,3],[7,28],[-53,-4],[-15,44],[32,8],[-23,28],[2,30],[-20,34],[-29,13],[-30,34],[-64,11],[-9,31],[37,47],[-6,52],[9,13]],[[1024,6667],[17,-28],[42,-30],[-11,-22],[63,-38],[23,27],[46,5],[35,-17],[18,21],[45,-22],[18,46],[20,-15],[62,17],[19,-21],[0,-29],[26,-16],[79,8],[-1,-16]],[[1525,6537],[-5,-37],[92,-1],[-22,-45],[20,-33],[26,17],[53,-12],[11,-36],[-18,-14],[29,-31],[16,-62],[-9,-13],[-53,-20],[39,-29],[95,-11],[99,0]],[[1898,6210],[-31,-42]],[[1114,4382],[-38,6],[-131,-48],[-18,18],[-77,24],[-35,-20],[51,-43],[-11,-36],[-27,-24],[25,-54],[-
 29,-23],[-4,-165],[-33,12],[-79,-18],[-9,-34]],[[699,3977],[-53,43],[4,37],[-28,34],[-2,174],[-13,22],[26,4],[9,43],[-25,-6],[-15,27],[-30,16],[-36,-24],[-28,20],[-68,-6],[-60,79],[-57,7],[-55,-20],[-63,4],[-40,-8],[-50,40],[-13,25],[54,4],[25,-33],[26,48],[112,28],[50,-43],[42,21],[42,50],[-53,47],[0,43],[62,66],[-57,31],[30,35],[60,-31],[61,64],[13,32],[-9,29],[-52,55],[-14,37]],[[494,4971],[126,-41],[79,-43],[28,-32]],[[727,4855],[123,-206]],[[850,4649],[5,-35],[-14,-31]],[[841,4583],[-22,-30],[-6,-36],[29,-36],[56,-20],[44,-2],[31,15],[51,0],[26,13],[184,10]],[[1234,4497],[-39,-34],[15,-40],[-44,-9],[0,-15],[-39,0],[-13,-17]],[[3259,3149],[-104,221]],[[4297,3555],[-24,-36],[-13,-64],[5,-28],[-25,7],[-26,-46],[-42,10],[-12,23],[-74,-29],[-5,-27]],[[4081,3365],[-87,-61],[2,-8],[-63,-29]],[[8713,4575],[-9,-19],[-50,-37],[-36,24],[-20,-29],[-58,29],[14,19],[-76,1],[-36,-32],[-10,41],[-27,-47],[6,-31],[-27,-13],[9,-19],[-6,-45],[-15,-13]],[[8670,4593],[43,-18]],[[1024,6667],[-66,88]]
 ,[[958,6755],[-22,38],[-55,25],[-33,4],[-35,29],[-48,-19],[-24,25],[-64,10],[6,42],[18,33]],[[701,6942],[29,20],[-33,58],[-18,12],[7,32],[22,-24],[41,22],[-11,42],[29,-4],[7,31],[57,53],[100,-3]],[[1636,6612],[-59,-60],[-17,15],[-35,-30]],[[1970,7775],[55,16]],[[2025,7791],[7,-22],[89,1],[128,20],[13,45],[-39,13]],[[2223,7848],[8,19],[55,-14],[15,10],[59,-20],[18,13],[75,-6],[57,46],[-9,74],[-63,51],[22,65]],[[2460,8086],[57,13],[32,-8],[86,2],[29,-39],[66,-55],[46,-20],[72,49],[31,38],[39,18]],[[2975,8079],[-96,-45],[-72,-57],[-26,-6],[27,-68],[-54,-24],[35,-25],[2,-26],[57,-14],[7,-19],[-38,6],[-36,-52],[70,-15],[70,10],[39,-14],[-4,-53],[-31,-3],[-40,-24],[75,-57],[55,-90],[31,-121],[42,-42]],[[3088,7340],[1,-50]],[[3089,7290],[-52,-2]],[[4303,5048],[-4,38],[-20,0],[-8,45],[-49,-7],[-30,24],[-55,-36],[-29,13],[-105,12],[-45,43],[-57,38]],[[4783,4876],[-53,27],[-40,-13],[-91,64],[-62,13],[-43,21],[-70,6],[5,12],[-49,-8],[-13,68],[-64,-18]],[[7116,6117],[81,15],[-4,13],[53,32],[10,
 -20],[39,31]],[[7295,6188],[65,-27],[0,-10],[108,-106],[45,19],[14,-25],[110,-41],[39,-30],[-34,-23],[34,-22],[-8,-31],[18,-18],[15,-48],[52,30],[98,-32],[8,-24],[24,3],[31,-43],[-5,-65],[70,-17],[-2,-34]],[[2460,8086],[-29,49],[-84,26],[-54,9],[-38,-6],[-57,7],[-28,50],[-26,17],[-12,71],[-44,-2],[-23,-34],[-31,-3],[-57,24]],[[1977,8294],[-83,86],[-29,22]],[[1865,8402],[11,30],[-9,24],[19,31],[64,-27],[20,19],[39,-6],[22,13],[84,-8],[147,52],[81,6],[-2,84],[-13,34],[44,-9],[79,1],[-3,22],[-35,7],[11,35],[27,6],[10,26],[-19,30],[27,37]],[[3847,8430],[26,63],[-4,43],[-94,144],[-36,109],[-10,122],[-22,77],[6,39],[25,21],[67,33],[16,22],[18,69],[23,27],[31,9],[48,-19],[51,-59],[13,-57],[-9,-31],[-37,-30],[-33,-9],[-64,0],[-35,-36],[14,-25],[50,-24],[61,3],[93,15],[54,19],[44,32],[29,35],[53,112]],[[4225,9134],[50,-20],[77,-9]],[[4352,9105],[28,-59]],[[7295,6188],[12,78],[58,17],[59,63],[-13,19],[-51,14],[18,19],[96,31]],[[8327,5856],[21,-9],[89,-6],[23,-65],[29,-14],[-31,-14],[34,-11]],
 [[6238,2041],[-67,54],[-15,29],[-29,4],[25,20],[-9,25],[20,11],[-45,40],[-17,-10],[-56,30],[8,9],[-50,39],[68,5],[31,49],[-25,20]],[[8713,4575],[17,-7],[67,9],[36,-18],[114,-16],[64,-36],[43,-35],[-3,-17],[74,-59],[57,-18],[45,-33],[52,-25],[34,-32],[1,-33],[-53,-74],[56,-74]],[[2383,2093],[55,16],[35,36],[4,19],[-26,21],[33,12],[-2,28],[17,54],[-15,-2],[-58,56]],[[2466,2359],[29,5],[31,-22],[15,31],[88,48],[74,46],[27,61],[-5,40],[16,18],[59,25]],[[2800,2611],[57,-32],[39,-42],[91,-57]],[[2987,2480],[39,-74],[9,-65],[-40,-61],[77,-54],[44,-18],[18,-27],[-25,-73],[18,-13]],[[3612,6881],[-59,0],[-44,34],[15,15],[0,76],[-31,31],[-94,71],[-31,46],[-10,34],[-130,-18],[-4,64],[-53,2],[-82,54]],[[3088,7340],[48,-14],[30,13],[36,44],[94,134]],[[3296,7517],[68,-18],[48,-4],[55,-37],[2,-55],[-24,-19],[26,-7],[70,12],[69,-2],[29,-30],[89,-52],[7,-27],[35,-37]],[[4014,7017],[-11,-41],[-16,-14],[-47,-90],[54,-5],[2,-15],[-55,-20],[-22,-44]],[[2267,6017],[15,20],[41,-6],[10,45],[43,-13],[9,39],[
 55,57],[52,21],[42,32],[11,-16],[42,21],[-33,43]],[[2554,6260],[61,36]],[[2615,6296],[35,-20],[55,-12],[-11,-87],[109,-71],[76,6]],[[2879,6112],[30,-42],[-11,-25],[40,-59],[-6,-40],[32,0],[25,-33],[-49,-38],[130,-109]],[[8150,6961],[102,-43],[-9,11],[56,35],[45,-29],[57,-19],[35,1],[75,-21],[26,-26],[-19,-59],[-27,-34],[29,-29],[-10,-70],[15,-60],[5,-55],[-19,-40],[14,-13],[-31,-42]],[[2879,6112],[-48,120],[24,25],[18,-25],[41,33],[64,34],[15,16],[44,-23],[38,14],[120,13],[55,32],[9,46],[44,-12],[5,21],[-27,10],[-26,62],[-31,35],[13,13],[81,-21],[13,12],[-35,39]],[[3417,6193],[-25,-52],[29,-22],[7,-30],[43,-73],[33,-4],[7,-34]],[[5026,1687],[132,157],[17,30],[64,15],[37,39],[31,70],[79,27],[25,27],[14,61]],[[5425,2113],[22,14]],[[5447,2127],[31,6],[29,-32],[55,19],[64,-37],[57,-80],[32,-19]],[[6150,7278],[-36,-32],[-57,-33],[-49,3],[-3,30],[-54,18],[-88,8]],[[5863,7272],[-4,80],[-61,-38],[-54,7],[-29,36],[24,16],[-50,73],[-15,-22],[-23,16],[-19,48],[-31,-19],[-19,21],[-34,-9],[-23,1
 5]],[[5525,7496],[-20,-1]],[[5505,7495],[-5,61],[-61,-9],[-62,-21],[-20,18]],[[5357,7544],[11,37],[31,7],[-29,42]],[[5370,7630],[7,24],[52,66]],[[5429,7720],[40,3],[9,54],[47,-8],[6,62],[-11,50],[55,-11],[39,-56],[35,5],[4,17],[102,-79],[108,-28],[62,64]],[[5925,7793],[89,-53],[35,-36]],[[6049,7704],[50,-37],[5,-111],[-29,-6],[31,-14],[44,-39],[-44,-27]],[[6106,7470],[-40,-33],[9,-77],[18,-29],[34,22],[23,-75]],[[4322,4651],[-7,50],[-78,131],[3,65],[-22,-1],[-11,43],[26,20],[-11,27],[29,5],[-7,35],[59,22]],[[2169,927],[-8,21],[-51,63],[-2,57]],[[2077,1426],[84,-24],[20,20],[21,-27],[36,-12],[70,16],[44,-32],[33,-46],[125,-46],[31,-1],[-29,64],[7,22],[48,-9],[20,28],[116,18],[3,39],[-20,0]],[[3028,1146],[-67,19],[-40,-25],[-5,-22],[-61,28],[-9,-72],[-13,-13],[-36,18],[-109,6],[-81,10],[-68,-3],[4,-54],[-9,-21],[-29,5],[-71,-36],[-40,-30],[-33,-9],[-50,10],[-78,-9],[-64,-21]],[[2360,1874],[-24,-2]],[[2987,2480],[61,47],[36,3],[45,77],[78,20]],[[3207,2627],[1,0]],[[3208,2627],[79,23],[
 195,78]],[[3516,2671],[186,-261]],[[3740,2360],[-187,-93],[-51,-1],[-6,-14]],[[3496,2252],[-11,-35],[-31,11],[-66,-8],[-22,-15],[13,-19],[-39,-11],[-75,-37],[-85,-31],[5,-12]],[[2877,3167],[-27,-101],[33,-135],[16,-16],[-7,-39],[24,-28],[24,0],[9,-26],[-20,-9],[18,-27]],[[2947,2786],[11,-44],[-57,-47],[-44,-8],[-16,-37],[-41,-39]],[[6694,7633],[1,16],[-60,7],[-13,-37],[-153,23]],[[6469,7642],[-1,46],[-47,22],[-4,67],[-43,14],[-4,28],[16,45],[23,21],[-31,120],[2,40],[-33,21],[8,57]],[[6355,8123],[88,-12],[611,-160],[-8,-20],[-48,13],[-20,-43],[79,-18],[-21,-83],[54,-13],[-10,-52],[44,-11]],[[7124,7724],[-18,-10],[-13,-39],[-29,-19],[-34,-45],[-36,-17]],[[6994,7594],[-55,1],[-18,-11],[-110,56],[-34,4],[-8,-23],[-75,12]],[[1463,4088],[-29,-28],[3,-36],[-45,-16],[16,-30],[-59,-11],[-7,-18],[-40,-7],[-4,-38],[-24,-26]],[[837,3828],[-20,65],[-63,-3],[-42,8],[-13,79]],[[1114,4382],[-7,-36],[22,-44],[46,18],[13,-36],[35,11],[44,-75],[62,-46],[79,-70],[55,-16]],[[5411,6993],[28,4],[2,78],[11
 9,24],[1,18],[71,4],[53,16],[17,34],[20,-4],[62,37],[46,18],[-7,51],[40,-1]],[[6150,7278],[31,-4],[55,21],[28,-12]],[[964,1529],[-26,63],[-37,23],[-40,47],[-72,63],[-9,34],[26,53],[2,36],[-48,49],[-15,43],[13,45]],[[758,1985],[62,0],[41,27],[44,6],[86,22],[35,51],[44,17],[11,22],[15,-29],[66,-23],[24,40],[-4,29],[-35,47]],[[1301,1604],[-102,-27],[-33,9],[-105,-12],[-51,21],[-41,-14],[11,-44],[-16,-8]],[[2040,2540],[-17,27],[-44,-8],[-9,20],[-26,-19],[-36,33],[-114,64],[-31,27],[-168,78],[-47,58],[-22,-26],[-24,15],[-37,46],[-31,17],[-48,-8],[-9,18]],[[1377,2882],[-13,37],[83,41],[13,30],[40,35],[-9,16],[20,24],[-22,9],[61,50],[-15,8],[55,94],[-15,13]],[[1575,3239],[17,0]],[[1592,3239],[22,-10],[25,-52],[28,5],[7,-20],[48,7],[35,28],[0,-84],[125,0],[61,-7],[-1,-39],[17,-15],[57,11],[7,-31],[24,6]],[[4543,4143],[37,-19],[250,-197]],[[4830,3927],[72,-139]],[[5230,455],[5,-39],[-16,-32],[40,-89],[7,-30],[44,-37],[62,-26],[26,-19],[14,-55],[2,-49],[-82,-17],[-29,2],[-77,-14],[-64,-25],[-
 20,-25],[-147,2],[-70,21],[-16,57],[7,29],[-5,91],[-39,5],[-48,-13],[-40,21],[-109,-24],[-50,-16],[-53,11],[2,33],[-108,8]],[[6067,8769],[8,64],[36,29],[-49,41],[47,50],[-5,23]],[[6104,8976],[15,41],[61,9],[0,21],[48,-6],[7,20],[45,10],[21,37],[41,15],[36,47]],[[6378,9170],[8,-41],[28,-31],[59,19],[5,-46],[37,0],[24,-212],[37,-75],[46,7]],[[6756,8441],[-18,0],[-115,57],[-51,2],[-28,37],[-34,-8],[-44,12],[-46,26],[-73,28],[-59,5],[-33,-34],[-40,35],[-47,22],[-20,29]],[[6378,9170],[62,27],[66,-7],[25,-19],[26,2],[36,41],[60,29],[55,50],[-2,49],[11,7],[-2,49],[30,87],[73,-12],[136,13],[55,-9],[-17,-16],[-10,-61],[23,-4],[-8,-103],[14,-3],[-3,-47],[80,-10],[75,-38]],[[477,5376],[-42,99],[-26,26],[-39,-3],[-22,57],[-97,-2],[-11,35],[-42,42],[-2,36],[-61,17],[2,25],[31,10],[-20,24],[22,20],[72,-3],[44,18],[-28,69],[8,105],[-15,18]],[[251,5969],[79,4]],[[330,5973],[239,6]],[[569,5979],[-28,-51],[66,-14],[-34,-71],[-35,4],[-10,-48],[-18,-27],[66,-6],[9,-48],[76,-33],[51,7],[-33,-33],[13,-10
 ],[60,11],[11,-35],[65,19],[33,-18],[20,-31]],[[881,5595],[35,-43],[60,-16]],[[976,5536],[4,-10],[-82,10],[-17,-19],[55,-7],[-4,-35],[-27,-9],[55,-4],[7,-31],[22,-2],[-36,-29]],[[953,5400],[-243,29],[-2,-19],[-75,7],[-77,-5],[-35,-14]],[[521,5398],[-44,-22]],[[6049,7704],[13,24],[-10,23],[50,18],[38,-33],[34,45],[32,-20],[9,-47],[22,-13],[54,10],[-1,-27],[52,-8],[23,-29],[104,-5]],[[6694,7633],[-10,-41],[-39,9],[-9,-40],[-20,4],[15,-48],[48,0],[4,-53],[60,-94],[-79,-10],[-1,-29],[51,11],[24,-78],[-36,-10],[21,-38],[-28,-11],[-53,27],[-49,-17]],[[3296,7517],[25,67],[10,88],[33,68]],[[4012,7630],[68,-25]],[[251,5969],[-158,-13],[-20,92],[9,91],[-13,15],[-22,84],[-35,28],[59,39],[15,31],[-68,-4],[-18,29],[16,10],[2,52],[42,38],[-7,42],[33,14],[44,1],[18,23],[68,-5],[33,-14],[17,23],[37,3],[27,24],[24,44],[0,74],[13,93],[33,52],[49,23],[52,-28],[35,-41]],[[536,6789],[-13,-31],[13,-80],[-31,-69],[-10,-75],[13,-2],[2,-54],[15,-13],[-13,-30],[-61,13]],[[451,6448],[26,-19],[-26,-59],[-9,1],
 [-24,-69],[-55,-10],[42,-40],[-75,-28],[-4,-35],[21,-3],[25,-41],[-5,-12],[-77,-57],[5,-51],[33,1],[2,-53]],[[4997,7926],[-21,16],[-42,-22],[-13,24],[-33,0],[-29,43],[-61,8],[-31,-28],[-37,13]],[[4730,7980],[-11,24],[-51,-21],[-26,14],[-65,-20]],[[4577,7977],[-53,7],[-58,-14],[-8,27]],[[5372,8175],[-19,-26],[26,-14],[-8,-25],[70,-35],[22,-21],[42,6],[46,-7],[52,-27],[-48,-40],[-8,-36],[-25,-6],[-35,-40],[-48,-1],[-53,39],[0,39],[-57,52],[-16,-20],[-26,20],[-50,7],[-19,14],[-69,-24],[-11,-51],[-43,-4],[9,-20]],[[5104,7955],[-5,-43],[-42,-3],[6,20],[-66,-3]],[[1234,4497],[29,36],[70,43],[47,45],[23,-16],[80,3],[30,15]],[[1513,4623],[57,-46],[40,-22],[81,-15],[79,-23]],[[5429,7720],[-17,21],[-27,-1],[-9,23],[17,24],[-48,1],[-22,-27],[-35,-3],[-13,-20],[-57,-5],[-30,11],[-32,75],[-36,-3],[-12,38],[-53,-13],[-22,45],[-36,40]],[[5790,8177],[3,-38],[-12,-53],[-45,1],[-1,-34],[-57,-25],[-15,-21]],[[5663,8007],[35,-32],[35,-9],[2,-25],[22,-4],[51,-37],[-9,-10],[48,-16],[22,-37],[56,-44]],[[1
 188,2597],[-9,9],[34,76],[-25,37],[44,23],[0,58],[55,44],[14,28],[76,10]],[[1489,1155],[-6,27],[22,5],[-22,32],[-16,49],[-39,42],[-38,27],[29,30],[-44,13],[-33,28],[18,16],[-27,16],[13,23],[-2,68]],[[2169,927],[-59,-34],[-87,-10],[-59,26],[-47,-28],[-10,21],[19,18],[-22,21],[-33,4],[-6,27],[-29,-9],[-20,24],[-89,-13],[-14,27],[-62,65],[-59,-15],[-15,34],[-66,8],[-24,38],[2,24]],[[6137,8110],[129,13],[89,0]],[[3441,4853],[0,49],[50,5],[27,19],[94,-16],[66,23],[-26,39],[68,54],[35,-7],[4,15],[-44,10],[41,90],[-17,19]],[[3792,5156],[86,-17],[11,-29],[-15,-52],[32,-37],[7,-37],[35,-4]],[[3948,4980],[-42,-45],[61,-43],[35,-39],[0,-35],[36,14],[-2,-38],[41,-46],[22,-44],[17,9],[27,-55],[27,-6],[-9,-27]],[[4880,9483],[-166,9],[-94,-19],[-2,-42],[-53,-26],[-28,10],[-98,-37],[7,-13],[-63,26],[-40,-15],[2,-20],[-37,-6]],[[4308,9350],[-101,36],[-33,75],[-45,76],[-3,45],[-44,-12],[4,-19],[-48,-3],[-4,22],[-77,26],[-3,-57],[-43,-23],[0,-37],[30,-59],[64,-42]],[[4005,9378],[-28,-14],[-64,48],[-31
 ,57],[-13,49],[29,66],[26,-11],[17,71],[44,53],[31,-11],[35,-46],[42,-6],[55,22]],[[4148,9656],[38,-24],[93,38],[27,-13],[47,32],[18,-33],[58,13],[46,-13],[44,7],[88,-16],[0,23],[111,23]],[[4718,9693],[62,18],[63,-22]],[[4843,9689],[19,-53],[120,-55],[13,-63],[18,3],[0,-51],[-18,1]],[[2139,6725],[-35,112],[-14,20]],[[2565,6565],[-31,38],[-50,-20],[-18,13],[-57,2],[-53,-11],[-24,35],[4,26],[24,12],[-19,19],[-27,-12],[-28,35],[-57,-30],[-41,47],[-49,6]],[[5447,2127],[-30,45]],[[2139,6725],[-31,-42],[31,-12],[-64,-64],[20,-16],[1,-37],[-22,-41],[-122,-48],[27,-30],[65,-141]],[[2044,6294],[-81,-24],[-20,-35],[-45,-25]],[[6994,7594],[47,-42],[13,-39],[55,-45],[5,-22],[40,-16],[12,-52],[19,-5]],[[5196,7352],[5,18],[33,1],[-19,37],[41,54],[40,0],[0,21],[-37,59],[34,19],[40,3],[24,-20]],[[1663,5616],[-47,-6],[11,80],[-52,0],[-44,-34],[-42,34],[2,33],[-92,-19],[-6,15],[-47,-7],[-4,15],[-77,-4],[-26,-17],[-139,35]],[[1100,5741],[-10,26],[59,28],[42,48],[19,45],[60,20],[8,-57],[11,-9],[25,71],
 [26,-2],[-13,44],[35,-10],[35,9],[6,74],[12,4]],[[1329,5355],[-5,11],[-182,12],[-147,4]],[[995,5382],[2,14],[-59,-7],[15,11]],[[976,5536],[24,125],[2,97]],[[1002,5758],[43,-21],[55,4]],[[741,5984],[-130,0],[-42,-5]],[[536,6789],[20,10]],[[556,6799],[28,-1],[44,-29],[1,-62],[26,-93],[42,-52],[0,-44],[-49,-85],[40,-12],[-22,-78],[20,-8],[-5,-31],[51,-17],[-13,-27],[-49,-6],[33,-78],[-2,-31],[-44,-93],[64,8],[-3,-32],[51,0],[0,-40]],[[769,5988],[-28,-4]],[[4352,9105],[23,25],[-8,60],[40,93],[-27,14],[18,31],[-90,22]],[[4300,7580],[0,31],[70,20],[-27,16],[35,4],[-29,46],[33,6],[-3,27],[28,78],[-1,51],[45,-2],[50,15],[-3,61],[80,18],[-1,26]],[[4730,7980],[-20,-16],[15,-60],[-7,-32],[70,-34],[40,-62],[-27,-42],[40,-34],[-35,-50],[-23,5],[34,-58],[23,4],[35,-59]],[[4875,7542],[0,-15]],[[850,4649],[95,-8],[28,40],[-64,29],[-2,35],[90,47],[9,47],[37,36],[12,26],[-77,31],[-31,0],[22,38],[-26,19],[8,18]],[[951,5007],[-2,0]],[[949,5007],[2,0]],[[951,5007],[7,43],[28,11],[-22,12],[11,20]],[[975,
 5093],[121,-42],[112,-23],[112,-29],[24,4],[49,-17]],[[1531,4854],[-62,-14],[-39,-69]],[[1430,4771],[-35,-49],[-51,14],[-48,-28],[-29,1],[-20,-35],[-34,-25],[-75,-7],[-26,-53],[-33,-39],[-22,4],[-82,52],[-52,-22],[-13,-23],[-69,22]],[[1575,3239],[-18,-29],[-31,7],[-17,-59],[-101,-26],[-22,-33],[-24,5],[-61,-18],[-31,-27],[-49,31],[-35,5],[-72,-17],[-93,-33],[-43,-6],[-18,35],[-44,15],[22,67],[44,59],[-15,35],[9,27]],[[758,1985],[16,55],[-9,33],[-92,74],[-25,31],[-26,90],[-33,76],[-40,48],[64,17],[73,-55],[107,54],[-7,18],[44,13],[110,13],[20,11]],[[7124,7724],[59,-14],[42,1],[10,33],[39,-10],[12,20],[25,-15],[7,27],[119,-36],[20,44],[119,-39],[-14,-49],[23,-2],[0,-57],[46,19],[42,-4],[-8,-54],[106,9],[3,-53],[-80,-2],[-57,-11],[-27,-15],[-7,-30],[-33,-12],[-89,9],[-47,-5],[3,-24],[-28,-6],[34,-54]],[[4108,6758],[262,-24],[47,-3],[47,26]],[[846,5990],[-77,-2]],[[556,6799],[37,50],[-15,59],[11,10],[77,24],[35,0]],[[958,6755],[-49,17],[-17,-14],[6,-28],[-30,15],[-79,20],[8,-36],[53,-38
 ],[22,-27],[18,-60],[4,-49],[-35,-46],[2,-35],[-59,5],[2,-36],[42,3],[35,-21],[-22,-88],[-18,-45],[-17,6],[-4,-35],[72,-11],[-13,-34],[-26,6],[-7,-42],[42,-10],[-5,-47],[-39,-37],[31,-9],[13,-22]],[[2141,7851],[-9,22],[-88,104],[-23,-8]],[[2021,7969],[-7,36],[-31,-6],[-44,72],[-8,-5],[-40,105],[4,33],[25,36],[57,54]],[[2223,7848],[-82,3]],[[3356,2952],[-157,-51],[-151,-46],[-4,-32],[-23,-24],[-61,-2],[-13,-11]],[[2554,6260],[-41,-18],[-56,57],[-39,59],[-62,-23],[-72,0],[-60,15],[-43,-11],[6,24],[-39,-31],[-80,-23],[-24,-15]],[[2604,6322],[11,-26]],[[1489,1155],[-44,-14],[-43,46],[-34,-25],[-55,-3],[-90,23],[-67,-23],[-64,-10],[-13,46],[-38,7],[-19,56],[-16,146],[-37,45],[37,31],[-42,49]],[[975,5093],[-35,6]],[[940,5099],[27,54],[-38,15],[13,48],[-13,3],[-6,54]],[[923,5273],[24,16],[-20,25],[51,-13],[17,81]],[[5630,9029],[45,-12],[4,15],[50,-1],[17,23],[79,-3],[84,-30],[21,22],[29,-8],[85,22],[-1,-60],[61,-21]],[[4830,3927],[123,64],[-2,24],[34,38],[-71,25],[37,33]],[[741,5984],[65,-
 11],[114,-6],[16,-59],[29,-12],[6,-40],[-46,-58],[55,6],[28,-22],[-6,-24]],[[2021,7969],[-62,-10],[-35,-32],[-88,-14],[-81,1],[-55,-8],[-33,70],[-68,6],[9,81],[-20,43],[-46,44],[-7,92],[108,1],[77,30],[-7,29],[31,1],[22,30],[-22,24],[59,3],[18,-13],[44,55]],[[6484,3218],[-49,4],[-9,-17],[-39,15],[-24,25],[-16,37],[13,29]],[[5370,7630],[-19,6],[-35,46],[-59,-19],[-34,20]],[[5223,7683],[-39,2],[-63,-21],[-8,32],[-65,-18],[-63,21],[-17,-38],[32,-12],[-32,-22],[-21,-35],[-31,14],[-9,-65],[-32,1]],[[1682,4813],[-4,-37],[-20,-9],[-13,-37],[-40,11],[-15,-49],[-20,-28],[3,-37],[-44,13],[-16,-17]],[[940,5099],[-87,28],[-55,-1],[-55,15]],[[743,5141],[-79,63],[-60,-8],[3,22],[-25,11],[-4,50],[42,4],[-5,18]],[[615,5301],[-48,-6],[-9,99],[-37,4]],[[494,4971],[-70,2],[-94,23],[-35,24],[-7,30],[37,29],[60,-19],[31,3],[17,37]],[[433,5100],[42,13],[31,-13],[46,8],[44,-5],[48,10],[26,-11],[33,47],[40,-8]],[[949,5007],[-37,3],[-33,-15],[-44,13],[-18,-53],[-59,16],[11,-26],[-24,-56],[22,-14],[-16,-23],
 [-24,3]],[[4225,9134],[10,63],[-19,35],[-96,80],[-43,29],[-72,37]],[[4718,9693],[-52,6],[-151,69],[-40,27],[-82,28],[-31,21],[23,8],[17,29],[-74,1],[-42,37],[-13,38]],[[4273,9957],[89,18],[52,23],[74,-14],[85,-52],[45,-34],[76,-43],[68,-23],[4,9],[95,-16],[1,-85],[-19,-51]],[[4148,9656],[42,38],[9,48],[-16,36],[-38,125],[15,40],[113,14]],[[433,5100],[16,34],[-22,62],[-27,9],[-15,107],[17,4],[-6,42],[81,18]],[[2025,7791],[79,51],[37,9]]],"transform":{"scale":[0.03848278994323349,-0.04800480048004801],"translate":[287.6052916788042,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/samples/openstreetmap/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOSMModel.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOSMModel.java b/samples/openstreetmap/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOSMModel.java
index ef19b04..6f306ce 100644
--- a/samples/openstreetmap/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOSMModel.java
+++ b/samples/openstreetmap/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOSMModel.java
@@ -41,7 +41,6 @@ import static org.qi4j.api.query.QueryExpressions.and;
 import static org.qi4j.api.query.QueryExpressions.or;
 import static org.qi4j.api.query.QueryExpressions.templateFor;
 import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.*;
-import static org.qi4j.library.spatial.v2.conversions.TConversions.*;
 import static org.qi4j.test.util.Assume.*;
 
 /**


[09/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
index 74cf07a..f442cdf 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
@@ -2,6 +2,7 @@ package org.qi4j.test.indexing;
 
 import org.junit.Ignore;
 import org.junit.Test;
+import org.qi4j.api.association.Association;
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.entity.EntityBuilder;
 import org.qi4j.api.entity.EntityComposite;
@@ -20,15 +21,12 @@ import java.util.Iterator;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assume.assumeTrue;
 import static org.qi4j.api.geometry.TGeometryFactory.*;
 import static org.qi4j.api.geometry.TGeometryFactory.TLinearRing;
 import static org.qi4j.api.query.QueryExpressions.and;
 import static org.qi4j.api.query.QueryExpressions.not;
 import static org.qi4j.api.query.QueryExpressions.templateFor;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_Disjoint;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_GeometryFromText;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_Within;
+import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.*;
 
 /**
  * Created by jj on 21.12.14.
@@ -37,25 +35,36 @@ public abstract class AbstractSpatialRegressionTest
         extends AbstractAnyQueryTest
 {
 
-    protected abstract boolean isExpressionSupported(Query<?> expression);
-
-    public interface SpatialRegressionEntity extends EntityComposite, SpatialRegressionsValues {}
-
-    public interface SpatialRegressionsValues
+    public interface A
     {
         @Optional Property<TPoint>              point();
         @Optional Property<TMultiPoint>         multipoint();
         @Optional Property<TLineString>         line();
+        @Optional Property<TMultiLineString>    multiline();
         @Optional Property<TPolygon>            polygon();
         @Optional Property<TMultiPolygon>       multipolygon();
         @Optional Property<TFeature>            feature();
         @Optional Property<TFeatureCollection>  featurecollection();
+        @Optional Association<Nested>           nested();
+    }
+
+    public interface Nested
+    {
+        @Optional Property<TPoint>              point();
     }
 
-    private TPoint _TPoint1,_TPoint2, _TPoint3;
+    public interface SpatialAEntity extends EntityComposite, A {}
+    public interface SpatialBEntity extends EntityComposite, Nested {}
+
+
+    private TPoint _TPoint1, _TPointNested,_TPoint2, _TPoint3;
     private TMultiPoint _TMultiPoint;
     private TLineString _TLineString;
+    private TMultiLineString _TMultiLineString;
+    private TMultiPolygon _TMultiPolygon;
     private TPolygon    _TPolygon;
+    private TFeature    _TFeature;
+    private TFeatureCollection _TFeatureCollection;
 
 
     public void setUp() throws Exception {
@@ -66,6 +75,9 @@ public abstract class AbstractSpatialRegressionTest
         _TPoint1 = TPoint(module).lat(48.13905780942574).lon(11.57958984375)
                 .geometry();
 
+        _TPointNested = TPoint(module).lat(48.13905780942574).lon(11.57958984375)
+                .geometry();
+
         _TPoint2 = TPoint(module).lat(48.145748).lon(11.567976)
                 .geometry();
 
@@ -74,29 +86,33 @@ public abstract class AbstractSpatialRegressionTest
 
         _TMultiPoint = TMultiPoint(module).points(new double[][]
                 {
-                                                { 48.13905780942574 , 11.579589843750000 },
-                                                { 48.14913756559802 , 11.599502563476562 }
+                        {48.13905780942574, 11.579589843750000},
+                        {48.14913756559802, 11.599502563476562}
                 })
                 .geometry();
-        _TLineString = TlineString(module).points(new double[][]
+
+        _TLineString = TLineString(module).points(new double[][]
                 {
                                                 { 48.109035906197036 , 11.550750732421875 },
                                                 { 48.16608541901253  , 11.552810668945312 }
                 })
                 .geometry();
+
+        _TMultiLineString = TMultiLineString(module).of(_TLineString).of(_TLineString, _TLineString).geometry();
+
         _TPolygon = TPolygon(module)
                 .shell
                         (
                                 TLinearRing(module).ring(new double[][]
                                         {
-                                                { 48.14478518644042 , 11.475906372070312 },
-                                                { 48.18760570101003 , 11.572723388671875 },
-                                                { 48.14043243818813 , 11.692886352539062 },
-                                                { 48.08243697630599 , 11.679153442382812 },
-                                                { 48.07211472138644 , 11.581306457519531 },
-                                                { 48.10124109364004 , 11.522941589355469 },
-                                                { 48.10949438777014 , 11.470069885253906 },
-                                                { 48.14478518644042 , 11.475906372070312 }
+                                                {48.14478518644042, 11.475906372070312},
+                                                {48.18760570101003, 11.572723388671875},
+                                                {48.14043243818813, 11.692886352539062},
+                                                {48.08243697630599, 11.679153442382812},
+                                                {48.07211472138644, 11.581306457519531},
+                                                {48.10124109364004, 11.522941589355469},
+                                                {48.10949438777014, 11.470069885253906},
+                                                {48.14478518644042, 11.475906372070312}
 
                                         })
                                         .geometry()
@@ -105,17 +121,28 @@ public abstract class AbstractSpatialRegressionTest
                         (
                                 TLinearRing(module).ring(new double[][]
                                         {
-                                                { 48.13837048124154 , 11.538391113281250 },
-                                                { 48.15028286718964 , 11.614952087402344 },
-                                                { 48.10513864768105 , 11.640357971191406 },
-                                                { 48.10330454141599 , 11.558303833007812 },
-                                                { 48.13837048124154 , 11.538391113281250 }
+                                                {48.13837048124154, 11.538391113281250},
+                                                {48.15028286718964, 11.614952087402344},
+                                                {48.10513864768105, 11.640357971191406},
+                                                {48.10330454141599, 11.558303833007812},
+                                                {48.13837048124154, 11.538391113281250}
 
                                         })
                                         .geometry()
                         )
                 .geometry();
 
+        _TMultiPolygon = TMultiPolygon(module).of(_TPolygon).of(_TPolygon, _TPolygon).geometry();
+
+        _TFeature = TFeature(module).of(_TPoint1).addProperty("property", "feature").geometry();
+        _TFeatureCollection = TFeatureCollection(module)
+                                .of(TFeature(module).of(_TPoint1).addProperty("property", "point").geometry())
+                                .of(TFeature(module).of(_TMultiPoint).addProperty("property", "multipoint").geometry())
+                                .of(TFeature(module).of(_TLineString).addProperty("property", "linestring").geometry())
+                                .of(TFeature(module).of(_TMultiLineString).addProperty("property", "multilinestring").geometry())
+                                .of(TFeature(module).of(_TPolygon).addProperty("property", "polygon").geometry())
+                                .of(TFeature(module).of(_TMultiPolygon).addProperty("property", "multipolygon").geometry())
+                                .geometry();
 
 
         try (UnitOfWork unitOfWork = module.newUnitOfWork())
@@ -123,41 +150,71 @@ public abstract class AbstractSpatialRegressionTest
 
             // TPoint
             {
-                EntityBuilder<SpatialRegressionEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class, "Point1");
+                EntityBuilder<SpatialBEntity> pointBuilderNested = unitOfWork.newEntityBuilder(SpatialBEntity.class, "Nested");
+                pointBuilderNested.instance().point().set(_TPointNested);
+                SpatialBEntity nested = pointBuilderNested.newInstance();
+
+                EntityBuilder<SpatialAEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class, "Point1");
                 pointBuilder.instance().point().set(_TPoint1);
+                pointBuilder.instance().nested().set(nested);
                 pointBuilder.newInstance();
 
-                EntityBuilder<SpatialRegressionEntity> pointBuilder2 = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class, "Point2");
+                EntityBuilder<SpatialAEntity> pointBuilder2 = unitOfWork.newEntityBuilder(SpatialAEntity.class, "Point2");
                 pointBuilder2.instance().point().set(_TPoint2);
                 pointBuilder2.newInstance();
 
-                EntityBuilder<SpatialRegressionEntity> pointBuilder3 = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class, "Point3");
+                EntityBuilder<SpatialAEntity> pointBuilder3 = unitOfWork.newEntityBuilder(SpatialAEntity.class, "Point3");
                 pointBuilder3.instance().point().set(_TPoint3);
                 pointBuilder3.newInstance();
-
             }
 
             // TMultiPoint
             {
-                 EntityBuilder<SpatialRegressionEntity> mPointBuilder = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class, "MultiPoint");
+                 EntityBuilder<SpatialAEntity> mPointBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class, "MultiPoint");
                  mPointBuilder.instance().multipoint().set(_TMultiPoint);
                  mPointBuilder.newInstance();
             }
 
             // TLineString
             {
-                 EntityBuilder<SpatialRegressionEntity> tlineStringBuilder = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class, "LineString");
+                 EntityBuilder<SpatialAEntity> tlineStringBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class, "LineString");
                  tlineStringBuilder.instance().line().set(_TLineString);
                  tlineStringBuilder.newInstance();
             }
+            // TMultiLineString
+            {
+                EntityBuilder<SpatialAEntity> tlineStringBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class, "MultiLineString");
+                tlineStringBuilder.instance().multiline().set(_TMultiLineString);
+                tlineStringBuilder.newInstance();
+            }
 
             // TPolygon
             {
-                EntityBuilder<SpatialRegressionEntity> tPolygonBuilder = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class, "Polygon");
+                EntityBuilder<SpatialAEntity> tPolygonBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class, "Polygon");
                 tPolygonBuilder.instance().polygon().set(_TPolygon);
                 tPolygonBuilder.newInstance();
             }
 
+            // TMultiPolygon
+            {
+                EntityBuilder<SpatialAEntity> tPolygonBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class, "MultiPolygon");
+                tPolygonBuilder.instance().multipolygon().set(_TMultiPolygon);
+                tPolygonBuilder.newInstance();
+            }
+
+            // TFeature
+            {
+                EntityBuilder<SpatialAEntity> tFeatureBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class, "Feature");
+                tFeatureBuilder.instance().feature().set(_TFeature);
+                tFeatureBuilder.newInstance();
+            }
+
+            // TFeatureCollection
+            {
+                EntityBuilder<SpatialAEntity> tFeatureCollectionBuilder = unitOfWork.newEntityBuilder(SpatialAEntity.class, "FeatureCollection");
+                tFeatureCollectionBuilder.instance().featurecollection().set(_TFeatureCollection);
+                tFeatureCollectionBuilder.newInstance();
+            }
             unitOfWork.complete();
         }
     }
@@ -171,79 +228,75 @@ public abstract class AbstractSpatialRegressionTest
     {
         super.assemble( module );
 
-        module.entities(SpatialRegressionEntity.class);
+        module.entities(SpatialAEntity.class, SpatialBEntity.class);
     }
 
 
-    // ST_Within()
 
     @Test
-    public void script01()
+    public void script01a()
             throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(
                                 ST_Within
                                         (
-                                         templateFor(SpatialRegressionsValues.class).point(),
+                                         templateFor(A.class).point(),
                                          TPoint(module).y(48.13905780942574).x(11.57958984375).geometry(),
                                          10,TUnit.METER
                                         )
                         ));
-        assumeTrue(isExpressionSupported(query));
         query.find();
         assertEquals(1, query.count());
         TPoint tPoint = query.iterator().next().point().get();
         assertTrue(tPoint.compareTo(_TPoint1) == 0);
-        // assertSame
     }
 
     @Test
-    public void script02()
+    public void script01b()
+            throws EntityFinderException
     {
 
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(
                                 ST_Within
                                         (
-                                         templateFor(SpatialRegressionsValues.class).point(),
+                                         templateFor(A.class).point(),
                                          TPoint(module).y(2389280.7514562616).x(1286436.5975464052).geometry("EPSG:27572"),
                                          10,TUnit.METER
                                         )
                         ));
-        assumeTrue(isExpressionSupported(query));
+        System.out.println(query);
         query.find();
         assertEquals(1, query.count());
         TPoint tPoint = query.iterator().next().point().get();
         assertTrue(tPoint.compareTo(_TPoint1) == 0);
-
-        // Transform(module).from(tPoint).to("EPSG:4326");
     }
 
     @Test
-    public void script03()
+    public void script01c() throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(
                                 ST_Within
                                         (
-                                         templateFor(SpatialRegressionsValues.class).point(),
+                                         templateFor(A.class).point(),
                                          TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
                                          10, TUnit.METER
                                         )
                         ))
-                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
+                .orderBy(templateFor(A.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
 
-        assumeTrue(isExpressionSupported(query));
+        System.out.println(query);
         query.find();
         assertEquals(query.count(), 1);
         TPoint tPoint = query.iterator().next().point().get();
@@ -251,31 +304,30 @@ public abstract class AbstractSpatialRegressionTest
     }
 
     @Test
-    public void script03a()
+    public void script01d()  throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(and(
                                 ST_Within
                                         (
-                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                templateFor(A.class).point(),
                                                 TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
                                                 10, TUnit.METER
                                         )
                                         ,
                                 ST_Within
                                          (
-                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                templateFor(A.class).point(),
                                                 TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
                                                  5, TUnit.METER
                                                 )
                                 ))
                         )
-                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
-
-        assumeTrue(isExpressionSupported(query));
+                .orderBy(templateFor(A.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
+        System.out.println(query);
         query.find();
         assertEquals(query.count(), 1);
         TPoint tPoint = query.iterator().next().point().get();
@@ -283,34 +335,35 @@ public abstract class AbstractSpatialRegressionTest
     }
 
     @Test
-    public void script03b() {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+    public void script01e()
+            throws EntityFinderException
+    {
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(and(
                                 ST_Within
                                         (
-                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                templateFor(A.class).point(),
                                                 TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
                                                 1000, TUnit.KILOMETER
                                         )
                                 ,
                                 not(ST_Within
                                         (
-                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                templateFor(A.class).point(),
                                                 TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
                                                 1, TUnit.METER
                                         ))
                         ))
         )
-        .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
+        .orderBy(templateFor(A.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
 
-        assumeTrue(isExpressionSupported(query));
         query.find();
         assertEquals(query.count(), 2);
 
-        Iterator<SpatialRegressionsValues> results = query.iterator();
+        Iterator<A> results = query.iterator();
 
         // sorted ascending by distance
         TPoint tPoint2 = results.next().point().get();
@@ -321,34 +374,35 @@ public abstract class AbstractSpatialRegressionTest
     }
 
     @Test
-    public void script03c() {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+    public void script01f()
+            throws EntityFinderException
+    {
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(and(
                                 ST_Within
                                         (
-                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                templateFor(A.class).point(),
                                                 TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
                                                 1000, TUnit.KILOMETER
                                         )
                                 ,
                                 not(ST_Within
                                         (
-                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                templateFor(A.class).point(),
                                                 TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
                                                 1, TUnit.METER
                                         ))
                         ))
         )
-                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.DESCENDING);
+                .orderBy(templateFor(A.class).point(), _TPoint1, OrderBy.Order.DESCENDING);
 
-        assumeTrue(isExpressionSupported(query));
         query.find();
         assertEquals(query.count(), 2);
 
-        Iterator<SpatialRegressionsValues> results = query.iterator();
+        Iterator<A> results = query.iterator();
 
         // sorted descending by distance
         TPoint tPoint3 = results.next().point().get();
@@ -359,25 +413,25 @@ public abstract class AbstractSpatialRegressionTest
     }
 
 
-    @Ignore
+    @Ignore // <-- WKT support disabled
     @Test
-    public void script04()
+    public void script01g()
+            throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(
                                 ST_Within
                                         (
-                                         templateFor(SpatialRegressionsValues.class).point(),
+                                         templateFor(A.class).point(),
                                          ST_GeometryFromText("POINT(11.57958981111 48.13905780941111 )"),
                                          10,TUnit.METER
                                         )
                         ))
-                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
+                .orderBy(templateFor(A.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
 
-        // assumeTrue(isExpressionSupported(query));
         query.find();
         assertEquals(query.count(), 1);
         TPoint tPoint = query.iterator().next().point().get();
@@ -385,16 +439,17 @@ public abstract class AbstractSpatialRegressionTest
     }
 
     @Test
-    public void script05()
+    public void script01h()
+            throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(
                                 ST_Within
                                         (
-                                         templateFor(SpatialRegressionsValues.class).point(),
+                                         templateFor(A.class).point(),
                                          TPolygon(module)
                                          .shell
                                                  (
@@ -415,7 +470,6 @@ public abstract class AbstractSpatialRegressionTest
                                         )
                         ));
 
-        assumeTrue(isExpressionSupported(query));
         query.find();
 
         assertEquals(1, query.count());
@@ -425,36 +479,35 @@ public abstract class AbstractSpatialRegressionTest
     }
 
     @Test
-    public void script06()
+    public void script01i()
+            throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(
                                 ST_Within
                                         (
-                                        templateFor(SpatialRegressionsValues.class).line(),
+                                        templateFor(A.class).line(),
                                         TPolygon(module)
                                          .shell
-                                                                (
-                                                                        new double[][]
-                                                                                {{ 48.17341248658083 , 11.499938964843750  },
-                                                                                        { 48.21003212234042 , 11.622848510742188  },
-                                                                                        { 48.13470457551313 , 11.732711791992188  },
-                                                                                        { 48.07280293614395 , 11.699409484863281  },
-                                                                                        { 48.07372054150283 , 11.534614562988281  },
-                                                                                        { 48.08817066753472 , 11.481056213378906  },
-                                                                                        { 48.17341248658083 , 11.499938964843750  }}
-
-                                                                ).geometry()
+                                                 (
+                                                         new double[][]
+
+                                                                 {
+                                                                         {48.17341248658083, 11.499938964843750},
+                                                                         {48.21003212234042, 11.622848510742188},
+                                                                         {48.13470457551313, 11.732711791992188},
+                                                                         {48.07280293614395, 11.699409484863281},
+                                                                         {48.07372054150283, 11.534614562988281},
+                                                                         {48.08817066753472, 11.481056213378906},
+                                                                         {48.17341248658083, 11.499938964843750}
+                                                                 }
+
+                                                 ).geometry()
                                         )
                         ));
-
-        // .orderBy(templateFor(VerifyStatialTypes.class).point(), _tPoint, OrderBy.Order.ASCENDING);
-
-        assumeTrue(isExpressionSupported(query));
-
         query.find();
         assertEquals(1, query.count());
         TLineString tLineString = query.iterator().next().line().get();
@@ -464,16 +517,17 @@ public abstract class AbstractSpatialRegressionTest
 
 
     @Test
-    public void script07()
+    public void script01j()
+            throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(
                                 ST_Within
                                         (
-                                        templateFor(SpatialRegressionsValues.class).polygon(),
+                                        templateFor(A.class).polygon(),
 
                                          TPolygon(module)
                                               .shell
@@ -502,85 +556,97 @@ public abstract class AbstractSpatialRegressionTest
         assertTrue(tPolygon.holes().get().get(0).compareTo(_TPolygon.holes().get().get(0)) == 0);
     }
 
+    @Test
+    public void script01k()
+            throws EntityFinderException
+    {
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
+
+        Query<A> query = unitOfWork.newQuery(
+                qb
+                        .where(
+                                ST_Within
+                                        (
+                                                templateFor(A.class).nested().get().point(), // <- "nested.point" : [ 11.57958984375, 48.13905780942574 ]
+                                                TPoint(module).y(48.13905780942574).x(11.57958984375).geometry(),
+                                                10,TUnit.METER
+                                        )
+                        ));
+        query.find();
+        assertEquals(1, query.count());
+        TPoint tPoint = query.iterator().next().point().get();
+        assertTrue(tPoint.compareTo(_TPointNested) == 0);
+    }
+
     // ST_Disjoint()
 
     @Test
-    public void script08()
+    public void script02a()
             throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(
                                 ST_Disjoint
                                         (
-                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                templateFor(A.class).point(),
                                                 TPoint(module).y(48.13905780942574).x(11.57958984375).geometry(),
                                                 10,TUnit.METER
                                         )
                         ));
-        assumeTrue(isExpressionSupported(query));
         query.find();
-        assertEquals(4, query.count());
-        TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_TPoint1) == 0);
-        // assertSame
+        assertEquals(2, query.count());
     }
 
     @Test
-    public void script09()
+    public void script02b()
             throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(
                                 ST_Disjoint
                                         (
-                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                templateFor(A.class).point(),
                                                 TPoint(module).y(48.13905780942574).x(11.57958984375).geometry(),
-                                                // TPoint(module).y(45.13905780942574).x(10.57958984375).geometry(),
                                                 10,TUnit.KILOMETER
                                         )
                         ));
-        assumeTrue(isExpressionSupported(query));
         query.find();
 
-        System.out.println("Count " + query.count());
-
         assertEquals(1, query.count());
         TPoint tPoint = query.iterator().next().point().get();
         assertTrue(tPoint.compareTo(_TPoint3) == 0);
-        // assertSame
     }
 
 
     @Test
-    public void script10()
+    public void script02c()
             throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(and(
                                 ST_Disjoint
                                         (
-                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                templateFor(A.class).point(),
                                                 TPoint(module).y(48.13905780942574).x(11.57958984375).geometry(),
                                                 10, TUnit.METER
                                         ),
                                 ST_Within
                                         (
-                                                 templateFor(SpatialRegressionsValues.class).point(),
+                                                 templateFor(A.class).point(),
                                                  TPoint(module).y(48.13905780942574).x(11.57958984375).geometry(),
                                                  10,TUnit.KILOMETER
                                          )
                                 )
                         ));
-        assumeTrue(isExpressionSupported(query));
         query.find();
 
         assertEquals(1, query.count());
@@ -589,29 +655,28 @@ public abstract class AbstractSpatialRegressionTest
     }
 
     @Test
-    public void script11()
+    public void script02d()
             throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(and(
                                         ST_Disjoint
                                                 (
-                                                        templateFor(SpatialRegressionsValues.class).point(),
+                                                        templateFor(A.class).point(),
                                                         TPoint(module).y(2389280.7514562616).x(1286436.5975464052).geometry("EPSG:27572"),
                                                         10, TUnit.METER
                                                 ),
                                         ST_Within
                                                 (
-                                                        templateFor(SpatialRegressionsValues.class).point(),
+                                                        templateFor(A.class).point(),
                                                         TPoint(module).y(48.13905780942574).x(11.57958984375).geometry(),
                                                         100,TUnit.KILOMETER
                                                 )
                                 )
                         ));
-        assumeTrue(isExpressionSupported(query));
         query.find();
 
         assertEquals(1, query.count());
@@ -621,35 +686,159 @@ public abstract class AbstractSpatialRegressionTest
     }
 
     @Test
-    public void script12()
+    public void script02e()
             throws EntityFinderException
     {
-        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
 
-        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+        Query<A> query = unitOfWork.newQuery(
                 qb
                         .where(and(
                                         ST_Disjoint
                                                 (
-                                                        templateFor(SpatialRegressionsValues.class).point(),
+                                                        templateFor(A.class).point(),
                                                         TPoint(module).y(2389280.7514562616).x(1286436.5975464052).geometry("EPSG:27572"),
                                                         10, TUnit.METER
                                                 ),
                                         ST_Within
                                                 (
-                                                        templateFor(SpatialRegressionsValues.class).point(),
+                                                        templateFor(A.class).point(),
                                                         TPoint(module).y(2389280.7514562616).x(1286436.5975464052).geometry("EPSG:27572"),
                                                         1000,TUnit.KILOMETER
                                                 )
                                 )
                         ));
-        assumeTrue(isExpressionSupported(query));
         query.find();
 
         assertEquals(2, query.count());
     }
 
 
+    @Test
+    public void script02f()
+            throws EntityFinderException
+    {
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
+
+        Query<A> query = unitOfWork.newQuery(
+                qb
+                        .where(
+                                ST_Disjoint
+                                        (
+                                                templateFor(A.class).nested().get().point(),
+                                                TPoint(module).y(49.13905780942574).x(12.57958984375).geometry(),
+                                                10,TUnit.METER
+                                        )
+                        ));
+        query.find();
+        assertEquals(1, query.count());
+        TPoint tPoint = query.iterator().next().point().get();
+        assertTrue(tPoint.compareTo(_TPointNested) == 0);
+    }
+
+    // ST_Intersects()
+
+    @Test
+    public void script03a()
+            throws EntityFinderException
+    {
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
+
+        Query<A> query = unitOfWork.newQuery(
+                qb
+                        .where(
+                                ST_Intersects
+                                        (
+                                                templateFor(A.class).point(),
+                                                TPoint(module).y(48.13905780942574).x(11.57958984375).geometry(),
+                                                10,TUnit.METER
+                                        )
+                        ));
+        query.find();
+        assertEquals(1, query.count());
+    }
+
+    @Test
+    public void script03b()
+            throws EntityFinderException
+    {
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
+
+        Query<A> query = unitOfWork.newQuery(
+                qb
+                        .where(
+                                ST_Intersects
+                                        (
+                                                templateFor(A.class).polygon(),
+
+                                                TPolygon(module)
+                                                        .shell
+                                                                (
+                                                                        new double[][]
+                                                                                {
+                                                                                        { 48.160131, 11.778717 },
+                                                                                        { 48.156925, 11.631775 },
+                                                                                        { 48.061561, 11.600876 },
+                                                                                        { 48.006922, 11.778030 },
+                                                                                        { 48.062020, 11.858368 },
+                                                                                        { 48.159215, 11.778717 }
+                                                                                }
+                                                                ).geometry()
+                                        )
+                        ));
+
+
+        query.find();
+
+        assertEquals(query.count(), 1);
+        TPolygon tPolygon = query.iterator().next().polygon().get();
+        assertTrue(tPolygon.holes().get().size() == 1);
+        assertTrue(tPolygon.shell().get().compareTo(_TPolygon.shell().get()) == 0);
+        assertFalse(tPolygon.holes().get().get(0).compareTo(_TPolygon.shell().get()) == 0);
+        assertTrue(tPolygon.holes().get().get(0).compareTo(_TPolygon.holes().get().get(0)) == 0);
+    }
+
+    @Test
+    public void script03c()
+            throws EntityFinderException
+    {
+        QueryBuilder<A> qb = this.module.newQueryBuilder(A.class);
+
+        Query<A> query = unitOfWork.newQuery(
+                qb
+                        .where(
+                                ST_Intersects
+                                        (
+                                                templateFor(A.class).polygon(),
+
+                                                TPolygon(module)
+                                                        .shell
+                                                                (
+                                                                        new double[][]
+                                                                                {
+                                                                                        { 48.160131, 11.778717 },
+                                                                                        { 48.156925, 11.631775 },
+                                                                                        { 48.061561, 11.600876 },
+                                                                                        { 48.006922, 11.778030 },
+                                                                                        { 48.062020, 11.858368 },
+                                                                                        { 48.159215, 11.778717 }
+                                                                                }
+                                                                ).geometry()
+                                        )
+                        ))
+                .orderBy(templateFor(A.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
+
+
+        query.find();
+
+        assertEquals(query.count(), 1);
+        TPolygon tPolygon = query.iterator().next().polygon().get();
+        assertTrue(tPolygon.holes().get().size() == 1);
+        assertTrue(tPolygon.shell().get().compareTo(_TPolygon.shell().get()) == 0);
+        assertFalse(tPolygon.holes().get().get(0).compareTo(_TPolygon.shell().get()) == 0);
+        assertTrue(tPolygon.holes().get().get(0).compareTo(_TPolygon.holes().get().get(0)) == 0);
+    }
+
 }
 
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/testsupport/src/main/java/org/qi4j/test/indexing/TestData.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/indexing/TestData.java b/core/testsupport/src/main/java/org/qi4j/test/indexing/TestData.java
index 1312a46..2dbe700 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/indexing/TestData.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/indexing/TestData.java
@@ -106,7 +106,6 @@ class TestData
                 kualaLumpur.name().set( "Kuala Lumpur" );
                 kualaLumpur.country().set( "Malaysia" );
                 kualaLumpur.county().set( "Some Jaya" );
-                kualaLumpur.location().set(TPoint(module).x(101.686854).y(3.139003).geometry());
                 kualaLumpur = cityBuilder.newInstance();
                 NameableAssert.trace( kualaLumpur );
             }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/build.gradle b/extensions/indexing-elasticsearch/build.gradle
index 6bf7bfa..525bf4e 100644
--- a/extensions/indexing-elasticsearch/build.gradle
+++ b/extensions/indexing-elasticsearch/build.gradle
@@ -9,6 +9,8 @@ dependencies {
   compile project(":org.qi4j.libraries:org.qi4j.library.spatial")
   compile project(":org.qi4j.libraries:org.qi4j.library.sql")
   compile project(":org.qi4j.extensions:org.qi4j.extension.entitystore-sql")
+  compile(project(":org.qi4j.extensions:org.qi4j.extension.entitystore-riak"))
+
 
 
   compile libraries.elasticsearch

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
index 795fc6b..9fe42d7 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchConfiguration.java
@@ -22,7 +22,6 @@ import org.qi4j.api.common.Optional;
 import org.qi4j.api.common.UseDefaults;
 import org.qi4j.api.configuration.ConfigurationComposite;
 import org.qi4j.api.property.Property;
-import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialExceptionConfiguration;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 
 // START SNIPPET: config
@@ -50,11 +49,6 @@ public interface ElasticSearchConfiguration
     @UseDefaults Property<Boolean> indexNonAggregatedAssociations();
 
 
-    public static enum INDEX_MAPPING_POINT_METHOD {GEO_POINT, GEO_SHAPE}
-
-
-    @Optional Property<INDEX_MAPPING_POINT_METHOD> indexPointMappingMethod();
-
     @Optional
     Property<SpatialConfiguration.Configuration> spatial();
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
index dd204ea..1936d50 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
@@ -78,15 +78,6 @@ public interface ElasticSearchFinder
         private static final Map<Class<?>, ComplexTypeSupport> COMPLEX_TYPE_SUPPORTS = new HashMap<>( 9 );
         public static final Map<Class<?>, SpatialQuerySpecSupport> EXTENDED_SPEC_SUPPORTS = new HashMap<>( 2 );
 
-        public static final Map<Class<?>, SpatialQuerySpecSupport> EXTENDED_QUERY_EXPRESSIONS_CATALOG = new HashMap<>( 2 );
-
-        static
-        {
-
-            EXTENDED_QUERY_EXPRESSIONS_CATALOG.put(SpatialPredicatesSpecification.class, new PredicateFinderSupport());
-            EXTENDED_QUERY_EXPRESSIONS_CATALOG.put(SpatialConvertSpecification.class, new ConvertFinderSupport());
-        }
-
         // Spec Support
         static
         {
@@ -198,12 +189,9 @@ public interface ElasticSearchFinder
 
             System.out.println("request " + request.toString());
 
-
             // Execute
             SearchResponse response = request.execute().actionGet();
 
-            // System.out.println("response " + response.toString());
-
             if( response.getHits().totalHits() == 1 )
             {
                 return EntityReference.parseEntityReference( response.getHits().getAt( 0 ).id() );
@@ -596,38 +584,16 @@ public interface ElasticSearchFinder
                 throws EntityFinderException
         {
             LOGGER.trace("Processing SpatialPredicatesSpecification {}", spec);
-            SpatialQuerySpecSupport spatialQuerySpecSupport = EXTENDED_SPEC_SUPPORTS.get( spec.getClass().getSuperclass() );
-            spatialQuerySpecSupport.setModule(module, support);
-
-
-
-            try
-            {
-                spatialQuerySpecSupport.processSpecification(filterBuilder, spec, variables);
-
-            } catch(Exception _ex)
-            {
-                throw new EntityFinderException(_ex);
-            }
+            EXTENDED_SPEC_SUPPORTS.get( spec.getClass().getSuperclass() ).support(module, support).processSpecification(filterBuilder, spec, variables);
         }
 
         private void processSpatialConvertSpecification( FilterBuilder filterBuilder,
                                                          SpatialConvertSpecification<?> spec,
                                                          Map<String, Object> variables )
+                throws EntityFinderException
         {
             LOGGER.trace("Processing SpatialConvertSpecification {}", spec);
-
-            SpatialQuerySpecSupport spatialQuerySpecSupport = EXTENDED_SPEC_SUPPORTS.get( spec.getClass().getSuperclass() );
-            spatialQuerySpecSupport.setModule(module, support);
-
-            try
-            {
-                spatialQuerySpecSupport.processSpecification(filterBuilder, spec, variables);
-
-            } catch(Exception _ex)
-            {
-                _ex.printStackTrace();
-            }
+            EXTENDED_SPEC_SUPPORTS.get( spec.getClass().getSuperclass() ).support(module, support).processSpecification(filterBuilder, spec, variables);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
index fe969ba..e651ee3 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
@@ -23,7 +23,6 @@ import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.qi4j.api.association.AssociationDescriptor;
-import org.qi4j.api.association.AssociationStateDescriptor;
 import org.qi4j.api.entity.EntityDescriptor;
 import org.qi4j.api.entity.EntityReference;
 import org.qi4j.api.geometry.internal.TGeometry;
@@ -52,10 +51,7 @@ import org.qi4j.spi.entitystore.StateChangeListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Stack;
+import java.util.*;
 
 /**
  * Listen to Entity state changes and index them in ElasticSearch.
@@ -82,6 +78,9 @@ public interface ElasticSearchIndexer
         @This
         private ElasticSearchSupport support;
 
+        Stack<String> deepSpatialMappingKeyStack = new Stack<>();
+
+
         public void emptyIndex()
         {
             support.client().admin().indices().prepareDelete( support.index() ).execute().actionGet();
@@ -195,16 +194,9 @@ public interface ElasticSearchIndexer
         {
             return toJSON(null, state, newStates, uow);
         }
-
-
-        Stack<String> stack = new Stack<>();
-        int iterations = 0;
-
-        private String toJSON(String assotiationKey, EntityState state, Map<String, EntityState> newStates, EntityStoreUnitOfWork uow )
+        private String toJSON(String mKey, EntityState state, Map<String, EntityState> newStates, EntityStoreUnitOfWork uow )
         {
 
-            // System.out.println("# --- > Iterations " + iterations++);
-
             try
             {
                 JSONObject json = new JSONObject();
@@ -218,36 +210,32 @@ public interface ElasticSearchIndexer
                 for( PropertyDescriptor propDesc : entityType.state().properties() )
                 {
 
-                    AssociationStateDescriptor associationStateDescriptor = entityType.state();
-
                     if( propDesc.queryable() )
                     {
                         String key = propDesc.qualifiedName().name();
                         Object value = state.propertyValueOf( propDesc.qualifiedName() );
                         if( value == null || ValueType.isPrimitiveValue( value ) )
                         {
-                            json.put( key, value );
+                            json.put(key, value);
                         }
-
                         else
-                        if (ValueType.isGeometryValue(value) )
+                        // For spatial types is is required to generate a "deep mapping key" that is used during indexing as
+                        // mapping name. The mapping name has to be "deep" and is also used for spatial queries :
+                        //    "geo_distance" : {
+                        //     "city.location" : [ 11.57958984375, 48.13905780942574 ],
+                        //     "distance" : "10.0km"
+                        if (ValueType.isGeometricValue(value) )
                         {
-
-                            String newKey = null;
-
-                            if (assotiationKey != null)
+                            if (mKey != null)
                             {
-                                 newKey = assotiationKey + "." + key;
+                                deepSpatialMappingKeyStack.add(mKey);
+                                deepSpatialMappingKeyStack.add(key);
                             }
-                            else
-                            {
-                                newKey = key;
-                            }
-
-
-                            ElasticSearchSpatialIndexer.toJSON(support, (TGeometry) value, key, newKey, json, module);
+                            else { deepSpatialMappingKeyStack.add(key);}
 
-                           //System.out.println("Spatial JSON " + json);
+                            String deepKey = ElasticSearchSpatialIndexer.spatialMappingPropertyName(deepSpatialMappingKeyStack);
+                            ElasticSearchSpatialIndexer.toJSON(support, (TGeometry) value, key, deepKey, json, module);
+                            deepSpatialMappingKeyStack.clear();
                         }
                         else
                         {
@@ -373,7 +361,6 @@ public interface ElasticSearchIndexer
                         json.put( key, array );
                     }
                 }
-                iterations = 0;
                 return json.toString();
             }
             catch( JSONException e )

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchSupport.java
index f3d683b..16859fd 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchSupport.java
@@ -34,8 +34,6 @@ public interface ElasticSearchSupport
 
     boolean indexNonAggregatedAssociations();
 
-    ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD indexPointMappingMethod();
-
     SpatialConfiguration.Configuration spatialConfiguration();
 
     Module getModule();

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/cluster/ESClusterSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/cluster/ESClusterSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/cluster/ESClusterSupport.java
index 1a88b49..c573d3f 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/cluster/ESClusterSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/cluster/ESClusterSupport.java
@@ -46,12 +46,8 @@ public class ESClusterSupport
         index = config.index().get() == null ? DEFAULT_INDEX_NAME : config.index().get();
         indexNonAggregatedAssociations = config.indexNonAggregatedAssociations().get();
 
-        indexPointMappingMethod = config.indexPointMappingMethod() == null ?
-                ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT : config.indexPointMappingMethod().get();
+        defaultSpatialConfiguration(config);
 
-        indexPointMappingMethod = ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT;
-
-        System.out.println("---- TEST ---- " + config.spatial());
 
         String[] nodes = config.nodes().get() == null ? new String[]{ "localhost:9300" } : config.nodes().get().split( "," );
         boolean clusterSniff = config.clusterSniff().get();

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
index af529fd..29c38c4 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
@@ -1,4 +1,3 @@
-package org.qi4j.index.elasticsearch.extensions.spatial;
 
 /*
  * Copyright 2014 Jiri Jetmar.
@@ -17,11 +16,13 @@ package org.qi4j.index.elasticsearch.extensions.spatial;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+package org.qi4j.index.elasticsearch.extensions.spatial;
+
 
 import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.elasticsearch.common.geo.GeoDistance;
 import org.elasticsearch.common.unit.DistanceUnit;
-import org.elasticsearch.index.query.*;
+import org.elasticsearch.index.query.FilterBuilder;
 import org.elasticsearch.search.sort.GeoDistanceSortBuilder;
 import org.elasticsearch.search.sort.SortOrder;
 import org.qi4j.api.composite.Composite;
@@ -34,6 +35,7 @@ import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpeci
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
 import org.qi4j.api.structure.Module;
 import org.qi4j.functional.Specification;
+import org.qi4j.index.elasticsearch.ElasticSearchFinderSupport;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.functions.convert.ConvertFinderSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.PredicateFinderSupport;
@@ -46,111 +48,83 @@ import org.slf4j.LoggerFactory;
 import java.util.HashMap;
 import java.util.Map;
 
-import static org.elasticsearch.index.query.FilterBuilders.geoShapeFilter;
-
-import org.qi4j.index.elasticsearch.ElasticSearchFinderSupport;
-
-public final class ElasticSearchSpatialFinder
-{
+public final class ElasticSearchSpatialFinder {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(ElasticSearchSpatialFinder.class);
 
-    private static final Map<Class<?>, SpatialQuerySpecSupport> SPATIAL_QUERY_EXPRESSIONS_CATALOG = new HashMap<>( 2 );
+    private static final Map<Class<?>, SpatialQuerySpecSupport> SPATIAL_QUERY_EXPRESSIONS_CATALOG = new HashMap<>(2);
 
-    static
-    {
+    static {
         SPATIAL_QUERY_EXPRESSIONS_CATALOG.put(SpatialPredicatesSpecification.class, new PredicateFinderSupport());
         SPATIAL_QUERY_EXPRESSIONS_CATALOG.put(SpatialConvertSpecification.class, new ConvertFinderSupport());
     }
 
 
-
-    public interface ModuleHelper {
-        void setModule(Module module, ElasticSearchSupport support);
+    private ElasticSearchSpatialFinder() {
     }
 
-    public static interface SpatialQuerySpecSupport extends ModuleHelper
-    {
-        void processSpecification(FilterBuilder filterBuilder, Specification<?> spec, Map<String, Object> variables)  throws EntityFinderException;
+    public interface Support {
+        SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support);
     }
 
 
+    public static interface SpatialQuerySpecSupport extends Support {
+        void processSpecification(FilterBuilder filterBuilder, Specification<?> spec, Map<String, Object> variables) throws EntityFinderException;
+    }
 
     public static class SpatialSpecSupport
-                implements  SpatialQuerySpecSupport {
-
-        Module module;
-        ElasticSearchSupport support;
+            implements SpatialQuerySpecSupport {
+        private Module module;
+        private ElasticSearchSupport support;
 
-        public void setModule(Module module, ElasticSearchSupport support)
-        {
-            this.module  = module;
+        public SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support) {
+            this.module = module;
             this.support = support;
+            return this;
         }
 
 
         public void processSpecification(FilterBuilder filterBuilder,
-                                              Specification<?> spec,
-                                              Map<String, Object> variables)
-                throws EntityFinderException
-        {
-
-            SpatialQuerySpecSupport spatialQuerySpecSupport = SPATIAL_QUERY_EXPRESSIONS_CATALOG.get(spec.getClass().getSuperclass());
-            spatialQuerySpecSupport.setModule(module, support);
-
-            try {
-                spatialQuerySpecSupport.processSpecification(filterBuilder, spec, variables);
-
-            } catch (Exception _ex) {
-                throw new EntityFinderException(_ex);
-            }
-
-
+                                         Specification<?> spec,
+                                         Map<String, Object> variables)
+                throws EntityFinderException {
+            SPATIAL_QUERY_EXPRESSIONS_CATALOG.get(spec.getClass().getSuperclass()).support(module, support).processSpecification(filterBuilder, spec, variables);
         }
 
     }
 
-
     public static class SpatialTypeSupport
-            implements ElasticSearchFinderSupport.ComplexTypeSupport
-    {
+            implements ElasticSearchFinderSupport.ComplexTypeSupport {
 
         private Module module;
         private ElasticSearchSupport support;
 
-        public ElasticSearchFinderSupport.ComplexTypeSupport support(Module module, ElasticSearchSupport support)
-        {
-            this.module  = module;
+        public ElasticSearchFinderSupport.ComplexTypeSupport support(Module module, ElasticSearchSupport support) {
+            this.module = module;
             this.support = support;
 
             return this;
         }
 
 
-        public FilterBuilder comparison( ComparisonSpecification<?> spec, Map<String, Object> variables )
-        {
+        public FilterBuilder comparison(ComparisonSpecification<?> spec, Map<String, Object> variables) {
             throw new RuntimeException("Unsupported operation");
         }
 
-        public FilterBuilder contains( ContainsSpecification<?> spec, Map<String, Object> variables )
-        {
+        public FilterBuilder contains(ContainsSpecification<?> spec, Map<String, Object> variables) {
             throw new RuntimeException("Unsupported operation");
         }
 
-        public FilterBuilder containsAll( ContainsAllSpecification<?> spec, Map<String, Object> variables )
-        {
+        public FilterBuilder containsAll(ContainsAllSpecification<?> spec, Map<String, Object> variables) {
             throw new RuntimeException("Unsupported operation");
         }
 
-        public void orderBy(SearchRequestBuilder request,  Specification<Composite> whereClause, OrderBy orderBySegment, Map<String, Object> variables ) throws EntityFinderException
-        {
-            if (!TPoint.class.isAssignableFrom(InternalUtils.classOfPropertyType(orderBySegment.property())))
-            {
+        public void orderBy(SearchRequestBuilder request, Specification<Composite> whereClause, OrderBy orderBySegment, Map<String, Object> variables) throws EntityFinderException {
+            if (!TPoint.class.isAssignableFrom(InternalUtils.classOfPropertyType(orderBySegment.property()))) {
                 throw new EntityFinderException("Ordering can only be done on TPoints.. TODO");
             }
 
-            if (!SpatialIndexMapper.IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), orderBySegment.property().toString()))
-            {
+            if (!SpatialIndexMapper.IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), orderBySegment.property().toString())) {
                 throw new EntityFinderException("OrderBy is only supported when GEO_POINT indexing is used");
             }
 
@@ -162,11 +136,4 @@ public final class ElasticSearchSpatialFinder
         }
     }
 
-
-
-
-     private ElasticSearchSpatialFinder()
-    {
-    }
-
 }


[26/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-cantons.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-cantons.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-cantons.json
deleted file mode 100644
index 02a6ec1..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-cantons.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"cantons":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":1,"properties":{"name":"Zürich","abbr":"ZH"},"arcs":[[[195,196,197,198,199,200,201,-202,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,-217,216,217,218,219,220,221,222,223,224,225,226,-227,226,227,228,229,230,-231,230,231,232,233,234,235,-236,236,237,238,-239,238,239,-133,-132,-131,-130,129,-130,-129,-128,-127,-126]]]},{"type":"MultiPolygon","id":2,"properties":{"name":"Bern","abbr":"BE"},"arcs":[[[6,7,8,9,-10,9,10,11,12,13,14,15,16,-17,16,17,18,19,20,21,22,23,24,-25,24,25,26,-27,26,27,28,-29,28,29,30,31,32,33,-34,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-52,51,52,-53,52,53,54,55,56,57,58,59,60,61,62,63,64],[65],[66]],[[-335,-339]],[[-252]],[[-385,-249,-248]]]},{"type":"MultiPolygon","id":3,"properties":{"name":"Luzern","abbr":"LU"},"arcs":[[[-57,-56,-55,-54,-53,52,-53,-52,51,-52,-51,-50,-49,-48,-47,-46,-45,252,253,254,255,256,257,258,259,2
 60,-261,260,261,-262,261,262,263,264,265,266,267,268,269,270,-271,270,271,272,273,274,275,276,277,-276,278,279,280,281,282,-283,282,283,284,285]]]},{"type":"MultiPolygon","id":4,"properties":{"name":"Uri","abbr":"UR"},"arcs":[[[-70,-63,-62,293,294,295,296,297,298,299,300,301,302,303,-1,-119,-118]]]},{"type":"MultiPolygon","id":5,"properties":{"name":"Schwyz","abbr":"SZ"},"arcs":[[[-303,-302,-301,-300,-299,-298,-297,309,-284,-283,282,-283,-282,-281,-280,-279,275,-278,310,311,312,313,314,315,316,317,-318,318,319,320,321,322,-323,322,323,324,-197,-196,-125,325,326,327]]]},{"type":"MultiPolygon","id":6,"properties":{"name":"Obwalden","abbr":"OW"},"arcs":[[[-59,-58,-286,356,357]],[[-61,-359,-295,-294]]]},{"type":"MultiPolygon","id":7,"properties":{"name":"Nidwalden","abbr":"NW"},"arcs":[[[-60,-358,-357,-285,-310,-296,358]]]},{"type":"MultiPolygon","id":8,"properties":{"name":"Glarus","abbr":"GL"},"arcs":[[[-304,-328,-327,-326,-124,-123,-122,-3,-2]]]},{"type":"MultiPolygon","id":9,"proper
 ties":{"name":"Zug","abbr":"ZG"},"arcs":[[[-277,-276,-275,-274,-293,-205,-204,-203,-202,201,-202,-201,-200,-199,-198,-325,-324,-323,322,-323,-322,-321,-320,-319,317,-318,-317,-316,-315,-314,-313,-312,-311]]]},{"type":"MultiPolygon","id":10,"properties":{"name":"Fribourg","abbr":"FR"},"arcs":[[[-111,-110,-109,-108,-107,-106,104,-105,-104,-103,-102,-101,-100,-99,98,-99,-98,-97,-96,-95,-94,-93,92,-93,-92,-91,-90,-89,88,-89,-88,-87,-86,240,241,242,243,244,245,246,247,248,249,250,-15,-14,-13,-12,-11,-10,9,-10,-9],[251]],[[-84,-83,82,-83,-82,-81,-80,-79,-336]],[[-116,-115,-117]],[[-114]],[[-66]]]},{"type":"MultiPolygon","id":11,"properties":{"name":"Solothurn","abbr":"SO"},"arcs":[[[338,-334,339,340,341,-342,341,342,343,344,345,346,347,348,-287,-41,-40,-39,-38,-37,-36,-35,-34,33,-34,-33,-32]],[[387,-352]],[[388,-350,389]],[[-67]]]},{"type":"MultiPolygon","id":12,"properties":{"name":"Basel-Stadt","abbr":"BS"},"arcs":[[[-355,-354,385]]]},{"type":"MultiPolygon","id":13,"properties":{"name":
 "Basel-Landschaft","abbr":"BL"},"arcs":[[[349,350,351,352,353,354,355,-291,-290,-289,-288,-349,-348,-347,-346,-345,-344,-343,-342,341,-342,-341,-340,-333]],[[392,-390,-332,-331]]]},{"type":"MultiPolygon","id":14,"properties":{"name":"Schaffhausen","abbr":"SH"},"arcs":[[[-220,360,-306,361]],[[-308,386]],[[390,-218,-217,216,-217,-216]]]},{"type":"MultiPolygon","id":15,"properties":{"name":"Appenzell Ausserrhoden","abbr":"AR"},"arcs":[[[-183,-182,181,-182,-181,-180,-179,-178,-177,-176,175,-176,-175,-174,-173,-172,-171,-170,-169,-168,-167,-166,-165,-164,163,-164,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,362,363,364,365,366,-367,366,367,368,369,370,-191,-190,-189,371,372,373,374,375,376,185,-186,-185,377,378,379,380,-381,380,381,382,383]]]},{"type":"MultiPolygon","id":16,"properties":{"name":"Appenzell Innerrhoden","abbr":"AI"},"arcs":[[[-384,-383,-382,-381,380,-381,-380,-379,-378,-184]],[[-186,-377,-376,-375,-374,-373,-372,-188,-187]],[[-194,-193,-192,-371,-370,-369,-368,-367,36
 6,-367,-366,-365,-364,-363]]]},{"type":"MultiPolygon","id":17,"properties":{"name":"St. Gallen","abbr":"SG"},"arcs":[[[121,122,123,124,125,126,127,128,129,-130,129,130,131,132,133,134,135,-136,136,137,138,139,140,141,-142,141,142,143,144,145,-146,145,-146,145,146,147,148,-149,148,149,150,151,152,-4],[153,154,155,156,157,158,159,160,161,162,163,-164,163,164,165,166,167,168,169,170,171,172,173,174,175,-176,175,176,177,178,179,180,181,-182,181,182,183,184,185,186,187,188,189,190,191,192,193],[194]]]},{"type":"MultiPolygon","id":18,"properties":{"name":"Graubünden","abbr":"GR"},"arcs":[[[0,1,2,3,4,5]]]},{"type":"MultiPolygon","id":19,"properties":{"name":"Aargau","abbr":"AG"},"arcs":[[[286,287,288,289,290,291,-214,-213,-212,-211,-210,-209,-208,-207,-206,292,-273,-272,-271,270,-271,-270,-269,-268,-267,-266,-265,-264,-263,-262,261,-262,-261,260,-261,-260,-259,-258,-257,-256,-255,-254,-253,-44,-43,-42]]]},{"type":"MultiPolygon","id":20,"properties":{"name":"Thurgau","abbr":"TG"},"arcs":[[
 [-152,-151,-150,-149,148,-149,-148,-147,-146,145,-146,145,-146,-145,-144,-143,-142,141,-142,-141,-140,-139,-138,-137,135,-136,-135,-134,-240,-239,238,-239,-238,-237,235,-236,-235,-234,-233,-232,-231,230,-231,-230,-229,-228,-227,226,-227,-226,-225,-224,-223,-222,304,305,306,307,308]],[[-195]]]},{"type":"MultiPolygon","id":21,"properties":{"name":"Ticino","abbr":"TI"},"arcs":[[[-71,117,118,-6,119],[120]]]},{"type":"MultiPolygon","id":22,"properties":{"name":"Vaud","abbr":"VD"},"arcs":[[[71,72,73,74,75,76,77,78,79,80,81,82,-83,82,83,84,85,86,87,88,-89,88,89,90,91,92,-93,92,93,94,95,96,97,98,-99,98,99,100,101,102,103,104,-105,105,106,107,108,109,110,-8,-7,-69],[111,112],[113],[114,115,116]],[[-338,-250,384,-247,-246,-245,-244,-243,-242]]]},{"type":"MultiPolygon","id":23,"properties":{"name":"Valais","abbr":"VS"},"arcs":[[[67,68,-65,-64,69,70]]]},{"type":"MultiPolygon","id":24,"properties":{"name":"Neuchâtel","abbr":"NE"},"arcs":[[[-85,335,-78,336,-329,-18,-17,16,-17,-16,-251,337,-241]]
 ]},{"type":"MultiPolygon","id":25,"properties":{"name":"Genève","abbr":"GE"},"arcs":[[[359,-76]],[[391,-74,-73]],[[-112,-113]]]},{"type":"MultiPolygon","id":26,"properties":{"name":"Jura","abbr":"JU"},"arcs":[[[328,329,330,331,332,333,334,-31,-30,-29,28,-29,-28,-27,26,-27,-26,-25,24,-25,-24,-23,-22,-21,-20,-19]]]}]}},"arcs":[[[6016,3813],[6,47],[-10,49],[5,33],[-8,76],[-19,0],[-22,30],[-15,38],[15,71],[-8,10],[14,31],[11,0],[27,43],[-12,32],[-1,102],[10,21],[18,-4],[13,39],[21,6],[16,-20],[18,19],[0,18],[19,4],[23,37],[22,21],[3,19],[-9,34],[6,37],[40,45],[7,-2],[28,-81],[39,18],[29,31],[-6,38],[17,89],[16,18],[13,-8],[-13,119],[19,37],[29,-8],[-3,23],[27,39],[20,5],[18,32]],[[6439,5001],[25,9],[57,-19],[-1,-49],[31,-20],[28,17],[27,28],[60,12],[40,20],[22,2],[23,32],[28,112],[13,40],[13,15],[-3,75],[21,17],[22,36],[25,1],[41,-21],[-1,-15],[22,-40],[3,-37],[13,-10],[64,60],[7,39],[13,15]],[[7032,5320],[15,8],[-9,30],[78,-9],[34,29],[40,91],[7,24],[28,13],[19,43]],[[7244,5549],[19,-
 38],[22,-27],[15,18],[28,-7],[15,11],[37,-5],[16,-23],[47,6],[49,-22],[44,4],[41,-27],[22,1],[49,-34],[38,-59],[15,42],[-5,25],[30,7],[3,21],[-6,43],[17,33],[27,31],[-21,16],[-1,25],[16,50],[2,26],[16,10],[13,62],[9,21],[31,13],[-5,63],[8,18],[44,13],[6,16],[-53,104],[-25,58],[-9,42],[-47,107],[-22,56]],[[7729,6249],[14,24],[8,-35],[12,36],[19,-11],[26,16],[9,17],[50,27],[31,-37],[9,-45],[41,26],[13,-2],[21,23],[32,20],[24,-36],[19,-10],[24,3],[16,41],[28,-7],[53,23],[0,-17],[35,-31],[22,7],[-1,-28],[28,-22],[25,2],[29,-10],[6,-21],[44,11],[39,0],[13,-30],[24,-16],[17,-30],[34,-16],[25,-33],[37,21],[19,30],[32,-4],[9,-20],[-20,-24],[4,-30],[35,-27],[9,-60],[-16,-18],[0,-23],[-21,-45],[-7,-45],[19,-30],[-4,-111],[41,-15],[29,-33],[9,7],[22,-39],[37,-24],[16,-3],[27,20],[10,-18],[33,19],[10,-48],[44,-32],[34,13],[21,-28],[17,-46],[15,-11],[26,-42],[-2,-56],[8,-14],[73,2],[11,-15],[0,-34],[28,-51],[31,18],[8,21],[36,-3],[14,20],[26,-15],[28,28],[18,5],[31,65],[34,-7],[20,14],[31,-3],[-
 3,48],[6,48],[-16,22],[-5,34],[18,36],[5,62],[7,5],[0,75],[56,-12],[56,-28],[10,-12],[7,23],[37,9],[-6,35],[-20,38],[7,50],[34,11],[7,26],[0,37],[11,40],[22,59],[1,29],[18,15],[38,-7],[27,49],[31,-14],[7,-30],[24,-39],[32,-35],[-9,-78],[16,-19],[21,-2],[68,-38],[16,-29],[29,-15],[-7,-37],[7,-25],[-10,-67],[-9,-9],[-6,-79],[-22,-56],[10,-16],[5,-40],[-5,-55],[11,-67],[-18,-39],[7,-27],[-20,-29],[7,-28],[-9,-14],[6,-27],[-20,-79],[-19,-19],[-20,-4],[-13,-52],[24,-24],[17,-49],[8,-69],[-5,-31],[-13,3],[-52,-76],[-23,-29],[16,-18],[9,-27],[16,-23],[-3,-50],[-28,-19],[-19,-80],[-26,-30],[7,-6],[18,-59],[1,-80],[19,-45],[0,-37],[21,-17],[23,18],[52,8],[6,10],[19,-18],[78,-108],[6,-20],[-15,-36],[9,-74],[-9,-44],[3,-18],[-15,-31],[-5,-43],[7,-18],[-12,-54],[3,-25],[-28,-12],[-13,-55],[-37,31],[-6,20],[-35,49],[-21,-13],[-22,-27],[-79,53],[-25,0],[-8,-34],[-22,-33],[-28,43],[-28,-27],[-41,24],[3,37],[-15,31],[-4,25],[-34,17],[-8,17],[-35,-33],[-19,30],[-9,57],[5,26],[32,84],[-41,81],[-2,41]
 ,[-35,-32],[-18,-63],[-20,18],[-30,10],[-1,15],[-21,-12],[-44,-43],[-24,-7],[-51,-51],[-19,2],[-39,23],[-7,-30],[6,-19],[-9,-39],[10,-20],[0,-34],[-10,-27],[-37,-14],[15,-39],[-15,-32],[-10,-3],[-12,-51],[-13,-23],[-32,-12],[0,-43],[14,-14],[-4,-18],[7,-32],[-3,-46],[-20,-18],[4,-30],[12,-21],[-9,-31],[6,-38],[-9,-40],[21,-31],[3,-57],[-14,-17],[-14,-54],[9,-24],[29,-4],[6,-54],[16,-18],[19,13],[12,-10],[1,-27],[24,9],[22,-5],[16,35],[19,-10],[5,15],[25,15],[25,-17],[13,-27],[5,-49],[26,15],[13,-41],[-10,-21],[6,-65],[-18,-27],[-19,9],[-25,-23],[-18,-27],[-1,-28],[6,-58],[-44,-45],[1,-40],[-7,-55],[23,-60],[6,-33],[50,-46],[-1,-20],[16,-27],[16,-5],[5,-39],[19,-19],[3,-56],[13,-12],[16,-52],[-3,-18],[-50,-79],[-10,-46],[-30,-27],[-20,-9],[-31,8],[-13,14],[-33,-7],[-19,-15],[-19,-40],[-28,38],[-34,21],[21,30],[0,30],[14,35],[-16,96],[-23,13],[-28,33],[-52,18],[-28,19],[-7,62],[17,29],[-10,19],[8,32],[-46,47],[12,58],[22,45],[-6,46],[-19,-4],[-47,58],[-21,50],[6,24],[-13,3],[-40,-24],
 [-6,-35],[-13,-10],[-9,25],[-10,-5],[-23,52],[-20,-22],[-31,-17],[-4,-22],[-28,-36],[-8,12],[-72,-23],[-12,-30],[-19,-28],[-19,-8],[-15,-23],[-38,-18],[-15,-30],[-17,3],[-28,42],[-33,34],[-16,-5],[-28,-50],[12,-40],[-18,-28],[-3,-30],[18,-8],[-3,-50],[-13,-18],[-6,-67],[-30,-12],[-26,11],[-33,46],[-22,-30],[-32,-27],[0,-11],[-34,-21],[-22,12],[-13,-6],[-20,35],[-25,6],[-13,-12],[-29,6],[-56,52],[-12,-18],[-28,35],[-43,86],[-16,48],[-7,75],[-19,24],[-14,44],[-28,10],[-4,16],[-37,15],[-6,47],[16,25],[-17,119],[-15,35],[3,88],[7,34],[-4,100],[13,32],[-7,55],[-28,-4],[-3,24],[26,2],[5,122],[-65,-58],[-19,-53],[0,-57],[-24,-46],[-35,10],[-16,19],[-12,45],[-16,6],[-22,52],[10,50],[-25,27],[-15,-27],[-35,-4],[-3,11],[-59,-13],[-13,-16],[-50,-26],[-6,-44],[-10,-20],[7,-20],[-7,-49],[10,-41],[-28,-55],[-40,-23],[3,-67],[30,-42],[5,-21],[21,-1],[16,-28],[5,-65],[-12,-33],[6,-30],[13,-14],[-13,-35],[-3,-58],[15,-49],[29,-12],[0,-31],[9,-26],[-15,-31],[9,-50],[-5,-58],[-19,-11],[-7,-26],[7,-63]
 ,[-26,-35],[-9,-40],[-19,-17],[-5,-49],[-11,-11],[3,-28],[-9,-72],[3,-38],[-6,-38],[-21,5],[-35,-24],[4,-26],[-9,-48],[-8,-18],[-28,-14],[-15,-74],[6,-31],[-6,-45],[-28,-48],[-25,12],[-24,-12]],[[7101,1781],[-13,3],[-41,50],[-9,39],[-25,54],[-21,28],[-50,35],[-11,39],[-11,67],[-10,-9],[-9,21],[12,11],[0,109],[-10,39],[-21,28],[-13,41],[-9,68],[15,14],[31,87],[-25,53],[10,36],[-6,20],[6,26],[26,39],[15,1],[12,77],[3,44],[-13,67],[-8,12],[19,57],[-13,31],[28,33],[-28,91],[-10,63],[10,26],[7,60],[-23,50],[1,24],[-26,23],[-28,-19],[-15,1],[-19,21],[0,34],[-13,9],[-6,43],[-31,47],[-2,56],[-14,69],[11,26],[-8,51],[13,39],[3,52],[19,47],[3,36],[15,7],[-6,32],[-15,12],[-3,39],[-15,-4],[-23,18],[-28,41],[-19,1],[-25,-16],[-24,-31],[-23,-1],[-6,40],[7,38],[-12,59],[-13,12],[-3,-40],[-19,-31],[-44,20],[-21,-20],[-14,-35],[8,-41],[17,-28],[0,-27],[-25,-42],[-34,-29],[-21,-7],[-9,-19],[-28,-7],[-42,-50],[-28,8],[-2,33],[-64,-44],[-86,53],[-24,11],[-16,-21],[-33,19],[-24,-26],[-27,13],[-16,29],[-
 43,-3]],[[2809,2521],[2,96],[-8,46],[25,21],[-8,16],[-22,-16],[-14,30],[-11,60],[-25,-3],[2,30],[29,91],[5,67],[-25,65],[-14,22],[6,36],[12,0]],[[2763,3082],[28,-7],[21,15],[7,47],[15,12],[-14,17],[11,43],[-14,61],[-1,44],[26,6],[-8,34],[20,11],[15,66],[2,58],[-7,83],[-19,42],[0,37]],[[2845,3651],[45,38],[22,62],[30,53],[37,-26],[22,12],[9,39],[19,14],[-13,43],[7,91],[-13,16],[3,75],[30,11],[6,15],[-19,65],[54,3],[20,-44],[5,-37],[4,28],[41,58],[-18,-3],[7,59],[9,38],[-8,27],[11,15],[-2,47],[-18,0],[-13,33],[-35,-2],[6,68],[-45,21],[-47,4],[-24,51],[4,67],[12,32],[-1,62],[-22,44],[-5,26],[30,52],[-7,47],[8,17],[14,67],[20,31],[-1,56],[19,11],[4,19],[-15,36],[-36,36],[-11,26],[20,17],[7,33],[35,-23],[-17,-14],[9,-17],[15,6],[10,-16],[24,20],[22,49],[-2,29],[-14,34],[3,56],[-14,14],[-45,21],[-31,-10],[-35,11],[-20,-3],[-17,-19],[-26,19],[-13,20],[-37,16],[-19,-11],[-14,28],[-12,-3],[-14,-30],[-11,23],[-28,4],[-10,-17],[-17,7],[26,17],[19,27],[-3,38]],[[2781,5480],[0,1]],[[2781,5481],[
 0,3]],[[2781,5484],[0,37],[11,32],[-19,41]],[[2773,5594],[14,13],[-6,90],[-14,-3]],[[2767,5694],[-8,22]],[[2759,5716],[39,17],[0,22],[18,16],[29,50],[-1,12],[-28,32],[2,24],[-12,40],[-16,-10],[-11,12],[-10,-23],[-97,-78],[-140,-49],[-75,4],[-39,15]],[[2418,5800],[-33,133],[19,55],[0,70],[13,27],[27,31],[30,12],[24,27],[25,45],[-10,35]],[[2513,6235],[0,1]],[[2513,6236],[-14,48],[23,28],[0,21],[-24,53],[-41,18],[-36,47],[-26,-28],[-11,44],[36,62],[-25,12],[-6,-14],[-39,1],[-22,-25],[-30,-14],[-78,-19],[-26,-18],[-14,19],[-31,-44],[-108,-93],[13,89],[20,28],[17,116],[-16,41],[-42,132]],[[2033,6740],[23,42],[16,-100],[9,-20],[47,34],[14,23],[39,37],[19,30],[6,47],[24,14],[9,-34],[31,4],[14,-34],[19,9],[19,52],[4,32],[59,12],[16,33],[14,56],[23,69],[22,24],[-2,41],[7,14],[43,24],[11,-12],[8,-42],[17,0],[16,31],[18,-7],[38,16],[23,-10],[33,23]],[[2672,7148],[-12,31],[-14,9],[12,68],[42,26],[3,59],[-9,15],[8,27],[77,6],[11,-6],[0,-27],[50,-5],[22,-15],[42,10],[31,-16],[35,8],[54,23],[8,19]
 ,[42,57]],[[3074,7437],[14,-1],[42,21],[28,28],[13,-9],[46,-3],[35,-28],[40,8],[24,-4]],[[3316,7449],[14,-4]],[[3330,7445],[6,-1]],[[3336,7444],[1,0]],[[3337,7444],[0,-1]],[[3337,7443],[36,-1]],[[3373,7442],[0,-1]],[[3373,7441],[8,-10]],[[3381,7431],[0,-1]],[[3381,7430],[28,-7]],[[3409,7423],[45,35],[15,21],[62,31],[16,13]],[[3547,7523],[-21,-31],[-4,-51],[-16,-21],[-14,-39],[-41,-9],[-61,-43],[-21,-40],[-21,-57],[-54,-9],[-30,-33],[-22,-13],[8,-55],[-28,-19],[-12,-19],[-61,-43],[-27,-36],[-11,7],[-37,-17],[31,-133],[24,16],[31,-45],[26,-97],[-21,-9],[6,-24],[35,16],[21,-4],[12,15],[5,31],[26,17],[3,44],[10,10],[12,-31],[17,19],[1,33],[56,6],[-7,-26],[17,-69],[13,5],[23,-14],[-14,-22],[5,-12],[-31,-45],[-23,-16],[-29,26],[-32,-30],[0,-33],[-20,-5],[-19,-36],[9,-22],[22,-9],[-6,-17],[-30,-25]],[[3247,6509],[-36,-18],[-8,11]],[[3203,6502],[-1,0]],[[3202,6502],[-20,-2],[-7,33],[-35,-25],[-2,-25],[9,-21]],[[3147,6462],[19,-67],[17,-32],[48,17],[15,19],[9,-10],[23,16],[6,-26]],[[3284,637
 9],[-6,-21],[3,-56],[11,-28],[41,17]],[[3333,6291],[8,3]],[[3341,6294],[9,1],[17,38],[-28,86],[-1,25],[64,42],[30,30],[20,37],[0,16],[21,65],[14,14],[-20,54],[30,24],[27,-17],[23,36],[13,2],[7,-25],[18,5],[14,-44]],[[3599,6683],[10,-41],[14,26],[12,-6],[35,14],[46,-11],[11,8],[10,-24]],[[3737,6649],[15,7],[0,57],[17,35],[28,0],[11,72],[-11,2],[4,39],[-26,51],[-34,4],[10,25],[-12,46],[4,18],[-20,20],[11,10],[-7,22],[-32,-18],[-14,14],[-5,23],[-46,60],[4,45],[-9,59],[-29,50],[88,27],[56,2],[48,35],[20,2],[14,22],[35,-35],[27,-64],[5,13],[21,-35],[0,-17],[16,-33],[27,-12],[27,6],[17,43],[21,5],[3,-31],[22,-27],[26,51],[16,8],[4,-23],[16,-9],[22,21]],[[4127,7239],[8,-12],[3,-40],[-7,-37]],[[4131,7150],[14,-41]],[[4145,7109],[13,-24]],[[4158,7085],[-2,-60]],[[4156,7025],[2,0]],[[4158,7025],[7,-11]],[[4165,7014],[3,-8]],[[4168,7006],[23,-80],[13,-21],[0,-29],[29,-46]],[[4233,6830],[2,1]],[[4235,6831],[21,-55],[-9,-24]],[[4247,6752],[-1,0]],[[4246,6752],[0,-1]],[[4246,6751],[-7,-29],[4,-46
 ],[11,-33]],[[4254,6643],[18,-47],[-9,-46],[-40,-37],[1,-47],[14,-10],[-2,-61],[12,-9],[4,-37]],[[4252,6349],[-7,-87],[-13,-32],[5,-17],[-17,-42],[1,-19],[19,-43],[14,-1],[5,-36],[19,-16],[3,-30],[15,-31],[-8,-26],[11,-34],[51,20],[17,-30],[36,8],[15,-12],[-17,-47],[9,-66],[-17,-18],[1,-40],[-27,-38],[-1,-56],[-21,-20],[-15,-62],[-16,-10],[-23,10],[-50,-43],[-16,-58],[29,-19],[5,-37],[-21,-70]],[[4238,5347],[-29,-20],[-7,-25],[3,-51],[15,-6],[11,-26],[-4,-70],[21,-67],[41,-30],[59,-55],[53,-74],[16,-48],[1,-23],[27,-23],[13,-36],[27,-22],[23,33],[21,8],[27,26],[29,11],[36,-15]],[[4621,4834],[29,-3],[20,11],[18,-13],[28,8],[1,-16],[26,-52],[20,0],[39,-37],[39,-58],[26,26]],[[4867,4700],[20,28],[14,0],[34,26],[14,-12],[26,8],[27,-40],[30,3],[11,39],[45,-29],[21,-47],[32,-5],[50,56],[11,21],[48,62],[57,14],[20,25]],[[5327,4849],[18,-11],[11,-28],[20,-11],[9,-32]],[[5385,4767],[3,-30],[44,44],[13,-17],[31,10],[22,-11],[3,-35]],[[5501,4728],[-3,-32],[-16,-20],[10,-29],[-6,-53],[20,-32],[
 -5,-10],[0,-67],[15,-22]],[[5516,4463],[-3,-41],[6,-16],[-5,-53],[-26,-17],[-57,9],[-5,16],[-28,11],[-3,-96],[23,-40],[5,-66]],[[5423,4170],[-25,6],[-16,-46],[-27,-59],[-15,2],[-6,-26],[3,-74],[-19,-62],[4,-43],[-6,-35],[9,-19],[-28,-55],[1,-11],[-34,-43],[-40,-7],[-12,-38],[-18,-31],[-37,-18],[-19,-35],[-34,-12],[-11,-21],[-35,-16],[-22,3],[-91,-22],[-23,-13],[-13,18],[-1,37],[-54,1],[-51,26],[-27,48],[-28,6],[-18,16],[-23,5],[-16,17],[-32,-22],[-17,23],[-23,4],[-21,24],[-39,8],[-25,-23],[-20,-4],[-22,-53],[-12,3],[-23,-19],[-15,-28],[1,-18],[22,-56],[-5,-39],[-37,-43],[-23,0],[-19,-24],[-5,-24],[-36,-38],[-11,-24],[-28,-19],[-60,-26],[-45,-3],[-13,7],[-36,-40],[-6,-19],[-60,-42],[-24,-33],[-20,-44],[-26,-18],[-13,-20],[-63,-68],[-22,-7],[-14,-32],[-15,-4],[-23,27],[-11,27],[-128,82],[-20,19],[-18,-36],[-17,-4],[-5,-59],[-21,-19],[4,-28],[-10,-23],[-33,28]],[[3602,2962],[-41,-23],[-15,5],[-47,-18],[-12,-49],[59,-56],[-32,-26],[-7,-34],[-24,-13],[-43,6],[-11,-28],[-38,9],[0,32],[-13
 ,35],[-13,-9],[-9,-27],[-14,-2],[-26,19],[-39,18],[-11,-23],[-25,-1],[-33,-25],[-6,4],[-47,-59],[-11,-22],[-23,-18],[-22,-32],[-65,-31],[-18,-2],[-17,38],[2,39],[9,24],[-5,58],[-26,-44],[-17,3],[-63,-44],[-6,-65],[5,-40],[-36,-49],[-33,-4],[-20,13]],[[2806,5518],[36,26],[1,44],[-38,-26],[1,-44]],[[3811,6716],[-8,-44],[33,-4],[10,47],[-18,24],[-17,-23]],[[5374,3157],[-39,-1],[-28,-33],[-3,-19],[-59,-85],[-22,-6],[-18,9],[-19,-58],[-22,-30],[15,-19],[33,-10],[16,-44],[-6,-25],[9,-8],[-13,-51],[-47,-37],[-15,-31],[-28,12],[-24,-29],[11,-45],[-6,-29],[-22,2],[-7,-29],[-33,-3],[-24,-30],[3,-40],[-21,-32],[-7,-53],[-29,-37],[-10,6],[-34,-30],[-42,-8],[-28,26],[-20,2],[-21,-37],[-17,-13],[-17,-58],[-17,-5],[-12,-32],[-31,-34],[1,-23],[-12,-18],[18,-24],[26,-7],[3,-14],[19,1],[3,-43],[18,-24],[10,-32],[33,-18],[10,-74],[18,-42],[5,-60],[26,-42],[1,-30],[-17,-17],[-14,-40],[-3,-45],[12,-45],[-19,-51],[-51,-15],[-18,-24],[-4,-69],[-11,-24],[-61,-32],[-25,2],[-27,-20],[-30,-10],[-17,3],[-14,-5
 5],[-1,-42],[-15,-37],[4,-56],[24,-97],[-22,-19],[-28,-45],[13,-33],[-14,-29],[3,-34],[-25,1],[-15,-61],[-11,-20],[-23,15],[-48,-17],[-29,7],[-27,-9],[-53,6],[-10,-42],[-8,-6],[-14,-45],[-32,-23],[4,-54],[-13,-29],[3,-45],[-13,-7],[-5,-54],[19,-49],[-8,-31],[-21,-22],[-11,22],[-49,4],[-10,14],[-29,11],[-44,-48],[-28,50],[-17,8],[-22,41],[-48,18],[-11,-44],[-17,-20],[0,-20],[-32,-3],[-30,54],[5,70],[-25,33],[-39,9],[-10,45],[-28,52],[-18,3],[-38,-33],[-41,11],[-23,-14],[-53,8],[-12,20],[2,22],[-15,41],[-63,-12],[-11,-46],[10,-67],[-7,-28],[-46,3],[-10,21],[-19,-16],[-23,18],[-7,-25],[-40,-25],[-14,-34],[7,-46],[-6,-11],[-29,6],[-6,-16],[-26,-4],[-28,-66],[-25,-33],[-29,-17],[-14,13],[-23,-59],[-19,-14],[-37,37],[-14,-2],[-11,38],[-25,20],[-26,-21],[-31,3],[-4,25],[-34,3],[-15,24],[-19,-27],[-20,-79],[-13,-4],[-37,-61],[-16,27],[-23,-16],[-16,11],[-31,-16],[0,-25],[-22,-19],[-19,-49],[7,-37],[-22,-23],[-27,25],[-9,-2],[-28,41],[6,24],[-25,17],[-42,-33],[-7,-29],[-30,-38],[-39,2],[-19,
 62],[7,20],[-41,71],[0,26],[-28,26],[1,47],[-25,31],[-20,37],[-6,44],[-13,34],[7,46],[-6,41],[-32,14],[-28,53],[3,21],[30,30],[-25,41],[-4,52],[-11,18],[-21,-6],[-26,27],[-6,72],[-22,30],[-11,30],[-8,-5],[-19,58],[-9,49],[-13,-4],[-21,32],[7,36],[-29,7],[-31,-56],[-2,-18],[-31,-11],[-11,-30],[-25,14],[-17,29],[17,92],[25,25],[-6,28],[8,15],[-20,63],[24,47],[0,48],[14,49],[-20,8],[-18,-12],[-77,23],[-12,24],[-24,2],[-36,-15],[-16,36],[-21,-4],[-8,62],[-9,28],[3,47],[30,55],[16,39],[-19,110],[15,53],[25,44],[3,51],[19,8],[14,32],[6,37],[27,19],[19,72],[-3,37],[12,44],[-14,45],[-28,-1],[-23,43],[-13,8],[4,25],[-11,30],[-42,44],[-14,-3],[-9,66],[-25,-2],[-12,61],[-10,12],[-8,42],[2,29],[20,27],[23,1],[26,46],[9,35],[-10,15],[7,41],[36,165]],[[1926,3020],[115,-225],[20,-23],[8,-27],[1,-39],[-12,-45],[30,-77],[17,-12],[33,5],[26,-48],[3,-72],[16,-100],[19,-19],[29,-44],[9,-73],[22,-45],[28,-41],[3,-38],[16,-42],[14,-21],[0,-37],[12,-21],[8,-78],[22,-23],[22,-54],[12,-9],[63,57],[23,-3],[2
 8,13],[17,30],[34,33],[22,52],[10,63],[34,3],[20,26],[11,48],[21,16],[32,67],[21,9],[-5,61],[23,32],[-16,30],[0,43],[72,129]],[[5423,4170],[16,-3],[6,-19],[-3,-63],[5,-40],[-2,-59],[-12,-59],[-13,-16],[5,-25],[-9,-53],[9,-42],[16,-32],[14,-55],[3,-46],[9,-38],[43,-38],[23,-11],[15,11],[28,-39]],[[5576,3543],[-37,-84],[-19,-17],[-19,-63],[-18,8],[-36,-23],[-40,-1],[-18,10],[6,-49],[-19,-47],[15,-38],[-10,-6],[-13,-40],[6,-36]],[[1926,3020],[-306,142],[-359,16],[-208,-201],[-201,-55],[-183,-214],[-26,-84]],[[643,2624],[-71,57],[-20,6],[-5,23],[-23,0],[-15,22],[-13,-10],[-5,-38],[32,-27]],[[523,2657],[17,-6],[-3,-24],[86,-69]],[[623,2558],[-30,-93]],[[593,2465],[-48,-138],[-61,54],[-38,23],[-28,29],[-31,65]],[[387,2498],[30,78],[-4,26],[26,22],[20,35],[2,36],[26,46],[-21,63],[-23,-4],[-33,57],[-48,57],[-14,-3],[-19,50],[-74,39],[23,60],[1,19],[25,43],[-2,33],[-21,32],[5,19],[-8,41],[54,77],[35,143],[58,106],[11,-17],[23,46],[-10,13],[17,29],[-99,160],[25,37],[11,30],[77,99],[39,28],[2,
 22],[38,41],[17,39],[7,-4],[26,46],[19,17],[11,31],[71,98],[10,40],[29,42],[34,17],[62,60],[35,17],[24,24],[18,41],[25,5],[-3,32],[33,2],[16,40],[-8,22],[15,25],[65,29],[33,41],[-3,20],[31,36],[-1,24],[16,50],[-53,66],[-7,54],[21,17],[-1,42],[8,43],[38,93]],[[1147,5170],[14,-17],[33,-7],[91,48],[32,51],[29,30],[19,5],[23,25],[38,26],[25,-3],[35,26],[27,-2],[41,87],[4,23],[47,49],[115,77],[6,-25],[-15,-77],[-1,-49],[8,-3],[43,-55],[-5,-52],[3,-28],[-14,-55],[15,20],[34,-8],[53,-90]],[[1847,5166],[-83,-126],[79,-137],[11,13],[7,-18],[-19,-28],[10,-3],[32,-53],[14,13],[46,-65],[16,9],[14,32],[9,-12],[14,27],[21,19],[20,-42]],[[2038,4795],[25,-17]],[[2063,4778],[7,2]],[[2070,4780],[25,2],[29,33],[7,-20],[14,25],[8,60],[13,9],[11,39],[-24,18]],[[2153,4946],[0,1]],[[2153,4947],[-20,-34],[-14,17],[12,30],[-11,64],[5,45],[28,70],[24,26],[-14,31],[-25,33],[-36,-23],[-10,19],[39,22],[5,-12],[20,21],[-22,47],[-9,-10],[-23,23],[-66,133]],[[2036,5449],[67,79]],[[2103,5528],[70,-125]],[[2173,5403
 ],[-3,-17]],[[2170,5386],[-4,-20]],[[2166,5366],[0,-1]],[[2166,5365],[3,-1]],[[2169,5364],[1,0]],[[2170,5364],[11,-2]],[[2181,5362],[0,1]],[[2181,5363],[39,-73]],[[2220,5290],[31,-65],[11,10],[-25,72],[35,28],[32,-70],[-21,-38],[-5,-27],[8,-12],[-7,-34],[8,-28],[16,-11],[-6,-44],[14,-23],[-16,-42],[-47,24],[-14,-40],[0,-38],[19,-51],[-22,-39],[2,-30],[-16,-24],[-14,9],[-26,-45],[-1,-28],[-24,-49],[-13,14],[-14,-27],[5,-20],[20,-12],[24,16],[23,-45],[-13,-61],[-42,-66],[-31,-37],[-22,-50],[-6,-44],[-19,-20],[-17,-33],[-10,12],[-13,-23],[3,-25],[16,-15],[-16,-42],[9,-9],[-9,-23],[-11,8],[-13,-24],[-25,19],[-8,19],[-21,-11],[-32,-65],[-17,16],[-18,-12],[11,-13],[-16,-64],[12,-23],[4,-97],[-5,-42],[-8,-4],[6,-44],[-4,-33]],[[1882,3815],[-10,-48],[17,-2],[23,23],[2,31],[14,-9],[7,-32],[25,-12],[17,37],[13,5],[37,-32],[20,-63],[11,11],[11,-26],[6,19]],[[2075,3717],[24,24],[9,-46],[-30,-15],[-42,-74],[-12,-28],[-6,-34],[-14,52],[-28,-16],[-39,-2],[2,28]],[[1939,3606],[-2,-8]],[[1937,3598],
 [0,-1]],[[1937,3597],[-2,-2]],[[1935,3595],[-7,-17]],[[1928,3578],[-2,-1]],[[1926,3577],[-5,-25]],[[1921,3552],[0,-1]],[[1921,3551],[0,1]],[[1921,3551],[-9,-25]],[[1912,3526],[-2,-6]],[[1910,3520],[-1,-1]],[[1909,3519],[-2,-2]],[[1907,3517],[14,-46],[14,-23],[14,1],[4,-34],[12,-32],[21,-27],[34,0],[7,35],[34,56],[34,41]],[[2095,3488],[-3,-62],[11,27],[36,-14],[42,-49],[39,3],[41,-54],[7,-63],[11,-17],[-6,-15],[2,-56],[23,-41],[6,-22],[-20,-53],[26,8],[16,18],[35,19],[10,74],[36,65],[59,71],[15,-14],[12,13],[50,-10],[22,40],[28,19],[29,49],[17,82],[10,18],[21,-8],[54,58],[25,39],[16,-22],[15,-44],[32,71],[33,33]],[[491,2618],[-2,10]],[[489,2628],[7,16],[16,-17],[5,11],[-19,28],[-20,-41],[13,-7]],[[1777,4563],[17,-34],[11,-44],[18,16],[27,62],[7,74],[-28,19],[-8,-29],[-44,-64]],[[1984,4541],[39,-24],[13,21],[-3,23],[35,84],[-11,30],[-25,33],[-15,-1],[3,22],[-25,46],[0,-22],[-17,-42],[-27,-34],[-5,-19]],[[1946,4658],[2,-9],[-27,-51],[-1,-14]],[[1920,4584],[-37,-16],[-10,8],[-12,-36],[9
 ,-13],[42,10],[14,26],[31,8],[27,-30]],[[5576,3543],[11,24],[50,14],[31,20],[0,23],[-12,40],[-3,34],[17,44],[-2,29],[14,47],[27,24]],[[5709,3842],[31,-29],[45,17],[17,-34],[20,-18],[44,9],[9,17],[27,-9],[9,-54],[26,-5],[31,22],[22,40],[26,15]],[[7101,1781],[-4,-37],[-18,-10],[-32,-38],[-28,-94],[-19,0],[-28,-42],[-22,-7],[-37,-35],[19,-82],[18,-59],[0,-29],[-21,-44],[-1,-54],[-9,-15],[-28,-10],[-25,7],[-24,-17],[-23,-31],[-25,-15],[1,-27],[-18,-38],[0,-52],[31,-51],[5,-80],[10,-36],[-13,-20],[-25,-10],[-6,-38],[-29,-1],[3,-29],[-16,-23],[11,-18],[44,-28],[9,-57],[-12,-29],[24,-31],[-6,-44],[23,-10],[28,5],[15,-34],[24,3],[-2,-23],[21,-29],[19,6],[1,-62],[23,16],[4,-27],[-16,-26],[-8,-34],[-23,-47],[-24,-5],[-14,-61],[5,-43],[-35,-69],[6,-25],[-19,-79],[-15,8],[-10,-21],[-56,25],[9,58],[-23,19],[-20,-9],[-9,-24],[-28,21],[2,13],[-29,20],[-39,-30],[-6,-23],[-22,2],[-15,-16],[4,59],[45,104],[22,23],[-6,16],[-11,-16],[-8,15],[-4,71],[-24,61],[3,46],[-21,60],[-16,-1],[-25,45],[-8,26],[8,
 50],[0,66],[-7,21],[-34,-13],[-25,21],[-55,82],[-1,20],[-25,31],[-31,-1],[-9,15],[-48,3],[-14,-13],[15,96],[28,70],[30,18],[19,46],[3,37],[12,10],[-17,14],[15,24],[21,-14],[23,67],[-7,71],[-10,0],[-36,42],[-37,65],[-20,20],[-14,-33],[-38,-5],[-59,53],[-32,87],[-40,-61],[-21,-67],[-39,23],[-24,0],[-13,40],[-21,-6],[-29,18],[-22,49],[-49,-1],[-29,-6],[-8,57],[-38,50],[16,34],[2,31],[-28,3],[0,22],[-22,4],[-13,16],[-8,60],[-12,34],[-22,12],[-3,29],[-28,26],[-14,61],[-5,45],[-23,16],[-25,-2],[-40,38],[-33,5],[-20,12],[-11,60],[-44,20],[-4,25],[12,33],[17,18],[-16,56],[-34,64],[-14,52],[28,30],[2,55],[6,25],[21,7],[4,30],[21,32],[-3,70],[-6,32],[19,43],[-7,27],[-2,60],[-13,38],[22,45],[-17,33],[11,46],[-23,41],[-3,28],[7,17],[-6,29],[18,49],[-9,31],[-22,24],[-14,42],[-17,3],[-73,-36],[-27,-31],[-18,2]],[[6691,726],[17,-5],[2,107],[-23,4],[-17,-98],[21,-8]],[[7244,5549],[9,54],[-7,38],[-25,23],[-6,25],[0,51],[20,21],[-7,35],[7,66],[-4,69],[9,29],[-16,53],[1,33],[-16,43],[-16,13],[-19,33],
 [-23,8]],[[7151,6143],[-17,-1],[-47,-47],[-12,15],[-12,-12],[-28,16],[-41,45],[32,42],[34,14],[28,41],[19,73]],[[7107,6329],[-6,61],[3,31],[-9,34],[6,134],[-92,23],[-25,14],[-46,3],[-103,-18],[-30,43],[-102,166],[-8,5]],[[6695,6825],[-31,37],[-23,12],[-21,-25],[-18,4],[-11,101],[17,-6],[6,64],[13,10],[-19,23],[-25,-7],[-28,9],[-203,-55],[-28,-1],[-25,12],[-34,45]],[[6265,7048],[-28,100]],[[6237,7148],[15,34],[30,14]],[[6282,7196],[23,11],[22,-22],[30,20],[9,-32],[11,-5],[28,22]],[[6405,7190],[0,23],[31,5]],[[6436,7218],[0,1]],[[6436,7219],[44,20],[0,-12],[61,33],[17,45],[-7,11]],[[6551,7316],[13,21],[-20,48]],[[6544,7385],[-11,15],[33,20],[17,63],[39,13],[20,63],[-16,38],[4,56],[-14,9],[3,38],[-16,34],[-17,-4],[-19,91],[-17,20]],[[6550,7841],[24,29],[5,25],[20,-3],[18,68],[-7,23],[9,36],[26,3],[10,60],[-7,26],[19,20],[-3,15],[33,-4]],[[6697,8139],[0,1]],[[6697,8140],[0,-1]],[[6697,8140],[19,38],[12,-23],[42,38],[24,-5],[8,17],[-26,31],[-19,6]],[[6757,8242],[-31,16],[3,47],[-43,24],[
 6,18],[-19,28],[19,46],[17,-8],[33,21],[13,18],[18,-19]],[[6773,8433],[12,-22],[19,18]],[[6804,8429],[38,23],[16,-62],[24,12],[22,-2]],[[6904,8400],[16,-24],[15,23],[37,3],[28,17],[22,84],[18,-48],[16,15],[3,-30],[10,7],[25,-18],[18,-1],[7,-43]],[[7119,8385],[0,-1]],[[7119,8384],[4,-2]],[[7123,8382],[14,23],[31,-2],[0,-11],[26,-3],[15,-29],[23,2],[36,25],[4,19],[40,-28],[19,22],[28,48],[-7,46],[-19,-13],[-3,36],[7,29],[-19,26],[-2,-17],[-23,-29],[-38,0],[-11,16],[22,19],[6,34],[41,19],[5,11]],[[7318,8625],[20,-20],[-1,27],[22,22]],[[7359,8654],[0,1]],[[7359,8655],[4,-14],[23,1]],[[7386,8642],[19,-41],[22,-7],[-2,-22]],[[7425,8572],[0,1]],[[7425,8573],[-1,0]],[[7424,8573],[-22,-59],[31,-12],[0,12],[41,-26]],[[7474,8488],[-13,-30],[10,-7],[-10,-30],[28,14],[26,-56],[15,12],[13,81],[15,18],[18,-6],[7,27],[26,30],[137,207]],[[7746,8748],[27,-51],[37,-5],[41,10],[26,-164],[8,-56],[32,-40],[37,-111],[21,4],[2,33],[11,-1],[20,-55],[14,-9],[60,-9],[12,-26],[-25,-44],[-5,-46],[12,-48],[6,-67
 ],[21,-58],[25,-21],[3,-55],[-18,-45],[-38,-29],[-49,-8],[-41,-75],[-12,-35],[-19,-130],[-13,-37],[-37,-40],[-22,-36],[-9,-60],[-10,-29],[-31,-40],[-2,-44],[-22,-108],[-31,-87],[-9,-66],[-20,-80],[-8,-81],[14,-87],[16,-58],[20,-45],[18,-103],[12,-99],[-7,-76],[-52,-71],[-35,-33],[-6,-28],[9,-50]],[[8004,8207],[26,12],[0,22],[-42,27]],[[7988,8268],[-47,47],[-33,14]],[[7908,8329],[-26,0]],[[7882,8329],[-9,9],[-25,-11],[-6,29],[-25,-5],[-13,-34],[10,-39],[-49,-27]],[[7765,8251],[-7,-16],[-46,-31]],[[7712,8204],[-7,-3]],[[7705,8201],[-7,-1]],[[7698,8200],[-55,-43],[-13,16],[-19,1],[-6,-21]],[[7605,8153],[4,-30]],[[7609,8123],[-3,-56],[-23,-38],[-47,-28],[-16,1],[-14,22],[-23,9]],[[7483,8033],[0,1]],[[7483,8034],[-9,-1]],[[7474,8033],[-10,-15],[-25,-8],[-40,-22],[-19,8]],[[7380,7996],[-15,-14],[-44,-17],[-12,5]],[[7309,7970],[-63,22],[-21,-2],[-51,-27]],[[7174,7963],[-6,-46]],[[7168,7917],[-15,3],[-5,-27]],[[7148,7893],[-1,-3]],[[7147,7890],[3,-43],[-25,-53],[-38,-3]],[[7087,7791],[10,-4
 4],[18,12],[-11,-45]],[[7104,7714],[17,-31]],[[7121,7683],[10,0]],[[7131,7683],[0,1]],[[7131,7684],[3,-1]],[[7134,7683],[13,7]],[[7147,7690],[13,4],[18,-42]],[[7178,7652],[3,-16],[-37,-32],[-7,-26],[11,-59],[-1,-43],[16,-35],[-16,-42],[-21,-30],[5,-14]],[[7131,7355],[53,-49],[31,4],[23,-13],[21,27],[15,3],[22,-17],[28,-39],[23,12]],[[7347,7283],[0,-1]],[[7347,7282],[0,-21],[24,-38],[54,11]],[[7425,7234],[18,-25],[31,-5],[37,-44],[47,23],[13,31],[18,17],[16,-1],[25,19],[28,48],[22,19],[25,39],[16,54],[9,10],[12,86],[10,27],[-7,28],[12,36],[7,76],[0,70]],[[7764,7742],[-10,80],[7,58],[4,76],[8,24]],[[7773,7980],[1,0]],[[7774,7980],[72,30],[14,-33]],[[7860,7977],[13,16]],[[7873,7993],[0,1]],[[7873,7994],[1,1]],[[7874,7995],[58,67]],[[7932,8062],[41,24]],[[7973,8086],[-1,12],[-28,24],[-2,20]],[[7942,8142],[55,49],[7,16]],[[7668,8427],[27,29],[-21,29],[-38,27],[0,-46],[35,-20],[-3,-19]],[[6265,7048],[-32,12],[-111,-57],[-69,-61],[-11,12],[-8,-25]],[[6034,6929],[-15,-7],[-28,-63],[3,-50],[
 20,-26],[2,-27]],[[6016,6756],[-38,-21],[-28,5],[-3,49],[-39,-8],[-8,13],[-34,8],[9,28],[-16,44],[-12,56],[-20,32],[-15,-20],[-5,40],[-19,16],[-14,-8],[2,35],[-50,7],[-14,17],[-17,-9],[-29,3]],[[5666,7043],[-3,-22]],[[5663,7021],[-7,4]],[[5656,7025],[-5,0]],[[5651,7025],[0,1]],[[5651,7026],[-4,0]],[[5647,7026],[-24,3],[0,-17],[-23,-22],[-21,0],[-18,-18],[-38,29],[-12,-5],[-10,26],[-19,7],[-15,26],[-41,-10]],[[5426,7045],[-9,15],[-4,73],[-14,36]],[[5399,7169],[-16,30],[3,36],[-9,18],[1,45],[-13,19],[-14,62],[8,4]],[[5359,7383],[5,-6]],[[5364,7377],[49,23],[23,34],[9,59],[36,57],[11,50],[-44,-41],[-10,10],[-30,-14],[-7,19],[8,43]],[[5409,7617],[-20,23],[-8,25],[12,43],[-7,39],[3,35],[-16,2],[-12,51],[3,68],[-31,7],[-6,20],[-29,-4],[-8,17],[47,21],[-7,24],[23,48],[-10,38],[-26,10],[2,17]],[[5319,8101],[14,-2],[-3,79],[6,26]],[[5336,8204],[-13,27],[-13,0],[-12,56],[17,4],[-5,52],[-22,-4],[-1,50],[-10,34],[6,64],[28,5],[13,25],[2,48],[11,17],[13,-18],[12,38]],[[5362,8602],[12,4],[-6,24],
 [12,18]],[[5380,8648],[4,9]],[[5384,8657],[19,12],[-7,32],[9,66],[15,13]],[[5420,8780],[30,-1],[36,26],[15,-2],[34,31],[12,-5],[20,27],[-13,28],[-15,-14],[-31,-5],[-14,20],[1,22],[-10,48],[26,9],[20,34],[2,23],[31,-3],[31,16],[-1,32],[17,-2],[0,53],[51,-14],[-2,-23],[43,-9],[10,-38],[15,2],[7,-31],[-13,-6],[-7,-52]],[[5715,8946],[-15,-26],[-21,-10],[-23,-28],[-2,-59],[25,-5],[-6,-17]],[[5673,8801],[0,-1]],[[5673,8800],[25,-90],[15,11],[12,33],[12,69],[14,6],[-5,40],[11,44],[24,16],[4,49]],[[5785,8978],[17,28],[3,28],[-14,38],[-9,95],[16,19],[7,29],[16,-17],[1,-25],[-23,-19],[8,-17],[34,18],[14,46],[-17,44],[-29,29],[-4,23]],[[5805,9297],[14,50],[13,-18],[18,31],[-6,53],[44,11],[39,-38]],[[5927,9386],[13,-4]],[[5940,9382],[0,-51],[17,-14],[2,-47],[22,-63],[24,-11],[22,-28],[12,12],[13,-16],[10,10],[38,-3]],[[6100,9171],[15,-4]],[[6115,9167],[12,3],[28,42],[18,-6],[20,32],[5,52],[36,-2],[0,-63],[23,-12]],[[6257,9213],[20,-9],[7,-38],[-16,-56],[-15,-10],[3,-29],[-13,-38],[-7,-2],[-4,-6
 4],[-30,11],[3,25],[-34,32],[-35,16]],[[6136,9051],[-5,-8],[-22,27],[0,-47],[-12,-6],[3,-37],[14,-24],[1,-36],[41,0],[84,-43],[3,-58],[21,-7],[31,17],[17,-10],[1,-30],[25,-8],[-27,-33],[-22,-7],[10,-49]],[[6299,8692],[0,-1]],[[6299,8691],[16,-33],[3,-34],[33,-10],[29,1],[24,-16],[17,1]],[[6421,8600],[19,-7],[2,-104],[-9,-22],[0,-62],[9,-19],[-13,-8]],[[6429,8378],[-12,-7],[-4,-31]],[[6413,8340],[-1,0]],[[6412,8340],[2,-28],[16,-4],[11,-49],[29,-59]],[[6470,8200],[-6,-4]],[[6464,8196],[-7,-14],[19,-38],[26,-7]],[[6502,8137],[2,1]],[[6504,8138],[-2,-1]],[[6504,8138],[17,2],[-4,-19],[-43,11],[-2,-23]],[[6472,8109],[8,-85],[-19,-52],[27,-11]],[[6488,7961],[0,-1]],[[6488,7960],[11,-1],[15,-29],[35,-38],[-7,-33],[8,-18]],[[2103,5528],[71,138]],[[2174,5666],[80,-144]],[[2254,5522],[7,-5]],[[2261,5517],[21,0],[19,-26],[-14,-44],[34,-59]],[[2321,5388],[29,-46],[-35,-49],[28,-30],[21,39],[11,-21],[24,-4],[8,-15],[-11,-40],[19,-22],[-22,-40],[5,-25],[23,-5],[14,41],[11,6]],[[2446,5177],[19,54]
 ,[19,33],[-21,31],[0,21],[39,55],[-11,2]],[[2491,5373],[20,5]],[[2511,5378],[16,-23],[28,48],[-19,6]],[[2536,5409],[-9,7]],[[2527,5416],[-5,26],[-66,150],[7,17],[-6,118],[11,28],[-25,33],[-25,11]],[[2418,5799],[0,1]],[[2585,5437],[6,-37],[33,35],[0,59],[-44,-16],[5,-41]],[[4158,7085],[1,3]],[[4159,7088],[34,-12]],[[4193,7076],[24,20],[68,32],[28,4],[24,-30],[27,-10],[61,91],[-22,58],[-6,35],[15,23],[38,-12],[29,8],[18,28],[21,-36],[1,-26],[25,-48],[0,-12]],[[4544,7201],[0,-11]],[[4544,7190],[-2,-40]],[[4542,7150],[0,-14],[32,-10],[71,23],[-14,44],[21,-3]],[[4652,7190],[6,2]],[[4658,7192],[42,40],[24,-16],[14,-37],[7,-39],[36,-14],[13,17]],[[4794,7143],[-1,0]],[[4793,7143],[1,0]],[[4794,7143],[9,10]],[[4803,7153],[64,16],[21,18],[11,-18],[-8,-47],[-44,-6],[14,-18],[-3,-22],[28,-20]],[[4886,7056],[5,-28],[21,3],[27,21]],[[4939,7052],[15,-3],[-5,21],[10,86],[26,26],[19,107],[16,-3]],[[5020,7286],[1,0]],[[5021,7286],[26,43],[4,25],[19,5],[5,-23],[20,6],[4,-14]],[[5099,7328],[29,-4],[29,
 -48]],[[5157,7276],[-4,-6]],[[5153,7270],[0,-1]],[[5153,7269],[-6,-15],[6,-44],[33,-60],[11,-101],[9,-16],[-3,-32],[17,-24]],[[5220,6977],[6,-61],[22,-61],[-2,-41],[12,-26],[8,-43],[24,-39],[9,-54],[27,-14],[3,-19],[31,3],[33,-11],[15,16]],[[5408,6627],[10,-50],[-5,-24],[8,-17],[36,14],[32,30]],[[5489,6580],[12,-88]],[[5501,6492],[2,0]],[[5503,6492],[54,66],[29,-62],[-1,-69]],[[5585,6427],[-37,30],[-3,26],[-23,-3],[-19,12]],[[5501,6492],[-31,-14]],[[5470,6478],[-3,-5]],[[5467,6473],[-3,-13]],[[5464,6460],[-29,-17],[-32,-57],[4,-34],[-12,-37],[-35,-42],[4,-46],[19,-9],[67,31],[13,-8]],[[5463,6241],[0,-1]],[[5463,6240],[22,-15],[41,-60],[11,-4],[30,-47],[37,-67],[30,-16],[-5,-76],[-22,-27],[-40,-22],[-31,-2]],[[5536,5904],[1,64],[-90,38],[-5,-96],[-25,0],[-39,13],[-23,-13],[-4,97],[-34,11],[-73,-157],[-34,52],[-16,-8],[-35,1],[-15,-19],[-24,17],[-27,0],[-21,-19],[-25,-43],[-14,29],[-21,4],[-21,-56],[23,-42]],[[5014,5777],[0,-16],[-59,-16],[-32,23],[-49,-36],[-32,-37],[8,-38],[25,-51],
 [-17,-32],[-46,-54],[-28,-66],[-26,-86],[-10,43],[5,35],[-30,18],[-20,-30],[-6,-34],[-28,-19],[-6,-40],[10,-70],[-12,-34],[-2,-42],[-12,0],[-7,-47],[-23,-27],[-7,-38],[10,-36],[39,-105],[-1,-28],[-19,-19],[2,-32],[-20,-29]],[[4127,7239],[19,14],[22,43],[2,28],[16,41],[19,80],[27,28],[34,-1],[19,41],[-3,41],[25,61],[24,-29],[62,-7],[1,-77],[61,32],[31,48],[31,20],[-3,43],[17,23],[-3,35],[30,44],[15,89],[-11,63],[-36,-2],[-6,57],[-55,34],[-17,30],[-24,14],[52,39],[-14,94],[-13,16],[-1,39],[-14,14],[-24,-37]],[[4410,8197],[2,18],[-20,25],[-19,-9],[15,116],[-29,-18],[-62,17],[-1,37],[-11,20],[-12,50],[-22,11],[-18,24],[2,48],[-27,-17],[-3,38],[-23,41],[-12,-12],[-29,5],[1,-64],[-10,-36],[-32,-51],[-14,-34],[-20,11],[1,-19],[-17,6],[3,35],[-10,52],[5,25],[-54,29],[-35,0],[-24,12],[-18,26]],[[3917,8583],[-3,3]],[[3914,8586],[-16,11]],[[3898,8597],[-16,21]],[[3882,8618],[14,12],[67,13],[16,22],[54,23],[27,21],[16,39],[18,22],[15,88],[30,1],[9,-19],[20,-5],[35,29],[49,5],[15,-7],[24,-32],[1
 8,-58],[-8,-37],[2,-36],[21,-38],[31,-2],[22,-15],[13,7],[7,44],[22,20],[29,-13],[50,7],[50,-31],[54,27],[25,34],[21,13],[33,-36],[31,20],[9,33],[1,39],[10,27],[16,15],[43,-2],[7,32],[22,31],[26,-11],[17,11],[11,27],[28,26],[10,42],[13,23],[25,11],[24,-17],[9,-54],[8,-9],[24,40],[47,10],[9,-27],[27,12],[18,-3],[26,-26],[-5,-63],[10,-29],[25,-21],[20,-41],[16,-18],[49,-2],[48,-12],[22,-13],[30,59],[24,-13],[39,-33]],[[5399,7169],[-8,-56],[-18,-28],[-6,-33],[12,-44],[4,-74],[8,-33],[-11,-62],[5,-30],[21,-17],[8,-49],[-7,-43],[6,-37],[-5,-36]],[[5501,4728],[27,29],[23,-5],[25,8],[19,17],[-6,42],[-22,42],[5,46],[-18,-16],[-19,26],[18,-6],[23,28],[-12,39],[12,37],[2,39],[10,41],[28,21],[10,29],[-19,41],[-12,-5],[-32,21],[-10,-12]],[[5553,5190],[-6,1]],[[5547,5191],[-6,30],[7,34],[-10,38],[26,37],[-11,55],[-14,21],[-22,3],[14,33],[35,19],[12,51],[26,2],[10,-22],[36,29],[1,14],[25,4],[22,15],[12,30],[-7,36],[29,0],[-6,121],[43,99],[-9,36]],[[5760,5876],[25,18],[31,-16],[15,-16],[-4,-59],[5
 ,-34],[3,-83],[42,3],[34,-14]],[[5911,5675],[5,-1]],[[5916,5674],[8,0]],[[5924,5674],[31,-13]],[[5955,5661],[20,-10]],[[5975,5651],[53,15],[18,-72],[-9,-20],[7,-29],[18,-30],[22,9],[22,50],[31,19],[62,49],[16,-41],[22,-14],[18,28],[31,30],[43,-50],[-5,-61],[19,-59],[24,29],[6,-23],[-3,-88],[12,-28],[17,32],[0,15],[28,3],[28,38],[18,3],[16,27],[16,5]],[[6505,5488],[55,56]],[[6560,5544],[19,-69],[20,-38],[11,-53],[-3,-63],[-30,-23],[-19,-29],[-37,-27],[-19,0],[-25,-55],[-51,-40],[7,-36],[15,-28],[-9,-82]],[[5940,9382],[21,15],[25,39],[36,-29],[22,7]],[[6044,9414],[22,11]],[[6066,9425],[51,-9],[29,-19],[43,-50],[25,-7]],[[6214,9340],[14,16],[26,-1],[33,-16],[18,-20],[7,-31],[28,-18],[-19,-39],[28,-14],[15,31],[22,-7]],[[6386,9241],[18,-3],[31,-30],[66,39],[29,7],[18,27],[32,21],[40,51],[68,54],[16,5],[79,-28],[65,-7],[28,-10],[28,-36],[53,-24],[21,18],[16,-9],[28,-54],[12,-3],[23,18],[34,-9],[68,9],[47,14],[25,-14],[387,-295],[18,-22],[110,-212]],[[5760,5876],[-62,-54],[-50,0],[-50,-18
 ],[-68,38],[6,62]],[[5585,6427],[63,-50],[40,11],[7,10]],[[5695,6398],[42,0],[10,-63]],[[5747,6335],[50,28],[12,25],[26,4],[9,15],[56,-7],[16,13],[0,19],[31,77],[27,6]],[[5974,6515],[-2,5]],[[5972,6520],[0,7]],[[5972,6527],[0,4]],[[5972,6531],[0,1]],[[5972,6532],[0,-1]],[[5972,6532],[9,10]],[[5981,6542],[5,7]],[[5986,6549],[6,12]],[[5992,6561],[8,26]],[[6000,6587],[0,1]],[[6000,6588],[3,6]],[[6003,6594],[-3,50],[8,24],[23,33],[-7,53],[-8,2]],[[6695,6825],[-25,-49],[-53,-137],[0,-49]],[[6617,6590],[-6,-26],[16,-19],[-5,-48],[4,-24],[-24,-19],[-11,-49],[45,-20],[-30,-52],[1,-28],[-18,-39],[-9,-64],[-17,-16]],[[6563,6186],[-8,-19],[-31,-28],[-17,8],[-30,-15],[6,-49],[-17,-10],[-1,-24],[35,-17],[2,-41],[12,-28],[28,-32],[24,-63],[-17,-10],[30,-76],[22,-20],[35,-17],[-19,-24],[-3,-37],[-12,-43],[18,-61],[-18,-4],[-42,-32]],[[2033,6740],[-8,-1]],[[2025,6739],[-32,9],[-5,21],[50,45],[9,26],[14,1],[-1,26],[14,47],[59,72],[6,17],[31,20],[7,30],[32,22],[2,27],[28,26],[-20,55],[12,40],[0,34],[
 -23,91],[15,24],[32,-2],[29,10],[0,16],[44,-4],[15,30],[14,6],[14,56],[-14,53],[47,12],[33,0],[23,37],[-5,20],[16,28],[-26,19],[7,19],[-6,50],[-15,15],[-18,-5],[-1,32],[-31,4],[-17,13],[-10,-25],[-25,-22],[-26,1],[-21,-16],[-90,-9],[-19,-17],[-48,23],[-50,-35],[0,27],[13,45],[-3,30],[26,36],[37,33],[-6,48],[13,4],[5,31],[-10,8],[55,7],[7,47],[-3,90],[56,21],[10,47],[23,11],[14,-7],[31,31],[-9,12],[6,54],[-19,-4],[4,22],[-15,28],[5,54],[-5,32],[30,32],[53,23],[27,-35],[15,5],[17,-17],[19,1],[25,-15],[13,-19],[35,34],[39,-2],[31,37],[27,-4],[29,-28],[14,-28],[18,-6],[35,7],[38,17],[4,-15],[-26,-20],[-30,-100],[2,-35],[-19,-88],[50,-21],[7,-18],[21,1],[42,22],[18,-7],[12,-27],[0,-24],[15,-10],[1,-31],[20,20],[31,13],[37,40],[11,-8],[22,27],[45,0],[8,6]],[[3046,8115],[-1,-38]],[[3045,8077],[29,-14],[12,-29],[27,-29],[-1,-16],[41,-5]],[[3153,7984],[16,-8],[11,-47],[14,1],[8,-32],[31,-11],[6,-51],[-9,-20],[48,-6],[8,7]],[[3286,7817],[51,-52],[41,4],[17,-8],[28,12],[50,0],[-4,-36],[38,-24]
 ,[4,-20],[-10,-30],[5,-14],[29,-12]],[[3535,7637],[-6,-21],[-33,-33],[-14,-59],[8,-8],[57,7]],[[2036,5449],[-189,-283]],[[1147,5170],[11,198],[-15,53],[-31,78],[-15,27],[-7,36],[30,26],[31,48],[36,85],[44,67],[18,-43],[42,31],[30,6],[78,44],[44,47],[54,-2],[34,31],[15,25],[40,120],[40,41],[22,12],[22,-2],[33,54],[17,20],[-16,7],[-44,67],[19,15],[18,68],[14,25],[62,19],[7,36],[-13,49],[16,5],[9,22],[29,30],[24,4],[46,39],[20,7],[5,25],[14,-1],[28,53],[23,20],[7,22],[19,10],[18,45]],[[2418,5799],[-82,36],[-162,-169]],[[3547,7523],[24,10],[7,24],[-28,68],[-15,12]],[[3286,7817],[12,43],[0,65],[15,-12],[-1,20],[16,-13],[44,-1]],[[3372,7919],[1,-48],[29,-31],[21,-4],[23,26],[16,-8],[27,84],[-13,34],[51,14],[61,-2],[5,11]],[[3593,7995],[0,1]],[[3593,7996],[-18,17],[-8,32],[3,55],[21,-10],[5,-31],[25,20],[21,-8],[30,8],[1,63],[21,89],[-13,20],[-34,18],[8,24],[-2,71],[21,-2],[21,-20],[31,-11],[32,24],[-15,22],[7,20],[30,6],[3,-48],[70,-34],[22,-56],[-12,-19]],[[3863,8246],[-10,-26]],[[3853,8
 220],[-6,-27]],[[3847,8193],[-22,-28],[-8,-55],[8,-26],[-14,-81],[-35,-38],[-14,-5],[-53,5],[10,-121],[-4,-27],[14,-1],[5,-67],[127,27],[53,-19],[14,-54],[20,-41],[25,-33],[25,-2],[7,-19],[53,1],[9,85],[16,33],[37,3],[25,23],[14,37],[48,37],[13,-4],[24,34]],[[4244,7857],[-3,3]],[[4241,7860],[-20,35],[27,26],[4,27],[15,6],[23,-32],[19,-11],[38,25]],[[4347,7936],[20,23],[-4,19],[34,24],[24,27],[-24,46],[-9,62],[26,50],[-4,10]],[[3153,7984],[27,-1],[39,-13],[31,-1],[14,17],[19,-8],[25,8],[16,74],[-14,43],[-24,44],[-30,-14],[-6,11]],[[3250,8144],[14,37],[6,32],[33,13]],[[3303,8226],[2,-18],[22,-46],[25,22],[27,9],[36,21],[30,-4],[14,11],[28,1],[-7,64],[20,50],[-1,36],[-9,32],[-26,-3],[-20,30]],[[3444,8431],[-3,33],[-22,35],[-3,25],[17,-33],[12,12],[27,-8],[17,64],[-10,24],[-17,9],[-18,-29],[-18,-3],[-7,59],[15,24],[28,8],[25,40],[13,6],[39,45]],[[3539,8742],[21,-36],[-13,-25],[-5,-40],[19,7],[49,-19],[-10,-45],[14,-26],[2,-41],[10,-2],[39,98],[11,10]],[[3676,8623],[8,-5],[3,50],[-13,45]
 ,[35,14]],[[3709,8727],[13,-12],[18,-51],[22,-13],[16,-40],[15,-20],[22,-9],[33,3],[34,33]],[[5014,5777],[33,5],[22,31],[34,-6],[37,-15],[25,9]],[[5165,5801],[20,-7],[8,-35],[-10,-67],[9,-18],[-25,-30],[-22,-62],[28,-21],[20,-26],[12,-1],[49,26],[7,-12],[-6,-43],[10,-35],[-12,-26],[3,-79],[-21,-64],[14,-84],[-14,-73],[18,-69],[-2,-28],[-28,-33],[59,-117],[28,-20],[17,-28]],[[5547,5191],[-74,-11],[-15,-15],[-25,12],[-3,60],[-10,27],[-15,-23],[-17,-5],[-30,-51],[-7,10],[-14,-44],[6,71],[15,21],[-9,40],[-14,3],[-10,-36],[-12,-1],[-6,-25],[21,-14],[1,-125],[15,-65],[-7,-28],[31,-20],[-7,-43],[26,-41],[11,1],[14,-25],[26,-7],[12,-40],[3,-34],[-21,20],[-47,-36]],[[593,2465],[65,-51],[-2,-28],[9,-33],[-33,-42],[0,-29],[11,-15],[15,-54],[25,-39],[-4,-14],[16,-22],[39,33],[19,48],[3,-31],[20,-14],[13,7],[-9,-25],[11,-38],[-35,-94],[-41,-49],[-22,-7],[-42,-43],[-35,6],[-32,-36],[-5,-18],[-25,-17],[-14,-41],[-28,-26],[5,-59],[-30,-40],[-14,-6],[-60,-48],[-12,-28],[-19,-7],[-15,12],[-51,9],[-14
 ,41],[-37,-15],[-51,14],[-16,-56],[-21,-16],[-39,31],[-32,-4],[-21,13],[-27,-9],[-12,-47],[-44,-19],[-2,17],[20,22],[-2,41],[37,105],[7,40],[13,-13],[13,49],[-9,34],[-59,47],[22,27],[-8,21],[13,42],[9,11],[30,-11],[-6,34],[27,-8],[24,53],[29,10],[17,27],[28,-37],[31,67],[25,-19],[38,29],[29,-50],[17,12],[35,55],[-13,63],[-19,36],[9,9],[-23,33],[-2,31],[44,69],[-7,21],[5,46],[13,26]],[[5805,9297],[1,17],[-19,3],[-8,-29],[-16,-4],[-19,-25],[-28,18],[-3,24],[-20,-3],[-31,-23],[4,-41],[-32,17],[17,-53],[-6,-20],[-22,-5],[-16,12],[-44,-4],[1,-24],[-23,9],[-6,27],[-15,2],[9,-25],[-16,-28],[-15,46],[8,38],[-21,-17],[-27,5],[-19,18],[-28,47],[-24,-3],[-15,39],[8,24],[25,26],[-20,52],[-16,18],[27,62],[19,6],[41,60],[21,-3],[4,39],[-11,4],[-6,36],[14,24],[3,38],[19,15],[16,58],[32,44],[13,-12],[33,28],[21,-28],[13,38],[13,0],[44,34],[22,-33],[30,19],[-5,40],[-28,15],[3,64],[9,16],[10,-12],[6,-32],[27,16],[11,-20],[11,19],[34,-5],[17,-32],[-13,-39],[8,-45],[10,-4],[-8,-49],[26,-47],[45,78],[-1
 0,3],[4,37],[-10,29],[7,54],[17,13],[7,-20],[-6,-24],[54,-39],[2,-32],[12,-19],[-11,-15],[12,-61],[13,-13],[26,41],[14,9],[30,-15],[4,-22],[26,-29],[-4,-28],[-34,-5],[-19,-36],[-6,-43],[15,-43],[35,-16],[-16,-104],[4,-24]],[[6044,9414],[0,21],[-14,7],[1,27],[-12,47],[-13,20],[-34,-34],[-7,19],[-22,-8],[-15,12],[4,-28],[15,-14],[8,-37],[-18,-23],[-21,-9],[11,-28]],[[8004,8207],[-31,-7],[-22,-14],[-49,1]],[[7902,8187],[-6,19]],[[7896,8206],[-19,-24]],[[7877,8182],[11,-25],[16,0],[6,-23],[-11,-15]],[[7899,8119],[0,-2]],[[7899,8117],[24,0]],[[7923,8117],[3,-4]],[[7926,8113],[6,1]],[[7932,8114],[0,-52]],[[7873,7993],[0,1]],[[7873,7994],[-16,30]],[[7857,8024],[-12,26],[18,9]],[[7863,8059],[47,-9]],[[7910,8050],[6,43],[-21,1],[-22,16],[-3,36],[-35,23],[-3,-30],[-28,-22],[10,-55]],[[7814,8062],[-4,-16],[-34,-26],[-3,-40]],[[7764,7742],[-35,12],[-17,-16],[-29,-5],[-46,50],[-14,-2],[-21,72],[-15,-16]],[[7587,7837],[-23,4],[-30,49],[-16,-5],[-28,18],[3,26],[-13,-13],[-31,3],[-18,-11],[18,-23],
 [-3,-33],[19,-69],[-29,-16]],[[7436,7767],[-18,-20]],[[7418,7747],[0,-1]],[[7418,7746],[6,-31],[-28,-22],[-9,-50],[-37,-29],[6,-22]],[[7356,7592],[6,-23]],[[7362,7569],[3,-73],[-10,-42],[25,-53],[20,-64],[3,-34],[22,-69]],[[2527,5416],[-16,-38]],[[3539,8742],[10,25],[-6,16],[21,26],[39,-11],[10,73],[34,-25],[0,-36],[30,-5],[24,29],[33,73],[48,-25],[17,0],[18,20],[-25,-44],[19,-23],[7,-44],[11,-7],[-7,-35],[-5,29],[-24,-38],[-4,10],[-25,-7],[-23,-23],[-26,20],[-6,-13]],[[6214,9340],[-6,21],[13,63],[22,8],[-9,16],[-19,3],[0,28],[-62,19],[6,57],[19,18],[9,29],[31,0],[-6,37],[21,20],[10,-51],[-13,-19],[16,-3],[13,-31],[15,-3],[-13,-21],[10,-9],[16,14],[31,-12],[6,-39],[40,12],[21,-43],[-3,-13],[-27,-8],[2,28],[-25,-5],[14,-24],[-16,-59],[24,-5],[26,-49],[6,-78]],[[3303,8226],[24,54],[-17,5],[-43,46],[-17,-11],[19,65],[12,23],[46,-49],[13,3],[18,-42],[36,7],[14,32],[18,12],[-3,14],[22,17],[-1,29]],[[3164,8075],[47,17],[0,16],[39,36]],[[3153,7984],[11,91]],[[5715,8946],[26,-20],[16,4],[3,
 19],[25,29]],[[643,2624],[-20,-66]],[[3046,8115],[28,5],[11,-24],[23,-11],[30,1],[26,-11]]],"transform":{"scale":[0.07580043358136189,-0.048004800480048],"translate":[101.03573230998126,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-country.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-country.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-country.json
deleted file mode 100644
index dac91d9..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-country.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"country":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":"CH","properties":{"name":"Schweiz"},"arcs":[[[0],[1],[2]]]}]}},"arcs":[[[7830,7356],[0,-35],[-22,-108],[-31,-87],[-9,-66],[-20,-80],[-8,-81],[14,-87],[16,-58],[20,-45],[18,-103],[12,-99],[-7,-76],[-52,-71],[-35,-33],[-6,-28],[9,-50],[14,24],[8,-35],[12,36],[19,-11],[26,16],[9,17],[50,27],[31,-37],[9,-45],[41,26],[13,-2],[21,23],[32,20],[24,-36],[34,-10],[19,13],[6,31],[31,-6],[50,22],[0,-17],[35,-31],[22,7],[-1,-28],[22,-20],[60,-10],[6,-21],[62,13],[31,-20],[27,-28],[11,-25],[40,-21],[13,-25],[19,-8],[5,13],[25,8],[15,34],[36,-8],[6,-23],[-17,-21],[4,-30],[35,-27],[9,-60],[-16,-18],[0,-23],[-21,-45],[-7,-45],[19,-30],[-4,-113],[41,-13],[29,-33],[9,7],[22,-39],[37,-24],[16,-3],[27,20],[12,-17],[31,18],[10,-48],[18,-18],[35,-16],[25,15],[21,-28],[17,-46],[18,-30],[23,-23],[-2,-56],[8,-14],[73,2],[11,-15],[0,-34],[28,-51],[31,18],[8,21],[36,-3],[14,20],[26,-15],[28,28],[18,5
 ],[31,65],[34,-7],[20,14],[31,-3],[-3,48],[6,48],[-16,22],[-5,34],[18,36],[5,62],[7,5],[0,75],[56,-12],[56,-28],[10,-12],[7,23],[37,9],[-6,35],[-20,38],[7,50],[34,11],[7,26],[0,37],[30,90],[4,31],[18,21],[38,-6],[27,49],[31,-14],[7,-30],[24,-39],[32,-35],[-9,-78],[16,-19],[19,0],[70,-40],[20,-33],[25,-11],[-7,-37],[7,-25],[-10,-67],[-9,-9],[-6,-79],[-22,-56],[10,-16],[5,-40],[-5,-55],[11,-67],[-18,-39],[7,-27],[-20,-29],[7,-28],[-9,-14],[6,-27],[-20,-79],[-19,-19],[-20,-4],[-13,-52],[24,-24],[17,-49],[8,-69],[-5,-31],[-13,3],[-52,-76],[-23,-29],[16,-18],[9,-27],[16,-23],[-3,-50],[-28,-19],[-19,-80],[-26,-30],[7,-6],[18,-59],[1,-80],[19,-45],[0,-37],[21,-17],[23,18],[52,8],[6,10],[19,-18],[78,-108],[6,-20],[-15,-36],[9,-74],[-9,-44],[3,-18],[-15,-31],[-5,-43],[8,-28],[-13,-45],[3,-24],[-28,-12],[-13,-55],[-37,31],[-6,20],[-35,49],[-21,-13],[-22,-27],[-79,53],[-25,0],[-8,-34],[-22,-33],[-28,43],[-28,-27],[-41,24],[3,37],[-15,31],[-4,25],[-53,31],[-19,-29],[-20,13],[-13,73],[5,26],[32,
 84],[-41,81],[-2,41],[-35,-32],[-18,-63],[-20,18],[-30,10],[-1,15],[-21,-12],[-44,-43],[-24,-7],[-32,-37],[-21,-14],[-17,2],[-39,23],[-7,-30],[6,-19],[-9,-39],[10,-20],[0,-34],[-10,-27],[-37,-14],[15,-39],[-15,-32],[-10,-3],[-12,-51],[-13,-23],[-32,-12],[0,-43],[14,-14],[-4,-18],[7,-32],[-3,-46],[-20,-18],[4,-30],[12,-21],[-9,-31],[6,-38],[-9,-40],[21,-31],[3,-57],[-14,-17],[-14,-54],[9,-24],[29,-4],[6,-54],[16,-18],[19,13],[12,-10],[1,-27],[24,9],[22,-5],[16,35],[19,-10],[5,15],[25,15],[25,-19],[13,-25],[5,-49],[26,15],[13,-41],[-10,-21],[6,-65],[-18,-27],[-19,9],[-15,-9],[-28,-41],[-1,-28],[7,-51],[-45,-52],[1,-40],[-7,-55],[23,-60],[6,-33],[50,-46],[0,-26],[31,-26],[5,-39],[19,-19],[3,-56],[13,-12],[16,-52],[-3,-18],[-50,-79],[-10,-46],[-30,-27],[-20,-9],[-31,8],[-13,14],[-33,-7],[-19,-15],[-19,-40],[-28,38],[-34,21],[21,30],[0,30],[14,35],[-16,96],[-23,13],[-28,33],[-52,18],[-28,19],[-7,62],[17,29],[-10,19],[8,32],[-46,47],[12,58],[22,45],[-6,46],[-19,-4],[-47,58],[-21,50],[6,24
 ],[-13,3],[-40,-24],[-6,-35],[-13,-10],[-9,25],[-10,-5],[-23,52],[-20,-22],[-31,-17],[-4,-22],[-28,-36],[-8,12],[-72,-23],[-12,-30],[-19,-28],[-19,-8],[-13,-21],[-40,-20],[-15,-30],[-17,3],[-28,42],[-33,34],[-16,-5],[-28,-50],[12,-40],[-18,-28],[-3,-30],[18,-8],[-3,-50],[-13,-24],[-6,-61],[-30,-12],[-26,11],[-33,46],[-22,-30],[-32,-27],[0,-11],[-34,-21],[-35,6],[-20,35],[-25,6],[-13,-12],[-32,8],[-12,19],[-41,31],[-12,-18],[-28,35],[-43,86],[-16,48],[-7,75],[-19,24],[-9,40],[-33,14],[-4,16],[-37,15],[-6,47],[16,25],[-17,119],[-15,35],[3,88],[7,34],[-4,100],[13,32],[-7,55],[-28,-4],[-3,24],[26,2],[5,122],[-65,-58],[-19,-53],[0,-57],[-24,-46],[-35,10],[-16,19],[-12,45],[-16,6],[-22,52],[10,50],[-25,27],[-15,-27],[-35,-4],[-3,11],[-59,-13],[-13,-16],[-50,-26],[-6,-44],[-10,-20],[7,-20],[-7,-49],[10,-41],[-28,-55],[-40,-23],[3,-67],[30,-42],[5,-21],[21,-1],[16,-28],[5,-65],[-12,-33],[6,-30],[13,-14],[-13,-35],[-2,-39],[14,-68],[29,-12],[0,-31],[9,-26],[-15,-31],[9,-50],[-5,-58],[-19,-11
 ],[-7,-26],[7,-63],[-26,-35],[-9,-40],[-21,-20],[2,-27],[-16,-30],[3,-28],[-9,-72],[3,-38],[-6,-38],[-21,5],[-35,-24],[4,-26],[-9,-48],[-8,-18],[-28,-14],[-15,-74],[6,-31],[-6,-45],[-28,-48],[-25,12],[-24,-12],[-4,-37],[-18,-10],[-32,-38],[-28,-94],[-19,0],[-28,-42],[-22,-7],[-37,-35],[19,-82],[18,-59],[0,-29],[-21,-44],[-1,-54],[-9,-15],[-28,-10],[-25,7],[-24,-17],[-23,-31],[-25,-15],[1,-27],[-18,-38],[0,-52],[31,-51],[5,-80],[10,-36],[-13,-20],[-25,-10],[-6,-38],[-29,-1],[3,-30],[-16,-22],[11,-18],[44,-28],[9,-57],[-12,-29],[24,-31],[-6,-44],[23,-10],[28,5],[15,-34],[24,3],[-2,-23],[21,-29],[19,6],[1,-62],[23,16],[4,-27],[-16,-26],[-8,-34],[-23,-47],[-24,-5],[-14,-61],[5,-43],[-35,-69],[6,-25],[-19,-79],[-15,8],[-10,-21],[-56,25],[9,58],[-23,19],[-20,-9],[-9,-24],[-28,21],[2,13],[-29,20],[-39,-30],[-6,-23],[-22,2],[-15,-16],[4,59],[45,104],[22,23],[-6,16],[-11,-16],[-8,15],[-4,71],[-24,61],[3,46],[-21,60],[-16,-1],[-25,45],[-8,26],[8,50],[0,66],[-7,21],[-34,-13],[-25,21],[-55,82],
 [-1,20],[-25,31],[-31,-1],[-9,15],[-48,3],[-14,-13],[15,96],[28,70],[30,18],[19,46],[3,37],[12,10],[-17,14],[15,24],[21,-14],[23,67],[-7,71],[-10,0],[-36,42],[-37,65],[-20,20],[-14,-33],[-38,-5],[-59,53],[-32,87],[-40,-61],[-21,-67],[-39,23],[-24,0],[-12,36],[-22,-2],[-29,18],[-22,49],[-49,-1],[-29,-6],[-8,57],[-38,50],[16,34],[2,31],[-28,3],[0,22],[-22,4],[-13,16],[-8,60],[-12,34],[-22,12],[-1,28],[-30,27],[-14,61],[-5,45],[-23,16],[-25,-2],[-40,38],[-33,5],[-20,12],[-11,60],[-44,20],[-4,25],[12,33],[17,18],[-16,56],[-34,64],[-14,52],[28,30],[2,55],[6,25],[21,7],[4,30],[21,32],[-3,70],[-6,32],[19,43],[-7,27],[-2,60],[-13,38],[22,45],[-17,33],[11,46],[-23,41],[-3,28],[7,17],[-6,29],[18,49],[-9,31],[-22,24],[-14,42],[-17,3],[-73,-36],[-50,-35],[-16,12],[-18,-7],[-28,-33],[-3,-19],[-59,-85],[-22,-6],[-18,9],[-19,-58],[-21,-34],[14,-15],[33,-10],[16,-44],[3,-33],[-13,-51],[-47,-37],[-15,-31],[-28,12],[-24,-29],[11,-45],[-6,-29],[-22,2],[-7,-29],[-33,-3],[-24,-30],[3,-40],[-21,-32],[-7,
 -53],[-29,-37],[-10,6],[-34,-30],[-42,-8],[-28,26],[-20,2],[-21,-37],[-17,-13],[-17,-58],[-17,-5],[-12,-32],[-31,-34],[1,-23],[-12,-18],[18,-24],[26,-7],[3,-14],[19,1],[3,-43],[18,-24],[10,-32],[33,-18],[10,-74],[18,-42],[5,-60],[26,-42],[1,-30],[-17,-17],[-14,-40],[-3,-45],[12,-45],[-19,-51],[-51,-15],[-18,-24],[-4,-69],[-11,-24],[-61,-32],[-25,2],[-27,-20],[-30,-10],[-17,3],[-14,-55],[-1,-42],[-15,-37],[4,-56],[24,-97],[-22,-19],[-28,-45],[13,-33],[-14,-29],[3,-34],[-25,1],[-15,-61],[-11,-20],[-23,15],[-48,-17],[-29,7],[-27,-9],[-53,6],[-10,-42],[-8,-6],[-14,-45],[-32,-23],[4,-54],[-13,-29],[3,-45],[-13,-7],[-5,-54],[19,-49],[-8,-31],[-21,-22],[-11,22],[-49,4],[-10,14],[-29,11],[-44,-48],[-28,50],[-17,8],[-22,41],[-48,18],[-11,-44],[-17,-20],[0,-20],[-32,-3],[-30,54],[5,70],[-25,33],[-39,9],[-10,45],[-28,52],[-18,3],[-38,-33],[-41,11],[-24,-14],[-52,8],[-12,20],[2,22],[-15,41],[-63,-12],[-12,-45],[11,-68],[-7,-28],[-46,3],[-10,21],[-19,-16],[-23,18],[-7,-25],[-40,-25],[-14,-34],[7
 ,-46],[-6,-11],[-29,6],[-6,-16],[-26,-4],[-28,-66],[-25,-33],[-29,-17],[-14,13],[-23,-59],[-19,-14],[-37,37],[-14,-2],[-11,38],[-25,20],[-26,-21],[-31,3],[-4,25],[-34,3],[-15,24],[-19,-27],[-20,-79],[-13,-4],[-37,-61],[-16,27],[-23,-16],[-16,11],[-31,-16],[0,-25],[-22,-19],[-19,-49],[7,-37],[-22,-23],[-27,25],[-9,-2],[-28,41],[6,24],[-25,17],[-42,-33],[-1,-16],[-36,-51],[-39,2],[-19,62],[7,20],[-41,71],[0,26],[-28,26],[1,47],[-25,31],[-20,37],[-6,44],[-13,34],[7,46],[-6,41],[-32,14],[-28,53],[3,21],[30,30],[-25,41],[-4,52],[-11,18],[-21,-6],[-26,27],[-6,72],[-22,30],[-11,30],[-8,-5],[-19,58],[-9,49],[-13,-4],[-21,32],[7,36],[-29,7],[-31,-56],[-2,-18],[-31,-11],[-11,-30],[-25,14],[-17,29],[17,92],[25,25],[-6,28],[8,15],[-20,63],[24,47],[0,48],[14,49],[-20,8],[-18,-12],[-77,23],[-12,24],[-24,2],[-36,-15],[-16,36],[-21,-4],[-8,62],[-9,28],[3,47],[30,55],[16,39],[-19,110],[15,53],[25,44],[3,51],[19,8],[14,32],[6,37],[27,19],[19,72],[-3,37],[12,44],[-14,45],[-28,-1],[-23,43],[-13,8],[4,2
 5],[-11,30],[-42,44],[-14,-3],[-9,66],[-25,-2],[-12,61],[-10,12],[-8,42],[2,29],[20,27],[23,1],[33,63],[-8,33],[7,41],[36,165],[-306,142],[-359,16],[-208,-201],[-201,-55],[-183,-214],[-76,-243],[65,-51],[-2,-28],[9,-33],[-33,-42],[0,-29],[11,-15],[15,-54],[25,-39],[-4,-14],[16,-22],[39,33],[16,43],[9,7],[-2,-41],[32,1],[-9,-25],[11,-38],[-35,-94],[-41,-49],[-22,-7],[-42,-43],[-35,6],[-32,-36],[-5,-18],[-25,-17],[-14,-41],[-25,-15],[2,-70],[-30,-40],[-14,-6],[-46,-34],[-26,-42],[-19,-7],[-15,12],[-51,9],[-14,41],[-37,-15],[-51,14],[-16,-56],[-7,6],[-16,-32],[-5,19],[-38,22],[-27,-3],[-21,12],[-26,-9],[-12,-47],[-43,-20],[-3,18],[20,21],[-2,42],[37,105],[5,37],[15,-10],[13,49],[-9,34],[-59,47],[22,27],[-9,21],[14,42],[9,11],[30,-11],[-6,34],[22,-10],[16,18],[13,37],[29,10],[17,27],[28,-37],[31,67],[25,-19],[38,29],[29,-50],[17,12],[35,55],[-13,63],[-19,36],[9,9],[-23,32],[-2,32],[44,69],[-2,67],[15,45],[28,59],[-4,26],[26,22],[20,35],[2,36],[26,46],[-21,63],[-23,-4],[-33,57],[-48,57],
 [-14,-3],[-19,50],[-74,39],[23,60],[1,19],[25,43],[-2,33],[-21,32],[5,19],[-8,41],[54,77],[35,143],[58,106],[11,-17],[23,46],[-10,13],[17,29],[-99,160],[25,37],[11,30],[77,99],[39,28],[2,22],[38,41],[17,39],[7,-4],[26,46],[19,17],[11,31],[71,98],[10,40],[29,42],[34,17],[62,60],[35,17],[24,24],[18,41],[25,5],[6,34],[24,0],[16,40],[-8,22],[15,25],[65,29],[33,41],[-3,20],[31,36],[-1,24],[16,50],[-53,66],[-7,54],[21,17],[-1,42],[8,43],[38,93],[11,198],[-15,53],[-31,78],[-15,27],[-7,36],[30,26],[31,48],[36,85],[44,67],[18,-43],[42,31],[30,6],[78,44],[44,47],[54,-2],[34,31],[15,25],[40,120],[40,41],[22,12],[22,-2],[33,54],[17,20],[-16,7],[-23,26],[-21,41],[19,15],[18,68],[14,25],[62,19],[7,28],[-13,57],[16,5],[9,22],[29,30],[19,3],[71,47],[5,25],[14,-1],[28,53],[23,20],[7,22],[19,10],[18,39],[-32,15],[-5,21],[43,38],[16,33],[14,1],[-1,26],[14,47],[59,72],[6,17],[31,20],[7,30],[32,22],[2,27],[28,26],[-20,55],[12,40],[0,34],[-23,91],[15,24],[32,-2],[29,10],[0,16],[44,-4],[15,30],[14,6],[14,
 56],[-14,53],[47,12],[33,0],[23,37],[-5,20],[16,28],[-26,19],[7,19],[-6,50],[-15,15],[-18,-5],[-1,32],[-31,4],[-17,13],[-10,-25],[-25,-22],[-26,1],[-39,-22],[-30,3],[-20,-10],[-22,4],[-19,-17],[-48,23],[-50,-35],[0,27],[13,45],[-3,30],[26,36],[37,33],[-6,48],[13,4],[5,31],[-10,8],[55,7],[7,47],[-3,90],[56,21],[10,47],[23,11],[14,-7],[31,31],[-9,12],[6,54],[-19,-4],[2,27],[-13,23],[5,54],[-5,32],[30,32],[53,23],[27,-35],[15,5],[17,-17],[19,1],[25,-15],[13,-19],[35,34],[39,-2],[31,37],[27,-4],[29,-28],[14,-28],[18,-6],[35,7],[38,17],[4,-15],[-26,-20],[-30,-100],[2,-35],[-19,-88],[50,-21],[7,-18],[21,1],[42,22],[18,-7],[12,-27],[0,-24],[15,-10],[1,-31],[20,20],[31,13],[37,40],[11,-8],[22,27],[45,0],[14,15],[22,-4],[11,-24],[23,-11],[30,1],[26,-11],[47,17],[0,16],[39,36],[14,37],[6,32],[33,13],[24,54],[-17,5],[-43,46],[-17,-11],[19,65],[12,23],[46,-49],[13,3],[18,-42],[36,7],[14,32],[18,12],[-3,14],[22,17],[-4,62],[-22,35],[-3,25],[17,-33],[12,12],[27,-8],[17,64],[-10,24],[-17,9],[-18,-
 29],[-18,-3],[-10,39],[18,44],[28,8],[25,40],[58,54],[-2,38],[21,26],[39,-11],[10,73],[34,-25],[0,-36],[30,-5],[24,29],[33,73],[48,-25],[17,0],[18,20],[-25,-44],[19,-23],[7,-44],[11,-7],[-7,-35],[-5,29],[-24,-38],[-4,10],[-25,-7],[-23,-23],[-26,20],[28,-80],[19,-9],[16,-40],[15,-20],[48,-9],[55,48],[67,13],[16,22],[54,23],[27,21],[16,39],[18,22],[15,88],[30,1],[9,-19],[20,-5],[35,29],[49,5],[15,-7],[24,-32],[18,-58],[-8,-37],[2,-36],[21,-38],[31,-2],[22,-15],[13,7],[7,44],[22,20],[29,-13],[50,7],[50,-31],[54,27],[25,34],[21,13],[33,-36],[31,20],[9,33],[1,39],[10,27],[16,15],[43,-2],[7,32],[22,31],[26,-11],[17,11],[11,27],[28,26],[10,42],[13,23],[25,11],[24,-17],[9,-54],[8,-9],[24,40],[47,10],[9,-27],[27,12],[18,-3],[26,-26],[-5,-63],[10,-29],[25,-21],[20,-41],[16,-18],[49,-2],[48,-12],[22,-13],[30,59],[73,-52],[20,5],[36,26],[15,-2],[34,31],[13,-4],[19,26],[-13,28],[-15,-14],[-31,-5],[-14,20],[1,22],[-10,48],[26,9],[20,34],[2,23],[31,-3],[31,16],[-1,32],[17,-2],[0,53],[51,-14],[-2,-
 23],[43,-9],[10,-38],[15,2],[7,-31],[-13,-6],[-10,-43],[11,-21],[34,-4],[45,76],[3,28],[-14,38],[-9,95],[16,19],[7,29],[16,-17],[1,-25],[-23,-19],[11,-17],[31,18],[14,46],[-17,44],[-29,29],[-3,40],[-19,3],[-8,-29],[-16,-4],[-19,-25],[-28,18],[-3,24],[-20,-3],[-31,-23],[4,-41],[-32,17],[17,-53],[-6,-20],[-22,-5],[-16,12],[-44,-4],[1,-24],[-23,9],[-6,27],[-15,2],[9,-25],[-16,-28],[-15,46],[8,38],[-21,-17],[-27,5],[-19,18],[-28,47],[-24,-3],[-15,39],[8,24],[25,26],[-20,52],[-16,18],[27,62],[19,6],[41,60],[21,-3],[4,39],[-11,4],[-6,36],[14,24],[3,38],[19,15],[16,58],[32,44],[13,-12],[33,28],[21,-28],[13,38],[13,0],[44,34],[22,-33],[30,19],[-5,40],[-28,15],[3,64],[9,16],[10,-12],[6,-32],[27,16],[11,-20],[11,19],[34,-5],[17,-32],[-13,-39],[8,-45],[10,-4],[-8,-49],[26,-47],[45,78],[-10,3],[4,37],[-10,29],[7,54],[17,13],[7,-20],[-6,-24],[54,-39],[2,-32],[12,-19],[-11,-15],[12,-61],[13,-13],[26,41],[14,9],[30,-15],[4,-22],[26,-29],[-4,-28],[-34,-5],[-19,-36],[-6,-43],[15,-43],[35,-16],[-16,-
 104],[4,-24],[51,-9],[29,-19],[43,-50],[25,-7],[-6,21],[13,63],[22,8],[-9,16],[-19,3],[0,28],[-62,19],[6,57],[19,18],[9,29],[31,0],[-6,37],[21,20],[10,-51],[-13,-19],[16,-3],[13,-31],[15,-3],[-13,-21],[10,-9],[16,14],[31,-12],[6,-39],[40,12],[21,-43],[-3,-13],[-27,-8],[2,28],[-25,-5],[14,-24],[-16,-59],[24,-5],[26,-49],[6,-78],[18,-3],[31,-30],[66,39],[29,7],[18,27],[32,21],[40,51],[68,54],[16,5],[79,-28],[65,-7],[28,-10],[28,-36],[53,-24],[21,18],[16,-9],[28,-54],[12,-3],[23,18],[34,-9],[68,9],[47,14],[25,-14],[387,-295],[18,-22],[137,-263],[37,-5],[41,10],[26,-164],[8,-56],[32,-40],[31,-96],[10,-18],[17,7],[2,33],[11,-1],[20,-55],[14,-9],[60,-9],[12,-26],[-25,-44],[-5,-46],[12,-48],[6,-67],[21,-58],[25,-21],[3,-55],[-18,-45],[-38,-29],[-49,-8],[-41,-75],[-12,-35],[-19,-130],[-13,-37],[-37,-40],[-22,-36],[-8,-52],[-11,-37],[-33,-49]],[[6692,725],[16,-4],[3,104],[-24,7],[-17,-98],[22,-9]],[[5933,9384],[28,13],[25,39],[36,-29],[22,7],[0,21],[-14,7],[1,27],[-12,47],[-13,20],[-34,-34],
 [-7,19],[-22,-8],[-15,12],[4,-28],[15,-14],[8,-37],[-18,-23],[-21,-9],[17,-30]]],"transform":{"scale":[0.07580043358136189,-0.048004800480048],"translate":[101.03573230998126,490]}}


[24/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-lakes.jj.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-lakes.jj.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-lakes.jj.json
deleted file mode 100644
index ca575bc..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-lakes.jj.json
+++ /dev/null
@@ -1,200 +0,0 @@
-{
-    "type":"Topology",
-    "objects":{
-        "lakes":{
-            "type":"GeometryCollection",
-            "geometries":[
-                {
-                    "type":"MultiPolygon",
-                    "id":9040,
-                    "properties":{
-                        "name":"Greifensee"
-                    },
-                    "arcs":[[[71]]]
-                },
-
-                {
-                    "type":"MultiPolygon",
-                    "id":9050,
-                    "properties":{
-                        "name":"Zürichsee"},
-                    "arcs":
-                        [
-                            [[55,56,57],[58]],
-                            [[-56,82,83]],
-                            [[-83,-58,84]]
-                        ]
-                },
-                {
-                    "type":"MultiPolygon",
-                    "id":9073,
-                    "properties":{
-                        "name":"Thunersee"},
-                    "arcs":[[[95]]]
-                },{"type":"MultiPolygon","id":9089,"properties":{"name":"Brienzersee"},"arcs":[[[103]]]},{"type":"MultiPolygon","id":9148,"properties":{"name":"Bielersee"},"arcs":[[[14,15]],
-                    [[38,-16,39],[40]]]},{"type":"MultiPolygon","id":9151,"properties":{"name":"Lac de Neuchâtel"},"arcs":[[[11,12,13]],
-                    [[96,-12,97,98]],
-                    [[99,100,101]],
-                    [[104,105,106,-101]],
-                    [[109,-99,110,-106]],
-                    [[119,120]],
-                    [[-120,-102,-107,-111,-98,-14,121]]]},{"type":"MultiPolygon","id":9157,"properties":{"name":"Baldeggersee"},"arcs":[[[52]]]},{"type":"MultiPolygon","id":9163,"properties":{"name":"Sempachersee"},"arcs":[[[78]]]},{"type":"MultiPolygon","id":9172,"properties":{"name":"Hallwilersee"},"arcs":[[[74,75]],
-                    [[-75,89]]]},{"type":"MultiPolygon","id":9175,"properties":{"name":"Zugersee"},"arcs":[[[35,36,37]],
-                    [[85,-38,86]],
-                    [[-86,102,-36]]]},{"type":"MultiPolygon","id":9179,"properties":{"name":"Vierwaldstättersee"},"arcs":[[[16,17,18,19]],
-                    [[20,21,22,23]],
-                    [[30,-20,31,-24,32,33,34]],
-                    [[-34,41]],
-                    [[111,-18,112]],
-                    [[116,-22]],
-                    [[-113,-17,-31,118]]]},{"type":"MultiPolygon","id":9216,"properties":{"name":"Sihlsee"},"arcs":[[[66]]]},{"type":"MultiPolygon","id":9239,"properties":{"name":"Sarnersee"},"arcs":[[[42]]]},{"type":"MultiPolygon","id":9267,"properties":{"name":"Walensee"},"arcs":[[[53,54]],
-                    [[-55,64]]]},{"type":"MultiPolygon","id":9270,"properties":{"name":"Aegerisee"},"arcs":[[[51]]]},{"type":"MultiPolygon","id":9276,"properties":{"name":"Lac de la Gruyère"},"arcs":[[[46]]]},{"type":"MultiPolygon","id":9294,"properties":{"name":"Murtensee"},"arcs":[[[107,108]],
-                    [[117,-108]]]},{"type":"MultiPolygon","id":9326,"properties":{"name":"Bodensee"},"arcs":[[[47,48,49],[50]],
-                    [[59,60,61,62],[63]],
-                    [[67,68,-60,69],[70]],
-                    [[-49,80,81]],
-                    [[87,88,-62]],
-                    [[90,-81,-48]],
-                    [[91,-68,92]],
-                    [[-69,-92,93,-88,-61]]]},{"type":"MultiPolygon","id":9710,"properties":{"name":"Lago di Lugano"},"arcs":[[[3,4]],
-                    [[5,6]],
-                    [[7,-7,8,-5,9,10]],
-                    [[-11,65]]]},{"type":"MultiPolygon","id":9711,"properties":{"name":"Lago Maggiore"},"arcs":[[[0,1,2]],
-                    [[72,73,-1]],
-                    [[-74,79,-2]]]},{"type":"MultiPolygon","id":9751,"properties":{"name":"Lac de Joux"},"arcs":[[[94]]]},{"type":"MultiPolygon","id":9757,"properties":{"name":"Lac Léman"},"arcs":[[[24,25,26,27,28,29]],
-                    [[43,-30,44,45]],
-                    [[76,77,-27]],
-                    [[-28,-78,113,114]],
-                    [[-29,-115,115,-45]],
-                    [[122,-25,-44]]]
-                }]}},
-    "arcs":[
-        [[7359,1830],[-38,80],[-50,-58],[-27,-63]],
-        [[7244,1789],[-47,20]],
-        [[7197,1809],[45,88],[19,73],[36,56],[90,38],[49,-41],[24,3],[28,38],[6,40],[-11,34],[46,15],[41,33],[27,-19],[34,-43],[10,-63],[18,9],[7,-18],[-29,-3],[-52,-37],[-61,-17],[-28,-18],[-25,-32],[-34,-23],[-62,-84],[-16,-8]],
-        [[7826,931],[-14,-9],[-21,-43],[-16,11],[4,62],[-23,23],[-10,58],[17,44],[-11,44],[-39,-2],[-6,20],[-22,6],[-21,28]],
-        [[7664,1173],[62,-42],[34,11],[8,-21],[1,-61],[-11,-47],[44,-67],[24,-15]],
-        [[7993,1261],[-8,-41],[-14,-20],[-4,-34]],
-        [[7967,1166],[-26,7],[22,92],[30,-4]],
-        [[8128,1351],[-40,-17],[-10,-15],[-64,-34],[-21,-24]],
-        [[7967,1166],[-7,-38],[-19,-18],[18,-15],[-2,-40],[10,-31],[28,-25],[19,-53],[-9,-51],[-20,5],[-7,85],[-57,55],[-39,-33],[-21,-48],[-35,-28]],
-        [[7664,1173],[24,28],[12,-15],[-8,-32],[14,-10],[38,11],[-11,38],[30,30],[-6,56],[11,22],[28,10],[12,-17],[-39,-105],[21,-95],[-18,-76],[39,-48],[20,2],[22,24],[34,61],[17,50],[28,3],[-16,29],[1,47],[21,41],[-3,66],[-23,23],[13,38],[46,9],[31,-24],[33,21],[29,2],[57,60]],
-        [[8121,1422],[7,-71]],
-        [[1816,5362],[-107,-119],[70,-90]],
-        [[1779,5153],[-36,-31],[-40,25],[-68,-5],[-7,-10],[-68,-37],[-52,-38],[-45,-16],[-17,5],[-34,44],[0,31],[67,67],[52,26],[23,40],[58,40],[25,42],[38,19],[31,35],[36,27],[9,22]],
-        [[1751,5439],[65,-77]],
-        [[2644,6301],[-9,14],[42,22]],
-        [[2677,6337],[-33,-36]],
-        [[6501,6060],[-7,-59],[87,-36],[64,17],[64,0],[73,52]],
-        [[6782,6034],[14,-30]],
-        [[6796,6004],[-67,-50],[-70,-24],[-34,-24],[-45,-7],[-49,15],[-30,30],[-50,-1],[-23,14],[-44,5],[-20,28],[2,22],[67,37],[43,4],[12,15],[-22,14],[-81,5]],
-        [[6385,6087],[3,70],[115,-36],[-2,-61]],
-        [[6270,6089],[-45,2],[-35,-52],[-10,-34],[-46,-29],[7,-39],[-28,-33],[-59,-44]],
-        [[6054,5860],[9,62]],
-        [[6063,5922],[22,3],[39,23],[5,37],[-51,-5],[7,41],[-10,43]],
-        [[6075,6064],[14,4],[44,-50],[92,147],[42,-8],[3,-68]],
-        [[1916,3333],[-47,-157]],
-        [[1869,3176],[-35,-3],[-97,49],[-60,9],[-51,19],[-113,-3],[-19,-10],[-97,6],[-51,-15],[-82,-3],[-129,-34],[-60,40],[-22,7],[-61,-31],[-27,-31],[0,-40],[-14,-33],[-137,-77],[-48,0],[-22,-40],[-17,-6],[-21,-43],[-25,4],[-60,31],[-28,68],[1,25],[-20,14],[-58,-1],[-40,-14],[-57,-41],[-33,-37],[-16,-57],[-41,-60],[3,-24],[-27,-64],[-22,-8]],
-        [[283,2773],[-61,36]],
-        [[222,2809],[37,88]],
-        [[259,2897],[26,62]],
-        [[285,2959],[34,79],[234,201],[254,55],[263,189],[456,-16],[390,-134]],
-        [[6517,6056],[-16,4]],
-        [[6385,6087],[-95,6],[-20,-4]],
-        [[6075,6064],[-19,48],[27,11],[10,-33],[26,-16],[31,24],[-6,50],[9,9],[-18,28],[9,31],[-41,57],[-45,49],[66,5],[58,-73],[4,-23],[21,0],[50,61],[38,37],[24,34]],
-        [[6319,6363],[74,22]],
-        [[6393,6385],[-9,-61],[-20,-35],[-36,-28],[-30,-50],[16,-12],[24,15],[31,-4],[15,12],[45,-1],[32,-33],[38,-3],[15,-29],[23,-16],[10,-51],[-30,-33]],
-        [[6565,6554],[-42,29]],
-        [[6523,6583],[24,15],[-11,30],[-25,-3],[-19,16]],
-        [[6492,6641],[39,35],[35,-57],[-1,-65]],
-        [[2713,6278],[-58,0],[-11,23]],
-        [[2677,6337],[55,33],[18,40],[98,71],[19,5],[59,56],[21,33],[57,49],[40,50],[28,17],[12,-15],[-44,-74],[-5,-28],[-38,-70],[1,-34],[-55,-107],[-25,-4],[-3,-29],[-32,-35],[-41,-11],[-39,-28],[-50,-19],[-35,17],[-5,24]],
-        [[2713,6278],[21,11],[67,54],[34,43],[7,25],[-16,11],[-23,-57],[-90,-87]],
-        [[6319,6363],[27,13],[57,84],[11,2],[-21,-77]],
-        [[5878,5542],[6,-23],[-9,-53],[-70,-68],[-32,-61],[-39,39],[18,50],[67,46],[42,68],[17,2]],
-        [[2021,3176],[-105,157]],
-        [[285,2959],[-79,45]],
-        [[206,3004],[23,42],[47,68],[63,77],[40,-13],[24,33],[2,43],[24,41],[3,39],[42,29],[39,67],[40,34],[37,49],[97,16],[31,-25],[26,-4],[57,45],[74,25],[17,21],[18,-3],[2,33],[23,26],[24,1],[25,51],[22,8],[32,54],[36,2],[49,-37],[57,-2],[21,21],[48,29],[26,0],[28,-26],[34,-11],[41,-28],[103,1],[44,-11],[49,-24],[66,-60],[43,15],[37,-13],[28,-33],[39,-25],[41,-4],[57,-21],[62,-11],[10,-32],[45,-19],[21,-45],[37,1],[19,-25],[29,-15],[31,2],[15,-12],[8,-34],[32,-14],[25,-78],[-15,-54],[-16,-20],[-89,5],[-59,-13],[-19,6]],
-        [[2736,4711],[-18,-41],[-22,-9],[4,-25],[30,-36],[4,-34],[28,16],[-17,-39],[-23,8],[8,-20],[-30,-31],[4,-36],[-12,-24],[3,-71],[18,-62],[4,-95],[-27,10],[-14,66],[1,60],[10,65],[-12,23],[15,31],[-18,10],[-28,-20],[17,27],[4,34],[48,53],[4,25],[-45,7],[20,41],[-25,14],[43,23],[26,30]],
-        [[8271,9288],[-16,2],[-42,37],[-35,18],[-60,-2],[-25,19],[-33,8],[-97,1],[-51,-28],[-52,-36],[-34,-36],[-62,-43],[-36,-8],[-91,-37],[-35,32],[-21,0]],
-        [[7581,9215],[0,6]],
-        [[7581,9221],[51,-18],[50,15],[40,27],[13,-8],[66,55],[42,12],[6,21],[46,29],[43,65],[-41,53],[-56,22],[-46,39],[-35,18],[-4,37],[53,26],[36,-11],[70,-45],[8,7],[35,-16],[-44,51],[-32,8],[-7,33],[25,1],[18,-23],[61,-44],[27,-7],[132,-83],[34,-9],[27,-23],[26,-58],[-53,-15],[52,1],[45,-64],[2,-29]],
-        [[8030,9480],[11,-21],[-11,-14],[12,-38],[75,-37],[27,-7],[24,14],[-84,83],[-20,-6],[-13,22],[-21,4]],
-        [[6833,6737],[41,-5],[19,-21],[19,5],[27,-14],[37,-68],[-2,-42],[-19,-22],[-25,28],[1,25],[-51,33],[-43,14],[9,28],[-13,39]],
-        [[5882,7103],[34,-5],[13,-20],[13,-74],[17,-33],[2,-40],[-9,-14],[-26,26],[-32,79],[-23,42],[11,39]],
-        [[8488,6674],[-54,9],[-87,34],[-48,-1],[-37,7],[-24,21]]
-        ,[[8238,6744],[104,-2],[32,-13],[117,-22],[-3,-33]]
-        ,[[7427,7143],[38,-40],[53,-17],[278,55]],
-        [[7796,7141],[-21,-27],[-81,-34],[-43,-3],[-9,14],[-19,-16],[-19,7],[-54,-21],[-2,-41],[-26,-12],[-27,17],[-37,-1],[-6,22],[-44,23],[-69,12],[-6,-9],[-88,18],[-53,-42],[-21,7]],
-        [[7171,7055],[72,42],[145,55],[39,-9]],
-        [[7419,7126],[-28,-13],[-5,-29],[40,31],[-7,11]]
-        ,[[9580,8933],[-136,-229]],
-        [[9444,8704],[-51,-8],[-48,4],[-33,48]],
-        [[9312,8748],[-142,200],[-21,22],[-493,278],[-54,13],[-37,-13],[-88,-8],[-42,8],[-13,-8]],
-        [[8422,9240],[-11,53],[32,-1],[42,-16],[32,15],[-20,48],[3,30],[-28,45],[-41,27],[-22,33],[5,31],[-22,109],[-33,18],[-36,49],[-35,-10],[-70,70],[-55,23],[-62,51],[-59,86],[-45,32],[7,40],[15,26],[42,-16],[14,6],[28,-38],[49,-43],[54,-26],[45,-43],[25,-46],[17,-16],[47,-11],[68,-41],[32,-32],[45,-16],[48,-35],[4,-79],[31,-56],[78,-80],[30,-12],[33,-35],[65,-46],[34,-5],[71,-52],[20,-3],[45,28],[34,0],[13,13],[47,1],[41,-12],[29,-36],[29,-2],[45,-23],[10,-17],[30,14],[19,-10],[12,15],[45,-26],[44,-69],[1,-44],[26,-31],[8,-61],[38,-34],[16,-26],[30,-19],[38,-6],[51,19],[30,-15]],
-        [[8452,9492],[-17,-24],[33,-6],[-16,30]],
-        [[8238,6744],[43,31],[84,-9],[40,-13],[80,-2],[75,-20],[103,12],[56,-7],[15,7],[62,-3],[-2,-51],[-57,-24],[-63,13],[-15,-13],[-66,-11],[-30,18],[-12,-10],[-63,12]],
-        [[8121,1422],[25,23],[42,18],[17,-6],[80,2],[32,6],[65,56],[26,-41],[-84,-88],[-42,-6],[-44,13],[-69,0],[-41,-48]],
-        [[7358,6825],[24,-14],[-5,-40],[25,-89],[0,-50],[10,-55],[55,-43],[-6,-23],[-19,-2],[-29,23],[-17,37],[-30,16],[-7,23],[11,23],[-24,21],[-1,31],[-32,69],[-15,11],[15,38],[27,2],[18,22]],
-        [[9936,8704],[-458,-154]],
-        [[9478,8550],[-34,154]],
-        [[9580,8933],[13,-50],[32,-24],[28,11],[9,-16],[30,-11],[27,-37],[76,3],[12,-24],[23,-9],[56,7],[30,-32],[20,-47]],
-        [[9807,8772],[-22,-16],[31,-11],[12,25],[-21,2]],
-        [[7020,7864],[33,-45],[15,-9],[22,-42],[4,-40],[13,-31],[33,-20],[-2,-35],[-22,-24],[-16,2],[-9,39],[-38,74],[-23,14],[-39,68],[3,41],[26,8]],
-        [[7359,1830],[-52,-10],[-8,-45],[-39,-53],[30,-70],[-4,-37],[14,-39],[-4,-59],[39,-32],[16,-45],[0,-35],[-20,-53],[-32,-39],[-21,0],[-36,-40],[-4,-42],[-41,-50],[-91,-76],[-4,-54],[-33,-14],[-25,-25],[-20,-36],[-46,-28],[-16,-32],[25,-23],[-6,-12],[-46,-2],[-22,-70],[21,-46],[-10,-28],[19,-26],[23,-78],[24,-5],[12,-93],[8,-30],[-23,-23],[-9,10],[-20,-28],[-1,-63],[-32,-35],[-24,-4],[-42,13],[-25,-78],[0,-33],[21,-37],[45,1],[-20,-15],[16,-59],[23,-2],[16,-98],[27,1],[-6,-25],[38,-10],[29,-18]],
-        [[7023,0],[-63,16],[-40,29],[-26,77],[-84,135],[-5,51],[4,46],[25,46],[48,28],[21,29],[20,71],[-10,89],[-15,38],[-49,146],[4,49],[60,97],[66,80],[181,236],[51,63],[57,60],[21,68],[-24,67],[-21,119],[-25,84],[25,65]],
-        [[5825,7368],[-21,-98]],
-        [[5804,7270],[-31,88],[-18,79],[-11,77],[1,55],[25,10],[20,-35],[13,-68],[24,-94],[-2,-14]],
-        [[283,2773],[2,-31],[-23,-48],[-17,-12],[-44,-82],[-43,-23],[-10,-26],[-2,-70],[-11,-45],[-20,-34],[-30,-64],[-54,-37],[-30,2],[30,30],[0,43],[-10,26],[11,79],[-1,40],[40,56],[11,49],[-7,41],[9,61]],
-        [[84,2728],[78,-49],[60,130]]
-        ,[[5544,6892],[37,-27],[29,-40],[59,-53],[52,-57],[8,-41],[-21,-42],[-17,-2],[-62,48],[-36,37],[-50,67],[-9,56],[10,54]],
-        [[7023,0],[-87,15],[-31,-13],[-25,81],[-30,28],[1,38],[-14,7],[-3,30],[-41,43],[-9,23],[-10,81],[-9,16],[27,90],[17,-9],[30,27],[4,57],[23,43],[-26,142],[-35,53],[-96,48],[-39,68],[-1,32],[-41,50],[-29,24],[15,31],[45,22],[25,0],[76,-41],[28,-45],[31,-26],[19,57],[19,37],[45,23],[81,80],[26,70],[63,96],[34,80],[36,60],[57,18],[39,31],[4,31],[-20,54],[6,30],[-20,36],[-4,37],[-22,79],[15,75]],
-        [[7581,9215],[-33,1]],
-        [[7548,9216],[-13,15],[46,-10]],
-        [[7427,7143],[-35,88]],
-        [[7392,7231],[54,-11],[8,-32],[-17,-12],[11,-21],[28,-3],[19,-23],[34,-7],[21,8],[-8,21],[32,2],[12,-16],[33,-12],[52,12],[6,10],[57,26],[66,-3],[-4,-29]],
-        [[7171,7055],[-44,73],[-50,37],[-16,24],[-39,34],[-29,51],[-22,11],[-20,-12],[-62,32],[-57,38],[-58,140],[-33,50],[-11,55],[-23,66],[-34,72],[1,87],[17,11],[21,-66],[13,-1],[27,-45],[7,-35],[28,-75],[6,-31],[41,-67],[9,-27],[46,-69],[70,-53],[60,-15],[74,-42],[2,-10],[58,-33],[22,-31],[52,-24],[143,8],[22,23]],
-        [[6642,6507],[-77,47]],
-        [[6492,6641],[-8,50],[23,47],[-40,13],[-2,26],[14,42],[-28,69],[5,22],[41,27],[24,5],[7,-26],[31,7],[53,-33],[8,-14],[-28,-99],[2,-49],[-27,-60],[24,-78],[51,-83]],
-        [[9312,8748],[-180,-198]],
-        [[9132,8550],[10,50],[-28,13],[-71,75],[-54,47],[-14,34],[8,67],[-10,21],[-104,63],[-47,35],[-51,49],[-23,31],[-62,41],[-70,38],[-9,12],[-69,18],[-29,32],[-40,26],[-16,-2],[-31,40]],
-        [[5825,7368],[15,-42],[-23,-88],[-13,32]],
-        [[8271,9288],[-26,-9],[-60,5],[-21,35],[-31,-15],[-21,16],[-89,2],[-29,-7],[-22,10],[-50,-17],[-29,-19],[-17,4],[-32,-43],[-29,-20],[-63,-25],[-17,1],[-24,-28],[-16,9],[-29,-21],[-41,4],[-24,35],[-25,-4],[-28,15]]
-        ,[[9477,8524],[1,26]],
-        [[9936,8704],[19,-8],[39,-51],[1,-57],[-16,-17],[-104,11],[-22,-10],[-34,-66],[-21,-15],[7,37],[-25,14],[-3,-28],[-10,50],[0,-45],[-15,5],[-37,-44],[-26,49],[19,20],[-14,18],[-48,-60],[-16,2],[-23,-30],[-59,-5],[-42,33],[-9,33],[-20,-16]],
-        [[9477,8524],[-42,-41],[-7,-24],[-39,-24],[-84,-14],[-41,11],[-42,67],[-51,22],[-14,26],[-25,3]],
-        [[547,4493],[6,-11],[-31,-64],[-109,-112],[-34,-17],[-44,-47],[-25,-10],[-8,21],[43,59],[82,80],[45,32],[75,69]],
-        [[4205,4847],[89,-92],[31,-19],[13,-30],[102,-44],[52,-63],[10,-49],[34,-17],[14,10],[41,-1],[38,17],[55,-16],[21,-32],[32,-29],[-7,-19],[-34,-22],[-37,23],[-42,-33],[-41,-15],[-34,-1],[-60,40],[-29,7],[-68,45],[3,32],[-41,32],[-4,18],[-69,24],[-13,29],[-42,40],[-14,39],[-29,10],[1,45],[28,71]],
-        [[2127,5520],[-47,-60],[-15,-28],[-86,-73],[-13,-29],[-58,-29],[-37,-35],[-92,-113]]
-        ,[[1816,5362],[241,267]],
-        [[2057,5629],[70,-109]],
-        [[2541,5962],[-11,-40],[-25,-38],[-61,-50],[-20,-8],[-53,-46],[2,-18],[-51,-47]],
-        [[2322,5715],[-91,120]],
-        [[2231,5835],[206,160],[104,-33]],
-        [[6642,6507],[19,-90],[-29,-42],[-32,50],[-45,34],[-60,62],[-5,21],[33,41]],
-        [[5258,4904],[46,-20],[21,6],[20,-19],[-2,-45],[-58,-12],[-106,-75],[-43,-43],[-64,-32],[-31,-41],[-54,-44],[-59,-4],[-3,14],[-35,13],[43,42],[23,11],[73,65],[72,82],[28,15],[25,42],[56,34],[48,11]],
-        [[2322,5715],[-60,-64],[-51,-42]],
-        [[2211,5609],[-70,96]],
-        [[2141,5705],[90,130]],
-        [[2661,5643],[-66,112]],
-        [[2595,5755],[9,21],[54,27],[77,49],[32,-3],[30,-50],[-4,-20],[-40,-50],[-48,-47],[-32,0],[-12,-39]],
-        [[2211,5609],[-54,-39],[0,-14],[-30,-36]],
-        [[2057,5629],[84,76]],
-        [[6923,5856],[2,-24],[-24,-67],[4,-36],[30,-41],[-5,-32],[10,-14],[-8,-34],[-26,-9],[-26,-43],[-16,30],[-12,46],[0,40],[12,23],[-48,53],[15,87],[23,86],[-9,43],[11,52],[-29,9],[-31,-21]],
-        [[6782,6034],[37,16],[41,-14],[17,-16],[-5,-56],[6,-32],[4,-79],[41,3]],
-        [[84,2728],[18,19],[54,87],[33,101]],
-        [[189,2935],[70,-38]],
-        [[189,2935],[6,46],[11,23]],
-        [[6054,5860],[-30,-21],[-12,22],[-22,-9],[5,20],[37,34],[31,16]],
-        [[2661,5643],[-51,-36],[-32,-2],[-26,13],[-28,35],[0,39],[71,63]],
-        [[6517,6056],[36,-8],[18,-15],[67,16],[50,-26],[42,2],[67,54],[36,6],[12,-24],[44,-15],[8,-25],[-3,-62],[12,-60],[17,-43]]
-        ,[[2541,5962],[-40,124]],
-        [[2501,6086],[33,-21],[31,-63],[-24,-40]],
-        [[1751,5439],[23,74],[17,27],[28,17],[25,43],[32,34],[12,24],[69,53],[25,2],[6,37],[14,18],[38,12],[33,24],[9,54],[3,58],[33,27],[57,15],[50,49],[8,-4],[83,44],[3,16],[33,13],[32,28],[29,-4],[34,-29],[54,15]],
-        [[2021,3176],[-7,-41],[-35,14],[-54,-5],[-56,32]]
-    ],
-    "transform":{
-        "scale":[0.05640142456538516,-0.04800480048004801],
-        "translate":[198.02107788535687,490]
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-lakes.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-lakes.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-lakes.json
deleted file mode 100644
index d45d7fc..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ch-lakes.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-    "type":"Topology",
-    "objects":{
-        "lakes":{
-            "type":"GeometryCollection",
-            "geometries":[
-                {
-                    "type":"MultiPolygon",
-                    "id":9040,
-                    "properties":{
-                        "name":"Greifensee"
-                    },
-                    "arcs":[[[71]]]
-                },
-
-                {
-                    "type":"MultiPolygon",
-                    "id":9050,
-                    "properties":{
-                        "name":"Zürichsee"},
-                    "arcs":[[[55,56,57],[58]],[[-56,82,83]],[[-83,-58,84]]]
-                },
-                {
-                    "type":"MultiPolygon",
-                    "id":9073,
-                    "properties":{
-                        "name":"Thunersee"},
-                    "arcs":[[[95]]]
-                },{"type":"MultiPolygon","id":9089,"properties":{"name":"Brienzersee"},"arcs":[[[103]]]},{"type":"MultiPolygon","id":9148,"properties":{"name":"Bielersee"},"arcs":[[[14,15]],[[38,-16,39],[40]]]},{"type":"MultiPolygon","id":9151,"properties":{"name":"Lac de Neuchâtel"},"arcs":[[[11,12,13]],[[96,-12,97,98]],[[99,100,101]],[[104,105,106,-101]],[[109,-99,110,-106]],[[119,120]],[[-120,-102,-107,-111,-98,-14,121]]]},{"type":"MultiPolygon","id":9157,"properties":{"name":"Baldeggersee"},"arcs":[[[52]]]},{"type":"MultiPolygon","id":9163,"properties":{"name":"Sempachersee"},"arcs":[[[78]]]},{"type":"MultiPolygon","id":9172,"properties":{"name":"Hallwilersee"},"arcs":[[[74,75]],[[-75,89]]]},{"type":"MultiPolygon","id":9175,"properties":{"name":"Zugersee"},"arcs":[[[35,36,37]],[[85,-38,86]],[[-86,102,-36]]]},{"type":"MultiPolygon","id":9179,"properties":{"name":"Vierwaldstättersee"},"arcs":[[[16,17,18,19]],[[20,21,22,23]],[[30,-20,31,-24,32,33,34]],[[-34,41]],[[111,-18,112]],[
 [116,-22]],[[-113,-17,-31,118]]]},{"type":"MultiPolygon","id":9216,"properties":{"name":"Sihlsee"},"arcs":[[[66]]]},{"type":"MultiPolygon","id":9239,"properties":{"name":"Sarnersee"},"arcs":[[[42]]]},{"type":"MultiPolygon","id":9267,"properties":{"name":"Walensee"},"arcs":[[[53,54]],[[-55,64]]]},{"type":"MultiPolygon","id":9270,"properties":{"name":"Aegerisee"},"arcs":[[[51]]]},{"type":"MultiPolygon","id":9276,"properties":{"name":"Lac de la Gruyère"},"arcs":[[[46]]]},{"type":"MultiPolygon","id":9294,"properties":{"name":"Murtensee"},"arcs":[[[107,108]],[[117,-108]]]},{"type":"MultiPolygon","id":9326,"properties":{"name":"Bodensee"},"arcs":[[[47,48,49],[50]],[[59,60,61,62],[63]],[[67,68,-60,69],[70]],[[-49,80,81]],[[87,88,-62]],[[90,-81,-48]],[[91,-68,92]],[[-69,-92,93,-88,-61]]]},{"type":"MultiPolygon","id":9710,"properties":{"name":"Lago di Lugano"},"arcs":[[[3,4]],[[5,6]],[[7,-7,8,-5,9,10]],[[-11,65]]]},{"type":"MultiPolygon","id":9711,"properties":{"name":"Lago Maggiore"},"arcs
 ":[[[0,1,2]],[[72,73,-1]],[[-74,79,-2]]]},{"type":"MultiPolygon","id":9751,"properties":{"name":"Lac de Joux"},"arcs":[[[94]]]},{"type":"MultiPolygon","id":9757,"properties":{"name":"Lac Léman"},"arcs":[[[24,25,26,27,28,29]],[[43,-30,44,45]],[[76,77,-27]],[[-28,-78,113,114]],[[-29,-115,115,-45]],[[122,-25,-44]]]}]}},
-    "arcs":[
-        [[7359,1830],[-38,80],[-50,-58],[-27,-63]],[[7244,1789],[-47,20]],[[7197,1809],[45,88],[19,73],[36,56],[90,38],[49,-41],[24,3],[28,38],[6,40],[-11,34],[46,15],[41,33],[27,-19],[34,-43],[10,-63],[18,9],[7,-18],[-29,-3],[-52,-37],[-61,-17],[-28,-18],[-25,-32],[-34,-23],[-62,-84],[-16,-8]],[[7826,931],[-14,-9],[-21,-43],[-16,11],[4,62],[-23,23],[-10,58],[17,44],[-11,44],[-39,-2],[-6,20],[-22,6],[-21,28]],[[7664,1173],[62,-42],[34,11],[8,-21],[1,-61],[-11,-47],[44,-67],[24,-15]],[[7993,1261],[-8,-41],[-14,-20],[-4,-34]],[[7967,1166],[-26,7],[22,92],[30,-4]],[[8128,1351],[-40,-17],[-10,-15],[-64,-34],[-21,-24]],[[7967,1166],[-7,-38],[-19,-18],[18,-15],[-2,-40],[10,-31],[28,-25],[19,-53],[-9,-51],[-20,5],[-7,85],[-57,55],[-39,-33],[-21,-48],[-35,-28]],[[7664,1173],[24,28],[12,-15],[-8,-32],[14,-10],[38,11],[-11,38],[30,30],[-6,56],[11,22],[28,10],[12,-17],[-39,-105],[21,-95],[-18,-76],[39,-48],[20,2],[22,24],[34,61],[17,50],[28,3],[-16,29],[1,47],[21,41],[-3,66],[-23,23],[13,38],[
 46,9],[31,-24],[33,21],[29,2],[57,60]],[[8121,1422],[7,-71]],[[1816,5362],[-107,-119],[70,-90]],[[1779,5153],[-36,-31],[-40,25],[-68,-5],[-7,-10],[-68,-37],[-52,-38],[-45,-16],[-17,5],[-34,44],[0,31],[67,67],[52,26],[23,40],[58,40],[25,42],[38,19],[31,35],[36,27],[9,22]],[[1751,5439],[65,-77]],[[2644,6301],[-9,14],[42,22]],[[2677,6337],[-33,-36]],[[6501,6060],[-7,-59],[87,-36],[64,17],[64,0],[73,52]],[[6782,6034],[14,-30]],[[6796,6004],[-67,-50],[-70,-24],[-34,-24],[-45,-7],[-49,15],[-30,30],[-50,-1],[-23,14],[-44,5],[-20,28],[2,22],[67,37],[43,4],[12,15],[-22,14],[-81,5]],[[6385,6087],[3,70],[115,-36],[-2,-61]],[[6270,6089],[-45,2],[-35,-52],[-10,-34],[-46,-29],[7,-39],[-28,-33],[-59,-44]],[[6054,5860],[9,62]],[[6063,5922],[22,3],[39,23],[5,37],[-51,-5],[7,41],[-10,43]],[[6075,6064],[14,4],[44,-50],[92,147],[42,-8],[3,-68]],[[1916,3333],[-47,-157]],[[1869,3176],[-35,-3],[-97,49],[-60,9],[-51,19],[-113,-3],[-19,-10],[-97,6],[-51,-15],[-82,-3],[-129,-34],[-60,40],[-22,7],[-61,-31],[-
 27,-31],[0,-40],[-14,-33],[-137,-77],[-48,0],[-22,-40],[-17,-6],[-21,-43],[-25,4],[-60,31],[-28,68],[1,25],[-20,14],[-58,-1],[-40,-14],[-57,-41],[-33,-37],[-16,-57],[-41,-60],[3,-24],[-27,-64],[-22,-8]],[[283,2773],[-61,36]],[[222,2809],[37,88]],[[259,2897],[26,62]],[[285,2959],[34,79],[234,201],[254,55],[263,189],[456,-16],[390,-134]],[[6517,6056],[-16,4]],[[6385,6087],[-95,6],[-20,-4]],[[6075,6064],[-19,48],[27,11],[10,-33],[26,-16],[31,24],[-6,50],[9,9],[-18,28],[9,31],[-41,57],[-45,49],[66,5],[58,-73],[4,-23],[21,0],[50,61],[38,37],[24,34]],[[6319,6363],[74,22]],[[6393,6385],[-9,-61],[-20,-35],[-36,-28],[-30,-50],[16,-12],[24,15],[31,-4],[15,12],[45,-1],[32,-33],[38,-3],[15,-29],[23,-16],[10,-51],[-30,-33]],[[6565,6554],[-42,29]],[[6523,6583],[24,15],[-11,30],[-25,-3],[-19,16]],[[6492,6641],[39,35],[35,-57],[-1,-65]],[[2713,6278],[-58,0],[-11,23]],[[2677,6337],[55,33],[18,40],[98,71],[19,5],[59,56],[21,33],[57,49],[40,50],[28,17],[12,-15],[-44,-74],[-5,-28],[-38,-70],[1,-34],[-5
 5,-107],[-25,-4],[-3,-29],[-32,-35],[-41,-11],[-39,-28],[-50,-19],[-35,17],[-5,24]],[[2713,6278],[21,11],[67,54],[34,43],[7,25],[-16,11],[-23,-57],[-90,-87]],[[6319,6363],[27,13],[57,84],[11,2],[-21,-77]],[[5878,5542],[6,-23],[-9,-53],[-70,-68],[-32,-61],[-39,39],[18,50],[67,46],[42,68],[17,2]],[[2021,3176],[-105,157]],[[285,2959],[-79,45]],[[206,3004],[23,42],[47,68],[63,77],[40,-13],[24,33],[2,43],[24,41],[3,39],[42,29],[39,67],[40,34],[37,49],[97,16],[31,-25],[26,-4],[57,45],[74,25],[17,21],[18,-3],[2,33],[23,26],[24,1],[25,51],[22,8],[32,54],[36,2],[49,-37],[57,-2],[21,21],[48,29],[26,0],[28,-26],[34,-11],[41,-28],[103,1],[44,-11],[49,-24],[66,-60],[43,15],[37,-13],[28,-33],[39,-25],[41,-4],[57,-21],[62,-11],[10,-32],[45,-19],[21,-45],[37,1],[19,-25],[29,-15],[31,2],[15,-12],[8,-34],[32,-14],[25,-78],[-15,-54],[-16,-20],[-89,5],[-59,-13],[-19,6]],[[2736,4711],[-18,-41],[-22,-9],[4,-25],[30,-36],[4,-34],[28,16],[-17,-39],[-23,8],[8,-20],[-30,-31],[4,-36],[-12,-24],[3,-71],[18,-62
 ],[4,-95],[-27,10],[-14,66],[1,60],[10,65],[-12,23],[15,31],[-18,10],[-28,-20],[17,27],[4,34],[48,53],[4,25],[-45,7],[20,41],[-25,14],[43,23],[26,30]],[[8271,9288],[-16,2],[-42,37],[-35,18],[-60,-2],[-25,19],[-33,8],[-97,1],[-51,-28],[-52,-36],[-34,-36],[-62,-43],[-36,-8],[-91,-37],[-35,32],[-21,0]],[[7581,9215],[0,6]],[[7581,9221],[51,-18],[50,15],[40,27],[13,-8],[66,55],[42,12],[6,21],[46,29],[43,65],[-41,53],[-56,22],[-46,39],[-35,18],[-4,37],[53,26],[36,-11],[70,-45],[8,7],[35,-16],[-44,51],[-32,8],[-7,33],[25,1],[18,-23],[61,-44],[27,-7],[132,-83],[34,-9],[27,-23],[26,-58],[-53,-15],[52,1],[45,-64],[2,-29]],[[8030,9480],[11,-21],[-11,-14],[12,-38],[75,-37],[27,-7],[24,14],[-84,83],[-20,-6],[-13,22],[-21,4]],[[6833,6737],[41,-5],[19,-21],[19,5],[27,-14],[37,-68],[-2,-42],[-19,-22],[-25,28],[1,25],[-51,33],[-43,14],[9,28],[-13,39]],[[5882,7103],[34,-5],[13,-20],[13,-74],[17,-33],[2,-40],[-9,-14],[-26,26],[-32,79],[-23,42],[11,39]],[[8488,6674],[-54,9],[-87,34],[-48,-1],[-37,7],[-
 24,21]],[[8238,6744],[104,-2],[32,-13],[117,-22],[-3,-33]],[[7427,7143],[38,-40],[53,-17],[278,55]],[[7796,7141],[-21,-27],[-81,-34],[-43,-3],[-9,14],[-19,-16],[-19,7],[-54,-21],[-2,-41],[-26,-12],[-27,17],[-37,-1],[-6,22],[-44,23],[-69,12],[-6,-9],[-88,18],[-53,-42],[-21,7]],[[7171,7055],[72,42],[145,55],[39,-9]],[[7419,7126],[-28,-13],[-5,-29],[40,31],[-7,11]],[[9580,8933],[-136,-229]],[[9444,8704],[-51,-8],[-48,4],[-33,48]],[[9312,8748],[-142,200],[-21,22],[-493,278],[-54,13],[-37,-13],[-88,-8],[-42,8],[-13,-8]],[[8422,9240],[-11,53],[32,-1],[42,-16],[32,15],[-20,48],[3,30],[-28,45],[-41,27],[-22,33],[5,31],[-22,109],[-33,18],[-36,49],[-35,-10],[-70,70],[-55,23],[-62,51],[-59,86],[-45,32],[7,40],[15,26],[42,-16],[14,6],[28,-38],[49,-43],[54,-26],[45,-43],[25,-46],[17,-16],[47,-11],[68,-41],[32,-32],[45,-16],[48,-35],[4,-79],[31,-56],[78,-80],[30,-12],[33,-35],[65,-46],[34,-5],[71,-52],[20,-3],[45,28],[34,0],[13,13],[47,1],[41,-12],[29,-36],[29,-2],[45,-23],[10,-17],[30,14],[19,-1
 0],[12,15],[45,-26],[44,-69],[1,-44],[26,-31],[8,-61],[38,-34],[16,-26],[30,-19],[38,-6],[51,19],[30,-15]],[[8452,9492],[-17,-24],[33,-6],[-16,30]],[[8238,6744],[43,31],[84,-9],[40,-13],[80,-2],[75,-20],[103,12],[56,-7],[15,7],[62,-3],[-2,-51],[-57,-24],[-63,13],[-15,-13],[-66,-11],[-30,18],[-12,-10],[-63,12]],[[8121,1422],[25,23],[42,18],[17,-6],[80,2],[32,6],[65,56],[26,-41],[-84,-88],[-42,-6],[-44,13],[-69,0],[-41,-48]],[[7358,6825],[24,-14],[-5,-40],[25,-89],[0,-50],[10,-55],[55,-43],[-6,-23],[-19,-2],[-29,23],[-17,37],[-30,16],[-7,23],[11,23],[-24,21],[-1,31],[-32,69],[-15,11],[15,38],[27,2],[18,22]],[[9936,8704],[-458,-154]],[[9478,8550],[-34,154]],[[9580,8933],[13,-50],[32,-24],[28,11],[9,-16],[30,-11],[27,-37],[76,3],[12,-24],[23,-9],[56,7],[30,-32],[20,-47]],[[9807,8772],[-22,-16],[31,-11],[12,25],[-21,2]],[[7020,7864],[33,-45],[15,-9],[22,-42],[4,-40],[13,-31],[33,-20],[-2,-35],[-22,-24],[-16,2],[-9,39],[-38,74],[-23,14],[-39,68],[3,41],[26,8]],[[7359,1830],[-52,-10],[-8,-
 45],[-39,-53],[30,-70],[-4,-37],[14,-39],[-4,-59],[39,-32],[16,-45],[0,-35],[-20,-53],[-32,-39],[-21,0],[-36,-40],[-4,-42],[-41,-50],[-91,-76],[-4,-54],[-33,-14],[-25,-25],[-20,-36],[-46,-28],[-16,-32],[25,-23],[-6,-12],[-46,-2],[-22,-70],[21,-46],[-10,-28],[19,-26],[23,-78],[24,-5],[12,-93],[8,-30],[-23,-23],[-9,10],[-20,-28],[-1,-63],[-32,-35],[-24,-4],[-42,13],[-25,-78],[0,-33],[21,-37],[45,1],[-20,-15],[16,-59],[23,-2],[16,-98],[27,1],[-6,-25],[38,-10],[29,-18]],[[7023,0],[-63,16],[-40,29],[-26,77],[-84,135],[-5,51],[4,46],[25,46],[48,28],[21,29],[20,71],[-10,89],[-15,38],[-49,146],[4,49],[60,97],[66,80],[181,236],[51,63],[57,60],[21,68],[-24,67],[-21,119],[-25,84],[25,65]],[[5825,7368],[-21,-98]],[[5804,7270],[-31,88],[-18,79],[-11,77],[1,55],[25,10],[20,-35],[13,-68],[24,-94],[-2,-14]],[[283,2773],[2,-31],[-23,-48],[-17,-12],[-44,-82],[-43,-23],[-10,-26],[-2,-70],[-11,-45],[-20,-34],[-30,-64],[-54,-37],[-30,2],[30,30],[0,43],[-10,26],[11,79],[-1,40],[40,56],[11,49],[-7,41],[9,
 61]],[[84,2728],[78,-49],[60,130]],[[5544,6892],[37,-27],[29,-40],[59,-53],[52,-57],[8,-41],[-21,-42],[-17,-2],[-62,48],[-36,37],[-50,67],[-9,56],[10,54]],[[7023,0],[-87,15],[-31,-13],[-25,81],[-30,28],[1,38],[-14,7],[-3,30],[-41,43],[-9,23],[-10,81],[-9,16],[27,90],[17,-9],[30,27],[4,57],[23,43],[-26,142],[-35,53],[-96,48],[-39,68],[-1,32],[-41,50],[-29,24],[15,31],[45,22],[25,0],[76,-41],[28,-45],[31,-26],[19,57],[19,37],[45,23],[81,80],[26,70],[63,96],[34,80],[36,60],[57,18],[39,31],[4,31],[-20,54],[6,30],[-20,36],[-4,37],[-22,79],[15,75]],[[7581,9215],[-33,1]],[[7548,9216],[-13,15],[46,-10]],[[7427,7143],[-35,88]],[[7392,7231],[54,-11],[8,-32],[-17,-12],[11,-21],[28,-3],[19,-23],[34,-7],[21,8],[-8,21],[32,2],[12,-16],[33,-12],[52,12],[6,10],[57,26],[66,-3],[-4,-29]],[[7171,7055],[-44,73],[-50,37],[-16,24],[-39,34],[-29,51],[-22,11],[-20,-12],[-62,32],[-57,38],[-58,140],[-33,50],[-11,55],[-23,66],[-34,72],[1,87],[17,11],[21,-66],[13,-1],[27,-45],[7,-35],[28,-75],[6,-31],[41,-67],
 [9,-27],[46,-69],[70,-53],[60,-15],[74,-42],[2,-10],[58,-33],[22,-31],[52,-24],[143,8],[22,23]],[[6642,6507],[-77,47]],[[6492,6641],[-8,50],[23,47],[-40,13],[-2,26],[14,42],[-28,69],[5,22],[41,27],[24,5],[7,-26],[31,7],[53,-33],[8,-14],[-28,-99],[2,-49],[-27,-60],[24,-78],[51,-83]],[[9312,8748],[-180,-198]],[[9132,8550],[10,50],[-28,13],[-71,75],[-54,47],[-14,34],[8,67],[-10,21],[-104,63],[-47,35],[-51,49],[-23,31],[-62,41],[-70,38],[-9,12],[-69,18],[-29,32],[-40,26],[-16,-2],[-31,40]],[[5825,7368],[15,-42],[-23,-88],[-13,32]],[[8271,9288],[-26,-9],[-60,5],[-21,35],[-31,-15],[-21,16],[-89,2],[-29,-7],[-22,10],[-50,-17],[-29,-19],[-17,4],[-32,-43],[-29,-20],[-63,-25],[-17,1],[-24,-28],[-16,9],[-29,-21],[-41,4],[-24,35],[-25,-4],[-28,15]],[[9477,8524],[1,26]],[[9936,8704],[19,-8],[39,-51],[1,-57],[-16,-17],[-104,11],[-22,-10],[-34,-66],[-21,-15],[7,37],[-25,14],[-3,-28],[-10,50],[0,-45],[-15,5],[-37,-44],[-26,49],[19,20],[-14,18],[-48,-60],[-16,2],[-23,-30],[-59,-5],[-42,33],[-9,33],[
 -20,-16]],[[9477,8524],[-42,-41],[-7,-24],[-39,-24],[-84,-14],[-41,11],[-42,67],[-51,22],[-14,26],[-25,3]],[[547,4493],[6,-11],[-31,-64],[-109,-112],[-34,-17],[-44,-47],[-25,-10],[-8,21],[43,59],[82,80],[45,32],[75,69]],[[4205,4847],[89,-92],[31,-19],[13,-30],[102,-44],[52,-63],[10,-49],[34,-17],[14,10],[41,-1],[38,17],[55,-16],[21,-32],[32,-29],[-7,-19],[-34,-22],[-37,23],[-42,-33],[-41,-15],[-34,-1],[-60,40],[-29,7],[-68,45],[3,32],[-41,32],[-4,18],[-69,24],[-13,29],[-42,40],[-14,39],[-29,10],[1,45],[28,71]],[[2127,5520],[-47,-60],[-15,-28],[-86,-73],[-13,-29],[-58,-29],[-37,-35],[-92,-113]],[[1816,5362],[241,267]],[[2057,5629],[70,-109]],[[2541,5962],[-11,-40],[-25,-38],[-61,-50],[-20,-8],[-53,-46],[2,-18],[-51,-47]],[[2322,5715],[-91,120]],[[2231,5835],[206,160],[104,-33]],[[6642,6507],[19,-90],[-29,-42],[-32,50],[-45,34],[-60,62],[-5,21],[33,41]],[[5258,4904],[46,-20],[21,6],[20,-19],[-2,-45],[-58,-12],[-106,-75],[-43,-43],[-64,-32],[-31,-41],[-54,-44],[-59,-4],[-3,14],[-35,13]
 ,[43,42],[23,11],[73,65],[72,82],[28,15],[25,42],[56,34],[48,11]],[[2322,5715],[-60,-64],[-51,-42]],[[2211,5609],[-70,96]],[[2141,5705],[90,130]],[[2661,5643],[-66,112]],[[2595,5755],[9,21],[54,27],[77,49],[32,-3],[30,-50],[-4,-20],[-40,-50],[-48,-47],[-32,0],[-12,-39]],[[2211,5609],[-54,-39],[0,-14],[-30,-36]],[[2057,5629],[84,76]],[[6923,5856],[2,-24],[-24,-67],[4,-36],[30,-41],[-5,-32],[10,-14],[-8,-34],[-26,-9],[-26,-43],[-16,30],[-12,46],[0,40],[12,23],[-48,53],[15,87],[23,86],[-9,43],[11,52],[-29,9],[-31,-21]],[[6782,6034],[37,16],[41,-14],[17,-16],[-5,-56],[6,-32],[4,-79],[41,3]],[[84,2728],[18,19],[54,87],[33,101]],[[189,2935],[70,-38]],[[189,2935],[6,46],[11,23]],[[6054,5860],[-30,-21],[-12,22],[-22,-9],[5,20],[37,34],[31,16]],[[2661,5643],[-51,-36],[-32,-2],[-26,13],[-28,35],[0,39],[71,63]],[[6517,6056],[36,-8],[18,-15],[67,16],[50,-26],[42,2],[67,54],[36,6],[12,-24],[44,-15],[8,-25],[-3,-62],[12,-60],[17,-43]],[[2541,5962],[-40,124]],[[2501,6086],[33,-21],[31,-63],[-24,-4
 0]],[[1751,5439],[23,74],[17,27],[28,17],[25,43],[32,34],[12,24],[69,53],[25,2],[6,37],[14,18],[38,12],[33,24],[9,54],[3,58],[33,27],[57,15],[50,49],[8,-4],[83,44],[3,16],[33,13],[32,28],[29,-4],[34,-29],[54,15]],[[2021,3176],[-7,-41],[-35,14],[-54,-5],[-56,32]]
-    ],
-    "transform":{
-        "scale":[0.05640142456538516,-0.04800480048004801],
-        "translate":[198.02107788535687,490]
-    }
-}


[10/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
Updates, Cleanup and preparation for a pull request.


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/9d71ec3c
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/9d71ec3c
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/9d71ec3c

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: 9d71ec3c0e31329504d5cd6f86e03f5f915630e4
Parents: 236d0ef
Author: jj <ju...@gmail.com>
Authored: Sat Jan 10 23:45:55 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Sat Jan 10 23:45:56 2015 +0100

----------------------------------------------------------------------
 .../java/org/qi4j/api/geometry/TFeature.java    |  25 +-
 .../org/qi4j/api/geometry/TGeometryFactory.java |   7 +-
 .../org/qi4j/api/geometry/TMultiLineString.java |  59 ++
 .../java/org/qi4j/api/geometry/TMultiPoint.java |   2 -
 .../java/org/qi4j/api/geometry/TPolygon.java    |   4 +-
 .../geometry/internal/GeometryCollections.java  |  14 +-
 .../qi4j/api/geometry/internal/HasShape.java    |   7 -
 .../qi4j/api/geometry/internal/TGeometry.java   | 131 +++-
 .../api/geometry/internal/TGeometryRoot.java    |   2 +-
 .../qi4j/api/geometry/internal/TLinearRing.java |  29 -
 .../org/qi4j/api/geometry/internal/TShape.java  |  18 +
 .../internal/builders/TFeatureBuilder.java      |   6 +-
 .../builders/TMultiLineStringBuilder.java       |  64 ++
 .../spatial/SpatialQueryExpressions.java        | 104 +--
 .../predicate/ST_ContainsSpecification.java     |  30 -
 .../predicate/ST_DisjointSpecification.java     |  17 +-
 .../predicate/ST_IntersectsSpecification.java   |  22 +-
 .../predicate/ST_WithinSpecification.java       |  32 +-
 .../SpatialPredicatesSpecification.java         |  14 +-
 .../main/java/org/qi4j/api/type/ValueType.java  |   8 +-
 .../qi4j/api/geometry/TGeometryFactoryTest.java |  55 +-
 .../org/qi4j/api/geometry/TGeometryTest.java    |  54 +-
 .../test/indexing/AbstractAnyQueryTest.java     |   2 +-
 .../indexing/AbstractSpatialRegressionTest.java | 489 +++++++++-----
 .../java/org/qi4j/test/indexing/TestData.java   |   1 -
 extensions/indexing-elasticsearch/build.gradle  |   2 +
 .../ElasticSearchConfiguration.java             |   6 -
 .../elasticsearch/ElasticSearchFinder.java      |  40 +-
 .../elasticsearch/ElasticSearchIndexer.java     |  51 +-
 .../elasticsearch/ElasticSearchSupport.java     |   2 -
 .../elasticsearch/cluster/ESClusterSupport.java |   6 +-
 .../spatial/ElasticSearchSpatialFinder.java     |  97 +--
 .../spatial/ElasticSearchSpatialIndexer.java    | 325 ++++++----
 .../configuration/SpatialConfiguration.java     | 122 ++--
 .../SpatialExceptionConfiguration.java          |  15 -
 .../SpatialFunctionsSupportMatrix.java          | 212 +++---
 .../functions/convert/ConvertFinderSupport.java |  75 +--
 .../functions/convert/ST_GeometryFromText.java  |  49 +-
 .../predicates/PredicateFinderSupport.java      |  85 +--
 .../functions/predicates/ST_Disjoint.java       | 150 ++---
 .../functions/predicates/ST_DisjointV2.java     |  96 ---
 .../functions/predicates/ST_DisjointV3.java     | 131 ----
 .../functions/predicates/ST_Intersects.java     |  86 ++-
 .../spatial/functions/predicates/ST_Within.java |  85 ++-
 ...stractElasticSearchSpatialFinderSupport.java |   7 -
 .../AbstractElasticSearchSpatialFunction.java   | 225 +++----
 .../spatial/internal/InternalUtils.java         |  48 +-
 .../spatial/mappings/SpatialIndexMapper.java    |  65 +-
 .../mappings/builders/AbstractBuilder.java      |  37 +-
 .../mappings/builders/GeoPointBuilder.java      |  75 +--
 .../mappings/builders/GeoShapeBuilder.java      |  95 ++-
 .../mappings/builders/MappingQueryBuilder.java  |  14 +
 .../builders/SpatialMappingFactory.java         |  21 +-
 .../spatial/mappings/cache/MappingsCache.java   |  89 +--
 .../mappings/cache/MappingsCachesTable.java     |  27 +-
 .../filesystem/ESFilesystemSupport.java         |  20 +-
 .../internal/AbstractElasticSearchSupport.java  |  55 +-
 .../elasticsearch/memory/ESMemorySupport.java   |   8 +-
 .../ElasticSearchComplexQueryTest.java          |   7 +
 .../elasticsearch/ElasticSearchFinderTest.java  |   7 +
 .../elasticsearch/ElasticSearchQueryTest.java   |  41 +-
 .../index/elasticsearch/ElasticSearchTest.java  |   7 +
 .../index/elasticsearch/ImmenseTermTest.java    |   7 +
 .../spatial/ElasticSearchSpatialBench.java      | 118 +---
 ...cSearchSpatialExtensionClusterQueryTest.java | 640 -------------------
 ...chSpatialQueryTestUsingGeoPointIndexing.java | 159 +++++
 ...chSpatialQueryTestUsingGeoShapeIndexing.java | 140 ++++
 ...earchSpatialQueryTestUsingUsingDefaults.java | 153 +++++
 ...SearchSpatialRegressionQueryClusterTest.java |   1 -
 ...earchSpatialRegressionQueryVariant1Test.java | 131 ----
 ...earchSpatialRegressionQueryVariant2Test.java | 131 ----
 ...lasticSearchConfigurationVariant1.properties |  28 -
 ...lasticSearchConfigurationVariant2.properties |  28 -
 ...SearchConfigurationVariant2Backup.properties |  28 -
 ...archConfigurationVariant2_Backup_.properties |  28 -
 .../ElasticSearchGeoPointIndexing.properties    |  28 +
 .../ElasticSearchGeoShapeIndexing.properties    |  28 +
 .../geojson/internal/TransformationBuilder.java |   4 +-
 .../spatial/v2/assembly/TGeometryAssembler.java |   1 +
 .../conversions/from/GeoJsonFromConverter.java  |   2 +-
 80 files changed, 2444 insertions(+), 2890 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java b/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
index 4f89954..f899d0b 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TFeature.java
@@ -16,14 +16,14 @@ package org.qi4j.api.geometry;
 
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.api.injection.scope.Structure;
 import org.qi4j.api.injection.scope.This;
 import org.qi4j.api.mixin.Mixins;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.structure.Module;
 
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 @Mixins(TFeature.Mixin.class)
@@ -42,6 +42,7 @@ public interface TFeature extends TGeometry {
     TFeature of(TGeometry geometry);
 
     TFeature withProperties(Map<String, List<String>> properties);
+    TFeature addProperty(String name, String value);
 
     TGeometry asGeometry();
 
@@ -56,7 +57,6 @@ public interface TFeature extends TGeometry {
         @This
         TFeature self;
 
-
         public TFeature of(TGeometry geometry) {
             self.geometryType().set(TGEOMETRY_TYPE.FEATURE);
             self.geometry().set(geometry);
@@ -64,11 +64,28 @@ public interface TFeature extends TGeometry {
             return self;
         }
 
-        public TFeature withProperties(Map<String, List<String>> properties) {
+        public TFeature withProperties(Map<String, List<String>> properties)
+        {
             self.properties().set(properties);
             return self;
         }
 
+        public TFeature addProperty(String name, String value)
+        {
+            if (self.properties() == null || self.properties().get() == null || !self.properties().get().containsKey(name))
+            {
+                Map<String, List<String>> properties = new HashMap<>();
+                properties.put(name, Arrays.asList(value) );
+                self.properties().set(properties);
+            }
+            else
+            {
+                self.properties().get().get(name).add(value);
+            }
+            return self;
+        }
+
+
         public boolean isEmpty() {
             return (self.geometry() == null) || (self.geometry().get() == null) || (self.geometry().get().isEmpty()) ? true : false;
         }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java b/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java
index 6a2ea39..33b1709 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TGeometryFactory.java
@@ -39,14 +39,17 @@ public class TGeometryFactory {
         return new TLinearRingBuilder(module);
     }
 
-    public static TLineStringBuilder TlineString(Module module) {
+    public static TLineStringBuilder TLineString(Module module) {
         return new TLineStringBuilder(module);
     }
 
+    public static TMultiLineStringBuilder TMultiLineString(Module module)
+    {
+        return new TMultiLineStringBuilder(module);
+    }
     public static TPolygonBuilder TPolygon(Module module) {
         return new TPolygonBuilder(module);
     }
-
     public static TMultiPolygonsBuilder TMultiPolygon(Module module) {
         return new TMultiPolygonsBuilder(module);
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/TMultiLineString.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TMultiLineString.java b/core/api/src/main/java/org/qi4j/api/geometry/TMultiLineString.java
new file mode 100644
index 0000000..9b12a3f
--- /dev/null
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TMultiLineString.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.qi4j.api.geometry;
+
+import org.qi4j.api.geometry.internal.GeometryCollections;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.injection.scope.Structure;
+import org.qi4j.api.injection.scope.This;
+import org.qi4j.api.mixin.Mixins;
+import org.qi4j.api.structure.Module;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Mixins(TMultiLineString.Mixin.class)
+public interface TMultiLineString extends GeometryCollections {
+
+    TMultiLineString of(TLineString... lines);
+    TMultiLineString of(List<TLineString> lines);
+
+    public abstract class Mixin extends GeometryCollections.Mixin implements TMultiLineString {
+        @Structure
+        Module module;
+
+        @This
+        TMultiLineString self;
+
+        public TMultiLineString of(List<TLineString> lines) {
+            of(lines.toArray(new TLineString[lines.size()]));
+            return self;
+        }
+        public TMultiLineString of(TLineString... lines) {
+            self.geometryType().set(TGEOMETRY_TYPE.MULTILINESTRING);
+            init();
+            List<TGeometry> l = new ArrayList<>();
+
+            for (TLineString p : lines) {
+                l.add(p);
+            }
+            if (self.isEmpty())
+                self.geometries().set(l);
+            else
+                self.geometries().get().addAll(l);
+            return self;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java b/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java
index f20b3ab..2a85011 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TMultiPoint.java
@@ -67,8 +67,6 @@ public interface TMultiPoint extends GeometryCollections {
             else
                 self.geometries().get().addAll(l);
 
-            // self.type().set(TGeomRoot.TGEOMETRY.LINESTRING);
-
             return self;
         }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java b/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java
index 73b1020..26a900b 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TPolygon.java
@@ -16,7 +16,7 @@ package org.qi4j.api.geometry;
 
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.HasShape;
+import org.qi4j.api.geometry.internal.TShape;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.api.injection.scope.Structure;
@@ -29,7 +29,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 @Mixins(TPolygon.Mixin.class)
-public interface TPolygon extends HasShape, TGeometry {
+public interface TPolygon extends TShape, TGeometry {
 
     Property<TLinearRing> shell();
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
index 081703b..e99831c 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/GeometryCollections.java
@@ -26,10 +26,9 @@ import java.util.List;
 public interface GeometryCollections extends TGeometry {
 
     Property<List<TGeometry>> geometries();
-
-
     TGeometry getGeometryN(int n);
 
+
     int getNumGeometries();
 
     boolean isEmpty();
@@ -42,17 +41,18 @@ public interface GeometryCollections extends TGeometry {
 
         protected void init() {
 
-            if (self.geometries().get() == null) {
-
+            if (self.geometries().get() == null)
+            {
                 List<TGeometry> geometries = new ArrayList<>();
                 self.geometries().set(geometries);
-                // self.type().set(TGeomRoot.TGEOMETRY.POINT);
             }
         }
 
         public boolean isEmpty() {
-            for (int i = 0; i < self.geometries().get().size(); i++) {
-                if (!self.geometries().get().get(i).isEmpty()) {
+            for (int i = 0; i < self.geometries().get().size(); i++)
+            {
+                if (!self.geometries().get().get(i).isEmpty())
+                {
                     return false;
                 }
             }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/internal/HasShape.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/HasShape.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/HasShape.java
deleted file mode 100644
index 92d43c8..0000000
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/HasShape.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.api.geometry.internal;
-
-/**
- * Created by jj on 02.12.14.
- */
-public interface HasShape extends TGeometry {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
index 28b7974..5138596 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometry.java
@@ -14,8 +14,11 @@
 
 package org.qi4j.api.geometry.internal;
 
+import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.MultiPoint;
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.common.UseDefaults;
+import org.qi4j.api.geometry.*;
 import org.qi4j.api.injection.scope.Structure;
 import org.qi4j.api.injection.scope.This;
 import org.qi4j.api.mixin.Mixins;
@@ -25,29 +28,48 @@ import org.qi4j.api.structure.Module;
 @Mixins(TGeometry.Mixin.class)
 public interface TGeometry extends TGeometryRoot {
 
-    // @Optional
     Property<TGEOMETRY_TYPE> geometryType();
 
-    // Property<TGEOM_TYPE> type1();
-
     @Optional
     @UseDefaults
     Property<String> CRS();
 
 
     String getCRS();
-
     void setCRS(String crs);
 
-
     abstract Coordinate[] getCoordinates();
-
     abstract int getNumPoints();
-
     abstract boolean isEmpty();
 
     TGEOMETRY_TYPE getType();
 
+    boolean isPoint();
+    boolean isPoint(TGeometry tGeometry);
+
+    boolean isMultiPoint();
+    boolean isMultiPoint(TGeometry tGeometry);
+
+    boolean isLineString();
+    boolean isLineString(TGeometry tGeometry);
+
+    boolean isMultiLineString();
+    boolean isMultiLineString(TGeometry tGeometry);
+
+    boolean isPolygon();
+    boolean isPolygon(TGeometry tGeometry);
+
+    boolean isMultiPolygon();
+    boolean isMultiPolygon(TGeometry tGeometry);
+
+    boolean isFeature();
+    boolean isFeature(TGeometry tGeometry);
+
+    boolean isFeatureCollection();
+    boolean isFeatureCollection(TGeometry tGeometry);
+
+    boolean isGeometry();
+    boolean isGeometry(Object tGeometry);
 
     public abstract class Mixin implements TGeometry {
 
@@ -78,8 +100,99 @@ public interface TGeometry extends TGeometryRoot {
             throw new RuntimeException("Should never be called");
         }
 
-        public TGEOMETRY_TYPE getType() {
-            return self.geometryType().get();
+        public TGEOMETRY_TYPE getType()
+        {
+            // "strong typing" - type & instanceOf must match
+            switch(self.geometryType().get())
+            {
+                case POINT              : return self.isPoint()             == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.POINT;
+                case MULTIPOINT         : return self.isMultiPoint()        == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.MULTIPOINT;
+                case LINESTRING         : return self.isLineString()        == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.LINESTRING;
+                case MULTILINESTRING    : return self.isMultiLineString()   == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.MULTILINESTRING;
+                case POLYGON            : return self.isPolygon()           == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.POLYGON;
+                case MULTIPOLYGON       : return self.isMultiPolygon()      == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.MULTIPOLYGON;
+                case FEATURE            : return self.isFeature()           == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.FEATURE;
+                case FEATURECOLLECTION  : return self.isFeatureCollection() == false ? TGEOMETRY_TYPE.INVALID:TGEOMETRY_TYPE.FEATURECOLLECTION;
+                default                 : return TGEOMETRY_TYPE.INVALID;
+            }
+        }
+
+        public boolean isPoint()
+        {
+            return self instanceof TPoint ? true:false;
+        }
+        public boolean isPoint(TGeometry tGeometry)
+        {
+            return tGeometry instanceof TPoint ? true:false;
+        }
+
+        public boolean isMultiPoint()
+        {
+            return self instanceof TMultiPoint ? true:false;
+        }
+        public boolean isMultiPoint(TGeometry tGeometry)
+        {
+            return tGeometry instanceof TMultiPoint ? true:false;
+        }
+
+        public boolean isLineString()
+        {
+            return self instanceof TLineString ? true:false;
+        }
+        public boolean isLineString(TGeometry tGeometry)
+        {
+            return tGeometry instanceof TLineString ? true:false;
+        }
+
+        public boolean isMultiLineString()
+        {
+            return self instanceof TMultiLineString ? true:false;
+        }
+        public boolean isMultiLineString(TGeometry tGeometry)
+        {
+            return tGeometry instanceof TMultiLineString ? true:false;
+        }
+        public boolean isPolygon()
+        {
+            return self instanceof TPolygon ? true:false;
+        }
+        public boolean isPolygon(TGeometry tGeometry)
+        {
+            return tGeometry instanceof TPolygon ? true:false;
+        }
+        public boolean isMultiPolygon()
+        {
+            return self instanceof TMultiPolygon ? true:false;
+        }
+        public boolean isMultiPolygon(TGeometry tGeometry)
+        {
+            return tGeometry instanceof TMultiPolygon ? true:false;
+        }
+        public boolean isFeature()
+        {
+            return self instanceof TFeature ? true:false;
+        }
+        public boolean isFeature(TGeometry tGeometry)
+        {
+            return tGeometry instanceof TFeature ? true:false;
+        }
+
+        public boolean isFeatureCollection()
+        {
+            return self instanceof TFeatureCollection ? true:false;
+        }
+        public boolean isFeatureCollection(TGeometry tGeometry)
+        {
+            return tGeometry instanceof TFeatureCollection ? true:false;
+        }
+
+        public boolean isGeometry()
+        {
+            return self instanceof TGeometry ? true:false;
+        }
+        public boolean isGeometry(Object tGeometry)
+        {
+            return tGeometry instanceof TGeometry ? true:false;
         }
 
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometryRoot.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometryRoot.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometryRoot.java
index e06ad9c..25731c0 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometryRoot.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/TGeometryRoot.java
@@ -21,7 +21,7 @@ import org.qi4j.api.value.ValueComposite;
  */
 public interface TGeometryRoot extends ValueComposite {
 
-    public static enum TGEOMETRY_TYPE {POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, FEATURE, FEATURECOLLECTION}
+    public static enum TGEOMETRY_TYPE {POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, FEATURE, FEATURECOLLECTION, INVALID}
 
 }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
index 63261e7..87fc414 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/TLinearRing.java
@@ -21,42 +21,13 @@ import org.qi4j.api.mixin.Mixins;
 @Mixins(TLinearRing.Mixin.class)
 public interface TLinearRing extends TLineString {
 
-    // TLinearRing of(TPoint... points);
-    // TLinearRing of(List<TPoint> points);
-    // TLinearRing xy(double x, double y);
     boolean isValid();
 
     public abstract class Mixin extends TLineString.Mixin implements TLinearRing //, TLineString
     {
-
         @This
         TLinearRing self;
 
-        /**
-         * @Override public TLinearRing of(TPoint... points)
-         * {
-         * super.of(points);
-         * <p/>
-         * // self.of(points);
-         * <p/>
-         * return self;
-         * }
-         * @Override public TLinearRing of(List<TPoint> points)
-         * {
-         * of(points.toArray(new TPoint[points.size()]));
-         * return self;
-         * }
-         * @Override public TLinearRing xy(double x, double y) {
-         * super.xy(x,y);
-         * // self.xy(x,y);
-         * return self;
-         * }
-         */
-
-        // public Coordinate[] getCoordinates()
-        //  {
-        //    return null;
-        //}
         @Override
         public boolean isValid() {
             if (self.getStartPoint() == null || self.getEndPoint() == null) return false;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
new file mode 100644
index 0000000..7c0f8da
--- /dev/null
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/TShape.java
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.qi4j.api.geometry.internal;
+
+public interface TShape extends TGeometry {
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
index 4306851..58932e2 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TFeatureBuilder.java
@@ -38,11 +38,15 @@ public class TFeatureBuilder {
         return this;
     }
 
+    public TFeatureBuilder addProperty(String name, String value)
+    {
+        geometry.addProperty(name, value);
+        return this;
+    }
 
     public TFeature geometry() {
         return geometry;
     }
-
     public TFeature geometry(int srid) {
         return geometry();
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
new file mode 100644
index 0000000..9862301
--- /dev/null
+++ b/core/api/src/main/java/org/qi4j/api/geometry/internal/builders/TMultiLineStringBuilder.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.qi4j.api.geometry.internal.builders;
+
+import org.qi4j.api.geometry.TLineString;
+import org.qi4j.api.geometry.TMultiLineString;
+import org.qi4j.api.structure.Module;
+
+import java.util.List;
+
+/**
+ * Created by jj on 26.11.14.
+ */
+public class TMultiLineStringBuilder {
+
+    private Module module;
+    private TMultiLineString geometry;
+
+
+    public TMultiLineStringBuilder(Module module) {
+        this.module = module;
+        geometry = module.newValueBuilder(TMultiLineString.class).prototype();
+    }
+
+
+    public TMultiLineStringBuilder points(double[][][] points) {
+        for (double xy[][] : points) {
+            if (xy.length < 2) return null;
+            // geometry.xy(xy[0], xy[1]);
+        }
+        return this;
+    }
+
+    public TMultiLineStringBuilder of(List<TLineString> lines) {
+        geometry.of(lines);
+        return this;
+    }
+
+    public TMultiLineStringBuilder of(TLineString... lines) {
+        geometry.of(lines);
+        return this;
+    }
+
+
+    public TMultiLineString geometry() {
+        return geometry;
+    }
+
+    public TMultiLineString geometry(int srid) {
+        return geometry();
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
index f180928..c86a090 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/SpatialQueryExpressions.java
@@ -1,9 +1,8 @@
 package org.qi4j.api.query.grammar.extensions.spatial;
 
-import org.qi4j.api.composite.Composite;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TUnit;
-import org.qi4j.api.geometry.internal.HasShape;
+import org.qi4j.api.geometry.internal.TShape;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.query.QueryExpressions;
@@ -14,105 +13,66 @@ import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_IntersectsSpec
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecification;
 import org.qi4j.functional.Specification;
 
-/**
- * Created by jakes on 2/8/14.
- */
+
 public final class SpatialQueryExpressions extends QueryExpressions {
 
-    // valid for TPoint values
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry1, TPoint value, double distance, TUnit unit) // T value )
+    // ST_Within
+    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry, TPoint param, double distance, TUnit unit)
     {
-        return new ST_WithinSpecification( property(geometry1), value, distance, unit);
+        return new ST_WithinSpecification( property(geometry), param, distance, unit);
     }
 
-    public static <T extends TGeometry>  ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry1, HasShape value)
+    public static <T extends TGeometry>  ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry, TShape param)
     {
-       return new ST_WithinSpecification( property(geometry1), value);
+       return new ST_WithinSpecification( property(geometry), param);
     }
 
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry1, Specification<SpatialConvertSpecification> operator, double distance, TUnit unit )
-    {
-        return new ST_WithinSpecification( property(geometry1), operator, distance, unit);
-    }
-/**
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry1, Specification<SpatialConvertSpecification> operator)
+    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry, Specification<SpatialConvertSpecification> operator, double distance, TUnit unit )
     {
-        return new ST_WithinSpecification( property(geometry1), operator;
+        return new ST_WithinSpecification( property(geometry), operator, distance, unit);
     }
-*/
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry1, Specification<SpatialConvertSpecification> operator)
-    {
-        return new ST_WithinSpecification( property(geometry1), operator);
-    }
-
 
-
-    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within(  Specification<SpatialConvertSpecification> operator) // T value )
+    public static <T extends TGeometry> ST_WithinSpecification<TGeometry> ST_Within( Property<T> geometry, Specification<SpatialConvertSpecification> operator)
     {
-        // return new ST_WithinSpecification<TGeometry>( property(geometry1), operator);
-        return null;
+        return new ST_WithinSpecification( property(geometry), operator);
     }
 
-
-    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> ST_Disjoint( Property<T> geometry1, Specification<SpatialConvertSpecification> operator, long distance )
+    // ST_Disjoint
+    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> ST_Disjoint( Property<T> geometry, Specification<SpatialConvertSpecification> operator, long distance )
     {
-        return new ST_DisjointSpecification( property(geometry1), operator, distance);
+        return new ST_DisjointSpecification( property(geometry), operator, distance);
     }
 
-    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> ST_Disjoint( Property<T> geometry1, TPoint value, double distance, TUnit unit) // T value )
+    public static <T extends TGeometry> ST_DisjointSpecification<TGeometry> ST_Disjoint( Property<T> geometry, TPoint param, double distance, TUnit unit)
     {
-        return new ST_DisjointSpecification( property(geometry1), value, distance, unit);
+        return new ST_DisjointSpecification( property(geometry), param, distance, unit);
     }
 
-    public static <T extends TGeometry>  ST_DisjointSpecification<TGeometry> ST_Disjoint( Property<T> geometry1, HasShape value)
+    public static <T extends TGeometry>  ST_DisjointSpecification<TGeometry> ST_Disjoint( Property<T> geometry, TShape param)
     {
-        // return new ST_WithinSpecification( property(geometry1), value);
-        return new ST_DisjointSpecification(property(geometry1), value);
+        return new ST_DisjointSpecification(property(geometry), param);
     }
 
 
-    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> ST_Intersects( Property<T> geometry1, Specification<SpatialConvertSpecification> operator, long distance )
-    {
-        return new ST_IntersectsSpecification( property(geometry1), operator, distance);
-    }
-
-    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> ST_Intersects( Property<T> geometry1, TPoint value, double distance, TUnit unit) // T value )
+    // ST_Intersects
+    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> ST_Intersects( Property<T> geometry, Specification<SpatialConvertSpecification> operator, long distance )
     {
-        return new ST_IntersectsSpecification( property(geometry1), value, distance, unit);
+        return new ST_IntersectsSpecification( property(geometry), operator, distance);
     }
 
-    public static <T extends TGeometry>  ST_IntersectsSpecification<TGeometry> ST_Intersects( Property<T> geometry1, HasShape value)
+    public static <T extends TGeometry> ST_IntersectsSpecification<TGeometry> ST_Intersects( Property<T> geometry, TPoint value, double distance, TUnit unit)
     {
-        // return new ST_WithinSpecification( property(geometry1), value);
-        return new ST_IntersectsSpecification(property(geometry1), value);
+        return new ST_IntersectsSpecification( property(geometry), value, distance, unit);
     }
 
-
-
-    /**
-    public static <TGeometry> ST_GeomFromTextSpecification<TGeometry> ST_GeomFromText( Property<TGeometry> geometry1, Specification<SpatialConvertSpecification> operator) // T value )
+    public static <T extends TGeometry>  ST_IntersectsSpecification<TGeometry> ST_Intersects( Property<T> geometry, TShape param)
     {
-        return new ST_GeomFromTextSpecification<TGeometry>( property(geometry1), operator);
+        return new ST_IntersectsSpecification(property(geometry), param);
     }
-     */
-
 
-   //  PropertyFunction<T> property
-
-//    public static <TGeometry> ST_PointFromTextSpecification<TGeometry> ST_PointFromText( String WKT, int a)
-//    {
-//        // return null;
-//        return new ST_PointFromTextSpecification<TGeometry>( WKT, a);
-//    }
-
-//    public static TGeomPoint ST_PointFromText( String WKT, int a) throws ParseException
-//    {
-//        // return null;
-//        return (TGeomPoint)new ST_PointFromTextSpecification<TGeometry>( WKT, a).convert();
-//        // return null;
-//    }
 
 
+    // ST_GeometryFromText
     public static Specification<SpatialConvertSpecification> ST_GeometryFromText(String WKT)
     {
         return ST_GeometryFromText( WKT, null);
@@ -123,16 +83,4 @@ public final class SpatialQueryExpressions extends QueryExpressions {
         return new ST_GeomFromTextSpecification( WKT, crs);
     }
 
-
-    /**
-    public static  ST_GeomFromTextSpecification<TGeometry> ST_GeomFromText(String WKT, int a) throws ParseException
-    {
-        // return null;
-        return new ST_GeomFromTextSpecification<TGeometry>( WKT, a);
-        // return null;
-    }
-     */
-
-
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_ContainsSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_ContainsSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_ContainsSpecification.java
deleted file mode 100644
index 8ad961f..0000000
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_ContainsSpecification.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.qi4j.api.query.grammar.extensions.spatial.predicate;
-
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.query.grammar.PropertyFunction;
-
-/**
- * ST_Within Specification.
- *
- *
- */
-public class ST_ContainsSpecification<T extends TGeometry>
-    extends SpatialPredicatesSpecification<TGeometry>
-{
-    public ST_ContainsSpecification(PropertyFunction<TGeometry> property, TGeometry value)
-    {
-        super( property, value );
-    }
-
-    @Override
-    protected boolean compare( TGeometry value )
-    {
-        return value.equals( this.value );
-    }
-
-    @Override
-    public String toString()
-    {
-        return property.toString() + " is within " + value.toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
index 06dfbd2..b3c95a3 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_DisjointSpecification.java
@@ -16,9 +16,9 @@ public class ST_DisjointSpecification<T extends TGeometry>
     private double distance;
     private TUnit unit;
 
-    public ST_DisjointSpecification(PropertyFunction<T> property, TGeometry value)
+    public ST_DisjointSpecification(PropertyFunction<T> property, TGeometry param)
     {
-        super( property, value );
+        super( property, param );
     }
 
     public ST_DisjointSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator, long distance)
@@ -33,24 +33,15 @@ public class ST_DisjointSpecification<T extends TGeometry>
         this.unit       = unit;
     }
 
-    public ST_DisjointSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator, Variable variable)
-    {
-        super( property, operator );
-    }
-
-    public ST_DisjointSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator)
-    {
-        super( property, operator );
-    }
 
     public double getDistance() { return distance; }
     public TUnit  getUnit() { return unit; }
 
 
    @Override
-    protected boolean compare( TGeometry value )
+    protected boolean compare( TGeometry param )
     {
-        return value.equals( this.value );
+        return param.equals( this.param );
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
index e14d553..b7f40c4 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_IntersectsSpecification.java
@@ -16,9 +16,9 @@ public class ST_IntersectsSpecification<T extends TGeometry>
     private double distance;
     private TUnit unit;
 
-    public ST_IntersectsSpecification(PropertyFunction<T> property, TGeometry value)
+    public ST_IntersectsSpecification(PropertyFunction<T> property, TGeometry param)
     {
-        super( property, value );
+        super( property, param );
     }
 
     public ST_IntersectsSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator, long distance)
@@ -26,36 +26,28 @@ public class ST_IntersectsSpecification<T extends TGeometry>
         super( property, operator );
     }
 
-    public ST_IntersectsSpecification(PropertyFunction<T> property, TPoint value, double distance, TUnit unit)
+    public ST_IntersectsSpecification(PropertyFunction<T> property, TPoint param, double distance, TUnit unit)
     {
-        super( property, value );
+        super( property, param );
         this.distance   = distance;
         this.unit       = unit;
     }
 
-    public ST_IntersectsSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator, Variable variable)
-    {
-        super( property, operator );
-    }
 
-    public ST_IntersectsSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator)
-    {
-        super( property, operator );
-    }
 
     public double getDistance() { return distance; }
     public TUnit  getUnit() { return unit; }
 
 
    @Override
-    protected boolean compare( TGeometry value )
+    protected boolean compare( TGeometry param )
     {
-        return value.equals( this.value );
+        return param.equals( this.param );
     }
 
     @Override
     public String toString()
     {
-        return "ST_DisjointSpecification"; // property.toString() + " is within " + value.toString();
+        return "ST_IntersectsSpecification"; // property.toString() + " is within " + value.toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
index 3b67dad..cd28a85 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/ST_WithinSpecification.java
@@ -8,9 +8,7 @@ import org.qi4j.api.query.grammar.Variable;
 import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.functional.Specification;
 
-/**
- * ST_Within Specification.
- */
+
 public class ST_WithinSpecification<T extends TGeometry>
     extends SpatialPredicatesSpecification<T>
 {
@@ -18,14 +16,14 @@ public class ST_WithinSpecification<T extends TGeometry>
     private double distance;
     private TUnit unit;
 
-    public ST_WithinSpecification(PropertyFunction<T> property, TGeometry value)
+    public ST_WithinSpecification(PropertyFunction<T> property, TGeometry param)
     {
-        super( property, value );
+        super( property, param );
     }
 
-    public ST_WithinSpecification(PropertyFunction<T> property, TPoint value, double distance, TUnit unit)
+    public ST_WithinSpecification(PropertyFunction<T> property, TPoint param, double distance, TUnit unit)
     {
-        super( property, value );
+        super( property, param );
         this.distance   = distance;
         this.unit       = unit;
     }
@@ -37,10 +35,6 @@ public class ST_WithinSpecification<T extends TGeometry>
         this.unit       = unit;
     }
 
-    public ST_WithinSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator, Variable variable)
-    {
-        super( property, operator );
-    }
 
     public ST_WithinSpecification(PropertyFunction<T> property, Specification<SpatialConvertSpecification> operator)
     {
@@ -52,14 +46,24 @@ public class ST_WithinSpecification<T extends TGeometry>
 
 
    @Override
-    protected boolean compare( TGeometry value )
+    protected boolean compare( TGeometry param )
     {
-        return value.equals( this.value );
+        return param.equals( this.param );
     }
 
     @Override
     public String toString()
     {
-        return "ST_WithinSpecification"; // property.toString() + " is within " + value.toString();
+        StringBuffer spec = new StringBuffer();
+        spec.append("ST_WITHIN").append("( ").append(property.toString()).append(" IS WITHIN ");
+        spec.append(param.toString());
+
+        if (distance > 0)
+        {
+            spec.append(" WITH RADIUS ").append(distance).append(" ").append(unit);
+        }
+
+        spec.append(" ) ");
+        return spec.toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
index 7031145..9d3dfec 100644
--- a/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
+++ b/core/api/src/main/java/org/qi4j/api/query/grammar/extensions/spatial/predicate/SpatialPredicatesSpecification.java
@@ -17,13 +17,13 @@ public abstract class SpatialPredicatesSpecification<T extends TGeometry>
     extends ExpressionSpecification
 {
     protected final PropertyFunction<T> property;
-    protected final TGeometry value;
+    protected final TGeometry param;
     protected final Specification<SpatialConvertSpecification> operator;
 
-    public SpatialPredicatesSpecification(PropertyFunction<T> property, TGeometry value)
+    public SpatialPredicatesSpecification(PropertyFunction<T> property, TGeometry param)
     {
         this.property = property;
-        this.value = value;
+        this.param = param;
         this.operator = null;
     }
 
@@ -31,7 +31,7 @@ public abstract class SpatialPredicatesSpecification<T extends TGeometry>
     {
         this.property = property;
         this.operator = operator;
-        this.value    = null;
+        this.param    = null;
     }
 
     public PropertyFunction<T> property()
@@ -42,8 +42,6 @@ public abstract class SpatialPredicatesSpecification<T extends TGeometry>
     @Override
     public final boolean satisfiedBy( Composite item )
     {
-        System.out.println("SpatialPredicatesSpecification::satisfiedBy(" + item + ")");
-
         try
         {
             Property<T> prop = property.map( item );
@@ -69,9 +67,9 @@ public abstract class SpatialPredicatesSpecification<T extends TGeometry>
 
     protected abstract boolean compare( TGeometry value );
 
-    public TGeometry value()
+    public TGeometry param()
     {
-        return value;
+        return param;
     }
 
     public Specification<SpatialConvertSpecification> operator()

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/main/java/org/qi4j/api/type/ValueType.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/type/ValueType.java b/core/api/src/main/java/org/qi4j/api/type/ValueType.java
index 0700337..8c74442 100644
--- a/core/api/src/main/java/org/qi4j/api/type/ValueType.java
+++ b/core/api/src/main/java/org/qi4j/api/type/ValueType.java
@@ -108,7 +108,7 @@ public class ValueType
         }
         return false;
     }
-    public static boolean isGeometryValue(Object object)
+    public static boolean isGeometricValue(Object object)
     {
         NullArgumentException.validateNotNull( "object", object );
         if( object instanceof TGeometry)
@@ -118,12 +118,6 @@ public class ValueType
         return false;
     }
 
-    public static boolean isGeometryValue(Class<?> type)
-    {
-
-        return false;
-    }
-
     protected final Iterable<Class<?>> types;
 
     public ValueType( Class<?> type )

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
index f106517..30276bd 100644
--- a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
+++ b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryFactoryTest.java
@@ -33,9 +33,7 @@ import static org.qi4j.api.geometry.TGeometryFactory.TMultiPolygon;
 import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
 import static org.qi4j.api.geometry.TGeometryFactory.TPolygon;
 
-/**
- * JAVADOC
- */
+
 public class TGeometryFactoryTest
         extends AbstractQi4jTest {
 
@@ -54,6 +52,7 @@ public class TGeometryFactoryTest
                                 TPoint.class,
                                 TMultiPoint.class,
                                 TLineString.class,
+                                TMultiLineString.class,
                                 TPolygon.class,
                                 TMultiPolygon.class,
                                 TFeature.class,
@@ -64,7 +63,7 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenCRSIsCreated()
+    public void script01()
     {
         String CRS_EPSG_4326 = "EPSG:4326";
         TCRS crs = TCrs(module).crs(CRS_EPSG_4326);
@@ -72,7 +71,7 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenPointIsCreated()
+    public void script02()
     {
         TPoint point_2D = TPoint(module).x(1d).y(2d).geometry();
         assertEquals(1d, point_2D.x(), ZERO);
@@ -90,7 +89,7 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenMultiPointIsCreatedVerifyTypesAndValues()
+    public void script03()
     {
 
         TMultiPoint multiPoint = TMultiPoint(module).points(new double[][]
@@ -129,10 +128,10 @@ public class TGeometryFactoryTest
 
 
     @Test
-    public void testWhenLineStringCreated()
+    public void script04()
     {
 
-        TLineString line = TlineString(module).points(new double[][]
+        TLineString line = TLineString(module).points(new double[][]
                 {
                                                 {0, 0},
                                                 {1, 0},
@@ -151,7 +150,29 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenLinearRingCreated()
+    public void script05()
+    {
+        TMultiLineString mLine = TMultiLineString(module).of
+                (
+                        TLineString(module).points(new double[][]
+                                {
+                                        {0, 0},
+                                        {1, 0},
+                                        {1, 1},
+                                        {0, 1},
+                                        {0, 1}
+
+                                }).geometry()
+                ).geometry();
+
+        assertThat(mLine.getCRS(), equalTo(CRS_EPSG_27572));
+        assertEquals(5, mLine.getNumPoints());
+        assertTrue(mLine.getGeometryN(0).isLineString());
+    }
+
+
+        @Test
+    public void script06()
     {
 
         TLinearRing ring = TLinearRing(module).ring(new double[][]
@@ -171,13 +192,13 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenLinearRingIsCleatedDSL()
+    public void script07()
     {
         TLinearRing tLinearRing = TLinearRing(module).of().geometry();
     }
 
     @Test
-    public void testWhenPolygonIsCreated()
+    public void script08()
     {
         TPolygon polygon = TPolygon(module)
 
@@ -213,7 +234,7 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenPolygonIsCreatedWithoutHoles()
+    public void script09()
     {
         TPolygon polygon = TPolygon(module)
 
@@ -246,7 +267,7 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenPolygonIsCreatedWitHoles()
+    public void script11()
     {
         TPolygon polygon = TPolygon(module)
 
@@ -292,7 +313,7 @@ public class TGeometryFactoryTest
 
 
     @Test
-    public void testWhenMultiPolygonIsCreated() {
+    public void script12() {
 
         TPolygon polygon1 = TPolygon(module)
 
@@ -383,7 +404,7 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenFeatureCreated() {
+    public void script13() {
 
         TFeature featureOfAPoint = TFeature(module).of(TPoint(module).x(1d).y(2d).z(3d).geometry()).geometry();
         assertEquals(featureOfAPoint.getType(), TGeometryRoot.TGEOMETRY_TYPE.FEATURE);
@@ -394,7 +415,7 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenFeatureOfPolygonIsCreated() {
+    public void script14() {
 
         TFeature featureOfAPolygon = TFeature(module).of(
 
@@ -420,7 +441,7 @@ public class TGeometryFactoryTest
     }
 
     @Test
-    public void testWhenFeatureCollectionIsCreated() {
+    public void script15() {
         TFeature featureOfAPolygon = TFeature(module).of(
 
                 TPolygon(module)

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
----------------------------------------------------------------------
diff --git a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
index 6bb4d11..2c12c18 100644
--- a/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
+++ b/core/api/src/test/java/org/qi4j/api/geometry/TGeometryTest.java
@@ -26,6 +26,7 @@ import org.qi4j.test.AbstractQi4jTest;
 
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 /**
  * JAVADOC
@@ -44,6 +45,7 @@ public class TGeometryTest
                 TPoint.class,
                 TMultiPoint.class,
                 TLineString.class,
+                TMultiLineString.class,
                 TPolygon.class,
                 TMultiPolygon.class,
                 TFeature.class,
@@ -51,7 +53,7 @@ public class TGeometryTest
     }
 
     @Test
-    public void testWhenCRSIsCreated()
+    public void script01()
     {
         String CRS = "urn:ogc:def:crs:OGC:1.3:CRS84";
         ValueBuilder<TCRS> builder = module.newValueBuilder(TCRS.class);
@@ -60,7 +62,7 @@ public class TGeometryTest
     }
 
         @Test
-    public void testWhenCoordinatedCreated()
+    public void script02()
     {
         ValueBuilder<Coordinate> builder = module.newValueBuilder(Coordinate.class);
         Coordinate coordinate1 = builder.prototype().of(1d,2d,3d);
@@ -75,7 +77,7 @@ public class TGeometryTest
     }
 
     @Test
-    public void testWhenPointCreated()
+    public void script03()
     {
         ValueBuilder<TPoint> builder1 = module.newValueBuilder(TPoint.class);
 
@@ -112,7 +114,7 @@ public class TGeometryTest
 
 
     @Test
-    public void testWhenLineStringCreated()
+    public void script04()
     {
         ValueBuilder<TLineString> builder = module.newValueBuilder(TLineString.class);
 
@@ -138,7 +140,7 @@ public class TGeometryTest
     }
 
     @Test
-    public void testWhenLineStringCreatedV2() {
+    public void script05() {
         ValueBuilder<TLineString> builder = module.newValueBuilder(TLineString.class);
 
         TLineString lineString = builder.prototype().of()
@@ -150,12 +152,28 @@ public class TGeometryTest
                 .yx(0d, 0d);
 
         assertTrue(lineString.getStartPoint().x() == 0d);
+    }
+
+    @Test
+    public void script06() {
+        ValueBuilder<TMultiLineString> builder = module.newValueBuilder(TMultiLineString.class);
+
+        TMultiLineString multiLineString = builder.prototype().of(
+                module.newValueBuilder(TLineString.class).prototype().of()
 
+                        .yx(0d, 0d)
+                        .yx(0d, 1d)
+                        .yx(1d, 0d)
+                        .yx(1d, 1d)
+                        .yx(0d, 0d) );
+
+        assertEquals(5, multiLineString.getNumPoints());
+        assertTrue(multiLineString.getGeometryN(0).isLineString());
     }
 
 
         @Test
-    public void testWhenValidLinearRingIsCreated()
+    public void script07()
     {
         ValueBuilder<TLinearRing> builder = module.newValueBuilder(TLinearRing.class);
 
@@ -171,7 +189,7 @@ public class TGeometryTest
     }
 
     @Test
-    public void testWhenInvalidLinearRingIsCreated()
+    public void script08()
     {
         ValueBuilder<TLinearRing> builder = module.newValueBuilder(TLinearRing.class);
 
@@ -187,7 +205,7 @@ public class TGeometryTest
     }
 
     @Test
-    public void testWhenInvalidLinearRingIsCreatedV2()
+    public void script09()
     {
         ValueBuilder<TLinearRing> builder = module.newValueBuilder(TLinearRing.class);
 
@@ -206,7 +224,7 @@ public class TGeometryTest
 
 
     @Test
-    public void testWhenPolygonIsCreated()
+    public void script10()
     {
         ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
 /**
@@ -225,7 +243,7 @@ public class TGeometryTest
 
 
     @Test
-    public void testWhenCreatedTGeomLineStringNotNull()
+    public void script11()
     {
         ValueBuilder<TLineString> builder = module.newValueBuilder(TLineString.class);
         assertNotNull(
@@ -249,7 +267,7 @@ public class TGeometryTest
     }
 
     @Test
-    public void testWhenCreatedLinearRingNotNull()
+    public void script12()
     {
         ValueBuilder<TLinearRing> builder = module.newValueBuilder(TLinearRing.class);
         assertNotNull(
@@ -273,7 +291,7 @@ public class TGeometryTest
     }
 
     @Test
-    public void testWhenCreatedTGeomPolygonWithNoHolesNotNull()
+    public void script13()
     {
         ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
         assertNotNull(
@@ -322,24 +340,20 @@ public class TGeometryTest
     }
 
     @Test
-    public void testWhenCreatedTGeomPolygonWithWithHolesNotNull()
+    public void script14()
     {
-        // JJ TODO - add test polygon and holes
+        // JJ TODO - add test polygon with holes
     }
 
     @Test
-    public void testWhenCreatedTCircleThenPolygonize()
+    public void script15()
     {
         ValueBuilder<TCircle> builder = module.newValueBuilder(TCircle.class);
 
-        // 48.13905780942574).x(11.57958984375
-
         TCircle tCircle = builder.prototype().of(48.13905780942574, 11.57958984375, 100);
         TPolygon tPolygon = tCircle.polygonize(360);
         assertTrue(tPolygon.shell().get().isValid());
-        assertTrue(tPolygon.shell().get().getNumPoints() == 360 + 1);
-
-        System.out.println(tPolygon);
+        assertTrue(tPolygon.shell().get().getNumPoints() == (360 + 1) );
     }
 
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
index 3a2f2bf..1c5ba2e 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractAnyQueryTest.java
@@ -87,7 +87,7 @@ public class AbstractAnyQueryTest
         throws Exception
     {
         super.setUp();
-        // TestData.populate( module );
+        TestData.populate( module );
 
         this.unitOfWork = this.module.newUnitOfWork();
     }


[38/50] [abbrv] zest-qi4j git commit: Final cleanup

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/samples/openstreetmap/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOSMModel.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOSMModel.java b/samples/openstreetmap/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOSMModel.java
deleted file mode 100644
index 6f306ce..0000000
--- a/samples/openstreetmap/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOSMModel.java
+++ /dev/null
@@ -1,431 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.test;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.geojson.LineString;
-import org.geojson.Point;
-import org.geojson.Polygon;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.query.Query;
-import org.qi4j.api.query.QueryBuilder;
-import org.qi4j.api.query.QueryExpressions;
-import org.qi4j.api.query.grammar.OrderBy;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extension.spatial.model.entity.SpatialEntity;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.transformations.geojson.GeoJSONParserV2;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.assembly.OpenStreetMapDomainModelAssembler;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.v2.FeatureEntityV2;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.v2.structure.OSM;
-import org.qi4j.test.AbstractQi4jTest;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.util.DelTreeAfter;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.util.*;
-
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-import static org.qi4j.api.query.QueryExpressions.and;
-import static org.qi4j.api.query.QueryExpressions.or;
-import static org.qi4j.api.query.QueryExpressions.templateFor;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.*;
-import static org.qi4j.test.util.Assume.*;
-
-/**
- * Created by jj on 28.11.14.
- */
-public class TestOSMModel extends AbstractQi4jTest {
-
-    private static final File DATA_DIR = new File( "build/tmp/es-query-test" );
-    @Rule
-    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
-
-    @BeforeClass
-    public static void beforeClass_IBMJDK()
-    {
-        assumeNoIbmJdk();
-    }
-/**
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-
-        // Config module
-        ModuleAssembly config = module.layer().module( "config" );
-        new EntityTestAssembler().assemble( config );
-
-        // Index/Query
-        new ESFilesystemIndexQueryAssembler().
-                withConfig( config, Visibility.layer ).
-                assemble( module );
-        ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData( new File( DATA_DIR, "qi4j-data" ) ).
-                withLog( new File( DATA_DIR, "qi4j-logs" ) ).
-                withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
-        module.services( FileConfigurationService.class ).
-                setMetaInfo( override );
-
-        // In-Memory Entity Store
-        new EntityTestAssembler().assemble( module );
-
-        new OpenStreetMapDomainModelAssembler().assemble(module);
-    }
-*/
-
-    @Override
-    public void assemble(ModuleAssembly module)
-            throws AssemblyException {
-
-
-        module.entities(SpatialEntity.class);
-
-        // Config module
-        ModuleAssembly config = module.layer().module("config");
-        new EntityTestAssembler().assemble(config);
-
-        // Index/Query
-        new ESClusterIndexQueryAssembler().
-                withConfig(config, Visibility.layer).
-                assemble(module);
-        ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData(new File(DATA_DIR, "qi4j-data")).
-                withLog(new File(DATA_DIR, "qi4j-logs")).
-                withTemporary(new File(DATA_DIR, "qi4j-temp"));
-        module.services(FileConfigurationService.class).
-                setMetaInfo(override);
-
-        // In-Memory Entity Store
-         new EntityTestAssembler().assemble( module );
-
-
-        /** RIAK */
-//        ModuleAssembly configRiak = module.layer().module( "configRiak" );
-//        new EntityTestAssembler().assemble( configRiak );
-//        new OrgJsonValueSerializationAssembler().assemble( module );
-        // START SNIPPET: assembly
-//        new RiakHttpMapEntityStoreAssembler().withConfig( configRiak, Visibility.layer ).assemble( module );
-        /** +++ */
-
-
-        new OpenStreetMapDomainModelAssembler().assemble(module);
-    }
-
-    // @Before
-    public void setup() throws Exception
-    {
-        int totalCounter = 0;
-        final int numOfLines = 100000; // 140000;
-        int counter    = 0;
-
-        int commitCounter = 0;
-
-        Map<String, List<String>> properties;
-        TGeometry tGeometry = null;
-
-        JsonParser parser = GeoJSONParserV2.source(new BufferedInputStream(this.getClass().getClassLoader().getResource("data/germany/bavaria/muenich/xxxx").openStream())).build();
-
-        JsonToken token;
-
-        module.newUnitOfWork();
-
-        while ((token = parser.nextToken()) != null) {
-
-            totalCounter++;
-
-            properties = new HashMap<>();
-
-          if (counter++ > numOfLines)
-          {
-              break;
-          }
-
-
-            if (commitCounter++ > 20000)
-            {
-                System.out.println("Processed ==> " + totalCounter);
-                module.currentUnitOfWork().complete();
-                module.newUnitOfWork();
-                commitCounter = 0;
-            }
-
-            switch (token) {
-                case START_OBJECT:
-                    JsonNode node = parser.readValueAsTree();
-
-
-                    // System.out.println("== > " + node.get("id"));
-
-                    JsonNode osm = node.get("categories").get("osm");
-
-                    List<String> list = new ArrayList<>();
-
-                    if (osm.isArray()) {
-                        for (final JsonNode property : osm) {
-                           // System.out.println(property);
-                            list.add(property.asText());
-                        }
-                    }
-
-                    properties.put("osm", list);
-
-                    if ("Point".equals(node.get("geometry").get("type").asText())) {
-                        Point point = new ObjectMapper().readValue(node.get("geometry").toString(), Point.class);
-                        TPoint tPoint = (TPoint)Convert(module).from(point).toTGeometry();
-                        // System.out.println(tPoint);
-                        tGeometry = tPoint;
-                    }
-                    else if ("LineString".equals(node.get("geometry").get("type").asText())) {
-                        LineString lineString = new ObjectMapper().readValue(node.get("geometry").toString(), LineString.class);
-                        TLineString tLineString = (TLineString)Convert(module).from(lineString).toTGeometry();
-                        tGeometry = tLineString;
-
-                    }
-                    else if ("Polygon".equals(node.get("geometry").get("type").asText())) {
-                        Polygon polygon = new ObjectMapper().readValue(node.get("geometry").toString(), Polygon.class);
-                        TPolygon tPolygon = (TPolygon)Convert(module).from(polygon).toTGeometry();
-                        tGeometry = tPolygon;
-                    }
-
-
-                    break;
-            }
-
-            if (tGeometry != null) {
-                TFeature osmFeature = TFeature(module).of(tGeometry).geometry().withProperties(properties);
-                // System.out.println(osmFeature);
-                OSM.Repository.$(module).createFeature(osmFeature);
-            }
-
-
-
-
-        }
-
-        module.currentUnitOfWork().complete();
-
-    }
-
-    @Test
-    public void test() throws Exception
-    {
-        // OSM.Repository.$(module).createFeature()
-        QueryBuilder<FeatureEntityV2> qb = this.module.newQueryBuilder(FeatureEntityV2.class);
-
-
-        Query<FeatureEntityV2> query =  module.newUnitOfWork().newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(FeatureEntityV2.class).osmpoint(),
-                                                TPoint(module).x(50.0599101).y(11.1522125).geometry(),
-                                                100000,
-                                                TUnit.KILOMETER
-                                        )
-                        )
-
-        );
-
-
-        System.out.println(query.count());
-
-        query.maxResults(1000);
-
-        Iterator<FeatureEntityV2> iterator = query.iterator();
-
-        while(iterator.hasNext())
-        {
-            FeatureEntityV2 point = iterator.next();
-            System.out.println(point.properties());
-        }
-
-        module.currentUnitOfWork().complete();
-    }
-
-
-    @Test
-    public void whenThirstyThenFindDrinkingWaterInMuenichV2() throws Exception
-    {
-
-        TPoint muenich = TPoint(module).x(48.1169263).y(11.5763754).geometry();
-
-        QueryBuilder<FeatureEntityV2> qb = this.module.newQueryBuilder(FeatureEntityV2.class);
-
-        Query<FeatureEntityV2> query =  module.newUnitOfWork().newQuery(
-                qb
-                        .where(or(
-                                and(
-                                        // Where in OSM Points
-                                        ST_Within
-                                                (
-                                                        templateFor(FeatureEntityV2.class).osmpoint(),
-                                                        muenich,
-                                                        100,
-                                                        TUnit.KILOMETER
-                                                )
-                                        ,
-                                        // What
-                                        QueryExpressions.contains(templateFor(FeatureEntityV2.class).properties(), "amenity:drinking_water")
-                                )
-                                ,
-                                and(
-                                        // Where in OSM Ways
-                                        ST_Within
-                                                (
-                                                        templateFor(FeatureEntityV2.class).osmway(),
-                                                        muenich,
-                                                        100,
-                                                        TUnit.KILOMETER
-                                                )
-                                        ,
-                                        // What
-                                        QueryExpressions.contains(templateFor(FeatureEntityV2.class).properties(), "amenity:drinking_water")
-                                )
-
-                        ))
-        );
-
-
-        System.out.println("Number of Results " + query.count());
-
-        Iterator<FeatureEntityV2> iterator = query.iterator();
-
-        while(iterator.hasNext())
-        {
-            FeatureEntityV2 point = iterator.next();
-            System.out.println(point.properties() + " at lon "  + point.osmpoint().get().y() + " lat " + point.osmpoint().get().x());
-        }
-
-        module.currentUnitOfWork().complete();
-    }
-
-    @Test
-    public void whenThirstyThenFindDrinkingWaterInMuenich() throws Exception
-    {
-
-        TPoint muenich = TPoint(module).x(48.1169263).y(11.5763754).geometry();
-
-        QueryBuilder<FeatureEntityV2> qb = this.module.newQueryBuilder(FeatureEntityV2.class);
-
-        Query<FeatureEntityV2> query =  module.newUnitOfWork().newQuery(
-                qb
-                        .where(and(
-                                        // Where
-                                        ST_Within
-                                                (
-                                                        templateFor(FeatureEntityV2.class).osmpoint(),
-                                                        muenich,
-                                                        100,
-                                                        TUnit.KILOMETER
-                                                )
-                                        ,
-                                        // What
-                                        QueryExpressions.contains(templateFor(FeatureEntityV2.class).properties(), "amenity:drinking_water")
-                                )
-                        )
-        ).orderBy(templateFor(FeatureEntityV2.class).osmpoint(), muenich, OrderBy.Order.ASCENDING);
-
-
-        System.out.println("Number of Results " + query.count());
-
-        Iterator<FeatureEntityV2> iterator = query.iterator();
-
-        while(iterator.hasNext())
-        {
-            FeatureEntityV2 point = iterator.next();
-            System.out.println(point.properties() + " at lon "  + point.osmpoint().get().y() + " lat " + point.osmpoint().get().x());
-        }
-
-        module.currentUnitOfWork().complete();
-    }
-
-
-    @Test
-    public void naivePerformanceTest() throws Exception
-    {
-        final int iterations = 1000;
-
-        long start = System.currentTimeMillis();
-
-        for (int i = 0; i <= iterations; i++)
-        {
-            whenThirstyThenFindDrinkingWaterInMuenich();
-        }
-
-        long end = System.currentTimeMillis();
-
-        long duration = (end - start);
-
-        System.out.println(duration);
-
-        System.out.println(duration / iterations + " ms per query");
-    }
-
-    /**
-    @Test
-    public void testCreatingSpatialFeature() throws Exception
-    {
-        Map<String, String> properties = new HashMap<>();
-        properties.put("note", "80339 München");
-
-
-        module.newUnitOfWork();
-        OSM.Repository.$(module).createFeature(
-                TFEATURE(module).of(TPOINT(module).x(11.5429443d).y(48.1427636d).geometry()).geometry(),
-                properties
-        );
-        module.currentUnitOfWork().complete();
-
-       //  System.out.println("foo");
-    }
-*/
-    @Test
-    public void testQueryForSpatialFeature() throws Exception
-    {
-/**
-        testCreatingSpatialFeature();
-
-        QueryBuilder<FeatureEntity> qb = this.module.newQueryBuilder(FeatureEntity.class);
-
-        Query<FeatureEntity> query = module.newUnitOfWork().newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(FeatureEntity.class).feature(),
-                                                TPOINT(module).x(11.5429443d).y(48.1427636d).geometry()
-                                        )
-                        ));
-
-
-        query.find();
-
-        System.out.println(query.count());
-
-        module.currentUnitOfWork().complete();
-*/
-        //  System.out.println("foo");
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/settings.gradle
----------------------------------------------------------------------
diff --git a/settings.gradle b/settings.gradle
index 48e1794..2779ea2 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -82,7 +82,6 @@ include "core:functional",
         'samples:forum',
         'samples:rental',
         'samples:sql-support',
-        'samples:openstreetmap',
         'samples:struts2Hello',
         'samples:swing',
         'tools:entity-viewer',


[20/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/ge-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/ge-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/ge-municipalities.json
deleted file mode 100644
index 72b0397..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/ge-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":6601,"properties":{"name":"Aire-la-Ville"},"arcs":[[[-30,-110,-93,-4]]]},{"type":"MultiPolygon","id":6602,"properties":{"name":"Anières"},"arcs":[[[44,45,-16,46,47]]]},{"type":"MultiPolygon","id":6603,"properties":{"name":"Avully"},"arcs":[[[-50,-95,101,102,-87,-83,103]]]},{"type":"MultiPolygon","id":6604,"properties":{"name":"Avusy"},"arcs":[[[85,-84,86,87,88]]]},{"type":"MultiPolygon","id":6605,"properties":{"name":"Bardonnex"},"arcs":[[[89,90,-78,91]]]},{"type":"MultiPolygon","id":6606,"properties":{"name":"Bellevue"},"arcs":[[[-40,71,72,73,-64,-20,74]]]},{"type":"MultiPolygon","id":6607,"properties":{"name":"Bernex"},"arcs":[[[22,23,24,25,26,27,28,29,-3]]]},{"type":"MultiPolygon","id":6608,"properties":{"name":"Carouge (GE)"},"arcs":[[[-98,-11,-69]]]},{"type":"MultiPolygon","id":6609,"properties":{"name":"Cartigny"},"arcs":[[[-29,108,-102,-94,109]]]},{"type":"Mu
 ltiPolygon","id":6610,"properties":{"name":"Céligny"},"arcs":[[[51]],[[129]]]},{"type":"MultiPolygon","id":6611,"properties":{"name":"Chancy"},"arcs":[[[82,83,84]]]},{"type":"MultiPolygon","id":6612,"properties":{"name":"Chêne-Bougeries"},"arcs":[[[-70,-9,-58,-108,113,114]]]},{"type":"MultiPolygon","id":6613,"properties":{"name":"Chêne-Bourg"},"arcs":[[[-114,-107,-120]]]},{"type":"MultiPolygon","id":6614,"properties":{"name":"Choulex"},"arcs":[[[-62,-101,115,116,-105,-56,-37]]]},{"type":"MultiPolygon","id":6615,"properties":{"name":"Collex-Bossy"},"arcs":[[[-21,63,64]]]},{"type":"MultiPolygon","id":6616,"properties":{"name":"Collonge-Bellerive"},"arcs":[[[34,35,36,37,38,39,40,-18]]]},{"type":"MultiPolygon","id":6617,"properties":{"name":"Cologny"},"arcs":[[[55,56,57,-8,58,-38]]]},{"type":"MultiPolygon","id":6618,"properties":{"name":"Confignon"},"arcs":[[[126,-25,-126,-80]]]},{"type":"MultiPolygon","id":6619,"properties":{"name":"Corsier (GE)"},"arcs":[[[111,112,-63,-35,-17,-46]]
 ]},{"type":"MultiPolygon","id":6620,"properties":{"name":"Dardagny"},"arcs":[[[-6,48,49,50]]]},{"type":"MultiPolygon","id":6621,"properties":{"name":"Genève"},"arcs":[[[7,8,9,10,11,12,13,14]]]},{"type":"MultiPolygon","id":6622,"properties":{"name":"Genthod"},"arcs":[[[-41,-75,-19]]]},{"type":"MultiPolygon","id":6623,"properties":{"name":"Le Grand-Saconnex"},"arcs":[[[-76,-14,-55,-42,110,-73]]]},{"type":"MultiPolygon","id":6624,"properties":{"name":"Gy"},"arcs":[[[122,-34,-60,-113]]]},{"type":"MultiPolygon","id":6625,"properties":{"name":"Hermance"},"arcs":[[[-48,95]]]},{"type":"MultiPolygon","id":6626,"properties":{"name":"Jussy"},"arcs":[[[30,31,32,33]]]},{"type":"MultiPolygon","id":6627,"properties":{"name":"Laconnex"},"arcs":[[[-88,-103,-109,-28,117]]]},{"type":"MultiPolygon","id":6628,"properties":{"name":"Lancy"},"arcs":[[[-82,96,-53,-12,97]]]},{"type":"MultiPolygon","id":6629,"properties":{"name":"Meinier"},"arcs":[[[59,-33,60,61,-36,62]]]},{"type":"MultiPolygon","id":6630,"p
 roperties":{"name":"Meyrin"},"arcs":[[[41,42,-1,43]]]},{"type":"MultiPolygon","id":6631,"properties":{"name":"Onex"},"arcs":[[[-81,125,-24,-54,-97]]]},{"type":"MultiPolygon","id":6632,"properties":{"name":"Perly-Certoux"},"arcs":[[[128,-125,-26,-127,-79,-91]]]},{"type":"MultiPolygon","id":6633,"properties":{"name":"Plan-les-Ouates"},"arcs":[[[76,77,78,79,80,81,-68]]]},{"type":"MultiPolygon","id":6634,"properties":{"name":"Pregny-Chambésy"},"arcs":[[[-39,-59,-15,75,-72]]]},{"type":"MultiPolygon","id":6635,"properties":{"name":"Presinge"},"arcs":[[[98,99,100,-61,-32]]]},{"type":"MultiPolygon","id":6636,"properties":{"name":"Puplinge"},"arcs":[[[127,-121,-116,-100]]]},{"type":"MultiPolygon","id":6637,"properties":{"name":"Russin"},"arcs":[[[-5,92,93,94,-49]]]},{"type":"MultiPolygon","id":6638,"properties":{"name":"Satigny"},"arcs":[[[0,1,2,3,4,5,6]]]},{"type":"MultiPolygon","id":6639,"properties":{"name":"Soral"},"arcs":[[[123,-89,-118,-27,124]]]},{"type":"MultiPolygon","id":6640,"pro
 perties":{"name":"Thônex"},"arcs":[[[118,-71,-115,119,-106,-117,120]]]},{"type":"MultiPolygon","id":6641,"properties":{"name":"Troinex"},"arcs":[[[121,-92,-77,-67]]]},{"type":"MultiPolygon","id":6642,"properties":{"name":"Vandoeuvres"},"arcs":[[[104,105,106,107,-57]]]},{"type":"MultiPolygon","id":6643,"properties":{"name":"Vernier"},"arcs":[[[-13,52,53,-23,-2,-43,54]]]},{"type":"MultiPolygon","id":6644,"properties":{"name":"Versoix"},"arcs":[[[15,16,17,18,19,20,21]]]},{"type":"MultiPolygon","id":6645,"properties":{"name":"Veyrier"},"arcs":[[[65,66,67,68,-10,69,70]]]}]}},"arcs":[[[2600,4359],[53,-39],[59,-33],[93,-27],[56,-61],[108,-133],[48,-48],[44,-56],[118,-131],[67,-88]],[[3246,3743],[-21,-19],[62,-62],[83,-56],[11,-13],[-28,-12],[-35,-40],[-92,-68],[47,-91],[33,10],[34,-44],[2,-35],[-31,-67],[2,-32],[-19,-27],[17,-48],[42,-14],[3,-23]],[[3356,3102],[-27,-6],[-59,-40],[-44,-69],[-19,-40],[-29,-94],[-38,-67],[-35,-33],[-67,-33],[-81,-18]],[[2957,2702],[-77,-7],[-75,32],[-49,12],
 [-80,-3],[-31,4],[-64,25],[-107,91],[-57,29],[-52,52],[-67,43],[-64,17],[-38,-3],[-31,-14]],[[2165,2980],[-11,18],[-48,2],[-45,-17],[-112,47],[-40,-4],[-37,14],[-18,-10],[-33,9],[-59,-4],[-28,25],[-33,67],[-19,5],[-64,64],[-56,-16],[-4,-27],[-33,24],[-4,60],[39,27],[-6,35],[-41,79],[37,22],[-33,56],[-166,-105],[-54,-4],[-17,11],[1,45],[-45,4],[-31,-15],[-60,45]],[[1145,3437],[0,41],[27,50],[-21,51],[2,15],[34,48],[20,86],[60,51],[-10,81],[12,22],[32,16]],[[1301,3898],[43,17],[40,77],[48,44],[74,24],[-6,24],[-7,94],[45,-10],[34,26],[22,34],[-20,31],[12,18],[64,-25],[31,24],[-4,32],[-17,22],[17,35],[47,-29],[14,0],[32,64],[27,-18],[61,6],[8,18],[91,20],[16,20],[32,-4],[24,13],[5,30],[27,6],[53,42],[42,50],[60,49],[40,40],[144,-147],[90,-82],[110,-84]],[[5968,4001],[-23,-87],[-92,-248],[-24,-60],[290,-147],[6,-13],[-34,-22],[53,-64],[-70,-83],[-3,-39],[26,-36],[89,47],[27,-54],[-34,-25],[-19,-30],[26,-20],[-43,-44],[9,-21],[57,-50]],[[6209,3005],[-42,-64],[10,-16],[-10,-50],[-36,-72],[
 -54,-88],[38,-27],[-150,-176],[12,-106]],[[5977,2406],[-42,30],[-37,11],[-41,-8],[-33,-35],[-1,-79],[-13,-41],[-57,-121],[-11,-100],[-25,-41],[-30,-16],[-55,8],[-28,24],[-24,57]],[[5580,2095],[21,208],[-19,60],[-42,23],[-115,12],[-93,-2],[-58,26],[-22,27],[-13,48],[-54,-13],[-71,3],[-54,89],[-90,-69],[-7,7],[-87,-65],[-24,-2]],[[4852,2447],[9,126],[2,169],[-26,-1],[-3,33],[16,73],[-107,-52],[-56,12],[0,65],[-148,-21],[0,7],[-108,-15],[-16,8],[-9,62],[-5,134],[-14,54]],[[4387,3101],[4,0],[-14,125],[26,41],[38,82],[70,97],[-8,7],[30,42],[80,168],[22,8],[-56,33],[-26,25],[-29,47],[-34,71],[99,76]],[[4589,3923],[10,2],[112,114],[10,12],[-23,42],[24,27],[59,-45],[45,70],[11,-11],[23,29],[19,-19],[30,29],[-14,20],[47,48],[12,20],[67,65]],[[5021,4326],[11,9],[42,-53],[37,-2],[19,-24],[22,-68],[29,-16],[11,34],[-8,57],[121,-43],[16,57],[6,-22],[56,-53],[32,-23],[61,-19],[12,-14],[480,-145]],[[6904,6556],[-105,-205]],[[6799,6351],[-150,-292]],[[6649,6059],[-169,-330]],[[6480,5729],[-408,234]
 ,[-195,101],[-133,57],[-107,-52],[-69,14],[-100,113],[-43,-25],[-138,-110]],[[5287,6061],[0,3]],[[5287,6064],[2,59],[-26,69],[30,74],[60,175],[-34,-19],[-16,-43],[-32,-2],[-17,-38],[-31,0],[-21,30],[12,36],[19,23],[-8,22],[-47,18],[-18,-35],[-17,-10],[-32,32],[-48,18],[-14,-28],[-19,19],[-4,41],[-24,43],[-6,45],[9,28],[33,30],[-8,34],[16,36],[44,25],[4,44],[-18,41],[1,56],[-198,140],[-120,108],[-34,16]],[[4725,7151],[-12,30],[50,41],[-12,74],[-30,0],[-31,45],[-9,41],[34,34],[-12,25],[22,41],[-23,19],[27,16],[11,36],[-7,28],[-35,22],[19,24],[-4,43],[14,5],[-19,36],[16,24],[8,47],[-16,14],[35,28],[31,35],[22,12],[-4,20],[28,20],[17,30],[-1,56],[43,10],[24,-23],[-20,-32],[79,-40],[-19,-41],[44,-51],[4,-15],[104,-100],[-3,-17],[29,-53],[38,-38],[130,-115],[-2,-28],[162,-96],[112,-70],[77,-80],[172,-64],[158,-87],[53,-26],[86,-18],[789,-457]],[[3356,3102],[81,-6],[36,3],[50,31],[56,68],[68,124],[71,88],[60,51],[55,14],[44,-19],[22,-27],[19,-46],[-3,-47],[-39,-78],[-42,-134],[-15,-69],[1,
 -98],[-14,-36],[-61,-45],[-26,-44],[5,-52],[19,-43],[35,-30]],[[3778,2707],[-62,-40],[-14,-1]],[[3702,2666],[-16,-11],[-8,-38],[-27,-31],[-25,-11],[-5,-23],[28,-104],[42,-54],[40,-66],[10,-28],[13,-78],[-5,-32],[7,-84],[-3,-41],[-66,3],[-124,-6],[-89,-25],[-16,-15],[31,-56],[-104,-84],[33,-98],[-20,-46],[-26,-20],[50,-42],[28,21],[60,-74],[27,1],[-3,-19],[25,-35],[23,-12],[72,39],[32,-52]],[[3686,1545],[-133,-92],[25,-32],[-76,-86],[-16,20],[-50,-53],[-29,28],[6,-92],[-15,-204],[-13,-78],[-22,-91],[-22,-36]],[[3341,829],[-33,50],[-30,86],[-17,23],[-104,106],[-90,81],[-97,99],[-158,-93],[-42,-31],[-29,-32],[-97,-187]],[[2644,931],[-20,91],[29,39],[-41,70],[33,53],[-37,37],[-118,141],[46,23],[-20,25],[9,31],[-9,28],[16,15],[-18,20],[-16,60],[-100,127],[-61,73]],[[2337,1764],[25,20],[60,26],[51,12],[45,78],[15,-5],[76,44],[47,61],[27,70],[30,53],[-5,74],[-19,50]],[[2689,2247],[7,23],[82,-19],[18,20],[50,102],[-86,50],[67,49],[94,93],[50,84],[-14,53]],[[9608,5289],[9,-14],[51,-16],[32,9
 ],[76,-32],[34,12],[37,39],[27,-2],[25,24],[55,3],[37,-15],[-32,-30],[-22,-41],[-5,-47],[-57,-89],[64,-27],[40,-29],[-23,-111],[16,-75],[20,-21],[7,-55],[-22,-49],[-133,-241],[-40,-52],[-37,-62],[-104,-214],[-83,-145],[-29,-38],[-94,-57]],[[9457,3914],[-19,31],[-35,35],[-27,5],[-47,-17],[-24,10],[-7,-18],[-57,5],[-118,45],[-42,-66],[-42,51],[-43,-22],[-37,9],[-53,-38],[-14,1],[-64,-47],[-66,30],[-72,12],[-49,-9],[-33,-18],[-58,4],[-28,-21],[-65,14],[-84,-62],[-19,-25],[-84,198],[-52,44],[-16,-9]],[[8202,4056],[49,122],[-147,49],[19,106],[-60,13],[46,162],[79,-37],[29,-1],[54,130],[119,-56],[10,4],[10,46],[32,75],[38,21],[36,89]],[[8516,4779],[30,-36],[64,-14],[41,21],[28,-1],[-9,46],[14,64],[11,13],[40,1],[88,-68],[55,-81],[43,23],[37,9],[61,29],[157,47],[79,65],[49,51],[42,102],[31,20],[64,111],[57,83],[18,15],[55,-20],[37,30]],[[6649,6059],[552,-320],[57,-60],[42,-36],[0,-34],[45,-33],[88,-47],[56,-18],[24,-87],[27,-43],[-9,-9],[29,-21],[-7,-13],[88,-56],[-19,-41],[75,-3],[9,-9]],
 [[7706,5229],[-33,-53],[-50,-124],[-88,63],[-14,-30],[-94,-114],[-8,-25],[-130,-232],[40,-29],[-19,-35],[11,-80],[-7,-34],[-25,-30]],[[7289,4506],[-14,18],[-65,-14],[-82,-52],[-69,-3],[-35,-16],[-71,-95]],[[6953,4344],[-90,86],[-30,42],[-34,28],[-23,0],[-41,22],[-31,35],[-544,159]],[[6160,4716],[8,31]],[[6168,4747],[112,415]],[[6280,5162],[101,373],[99,194]],[[4163,4607],[-28,-21],[48,-71],[67,-38],[2,-37],[22,-72],[61,-108],[-8,-10],[40,-75],[-14,-8],[17,-33],[66,-87]],[[4436,4047],[-32,-32],[6,-8],[-35,-36],[-11,7],[-34,-39],[-20,25],[-55,-52],[-56,-63],[-435,191],[-24,-26],[6,-65],[-8,-16],[-44,-3],[9,-14],[-51,-53],[-64,42],[-78,19],[-75,-4],[-9,-22],[-47,-40],[57,-60],[-69,-63],[-50,65],[-71,-57]],[[2600,4359],[38,85],[15,-11],[44,48],[37,67],[38,101],[109,144],[34,22],[94,120],[28,3],[55,29],[22,-49],[16,-17],[69,-109],[26,9],[37,-36],[20,22],[18,-16],[26,37],[33,-37],[22,40],[-26,35],[20,26],[56,-6],[47,46],[17,-20],[50,50],[68,16],[15,-18],[32,50],[22,19],[34,-40],[67,42],[1
 3,-53],[61,-34],[71,-97],[6,7],[150,-173],[67,-63],[12,9]],[[8171,6570],[-26,8],[-39,-17],[6,-46],[-62,-52],[2,-27],[-19,-13],[-33,16],[10,-21],[-6,-39],[19,-23],[3,-35],[-14,-8],[-3,-49],[-24,-14],[12,-29],[6,-55],[22,-36],[79,-79],[26,-12],[185,-441]],[[8315,5598],[-53,-48],[-35,8],[-51,27],[-45,5],[-56,-3],[-34,13],[2,17],[-36,24],[3,27],[-78,68],[-13,20],[-190,24],[-64,-57],[-30,67],[6,9],[-65,34],[-52,75],[-19,14],[-49,10],[-21,31],[-31,17],[-13,28],[-592,343]],[[6904,6556],[327,637]],[[7231,7193],[722,-419],[66,-57],[110,-77],[42,-70]],[[1145,3437],[-69,-27],[5,-15],[44,-42],[20,-143],[114,-75],[62,-59],[18,-62],[54,-84],[-9,-32],[-36,-61],[21,-57],[36,-60],[20,-55],[19,-74],[24,-42],[12,-81],[70,-81],[12,-52],[-10,-50],[-20,-30],[-19,-57],[16,-42],[12,-70],[0,-46]],[[1541,2040],[-85,-44],[-57,-17],[-70,12],[-118,41],[-112,27],[-62,-9]],[[1037,2050],[-36,34],[15,15],[9,40],[24,6],[75,99],[8,69],[-44,43],[-23,67],[-8,43],[-52,55],[-34,-6],[-151,58],[-47,48],[24,31],[-304,152],[
 -224,124],[20,43],[6,35],[28,29],[46,18],[10,16],[18,-13],[64,61],[36,10],[48,44],[-16,36],[-60,41],[-40,92],[32,76],[40,123],[50,102],[38,55],[127,93],[25,-12],[12,11],[67,-18],[33,14],[78,-25],[14,4],[42,-31],[65,-11],[5,-16],[38,-10],[26,88],[-20,75],[-36,33],[-24,71],[-13,12],[75,51],[42,-23],[26,7],[76,-21],[30,-24],[24,-66]],[[8132,9071],[-259,-555],[-705,368],[-20,21],[-59,15],[-16,-35],[-289,214],[54,209],[-42,9],[-50,-9],[-58,42],[-19,26],[-46,-25],[-25,1],[-93,52],[10,19],[-82,70],[-145,51],[-66,40],[-43,155],[80,34],[66,34],[-61,75],[10,26],[59,33],[54,24],[52,34],[105,-79],[46,-46],[28,-51],[54,-11],[96,15],[102,0],[44,-12],[32,-52],[-18,-27],[41,-72],[14,-57],[16,-3],[41,-35],[42,3],[38,15],[64,-7],[121,-68],[8,11],[24,-28],[200,-105],[595,-319]],[[4387,3101],[-29,-5],[-42,-32],[-31,-34],[-28,-52],[-95,-130]],[[4162,2848],[-64,-105],[-35,-44],[-33,-26],[-34,-12],[-70,-9],[-77,14],[-71,41]],[[4436,4047],[70,-85],[59,-20],[24,-19]],[[6953,4344],[2,-2]],[[6955,4342],[-355,
 -450],[-46,-63],[69,-58],[-21,-44],[-39,-38],[69,-83],[8,-48],[-31,-19],[28,-40],[114,-231],[9,-30]],[[6760,3238],[-117,-66],[-27,22],[-59,19],[-64,-72],[-165,64],[-32,-37],[19,-41],[-41,-35],[-65,-87]],[[5968,4001],[192,715]],[[8185,5321],[234,-160],[0,-7],[-86,-94],[-30,-52],[52,-4],[79,17],[-2,-37],[-19,-42],[87,-71],[-28,-98],[44,6]],[[8202,4056],[-9,-25],[-74,25],[-7,-17]],[[8112,4039],[-127,42],[2,9],[-79,26],[0,57],[17,157],[20,57],[-165,84],[10,-35],[-110,-115],[-31,19],[-11,-21],[-16,10],[-29,-68],[-16,0],[-15,-40],[-62,14],[10,39],[-72,17],[-39,-19],[-55,-4],[-40,15],[31,46],[28,124],[-49,18],[-35,26],[10,9]],[[7706,5229],[46,79],[38,29],[74,-31],[25,55],[196,15],[100,-55]],[[5287,6064],[-608,-481]],[[4679,5583],[-11,18],[21,16],[-54,79],[57,50],[-3,8],[-104,63],[-22,-14],[-54,77],[-50,58],[7,6],[-55,61],[103,83],[-52,33],[-15,31],[-42,28],[-30,4],[-24,56],[-27,33],[-27,4],[-23,58],[-43,20],[32,63],[11,83],[11,37],[-19,25],[1,28],[-56,33],[32,27],[30,60],[43,33],[37,39],[4
 2,27],[79,91],[18,45],[23,31],[-9,9],[39,52],[70,-32],[40,24],[45,-12],[3,21],[-22,17],[-10,30],[64,46],[-10,19]],[[6485,2014],[13,-29],[-18,-12],[10,-33],[-3,-77],[18,-34],[45,-328],[-99,-103],[-52,-43],[-143,-105],[-23,-39],[-64,-46]],[[6169,1165],[-25,27],[-43,70],[-131,-18],[-132,-22],[-185,192],[43,60],[-52,26],[-48,47],[-15,-31],[-140,107],[-37,1],[-21,-12],[-72,12],[-77,-19],[-11,17],[-16,-17]],[[5207,1605],[-13,0]],[[5194,1605],[6,30],[-33,121],[0,26],[49,45],[76,94],[65,71],[37,-35],[27,-12],[26,11],[41,45],[20,-5],[25,25],[17,54],[30,20]],[[5977,2406],[23,-27],[32,-63],[29,-77],[10,-51],[6,-76],[-4,-50],[-10,-29],[-29,-36],[-23,-13],[-9,-28],[25,-40],[52,-7],[41,16],[80,44],[33,26],[46,64],[40,14],[30,-8]],[[6349,2065],[99,-16],[37,-35]],[[6168,4747],[-552,168],[-46,32],[-43,-2],[-75,62],[-53,33],[-72,69],[-29,37],[-46,-9],[-69,-49],[-53,-22],[-105,-57],[-59,-44],[-52,-61]],[[4914,4904],[-3,29],[21,91],[-68,-37],[-38,78],[-13,58],[-33,21]],[[4780,5144],[26,26],[-17,25],[17
 ,32],[-28,6],[-62,55],[-5,49],[27,39],[22,17],[-33,55],[29,19],[-77,116]],[[5287,6061],[47,-24],[-50,-121],[17,-27],[51,-127],[1,-69],[9,-69],[-24,-49],[60,-55],[150,-74],[66,-55],[86,-54],[580,-175]],[[5021,4326],[-78,95],[73,64],[102,66],[-55,65],[-50,70],[-69,157],[-30,61]],[[5207,1605],[-50,-211],[-20,-157],[1,-32],[28,-73],[0,-36],[-14,-60]],[[5152,1036],[-39,21],[-25,-12],[-56,25],[-43,-59],[-127,-40],[-55,17],[-16,-29],[-65,-53],[-45,10],[13,42],[-144,74],[0,-13],[-81,49],[-52,57],[-14,-20],[-105,79],[-72,37],[-87,-170],[-9,26],[-36,31],[-31,40],[-41,23]],[[4022,1171],[10,65],[34,41],[53,82],[-32,34],[-97,130]],[[3990,1523],[132,113],[74,49],[-45,64],[-26,-19],[-59,68],[4,32],[-19,26],[3,23]],[[4054,1879],[95,48],[118,-5],[57,29],[38,4]],[[4362,1955],[21,-34],[45,-48],[6,8],[55,-59],[60,41],[74,0],[24,-62],[16,-5],[72,-53],[56,42],[52,-46],[60,-43],[102,-59],[17,53],[33,39],[34,-48],[-26,-18],[-33,-66],[64,3],[40,27],[55,-61],[5,39]],[[579,1377],[30,-25],[3,-22],[89,-69],[104
 ,-2],[4,-21],[34,14],[42,30],[40,74],[32,28],[26,36],[22,50],[39,50],[61,-11],[31,-39],[41,-25],[112,8],[35,-50],[39,-24],[-7,-12],[24,-18],[-28,-46],[65,-83]],[[1417,1220],[-141,-88],[-59,-27],[-152,-57],[-64,-14],[-62,-39],[-44,-11],[-43,-30],[-4,-57],[-36,-46],[-20,-131],[-28,-44],[-12,-102]],[[752,574],[-4,-31],[16,-11],[-32,-166],[-80,-79],[-45,-81],[-60,-41],[-36,-11],[-34,-32],[-34,24],[-64,-5],[-8,-24],[-42,-16],[-34,-36],[-36,-22],[-12,23],[-102,27],[-36,-40],[-70,-53],[-16,9],[-8,131],[-15,23],[49,53],[34,24],[98,53],[56,26],[36,34],[18,36],[8,51],[-54,129],[-8,51],[4,58],[26,76],[46,67],[22,73],[52,114],[96,133],[32,64],[28,65],[4,32],[32,75]],[[1908,478],[-28,43],[-28,1],[-15,-19],[-32,42],[-48,7],[-35,28],[-46,-1],[-18,8],[-9,-24],[-20,5],[-19,-19],[-72,9],[-25,-8],[-29,33],[-59,-29],[-16,8],[-76,-21],[-36,23],[-21,-5],[-29,23],[-6,19],[-34,-12],[-50,7],[-6,29],[-51,14],[-7,-14],[-14,40],[-30,-22],[-76,-30],[-42,22],[-50,-50],[-32,13],[-13,23],[-45,-10],[-39,-37]],[[141
 7,1220],[341,210],[68,37]],[[1826,1467],[-9,-193],[-23,-74],[-57,-122],[-15,-40],[106,-13],[73,-28],[75,-39],[85,-53],[16,17],[109,-71],[11,-23],[48,-51]],[[2245,777],[-171,-126],[-74,-80],[-27,-16],[-23,-38],[-42,-39]],[[5346,697],[28,-20],[-69,-74],[-60,40],[-22,60],[-15,-48],[5,-23],[-27,-32],[-36,-16],[-71,-62],[-14,-28],[1,-30],[-100,-30],[-22,28],[-25,-37],[-40,-13],[-45,1],[-44,11],[-73,56],[-105,41],[-16,-4],[-150,21],[-49,-8],[-63,-1],[-23,30],[-48,-25],[-35,32],[-2,17],[-93,15],[-111,-11],[-18,-8],[-72,192],[-24,36],[-39,38],[4,23],[-21,34],[-31,28]],[[3821,930],[53,40],[50,60],[51,40],[40,70],[7,31]],[[5152,1036],[-1,-74],[-7,-52],[-16,-51],[54,-17],[41,-27],[16,1],[81,-75],[5,-26],[21,-18]],[[2165,2980],[-35,-32],[-42,-60],[-18,-58],[11,-75],[63,-134],[13,-52],[-4,-43],[-35,-62],[-38,-34]],[[2080,2430],[-130,-114],[-52,-33],[-100,-44],[-53,-48],[-37,-70],[-35,-44],[-23,-14],[-80,-21]],[[1570,2042],[-29,-2]],[[7231,7193],[272,529],[609,-332],[33,-35],[25,-6],[31,26],[12,-
 39],[38,-22],[32,1],[15,-33],[22,-11],[-21,-38],[-28,-3],[-9,-30],[28,-1],[6,-19],[31,-28],[-38,-37],[26,-27],[-25,-16],[8,-23],[48,2],[-16,-41],[-27,-28],[2,-35],[22,-31],[35,9],[16,-26],[-27,-41],[35,-18],[19,7],[4,-41],[16,-11],[-31,-37],[-13,-71],[-79,-24],[12,-33],[-32,-5],[-7,-20],[-19,3],[-2,-22],[-21,-17],[-62,1]],[[4362,1955],[-12,20],[27,16],[26,36],[23,1],[-53,96],[-10,-1],[-17,82],[9,58],[32,31],[-58,92],[-20,21],[17,8],[-33,67],[36,17],[-21,56],[-10,4],[-43,107],[5,17],[-69,139],[-29,26]],[[4852,2447],[11,-84],[6,-205],[22,-3],[45,43],[11,-10],[-3,-198],[-4,-44],[-20,-24],[-26,-10],[17,-35],[86,80],[37,-57],[15,-58],[21,-1],[34,-23],[-7,-32],[32,-55],[1,-36],[23,-26],[-19,-21],[46,-48],[14,5]],[[9457,3914],[-61,-35],[-26,-38],[-110,-89],[-150,-128],[-67,-61],[-177,-52],[-59,-29],[-27,13],[-30,-8],[-22,-18],[-68,-23],[-28,-23],[-80,-44],[-94,-40],[-32,-33],[-20,1],[-62,-78],[-78,-64],[9,-38],[-58,14],[-32,26],[-5,21],[-37,24]],[[8143,3212],[-102,66],[0,59],[119,113],[71,
 142],[-54,33],[-14,37],[-64,28],[-14,-13],[-45,20],[-57,32],[-28,-54],[-44,24],[-62,9]],[[7849,3708],[9,45],[34,36],[7,-9],[32,35],[9,-10],[41,38],[62,106],[42,-27],[27,117]],[[1570,2042],[19,-79],[16,-34],[8,-56],[12,-24],[75,-69],[41,-31],[37,-63],[16,-74],[24,-73],[-10,-3],[14,-59],[12,-4]],[[1834,1473],[-8,-6]],[[579,1377],[22,55],[94,153],[17,49],[20,135],[0,52],[24,72],[21,25],[39,3],[24,-16],[29,-39],[20,-73],[28,-9],[15,12],[21,44],[7,62],[27,90],[20,33],[30,25]],[[6955,4342],[60,-71],[23,15],[44,-102],[63,-61],[80,-65],[30,-16],[34,12],[51,-9],[37,-15],[37,-40],[-48,-128],[25,-59],[65,-91],[-14,-70],[-2,-69],[-23,-47],[-57,-66],[7,-83]],[[7367,3377],[-41,-22],[-24,13],[-13,33],[-38,30],[-26,6],[-63,-39],[-78,-15],[-73,-30],[-16,-24]],[[6995,3329],[-34,-16],[-39,-69]],[[6922,3244],[-15,0],[-42,50],[-22,-24],[-83,-32]],[[2337,1764],[-67,-57],[-177,-83],[-125,-68],[-134,-83]],[[2080,2430],[141,-79],[165,-113],[52,44],[95,90],[8,-19],[20,8],[44,-10],[22,-53],[62,-51]],[[4163,46
 07],[143,139],[53,-57],[341,344],[-13,21],[93,90]],[[8315,5598],[6,-21]],[[8321,5577],[-30,-77],[-66,-125],[-40,-54]],[[6922,3244],[14,-42],[-14,-15],[-1,-48],[23,-30],[-15,-35],[-50,-12],[2,-24],[-46,-17],[-26,7],[-43,-51],[2,-30],[-16,7],[-32,-20],[-16,-21],[-9,-67],[-44,-28],[-6,-29],[10,-41],[-15,-23],[-41,-10],[-62,-30],[-34,23],[-20,-64],[-21,-22],[10,-32],[19,1],[14,-22],[1,-45]],[[6506,2524],[-18,-61],[-30,-15],[-37,-76],[-13,-98],[-19,-7],[11,-47],[32,-38],[-7,-48],[-25,-6],[-6,-33],[-23,-4],[-22,-26]],[[7849,3708],[-16,-82],[-23,8],[-15,-49],[-113,37],[10,42],[-69,12],[-47,-64],[-94,-115],[-8,6],[-33,-43],[-16,-36],[-30,-34],[-25,-13]],[[7370,3377],[-3,0]],[[2644,931],[-40,-75],[-23,26],[-32,55],[-40,42],[-73,20],[-22,-29],[-66,-57],[-18,19],[-68,-64],[22,-57],[-39,-34]],[[7571,2981],[-72,-27],[-9,-33],[17,-40],[-36,-3],[-43,-17],[-29,12],[-3,-26],[-27,-7],[-26,-59],[-14,-66],[-42,-17],[-6,-26],[-45,13],[-3,-19],[-30,-34],[22,-10],[-29,-16],[-32,19],[-35,-3],[-53,-16],[-33
 ,-33],[-18,8],[1,-37],[-19,-8],[9,-35],[-31,-23],[2,-12],[-33,2],[-27,-51],[-8,-52],[-21,-2],[-16,-25],[-42,-34],[8,-15],[-33,-63],[-22,17],[-64,11],[5,-26],[-51,-27],[-16,-27],[-19,4],[-24,-40],[-77,11],[18,-36],[-35,4],[-20,-17],[8,-76],[-33,-10]],[[6506,2524],[61,-10],[59,28],[21,21],[38,-21],[30,-4],[51,-27],[20,45],[47,-20],[54,222],[72,11],[16,53],[-21,4],[21,32],[59,39],[-32,48],[36,20],[-26,84],[-19,25],[32,40],[-14,13],[16,59],[1,96],[-33,47]],[[7370,3377],[8,-77],[13,-26],[101,-117],[29,-55],[-6,-3],[56,-118]],[[6169,1165],[-33,-24],[-54,-19],[-44,-6],[-61,0],[-134,-76],[-163,-82],[-20,-30],[-98,-18],[-147,-88],[-69,-125]],[[8321,5577],[323,-330],[-22,-81],[-21,-42],[73,-30],[84,-85],[26,-59],[50,37],[44,-4],[41,27],[32,10],[51,41],[96,40],[36,5],[-20,43],[64,44],[96,29],[31,28],[-49,47],[88,58],[91,111],[46,87],[2,24],[24,40],[16,0],[56,45],[37,-14],[11,-44],[-17,-31],[8,-33],[-32,-52],[2,-18],[-37,-26],[12,-15],[-10,-52],[28,-52],[-2,-29],[29,-7]],[[3332,816],[-56,38],[-
 327,60],[-234,11],[-109,-180],[-44,-193],[16,-17],[-21,-18],[-52,-77],[-72,64],[-41,-61],[-44,-9],[-66,-71],[-32,-60],[-21,-99],[-12,18],[-17,61],[2,32],[-20,-15],[-6,31],[8,26],[-34,2],[8,38],[-37,-33],[8,60],[-52,-8],[-44,23],[8,28],[-37,-14],[-96,25]],[[3341,829],[-9,-13]],[[4054,1879],[-22,-3],[12,25],[-1,50],[-37,27],[-50,-25],[-24,49],[8,7],[-20,41],[-20,-6],[-22,58],[8,35],[42,24],[-50,15],[-33,24],[25,27],[-21,65],[-19,-7],[-41,92],[-10,9],[33,70],[-7,47],[-42,59],[-61,104]],[[3990,1523],[-48,72],[-120,-87],[-91,-90],[-40,59],[20,24],[-25,44]],[[8143,3212],[10,-83],[-93,-13],[-25,23],[-54,-1],[-68,57],[-72,0],[-32,-15],[-54,-69],[-27,-9],[9,-21],[-72,-16],[11,-35],[-40,-21],[-25,12],[-40,-40]],[[3821,930],[-473,-124],[-16,10]],[[6544,9194],[-79,-91],[-15,22],[-10,-15],[-111,71],[-2,17],[-60,47],[-19,-59],[-46,-46],[-2,-53],[13,-59],[-8,-26],[-46,-9],[-111,91],[79,161],[66,126],[60,-39],[20,37],[0,22],[26,42],[245,-239]]],"transform":{"scale":[0.05102270563553192,-0.048004800
 480048015],"translate":[224.91198317515816,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/gl-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/gl-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/gl-municipalities.json
deleted file mode 100644
index c78a73d..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/gl-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":1630,"properties":{"name":"Glarus Nord"},"arcs":[[[3,4,-2]]]},{"type":"MultiPolygon","id":1631,"properties":{"name":"Glarus Süd"},"arcs":[[[0,1,2]]]},{"type":"MultiPolygon","id":1632,"properties":{"name":"Glarus"},"arcs":[[[5,-4,-1]]]}]}},"arcs":[[[1979,4577],[57,34],[95,20],[58,39],[34,-3],[65,25],[27,24],[118,46],[23,17],[96,30],[151,37],[8,42],[18,7],[1,54],[17,64],[140,77],[4,12],[99,57],[2,49],[149,44],[40,39],[8,29],[58,42],[-1,26],[24,30],[94,43],[91,23],[27,53],[132,32],[113,48],[-2,35],[65,43],[82,44],[61,9],[110,36],[51,-4],[65,25],[67,50],[62,86],[59,58],[22,-7],[105,17],[102,43],[73,7],[32,-19],[148,20],[334,144],[42,-16],[31,27],[37,-3],[21,20],[40,-37],[75,-18],[25,-32],[-44,-57],[6,-20],[59,-28],[4,-39],[37,-94],[67,-40],[8,28],[84,20],[59,25],[57,-11],[82,0],[55,53],[64,-16],[-23,-96],[105,-2],[73,-28],[43,-27],[39,3],[54,32],[1,30],[67,91],[41,21],[
 127,110],[-15,58],[22,6],[22,38],[23,76],[34,22],[67,68],[20,44],[26,21],[77,34],[5,40]],[[6780,6507],[105,-20]],[[6885,6487],[487,-230],[42,13],[167,-64],[41,-32],[103,-5],[146,60],[56,-50],[87,-24],[80,30],[87,47],[34,9],[93,56],[76,29],[10,17],[43,11],[124,52],[75,-11],[59,26],[59,4],[66,-22],[38,-34],[88,-18],[38,10],[63,-1],[51,-13],[20,-23],[45,-21],[28,-29],[76,-36],[12,-42],[39,-24],[117,-41],[49,-5],[11,-58],[59,-36],[44,-67],[17,-1],[49,-76],[-14,-53],[5,-109],[30,-72],[33,-28],[8,-34],[29,-15],[40,-57],[23,-18],[43,-61],[6,-69],[-61,-17],[-50,-65],[7,-95],[24,-22],[-14,-60],[-20,-12],[-7,-37],[-33,-34],[10,-39],[67,-51],[13,-92],[-18,-48],[-24,-11],[-1,-41],[-25,-14],[-31,-142],[53,-113],[36,-45],[5,-31],[-34,-57],[-186,-44],[-21,-9],[-3,-46],[13,-57],[-7,-38],[12,-47],[-18,-70],[37,-26],[35,-62],[22,-18],[-15,-36],[58,-24],[176,-59],[63,-39],[20,-70],[12,-7],[0,-62],[33,-37],[3,-23],[-60,-76],[36,-32],[-2,-36],[-47,-70],[-14,-77],[-105,-44],[-29,-51],[-52,-42],[-19,-51],
 [-30,-31],[-86,12],[-51,-4],[-34,-22],[-86,-31],[-87,-23],[-34,-55],[-16,-53],[-56,-52],[-28,-38],[-49,-35],[-48,-60],[-72,-46],[-15,-31],[-27,5],[-49,-71],[-119,-58],[-60,-109],[-55,-13],[-54,-54],[-54,0],[-73,-29],[-109,-30],[-56,-28],[-13,-28],[-53,28],[-113,27],[-121,11],[-428,0],[-97,8],[-47,-10],[-75,11],[107,-153],[-119,-49],[-55,8],[-52,-12],[-44,-25],[-52,-48],[-3,-54],[-63,-44],[-7,-43],[-28,-16],[3,-44],[-69,-3],[-49,-14],[-59,-36],[-79,-7],[-64,-24],[-19,-39],[-55,-52],[-77,-16],[-67,0],[-75,-51],[-79,-21],[-37,-44],[-34,-6],[-51,10],[-121,43],[-27,89],[-12,101],[-68,53],[-138,134],[-26,6],[-21,57],[16,42],[-203,35],[-70,-4],[-17,17],[-134,32],[-55,25],[-74,-2],[-60,7],[-98,-19],[-69,2],[-22,10],[-93,-38],[-84,-69],[-23,-35],[-43,-19],[-23,-26],[-78,-22],[-81,-13],[-83,-56],[1,-131],[-12,-33],[-7,-86],[53,-130],[-16,-26],[-75,-26],[-87,-47],[-42,-49],[-17,-42],[-81,-119],[15,-105],[-73,-29],[-35,-27],[-66,-82],[-48,-114],[-105,-105],[-34,-117],[-285,-167],[-267,-13],[-53
 ,-8],[-154,-48],[-81,-14],[-59,2],[-131,-33],[-89,10],[-163,-20],[-60,-16],[-90,1],[-118,-27],[-84,-29],[-111,14],[-74,-63],[-155,-12],[-47,-21],[-74,-58],[-142,-22],[-50,-23],[-83,-13],[-44,-23],[-37,34],[-81,13],[-97,-7],[-49,4],[-60,22],[-67,62],[28,44],[12,59],[15,-2],[-42,87],[18,67],[-93,-2],[-77,-24],[-44,-5],[-15,16],[-135,26],[-29,19],[7,27],[-51,18],[-113,-13],[-61,-13],[-37,21],[-52,8],[-87,-17],[-31,8],[-183,-36],[-41,80],[17,26],[103,85],[32,237],[-124,116],[-73,44],[6,41],[-26,50],[9,27],[-30,45],[-30,15],[42,12],[46,34],[65,12],[177,63],[113,51],[68,4],[112,32],[18,33],[72,46],[25,53],[68,43],[119,101],[48,30],[55,-17],[122,-1],[50,7],[42,28],[97,49],[92,27],[177,30],[64,61],[43,15],[109,75],[94,14],[14,19],[69,24],[49,5],[146,60],[46,111],[-32,178],[11,44],[-76,172],[-13,67],[-35,34],[14,63],[-67,27],[-62,-6],[-46,28],[-32,61],[-58,31],[-34,92],[-68,68],[-124,199],[61,17],[6,21],[66,33],[62,-9],[41,28],[55,14],[41,26],[4,22],[122,-5],[42,25],[75,-11],[12,18],[37,-7],
 [108,23],[23,47],[-43,63],[-46,16],[-28,-12],[-87,89],[45,-1],[-19,33],[-47,26],[-20,56],[33,31],[0,20],[38,92],[29,26],[18,40],[20,4],[24,48],[5,106],[25,51],[36,13],[12,23],[39,12],[29,32],[18,-7],[78,29],[13,38],[-33,-9],[-55,3],[-78,31],[-58,-2],[-50,18],[-106,18],[-91,44],[-31,51],[-75,29],[-37,30],[30,33]],[[6780,6507],[-92,19],[-51,38],[-31,45],[0,47],[-38,59],[-50,13],[28,160],[90,162],[-39,22],[-102,-37],[-94,30],[-135,-37],[8,45],[41,35],[12,45],[-27,43],[-47,6],[-65,-13],[-31,-21],[-23,10],[-45,78],[-110,-13],[-118,20],[-110,6],[-49,-6],[-17,25],[-96,34],[-51,-6],[-65,13],[-77,-3],[-34,21],[-77,3],[12,-11],[-90,-12],[-88,11],[-46,-9],[4,-24],[44,-11],[0,-27],[-40,16],[-33,-70],[-66,17],[-86,64],[-47,-57],[-11,5],[-11,212],[-51,52],[-92,-10],[-10,82],[-91,-2],[-7,-47],[-88,12],[-161,-58],[-38,-7],[-90,4],[-40,-25],[-18,-68],[-21,-6],[-69,-57],[-39,-4],[-39,-26],[-1,-73],[-41,-73],[-133,-34],[-10,-9],[-157,-39],[-68,-10],[-83,-31],[-118,-21],[-69,5],[-50,-13],[-59,-2],[-166
 ,-28],[-39,-44],[-63,-44],[-28,-8],[-41,-42],[-35,-12],[-149,-111],[-29,-6],[-58,-39],[-101,-8],[-115,-3],[-114,-15],[-46,-16],[-99,17],[-93,-7],[-56,37],[-77,22]],[[1875,6687],[23,67],[-7,46],[24,36],[-16,40],[28,40],[17,70],[40,20],[0,23],[48,82],[45,14],[46,48],[38,76],[42,4],[24,109],[-36,39],[37,7],[75,46],[39,39],[-8,47],[43,3],[41,29],[166,85],[-70,29],[-126,6],[-108,27],[-100,33],[-92,7],[-19,22],[-52,-2],[-19,22],[4,74],[27,6],[42,35],[10,49],[22,7],[41,62],[96,23],[30,29],[75,17],[84,29],[14,25],[-10,45],[-43,53],[46,43],[-6,64],[29,9],[42,61],[-49,79],[-95,14],[-31,13],[-51,60],[26,95],[33,42],[15,78],[22,33],[-16,15],[-13,58],[31,24],[-55,56],[127,61],[55,61],[-1,53],[22,20],[354,416],[103,115],[315,274],[1210,-839],[85,-62],[276,-160],[57,-55],[81,-28],[615,60],[31,1],[214,39],[78,-31],[110,-13],[161,40],[540,-13],[312,-76],[1113,-121],[-23,-209],[15,-98],[21,-66],[-42,-65],[20,-31],[-8,-53],[-42,-45],[-17,-59],[4,-66],[26,-41],[13,-49],[50,-85],[47,2],[-27,-23],[-33,-1
 23],[14,-63],[47,-144],[-2,-96],[35,-9],[-26,-37],[-15,-61],[-80,-120],[-48,-32],[-4,-52],[-38,-77],[-33,-31],[-49,-21],[-95,-74],[-53,-48],[-84,-10],[-45,-36],[-20,-37],[-37,-13],[-54,13],[-147,-26],[-27,-22],[-138,-26],[-57,-27],[-46,-39],[-293,-155]],[[1979,4577],[-106,-63],[-62,66],[-263,291],[-42,38],[149,39],[84,29],[10,74],[-80,-4],[-24,-22],[-32,59],[-27,-5],[-41,22],[2,19],[-43,21],[-29,68],[-55,84],[-48,35],[-46,17],[-114,67],[-13,-37],[-109,87],[-1,66],[-38,40],[-108,36],[1,25],[-28,119],[13,36],[-19,37],[-135,40],[-143,59],[-56,-11],[-36,14],[-43,-5],[-53,70],[60,10],[1,36],[141,23],[75,31],[-13,64],[-64,60],[12,37],[-22,51],[9,48],[32,25],[49,17],[56,-8],[86,36],[70,-9],[66,17],[21,-37],[65,-4],[8,-11],[102,11],[38,14],[27,26],[157,63],[97,19],[70,25],[38,32],[5,22],[58,52],[187,49]]],"transform":{"scale":[0.03293197165976778,-0.048004800480048],"translate":[315.35660768699097,490]}}


[07/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
index 5b378c3..d00bd2e 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
@@ -1,33 +1,43 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates;
 
-import com.spatial4j.core.distance.DistanceUtils;
 import org.elasticsearch.common.geo.ShapeRelation;
 import org.elasticsearch.index.query.FilterBuilder;
 import org.elasticsearch.index.query.FilterBuilders;
 import org.elasticsearch.index.query.GeoPolygonFilterBuilder;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TCircle;
 import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecification;
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
+import org.qi4j.api.structure.Module;
+import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.internal.AbstractElasticSearchSpatialFunction;
 import org.qi4j.spi.query.EntityFinderException;
 
 import java.util.Map;
 
 
-
-public class ST_Within extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
-{
+public class ST_Within extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification {
 
 
     public void processSpecification(FilterBuilder filterBuilder,
                                      SpatialPredicatesSpecification<?> spec,
                                      Map<String, Object> variables)
-            throws EntityFinderException
-    {
+            throws EntityFinderException {
         TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
 
         if (!isValid(spec))
@@ -39,8 +49,6 @@ public class ST_Within extends AbstractElasticSearchSpatialFunction implements P
         if (!isSupported(spec, geomOfFilterProperty))
             throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
 
-        System.out.println("Ismapped As Piont " +isMappedAsGeoPoint(spec.property()));
-        System.out.println("Ismapped As Shape " + isMappedAsGeoShape(spec.property()));
 
         /**
          * When the geometry used in the ST_Within expression is of type TPoint and a distance is specified, e.g.
@@ -53,10 +61,9 @@ public class ST_Within extends AbstractElasticSearchSpatialFunction implements P
          */
         if (
                 isTPoint(geomOfFilterProperty) &&
-                isMappedAsGeoPoint(spec.property()) &&
-                ((ST_WithinSpecification) spec).getDistance() > 0
-           )
-        {
+                        isMappedAsGeoPoint(spec.property()) &&
+                        ((ST_WithinSpecification) spec).getDistance() > 0
+                ) {
             addFilter(createGeoDistanceFilter
                             (
                                     spec.property().toString(),
@@ -75,14 +82,11 @@ public class ST_Within extends AbstractElasticSearchSpatialFunction implements P
          * ST_Within (templafeFor(x.class).propertyOfTypeTPoint(), polygon);
          *
          */
-        else if (isPropertyOfType(TPoint.class, spec.property()))
-        {
+        else if (isPropertyOfType(TPoint.class, spec.property())) {
 
-            if (isMappedAsGeoPoint(spec.property()))
-            {
+            if (isMappedAsGeoPoint(spec.property())) {
 
-                if (geomOfFilterProperty instanceof TPolygon)
-                {
+                if (geomOfFilterProperty instanceof TPolygon) {
                     /**
                      * This must not happen, but in case the expression is defined using WTK like :
                      *
@@ -101,8 +105,7 @@ public class ST_Within extends AbstractElasticSearchSpatialFunction implements P
 
                     GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
 
-                    for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++)
-                    {
+                    for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
                         TPoint point = polygonFilter.shell().get().getPointN(i);
                         geoPolygonFilterBuilder.addPoint(point.y(), point.x());
                     }
@@ -111,32 +114,28 @@ public class ST_Within extends AbstractElasticSearchSpatialFunction implements P
                     throw new EntityFinderException("Invalid ST_Within expression. Unsupported type " + geomOfFilterProperty.getClass().getSimpleName() +
                             " On properties of type " + TPoint.class.getSimpleName() +
                             " only filters of type distance or polygon are supported.");
-            }
-            else if (isMappedAsGeoShape(spec.property()) )
-            {
-                if (geomOfFilterProperty instanceof TPolygon)
-                {
+            } else if (isMappedAsGeoShape(spec.property())) {
+                if (geomOfFilterProperty instanceof TPolygon) {
                     addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.WITHIN), filterBuilder);
-                }
-
-                else if (((ST_WithinSpecification) spec).getDistance() > 0) {
-                    double distanceMeters = convertDistanceToMeters(((ST_WithinSpecification) spec).getDistance(), ((ST_WithinSpecification) spec).getUnit());
-                    System.out.println("Distance in Meters " + distanceMeters);
-                    double distanceDegrees = DistanceUtils.dist2Degrees(distanceMeters, DistanceUtils.EARTH_MEAN_RADIUS_KM * 1000);
-                    // This is a special case. We are using polygon substitution to support a circle. ATTENTION - this is just a approximation !!
-                    TPoint circlePoint = (TPoint)verifyProjection(geomOfFilterProperty);
-                    TCircle tCircle = module.newValueBuilder(TCircle.class).prototype().of(circlePoint, distanceDegrees);
-                    TPolygon polygonizedCircleFilter = tCircle.polygonize(360);
+                } else if (((ST_WithinSpecification) spec).getDistance() > 0) {
+                    double radiusInMeters = convertDistanceToMeters(((ST_WithinSpecification) spec).getDistance(), ((ST_WithinSpecification) spec).getUnit());
+                    TPolygon polygonizedCircleFilter = polygonizeCircle((TPoint) verifyProjection(geomOfFilterProperty), radiusInMeters);
                     addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.WITHIN), filterBuilder);
                 }
             }
-        }
-        else
-        {
-            /**
-             * In all other cases we are using a shape filter.
-             */
+        } else {
+
             addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.WITHIN), filterBuilder);
         }
     }
+
+
+    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support) {
+        this.module = module;
+        this.support = support;
+
+        return this;
+    }
+
+
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFinderSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFinderSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFinderSupport.java
deleted file mode 100644
index 321e73f..0000000
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFinderSupport.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.index.elasticsearch.extensions.spatial.internal;
-
-/**
- * Created by jj on 20.11.14.
- */
-public class AbstractElasticSearchSpatialFinderSupport {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
index 68ad30b..523cac5 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
@@ -1,5 +1,20 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.internal;
 
+import com.spatial4j.core.distance.DistanceUtils;
 import org.elasticsearch.common.geo.ShapeRelation;
 import org.elasticsearch.common.geo.builders.CircleBuilder;
 import org.elasticsearch.common.geo.builders.PolygonBuilder;
@@ -10,6 +25,7 @@ import org.qi4j.api.composite.Composite;
 import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.geometry.TPolygon;
 import org.qi4j.api.geometry.TUnit;
+import org.qi4j.api.geometry.internal.TCircle;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.property.GenericPropertyInfo;
 import org.qi4j.api.query.grammar.PropertyFunction;
@@ -29,9 +45,9 @@ import org.qi4j.spi.query.EntityFinderException;
 import java.lang.reflect.Type;
 import java.util.Map;
 
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper.*;
-import static org.qi4j.library.spatial.v2.transformations.TTransformations.*;
+import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
+import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper.IndexMappingCache;
+import static org.qi4j.library.spatial.v2.transformations.TTransformations.Transform;
 
 
 /**
@@ -46,15 +62,7 @@ public abstract class AbstractElasticSearchSpatialFunction {
     protected Module module;
     protected ElasticSearchSupport support;
 
-    public void setModule(Module module, ElasticSearchSupport support)
-    {
-        this.module = module;
-        this.support = support;
-    }
-
-
-    protected boolean isSupported(SpatialPredicatesSpecification<?> spec, TGeometry geometryOfFilter) throws EntityFinderException
-    {
+    protected boolean isSupported(SpatialPredicatesSpecification<?> spec, TGeometry geometryOfFilter) throws EntityFinderException {
         return SpatialFunctionsSupportMatrix.isSupported
                 (
                         spec.getClass(),
@@ -62,70 +70,55 @@ public abstract class AbstractElasticSearchSpatialFunction {
                         InternalUtils.classOfGeometry(geometryOfFilter),
                         isMappedAsGeoPoint(spec.property()) ? SpatialConfiguration.INDEXING_METHOD.GEO_POINT : SpatialConfiguration.INDEXING_METHOD.GEO_SHAPE
                 );
-
     }
 
-    protected boolean isValid(SpatialPredicatesSpecification<?> spec) throws EntityFinderException
-    {
-        if ((spec.value() == null && spec.operator() == null))
+    protected boolean isValid(SpatialPredicatesSpecification<?> spec) throws EntityFinderException {
+        if ((spec.param() == null && spec.operator() == null))
             return false;
         else
             return true;
-
     }
 
 
-    protected void addFilter( FilterBuilder filter, FilterBuilder into )
-    {
-        if ( into instanceof AndFilterBuilder) {
-            ( (AndFilterBuilder) into ).add( filter );
-        } else if ( into instanceof OrFilterBuilder) {
-            ( (OrFilterBuilder) into ).add( filter );
+    protected void addFilter(FilterBuilder filter, FilterBuilder into) {
+        if (into instanceof AndFilterBuilder) {
+            ((AndFilterBuilder) into).add(filter);
+        } else if (into instanceof OrFilterBuilder) {
+            ((OrFilterBuilder) into).add(filter);
         } else {
-            throw new UnsupportedOperationException( "FilterBuilder is nor an AndFB nor an OrFB, cannot continue." );
+            throw new UnsupportedOperationException("FilterBuilder is nor an AndFB nor an OrFB, cannot continue.");
         }
     }
 
-    protected TGeometry verifyProjection(TGeometry tGeometry)
-    {
+    protected TGeometry verifyProjection(TGeometry tGeometry) {
         if (new ProjectionsRegistry().getCRS(tGeometry.getCRS()) == null)
-            throw new RuntimeException("Project with the CRS Identity " + tGeometry.getCRS() + " is unknown. Supported projections are JJ TODO" );
+            throw new RuntimeException("Project with the CRS Identity " + tGeometry.getCRS() + " is unknown. Supported projections are JJ TODO");
 
 
         try {
             if (!tGeometry.getCRS().equalsIgnoreCase(DefaultSupportedProjection)) {
-                if (SpatialConfiguration.isFinderProjectionConversionEnabled(support.spatialConfiguration()))
-                {
+                if (SpatialConfiguration.isFinderProjectionConversionEnabled(support.spatialConfiguration())) {
                     Transform(module).from(tGeometry).to(DefaultSupportedProjection, DefaultProjectionConversionPrecisionInMeters);
-                }  else throw new Exception("Filter Projection has a unsupported Projection and conversion is disabled");
+                } else throw new Exception("Filter Projection has a unsupported Projection and conversion is disabled");
             }
-        } catch (Exception _ex)
-        {
+        } catch (Exception _ex) {
             _ex.printStackTrace();
         }
 
         return tGeometry; // ATTENTION - we are transforming as per "Reference"
     }
 
-    protected boolean isPropertyOfType(Class type, PropertyFunction propertyFunction)
-    {
+    protected boolean isPropertyOfType(Class type, PropertyFunction propertyFunction) {
         Type returnType = Classes.typeOf(propertyFunction.accessor());
         Type propertyTypeAsType = GenericPropertyInfo.toPropertyType(returnType);
 
-
-
-        System.out.println("---- > " + propertyTypeAsType.getTypeName());
-
         Class clazz;
 
-        try
-        {
+        try {
             clazz = Class.forName(propertyTypeAsType.getTypeName());
-        } catch(Exception _ex)
-        {
+        } catch (Exception _ex) {
             throw new RuntimeException(_ex);
         }
-        // if (clazz instanceof TGeometry)
 
         if (type.isAssignableFrom(clazz))
             return true;
@@ -133,8 +126,7 @@ public abstract class AbstractElasticSearchSpatialFunction {
             return false;
     }
 
-    protected boolean isPropertyOfTypeTPoint(PropertyFunction propertyFunction)
-    {
+    protected boolean isPropertyOfTypeTPoint(PropertyFunction propertyFunction) {
         // String typeName = Classes.typeOf(propertyFunction.accessor()).getTypeName();
         // System.out.println(typeName);
 
@@ -146,11 +138,9 @@ public abstract class AbstractElasticSearchSpatialFunction {
 
         Class clazz;
 
-        try
-        {
+        try {
             clazz = Class.forName(propertyTypeAsType.getTypeName());
-        } catch(Exception _ex)
-        {
+        } catch (Exception _ex) {
             throw new RuntimeException(_ex);
         }
         // if (clazz instanceof TGeometry)
@@ -161,90 +151,88 @@ public abstract class AbstractElasticSearchSpatialFunction {
             return false;
     }
 
-    protected boolean isMappedAsGeoPoint(PropertyFunction property)
-    {
+    protected boolean isMappedAsGeoPoint(PropertyFunction property) {
         return IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), property.toString());
     }
 
 
-
-    protected boolean isTPoint(TGeometry filterGeometry)
-    {
+    protected boolean isTPoint(TGeometry filterGeometry) {
         return TPoint(module).isPoint(filterGeometry);
     }
 
-    protected boolean isMappedAsGeoShape(PropertyFunction property)
-    {
+    protected boolean isMappedAsGeoShape(PropertyFunction property) {
         return IndexMappingCache.isMappedAsGeoShape(support.index(), support.entitiesType(), property.toString());
     }
 
-    protected boolean isMapped(PropertyFunction property)
-    {
+    protected boolean isMapped(PropertyFunction property) {
         return IndexMappingCache.mappingExists(support.index(), support.entitiesType(), property.toString());
     }
 
-    protected boolean isSpatial(PropertyFunction property)
-    {
+    protected boolean isSpatial(PropertyFunction property) {
         return false;
     }
 
 
-
-    protected GeoShapeFilterBuilder createShapeFilter(String name, TPoint point, ShapeRelation relation, double distance, TUnit unit)
-    {
+    protected GeoShapeFilterBuilder createShapeFilter(String name, TPoint point, ShapeRelation relation, double distance, TUnit unit) {
         return createShapeFilter(name, point, relation, distance, convertDistanceUnit(unit));
     }
 
-    protected GeoShapeFilterBuilder createShapeFilter(String name, TGeometry geometry, ShapeRelation relation)
-    {
+    protected GeoShapeFilterBuilder createShapeFilter(String name, TGeometry geometry, ShapeRelation relation) {
         return createShapeFilter(name, geometry, relation, 0, null);
     }
 
-    protected GeoDistanceFilterBuilder createGeoDistanceFilter(String name, TPoint tPoint, double distance, TUnit unit)
-    {
+    protected GeoDistanceFilterBuilder createGeoDistanceFilter(String name, TPoint tPoint, double distance, TUnit unit) {
         // Lat = Y Long = X
-      return  FilterBuilders.geoDistanceFilter(name)
-              .lat(tPoint.y())
-              .lon(tPoint.x())
-              .distance(distance, convertDistanceUnit(unit));
+        return FilterBuilders.geoDistanceFilter(name)
+                .lat(tPoint.y())
+                .lon(tPoint.x())
+                .distance(distance, convertDistanceUnit(unit));
+    }
+
+    protected TPolygon polygonizeCircle(TPoint centre, double radiusInMeters) {
+        double radiusInDegrees = DistanceUtils.dist2Degrees(radiusInMeters, DistanceUtils.EARTH_MEAN_RADIUS_KM * 1000);
+        TCircle tCircle = module.newValueBuilder(TCircle.class).prototype().of(centre, radiusInDegrees);
+        return tCircle.polygonize(360);
     }
 
 
-    private DistanceUnit convertDistanceUnit(TUnit tUnit)
-    {
-        switch (tUnit)
-        {
-            case MILLIMETER : return DistanceUnit.MILLIMETERS;
-            case CENTIMETER : return DistanceUnit.CENTIMETERS;
-            case METER      : return DistanceUnit.METERS;
-            case KILOMETER  :return DistanceUnit.KILOMETERS;
-            default : throw new RuntimeException("Can not convert Units");
+    private DistanceUnit convertDistanceUnit(TUnit tUnit) {
+        switch (tUnit) {
+            case MILLIMETER:
+                return DistanceUnit.MILLIMETERS;
+            case CENTIMETER:
+                return DistanceUnit.CENTIMETERS;
+            case METER:
+                return DistanceUnit.METERS;
+            case KILOMETER:
+                return DistanceUnit.KILOMETERS;
+            default:
+                throw new RuntimeException("Can not convert Units");
         }
     }
 
-    protected double convertDistanceToMeters(double source, TUnit sourceUnit)
-    {
-        switch (sourceUnit)
-        {
-            case MILLIMETER : return source / 1000;
-            case CENTIMETER : return source / 100;
-            case METER      : return source;
-            case KILOMETER  : return source * 1000;
-            default : throw new RuntimeException("Can not convert Units");
+    protected double convertDistanceToMeters(double source, TUnit sourceUnit) {
+        switch (sourceUnit) {
+            case MILLIMETER:
+                return source / 1000;
+            case CENTIMETER:
+                return source / 100;
+            case METER:
+                return source;
+            case KILOMETER:
+                return source * 1000;
+            default:
+                throw new RuntimeException("Can not convert Units");
         }
     }
 
 
-    private GeoShapeFilterBuilder createShapeFilter(String name, TGeometry geometry, ShapeRelation relation, double distance, DistanceUnit unit  )
-    {
-        if (geometry instanceof TPoint)
-        {
+    private GeoShapeFilterBuilder createShapeFilter(String name, TGeometry geometry, ShapeRelation relation, double distance, DistanceUnit unit) {
+        if (geometry instanceof TPoint) {
             CircleBuilder circleBuilder = ShapeBuilder.newCircleBuilder();
-            circleBuilder.center(((TPoint) geometry).x(), ((TPoint)geometry).y()).radius(distance, unit);
+            circleBuilder.center(((TPoint) geometry).x(), ((TPoint) geometry).y()).radius(distance, unit);
             return FilterBuilders.geoShapeFilter(name, circleBuilder, relation);
-        }
-        else if (geometry instanceof TPolygon)
-        {
+        } else if (geometry instanceof TPolygon) {
             PolygonBuilder polygonBuilder = ShapeBuilder.newPolygon();
 
             for (int i = 0; i < ((TPolygon) geometry).shell().get().points().get().size(); i++) {
@@ -256,10 +244,8 @@ public abstract class AbstractElasticSearchSpatialFunction {
                 );
             }
 
-            return  FilterBuilders.geoShapeFilter(name, polygonBuilder, relation);
-        }
-        else
-        {
+            return FilterBuilders.geoShapeFilter(name, polygonBuilder, relation);
+        } else {
 
         }
 
@@ -267,21 +253,15 @@ public abstract class AbstractElasticSearchSpatialFunction {
     }
 
 
-    protected TGeometry resolveGeometry( FilterBuilder filterBuilder, Specification<Composite> spec, Module module) throws  EntityFinderException
-    {
+    protected TGeometry resolveGeometry(FilterBuilder filterBuilder, Specification<Composite> spec, Module module) throws EntityFinderException {
 
-        if (spec instanceof SpatialPredicatesSpecification)
-        {
-            if (((SpatialPredicatesSpecification)spec).value() != null)
-            {
-                return ((SpatialPredicatesSpecification)spec).value();
-            }
-            else if (((SpatialPredicatesSpecification)spec).operator() != null)
-            {
+        if (spec instanceof SpatialPredicatesSpecification) {
+            if (((SpatialPredicatesSpecification) spec).param() != null) {
+                return ((SpatialPredicatesSpecification) spec).param();
+            } else if (((SpatialPredicatesSpecification) spec).operator() != null) {
 
-                if (((SpatialPredicatesSpecification) spec).operator() instanceof SpatialConvertSpecification)
-                {
-                    executeSpecification(filterBuilder, (SpatialPredicatesSpecification)spec, null);
+                if (((SpatialPredicatesSpecification) spec).operator() instanceof SpatialConvertSpecification) {
+                    executeSpecification(filterBuilder, (SpatialPredicatesSpecification) spec, null);
                     System.out.println("Converted Geometry " + ((SpatialConvertSpecification) ((SpatialPredicatesSpecification) spec).operator()).getGeometry());
                     return ((SpatialConvertSpecification) ((SpatialPredicatesSpecification) spec).operator()).getGeometry();
                     // return executeSpecification(filterBuilder, (SpatialPredicatesSpecification)spec, null);
@@ -294,22 +274,18 @@ public abstract class AbstractElasticSearchSpatialFunction {
         return null;
     }
 
-    private void executeSpecification( FilterBuilder filterBuilder,
-                                            SpatialPredicatesSpecification<?> spec,
-                                            Map<String, Object> variables ) throws EntityFinderException
-    {
+    private void executeSpecification(FilterBuilder filterBuilder,
+                                      SpatialPredicatesSpecification<?> spec,
+                                      Map<String, Object> variables) throws EntityFinderException {
 
 
         if (((SpatialPredicatesSpecification) spec).operator() instanceof SpatialConvertSpecification) {
-            // return ((SpatialConvertSpecification) ((SpatialPredicatesSpecification) spec).operator()).convert(module);
 
-            System.out.println("####### " + spec.operator().getClass().getSuperclass());
 
-            if (ElasticSearchFinder.Mixin.EXTENDED_QUERY_EXPRESSIONS_CATALOG.get(spec.operator().getClass().getSuperclass()) != null) {
+            if (ElasticSearchFinder.Mixin.EXTENDED_SPEC_SUPPORTS.get(spec.operator().getClass().getSuperclass()) != null) {
 
-                ElasticSearchSpatialFinder.SpatialQuerySpecSupport spatialQuerySpecSupport = ElasticSearchFinder.Mixin.EXTENDED_QUERY_EXPRESSIONS_CATALOG.get(spec.operator().getClass().getSuperclass());
-                spatialQuerySpecSupport.setModule(module, support);
-                // return spatialQuerySpecSupport.processSpecification(filterBuilder, spec.operator(), variables);
+                ElasticSearchSpatialFinder.SpatialQuerySpecSupport spatialQuerySpecSupport = ElasticSearchFinder.Mixin.EXTENDED_SPEC_SUPPORTS
+                        .get(spec.operator().getClass().getSuperclass()).support(module, support);
                 spatialQuerySpecSupport.processSpecification(filterBuilder, spec.operator(), variables);
 
             } else {
@@ -321,5 +297,4 @@ public abstract class AbstractElasticSearchSpatialFunction {
     }
 
 
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
index 1ce6a4e..f7ed650 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
@@ -1,10 +1,23 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.internal;
 
 import org.qi4j.api.geometry.*;
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.property.GenericPropertyInfo;
 import org.qi4j.api.query.grammar.PropertyFunction;
-import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
 import org.qi4j.api.util.Classes;
 
 import java.lang.reflect.Type;
@@ -12,36 +25,29 @@ import java.lang.reflect.Type;
 /**
  * Ugly - not proud on this... How to make it better ?
  */
-public class InternalUtils
-{
+public class InternalUtils {
 
-    public static Class classOfPropertyType(PropertyFunction propertyFunction)
-    {
+    public static Class classOfPropertyType(PropertyFunction propertyFunction) {
         Type typeOfProperty = GenericPropertyInfo.toPropertyType(Classes.typeOf(propertyFunction.accessor()));
         Class classOfProperty = null;
-        try
-        {
+        try {
             classOfProperty = Class.forName(typeOfProperty.getTypeName());
-        } catch(Exception _ex)
-        {
+        } catch (Exception _ex) {
             // must not happen
             // TODO, logger
-        }
-        finally
-        {
+        } finally {
             return classOfProperty;
         }
     }
 
-    public static Class<? extends TGeometry> classOfGeometry(TGeometry geometry)
-    {
-        if (geometry instanceof TPoint)                 return TPoint.class;
-        if (geometry instanceof TMultiPoint)            return TMultiPoint.class;
-        if (geometry instanceof TLineString)            return TLineString.class;
-        if (geometry instanceof TPolygon)               return TPolygon.class;
-        if (geometry instanceof TMultiPolygon)          return TMultiPolygon.class;
-        if (geometry instanceof TFeature)               return TFeature.class;
-        if (geometry instanceof TFeatureCollection)     return TFeatureCollection.class;
+    public static Class<? extends TGeometry> classOfGeometry(TGeometry geometry) {
+        if (geometry instanceof TPoint) return TPoint.class;
+        if (geometry instanceof TMultiPoint) return TMultiPoint.class;
+        if (geometry instanceof TLineString) return TLineString.class;
+        if (geometry instanceof TPolygon) return TPolygon.class;
+        if (geometry instanceof TMultiPolygon) return TMultiPolygon.class;
+        if (geometry instanceof TFeature) return TFeature.class;
+        if (geometry instanceof TFeatureCollection) return TFeatureCollection.class;
         else return null;
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java
index 341b977..c1de598 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java
@@ -1,50 +1,56 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.mappings;
 
 import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.index.elasticsearch.extensions.spatial.mappings.cache.MappingsCachesTable;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders.SpatialMappingFactory.*;
-import static org.qi4j.api.geometry.TGeometryFactory.*;
 
+import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
+import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders.SpatialMappingFactory.*;
 
-/**
- * Created by jj on 19.12.14.
- */
 public class SpatialIndexMapper {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(SpatialIndexMapper.class);
 
 
-    public static void createIfNotExist(ElasticSearchSupport support, TGeometry geometry, String property)
-    {
-        if (!MappingsCachesTable.getMappingCache(support).exists(property))
-        {
+    public static void createIfNotExist(ElasticSearchSupport support, TGeometry geometry, String property) {
+        if (!MappingsCachesTable.getMappingCache(support).exists(property)) {
             String mappingsOnServer = MappingQuery(support).get(property);
             System.out.println("Found " + mappingsOnServer);
 
-            if (mappingsOnServer != null)
-            {
+            if (mappingsOnServer != null) {
                 // TODO JJ check mappings : configuration versus server-side settings
                 MappingsCachesTable.getMappingCache(support).put(property, mappingsOnServer);
-            }
-            else
-            {
-                if (TPoint(support.getModule()).isPoint(geometry) )
-                {
-                    switch(SpatialConfiguration.getMethod(support.spatialConfiguration()) )
-                    {
-                        case GEO_POINT: GeoPointMapping(support).create(property); break;
-                        case GEO_SHAPE: GeoShapeMapping(support).create(property); break;
-                        default            : throw new RuntimeException("Unknown Point Maping Type.");
-                    }
-                }
-                else
-                {
+            } else {
+                if (TPoint(support.getModule()).isPoint(geometry)) {
+                    switch (SpatialConfiguration.getMethod(support.spatialConfiguration())) {
+                        case GEO_POINT:
+                            GeoPointMapping(support).create(property);
+                            break;
+                        case GEO_SHAPE:
                             GeoShapeMapping(support).create(property);
+                            break;
+                        default:
+                            throw new RuntimeException("Unknown Point Maping Type.");
+                    }
+                } else {
+                    GeoShapeMapping(support).create(property);
                 }
             }
         }
@@ -61,16 +67,12 @@ public class SpatialIndexMapper {
         public static boolean isMappedAsGeoShape(String index, String type, String property) {
             if (!MappingsCachesTable.getMappingCache(index, type).exists(property)) // <- No mappings yet, as no data in the index ?
                 return false;
-
-            // System.out.println("GEOSHAPE " + MappingsCachesTable.getMappingCache(index, type).get(property).toString());
             return MappingsCachesTable.getMappingCache(index, type).get(property).toString().indexOf("type=geo_shape") > -1 ? true : false;
         }
 
         public static boolean isMappedAsGeoPoint(String index, String type, String property) {
             if (!MappingsCachesTable.getMappingCache(index, type).exists(property)) // <- No mappings yet, as no data in the index ?
                 return false;
-
-            // System.out.println("GEOPOINT " +  MappingsCachesTable.getMappingCache(index, type).get(property).toString());
             return MappingsCachesTable.getMappingCache(index, type).get(property).toString().indexOf("type=geo_point") > -1 ? true : false;
         }
 
@@ -78,8 +80,7 @@ public class SpatialIndexMapper {
             return MappingsCachesTable.getMappingCache(index, type).exists(property);
         }
 
-        public static void clear()
-        {
+        public static void clear() {
             MappingsCachesTable.clear();
         }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java
index 2d22b41..882c42c 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
 package org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders;
 
 import org.elasticsearch.action.admin.indices.mapping.get.GetFieldMappingsResponse;
@@ -9,13 +22,14 @@ import org.qi4j.index.elasticsearch.extensions.spatial.mappings.cache.MappingsCa
  * Created by jj on 19.12.14.
  */
 public class AbstractBuilder {
+
     protected ElasticSearchSupport support;
 
-    public String get(String field)
-    {
-        if ( !isValid() ) throw new RuntimeException("ElasticSearch Index or Type not defined");
+    public String get(String field) {
+        if (!isValid()) throw new RuntimeException("ElasticSearch Index or Type not defined");
 
-        String index = support.index(); String type = support.entitiesType();
+        String index = support.index();
+        String type = support.entitiesType();
 
         GetFieldMappingsResponse response = support.client().admin().indices()
                 .prepareGetFieldMappings(index)
@@ -33,25 +47,22 @@ public class AbstractBuilder {
     }
 
 
-
-    protected boolean isValid()
-    {
+    protected boolean isValid() {
         return (support != null) && (support.index() != null) && (support.entitiesType() != null) ? true : false;
     }
 
-    protected boolean put(String field, String mappingJson)
-    {
-        if ( !isValid() ) throw new RuntimeException("ElasticSearch Index or Type not defined");
+    protected boolean put(String field, String mappingJson) {
+        if (!isValid()) throw new RuntimeException("ElasticSearch Index or Type not defined");
 
-        String index = support.index(); String type = support.entitiesType();
+        String index = support.index();
+        String type = support.entitiesType();
 
         PutMappingResponse ESSpatialMappingPUTResponse = support.client().admin().indices()
                 .preparePutMapping(index).setType(type)
                 .setSource(mappingJson)
                 .execute().actionGet();
 
-        if (ESSpatialMappingPUTResponse.isAcknowledged())
-        {
+        if (ESSpatialMappingPUTResponse.isAcknowledged()) {
             // we are reading the mapping back from server to assure that the server-side mappings always "wins"
             MappingsCachesTable.getMappingCache(support.index(), support.entitiesType()).put(field, get(field));
             return true;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
index 1bf89c6..c653283 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoPointBuilder.java
@@ -1,8 +1,23 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders;
 
 import org.elasticsearch.common.xcontent.XContentBuilder;
 import org.elasticsearch.common.xcontent.XContentFactory;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 
 import java.io.IOException;
 import java.util.StringTokenizer;
@@ -12,57 +27,43 @@ import java.util.StringTokenizer;
  */
 public class GeoPointBuilder extends AbstractBuilder {
 
-    private static final String DEFAULT_PRECISION = "1m";
-
-
     public GeoPointBuilder(ElasticSearchSupport support) {
         this.support = support;
     }
 
-
-    public boolean create(String field) {
-        try {
-            return put(field, createGeoPointMapping(field));
-        } catch(Exception _ex)
-        {
-            _ex.printStackTrace();
-        }
-        return false;
-    }
-
-
-    private static String createGeoPointMapping(String field) throws IOException {
-
-
-        XContentBuilder qi4jRootType = XContentFactory.jsonBuilder().startObject().startObject("qi4j_entities");
-
-        StringTokenizer tokenizer1 = new StringTokenizer(field, ".");
+    private  String createGeoPointMapping(String field) throws IOException
+    {
+        XContentBuilder qi4jRootType = XContentFactory.jsonBuilder().startObject().startObject(support.entitiesType());
+        StringTokenizer t1 = new StringTokenizer(field, ".");
         String propertyLevel1;
-        while (tokenizer1.hasMoreTokens()) {
-            propertyLevel1 = tokenizer1.nextToken();
-            // System.out.println("--> start level " + propertyLevel1);
+        while (t1.hasMoreTokens())
+        {
+            propertyLevel1 = t1.nextToken();
             qi4jRootType.startObject("properties").startObject(propertyLevel1);
         }
+                qi4jRootType
+                        .field("type", "geo_point") // geo_point
+                        .field("precision", SpatialConfiguration.getIndexerPrecision(support.spatialConfiguration()))
+                        .field("lat_lon", true);
 
-        qi4jRootType.field("type", "geo_point") // geo_point
-                // .field("lat_lon", true)
-                // .field("geohash", DEFAULT_GEOHASH_SUPPORT)
-                .field("precision", DEFAULT_PRECISION)
-                .field("lat_lon", true);
-
-        StringTokenizer tokenizer2 = new StringTokenizer(field, ".");
-        String propertyLevel2;
-        while (tokenizer2.hasMoreTokens()) {
-            propertyLevel2 = tokenizer2.nextToken();
-
+        StringTokenizer t2 = new StringTokenizer(field, ".");
+        while (t2.hasMoreTokens())
+        {
+            t2.nextToken();
             qi4jRootType.endObject();
         }
 
         qi4jRootType.endObject().endObject().endObject();
-
-
         return qi4jRootType.string();
+    }
 
+    public boolean create(String field) {
+        try {
+            return put(field, createGeoPointMapping(field));
+        } catch (Exception _ex) {
+            _ex.printStackTrace();
+        }
+        return false;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
index 058ad78..fb739fb 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/GeoShapeBuilder.java
@@ -1,8 +1,23 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders;
 
 import org.elasticsearch.common.xcontent.XContentBuilder;
 import org.elasticsearch.common.xcontent.XContentFactory;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 
 import java.io.IOException;
 import java.util.StringTokenizer;
@@ -12,82 +27,46 @@ import java.util.StringTokenizer;
  */
 public class GeoShapeBuilder extends AbstractBuilder {
 
-    private static final String DEFAULT_PRECISION = "1m";
-
-
     public GeoShapeBuilder(ElasticSearchSupport support) {
         this.support = support;
     }
 
-    public boolean create(String field) {
-        try {
-            return put(field, createESGeoShapeMapping(field));
-        } catch(Exception _ex)
-        {
-            _ex.printStackTrace();
-        }
-        return false;
-    }
-
-
-
-
-    private static String createESGeoShapeMapping(String property) throws IOException {
-
-        String valueType = "qi4j_entities"; // TODO JJ hack here
+    private  String createESGeoShapeMapping(String property) throws IOException {
 
-        // System.out.println("############## Property Tree" + property);
+        XContentBuilder qi4jRootType = XContentFactory.jsonBuilder().startObject().startObject(support.entitiesType());
 
-        XContentBuilder qi4jRootType = XContentFactory.jsonBuilder().startObject().startObject("qi4j_entities"); // .startObject("properties");
-
-        StringTokenizer tokenizer1 = new StringTokenizer(property, ".");
+        StringTokenizer t1 = new StringTokenizer(property, ".");
         String propertyLevel1;
-        while (tokenizer1.hasMoreTokens()) {
-            propertyLevel1 = tokenizer1.nextToken();
-            // System.out.println("--> start level " + propertyLevel1);
+        while (t1.hasMoreTokens())
+        {
+            propertyLevel1 = t1.nextToken();
             qi4jRootType.startObject("properties").startObject(propertyLevel1);
         }
 
+        qi4jRootType
+                .field("type", "geo_shape")
+                .field("precision", SpatialConfiguration.getIndexerPrecision(support.spatialConfiguration()))
+                .field("tree", "quadtree");
 
-        qi4jRootType.field("type", "geo_shape")
-                // .field("lat_lon", true)
-                // .field("geohash", DEFAULT_GEOHASH_SUPPORT)
-                .field("precision", DEFAULT_PRECISION)
-                .field("tree", "quadtree")
-                //.field("tree_levels",  "10");
-        ;
-        //.field("validate_lat", "true")
-        //.field("validate_lon", "true");
 
-        StringTokenizer tokenizer2 = new StringTokenizer(property, ".");
-        String propertyLevel2;
-        while (tokenizer2.hasMoreTokens()) {
-            propertyLevel2 = tokenizer2.nextToken();
-            // System.out.println("--> end level " + propertyLevel2);
-            // qi4jRootType.startObject(propertyLevel1);
+        StringTokenizer t2 = new StringTokenizer(property, ".");
+        while (t2.hasMoreTokens())
+        {
+            t2.nextToken();
             qi4jRootType.endObject();
         }
 
-/**
- return XContentFactory.jsonBuilder().startObject().startObject("qi4j_entities")// valueType)
- .startObject("properties").startObject(property)
- .field("type", "geo_point")
- .field("lat_lon", true)
- // .field("geohash", DEFAULT_GEOHASH_SUPPORT)
- .field("precision", DEFAULT_PRECISION)
- .field("validate_lat", "true")
- .field("validate_lon", "true")
- .endObject().endObject()
- .endObject().endObject().string();
- */
-
         qi4jRootType.endObject().endObject().endObject();
-
-        // System.out.println("qi4jRootType.toString() " + qi4jRootType.string());
-
         return qi4jRootType.string();
+    }
 
-
+    public boolean create(String field) {
+        try {
+            return put(field, createESGeoShapeMapping(field));
+        } catch (Exception _ex) {
+            _ex.printStackTrace();
+        }
+        return false;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
index e027226..d70ae1c 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/MappingQueryBuilder.java
@@ -1,3 +1,17 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders;
 
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
index 30fb374..1d13756 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/SpatialMappingFactory.java
@@ -1,3 +1,17 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders;
 
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
@@ -10,13 +24,12 @@ public class SpatialMappingFactory {
     public static GeoPointBuilder GeoPointMapping(ElasticSearchSupport support) {
         return new GeoPointBuilder(support);
     }
-    public static GeoShapeBuilder GeoShapeMapping(ElasticSearchSupport support)
-    {
+
+    public static GeoShapeBuilder GeoShapeMapping(ElasticSearchSupport support) {
         return new GeoShapeBuilder(support);
     }
 
-    public static MappingQueryBuilder MappingQuery(ElasticSearchSupport support)
-    {
+    public static MappingQueryBuilder MappingQuery(ElasticSearchSupport support) {
         return new MappingQueryBuilder(support);
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
index 9ab8278..3128092 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCache.java
@@ -1,3 +1,17 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.mappings.cache;
 
 import com.google.common.cache.CacheBuilder;
@@ -5,42 +19,45 @@ import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 
-import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders.SpatialMappingFactory.MappingQuery;
-
 import java.util.concurrent.TimeUnit;
 
+import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders.SpatialMappingFactory.MappingQuery;
+
 /**
  * Created by jj on 19.12.14.
  */
 public class MappingsCache {
 
-    // private static final int TTL_SECONDS        = 10 * 60;
-    private static final int TTL_SECONDS        = 1;
-    private static final int CONCURENCY_LEVEL   = 50;
+    private static final int TTL_SECONDS = 1 * 60; // <- JJ TODO make it configurable
+    private static final int CONCURENCY_LEVEL = 50;
 
-    private  LoadingCache<String, String> ES_MAPPINGS_CACHE;
+    private LoadingCache<String, String> ES_MAPPINGS_CACHE;
 
     private ElasticSearchSupport support;
 
-      {
-
-            ES_MAPPINGS_CACHE =
-                    CacheBuilder.newBuilder()
-                            .expireAfterAccess(TTL_SECONDS, TimeUnit.SECONDS)
-                            .concurrencyLevel(CONCURENCY_LEVEL) // valid ?
-                            .build(
-                                    new CacheLoader<String, String>() {
-                                        public String load(String key) {
-                                            if (valid()) {
-                                                return reloadStrategy(key);
-                                            } else
-                                                return "";
-                                        }
+    {
+
+        ES_MAPPINGS_CACHE =
+                CacheBuilder.newBuilder()
+                        .expireAfterAccess(TTL_SECONDS, TimeUnit.SECONDS)
+                        .concurrencyLevel(CONCURENCY_LEVEL) // valid ?
+                        .build(
+                                new CacheLoader<String, String>() {
+                                    public String load(String key) {
+                                        if (valid()) {
+                                            return reloadStrategy(key);
+                                        } else
+                                            return "";
                                     }
-                            );
+                                }
+                        );
+
+    }
 
-        }
 
+    public MappingsCache(ElasticSearchSupport support) {
+        this.support = support;
+    }
 
     private String reloadStrategy(String key) {
 
@@ -51,41 +68,27 @@ public class MappingsCache {
         return (result == null || result.length() == 0) ? "" : result;
     }
 
-    private  boolean valid()
-    {
+    private boolean valid() {
         return (support != null) && (support.index() != null) && (support.entitiesType() != null) ? true : false;
     }
 
 
-    public MappingsCache(ElasticSearchSupport support)
-    {
-        this.support = support;
-    }
-
-
-
-
-
-
-    public  boolean exists(String key)
-    {
+    public boolean exists(String key) {
         return (ES_MAPPINGS_CACHE.getUnchecked(key) == null) || ES_MAPPINGS_CACHE.getUnchecked(key).length() == 0 ? false : true;
     }
 
-    public  String get(String key)
-    {
+    public String get(String key) {
         return ES_MAPPINGS_CACHE.getUnchecked(key);
     }
 
 
-
-    public  void put(String key, String mappings)
-    {
+    public void put(String key, String mappings) {
         System.out.println("Cache PUT key " + key + " mappings " + mappings);
-        ES_MAPPINGS_CACHE.put(key, mappings);
+        if (mappings != null)
+            ES_MAPPINGS_CACHE.put(key, mappings);
     }
 
-    public  boolean putIfNotExist(String key, String mappings) {
+    public boolean putIfNotExist(String key, String mappings) {
         if (!exists(key)) {
             put(key, mappings);
             return false;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java
index 4de5d43..d5f9aa3 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java
@@ -1,31 +1,40 @@
+/*
+ * Copyright (c) 2014, Jiri Jetmar. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 package org.qi4j.index.elasticsearch.extensions.spatial.mappings.cache;
 
 import com.google.common.collect.HashBasedTable;
 import com.google.common.collect.Table;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 
-/**
- * Created by jj on 19.12.14.
- */
+
 public class MappingsCachesTable {
 
     private static final Table<String, String, MappingsCache> CACHES_TABLE = HashBasedTable.create();
 
-    public static  MappingsCache getMappingCache(String index, String type)
-    {
+    public static MappingsCache getMappingCache(String index, String type) {
         return CACHES_TABLE.get(index, type);
     }
 
-    public static MappingsCache getMappingCache(ElasticSearchSupport support)
-    {
+    public static MappingsCache getMappingCache(ElasticSearchSupport support) {
         if (!CACHES_TABLE.contains(support.index(), support.entitiesType())) {
             CACHES_TABLE.put(support.index(), support.entitiesType(), new MappingsCache(support));
         }
         return CACHES_TABLE.get(support.index(), support.entitiesType());
     }
 
-    public static void clear()
-    {
+    public static void clear() {
         CACHES_TABLE.clear();
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/filesystem/ESFilesystemSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/filesystem/ESFilesystemSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/filesystem/ESFilesystemSupport.java
index 0baccbe..ccad851 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/filesystem/ESFilesystemSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/filesystem/ESFilesystemSupport.java
@@ -58,25 +58,7 @@ public class ESFilesystemSupport
         index = config.index().get() == null ? DEFAULT_INDEX_NAME : config.index().get();
         indexNonAggregatedAssociations = config.indexNonAggregatedAssociations().get();
 
-        indexPointMappingMethod = config.indexPointMappingMethod() == null ?
-                ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT : config.indexPointMappingMethod().get();
-
-        indexPointMappingMethod = ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT;
-
-
-        System.out.println("---- TEST FileSystemSupport ---- " + config.spatial());
-        System.out.println("---- TEST FileSystemSupport enabled ---- " + config.spatial().get().Enabled());
-        System.out.println("---- TEST FileSystemSupport Type ---- " + config.spatial().get().Indexer().get().Method());
-        System.out.println("---- TEST FileSystemSupport Projection enabled ---- " + config.spatial().get().Indexer().get().Projection().get().ConversionEnabled() );
-        System.out.println("---- TEST FileSystemSupport Projection Accuracy ---- " + config.spatial().get().Indexer().get().Projection().get().ConversionEnabled() );
-
-
-        System.out.println("---- TEST FileSystemSupport Finder Enabled ---- " + config.spatial().get().Finder().get().Projection().get().ConversionEnabled() );
-        System.out.println("---- TEST FileSystemSupport Finder Accuracy ---- " + config.spatial().get().Finder().get().Projection().get().ConversionAccuracy() );
-
-        spatialConfiguration = config.spatial().get();
-
-
+        defaultSpatialConfiguration(config);
 
         String identity = hasIdentity.identity().get();
         Settings settings = ImmutableSettings.settingsBuilder().

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/internal/AbstractElasticSearchSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/internal/AbstractElasticSearchSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/internal/AbstractElasticSearchSupport.java
index 902d392..bf4543d 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/internal/AbstractElasticSearchSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/internal/AbstractElasticSearchSupport.java
@@ -20,8 +20,10 @@ package org.qi4j.index.elasticsearch.internal;
 import org.elasticsearch.client.Client;
 import org.elasticsearch.common.settings.ImmutableSettings;
 import org.elasticsearch.common.xcontent.XContentFactory;
+import org.qi4j.api.configuration.Configuration;
 import org.qi4j.api.injection.scope.Structure;
 import org.qi4j.api.structure.Module;
+import org.qi4j.api.value.ValueBuilder;
 import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
@@ -46,8 +48,6 @@ public abstract class AbstractElasticSearchSupport
 
     protected boolean indexNonAggregatedAssociations;
 
-    protected ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD indexPointMappingMethod;
-
     protected SpatialConfiguration.Configuration spatialConfiguration;
 
 
@@ -110,6 +110,54 @@ public abstract class AbstractElasticSearchSupport
         // NOOP
     }
 
+    protected void defaultSpatialConfiguration(ElasticSearchConfiguration configuration)
+    {
+
+        if (  (configuration.spatial().get() == null) )
+        {
+            SpatialConfiguration.Configuration cConfig = module.newValueBuilder(SpatialConfiguration.Configuration.class).prototype();
+
+            SpatialConfiguration.IndexerConfiguration cIndexer = module.newValueBuilder(SpatialConfiguration.IndexerConfiguration.class).prototype();
+            SpatialConfiguration.IndexingMethod cIndexingMethod = module.newValueBuilder(SpatialConfiguration.IndexingMethod.class).prototype();
+            SpatialConfiguration.ProjectionSupport cProjectionIndexerSupport = module.newValueBuilder(SpatialConfiguration.ProjectionSupport.class).prototype();
+
+            SpatialConfiguration.FinderConfiguration cFinder = module.newValueBuilder(SpatialConfiguration.FinderConfiguration.class).prototype();
+            SpatialConfiguration.ProjectionSupport cProjectionFinderSupport = module.newValueBuilder(SpatialConfiguration.ProjectionSupport.class).prototype();
+
+
+
+            cIndexingMethod.Type().set(SpatialConfiguration.INDEXING_METHOD.GEO_POINT);
+            cIndexingMethod.Precision().set("2m");
+
+            cProjectionIndexerSupport.ConversionEnabled().set(true);
+            cProjectionIndexerSupport.ConversionAccuracy().set("2m");
+
+            // Setup Indexer
+            cIndexer.Method().set(cIndexingMethod);
+            cIndexer.Projection().set(cProjectionIndexerSupport);
+
+
+            cProjectionFinderSupport.ConversionEnabled().set(true);
+            cProjectionFinderSupport.ConversionAccuracy().set("2m");
+
+            // Setup Finder
+            cFinder.Projection().set(cProjectionFinderSupport);
+
+            // Setup Configuration
+            cConfig.Enabled().set(true);
+            cConfig.Indexer().set(cIndexer);
+            cConfig.Finder().set(cFinder);
+
+            spatialConfiguration = cConfig;
+
+        } else
+        {
+            // config available
+            spatialConfiguration = configuration.spatial().get();
+        }
+
+    }
+
     @Override
     public final Client client()
     {
@@ -135,9 +183,6 @@ public abstract class AbstractElasticSearchSupport
     }
 
     @Override
-    public final ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD indexPointMappingMethod() { return indexPointMappingMethod; }
-
-    @Override
     public final SpatialConfiguration.Configuration spatialConfiguration()
     {
         return spatialConfiguration;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/memory/ESMemorySupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/memory/ESMemorySupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/memory/ESMemorySupport.java
index e810bea..76bb786 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/memory/ESMemorySupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/memory/ESMemorySupport.java
@@ -58,13 +58,7 @@ public class ESMemorySupport
         index = config.index().get() == null ? DEFAULT_INDEX_NAME : config.index().get();
         indexNonAggregatedAssociations = config.indexNonAggregatedAssociations().get();
 
-        indexPointMappingMethod = config.indexPointMappingMethod() == null ?
-                ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT : config.indexPointMappingMethod().get();
-
-        indexPointMappingMethod = ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT;
-
-        System.out.println("---- TEST ---- " + config.spatial());
-
+        defaultSpatialConfiguration(config);
 
         String identity = hasIdentity.identity().get();
         Settings settings = ImmutableSettings.settingsBuilder().

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchComplexQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchComplexQueryTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchComplexQueryTest.java
index 5504e9b..4aa59bc 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchComplexQueryTest.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchComplexQueryTest.java
@@ -25,6 +25,7 @@ import org.qi4j.api.common.Visibility;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
 import org.qi4j.test.EntityTestAssembler;
@@ -56,6 +57,12 @@ public class ElasticSearchComplexQueryTest
 
         // Config module
         ModuleAssembly config = module.layer().module( "config" );
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
         new EntityTestAssembler().assemble( config );
 
         // Index/Query

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchFinderTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchFinderTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchFinderTest.java
index 3766545..4429b8b 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchFinderTest.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchFinderTest.java
@@ -24,6 +24,7 @@ import org.qi4j.api.common.Visibility;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
 import org.qi4j.test.EntityTestAssembler;
@@ -53,6 +54,12 @@ public class ElasticSearchFinderTest
 
         // Config module
         ModuleAssembly config = module.layer().module( "config" );
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
         new EntityTestAssembler().assemble( config );
 
         // Index/Query

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchQueryTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchQueryTest.java
index cb8221d..1f02832 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchQueryTest.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchQueryTest.java
@@ -32,6 +32,7 @@ import org.qi4j.api.query.QueryBuilder;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
 import org.qi4j.spi.query.EntityFinderException;
@@ -70,6 +71,12 @@ public class ElasticSearchQueryTest
 
         // Config module
         ModuleAssembly config = module.layer().module( "config" );
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
         new EntityTestAssembler().assemble( config );
 
         // Index/Query
@@ -116,38 +123,4 @@ public class ElasticSearchQueryTest
     {
         super.script42_DateTime();
     }
-
-    @Test
-    public void script53_Spatial_ST_WithIn()
-    {
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).location(),
-                                                ST_GeometryFromText("POINT(3.139003 101.686854)"),
-                                                100,
-                                                TUnit.METER
-                                        )
-                        ));
-        System.out.println( "*** script53_Spatial_ST_WithIn: " + query );
-
-        System.out.println("Query Count " + query.count());
-
-        // System.out.println( "*** script01: " + query );
-        query.find();
-    }
-
-    @Test
-    public void script53_Spatial_ST_WithIn2() {
-        QueryBuilder<Person> qb = this.module.newQueryBuilder(Person.class);
-        Person person = templateFor(Person.class);
-        Query<Person> query = unitOfWork.newQuery(qb.where(
-                eq(person.dateTimeValue(), new DateTime("2010-03-04T13:24:35", UTC))));
-        System.out.println("*** script40_DateTime: " + query);
-
-        // verifyUnorderedResults(query, "Jack Doe");
-    }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchTest.java
index 4bd673e..53ae6d7 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchTest.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchTest.java
@@ -36,6 +36,7 @@ import org.qi4j.api.unitofwork.UnitOfWorkCompletionException;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
 import org.qi4j.test.AbstractQi4jTest;
@@ -128,6 +129,12 @@ public class ElasticSearchTest
     {
         // Config module
         ModuleAssembly config = module.layer().module( "config" );
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
         new EntityTestAssembler().assemble( config );
 
         // EntityStore

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9d71ec3c/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ImmenseTermTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ImmenseTermTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ImmenseTermTest.java
index 6308f40..0a05788 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ImmenseTermTest.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ImmenseTermTest.java
@@ -31,6 +31,7 @@ import org.qi4j.api.unitofwork.UnitOfWork;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.library.fileconfig.FileConfigurationOverride;
 import org.qi4j.library.fileconfig.FileConfigurationService;
 import org.qi4j.test.AbstractQi4jTest;
@@ -87,6 +88,12 @@ public class ImmenseTermTest
     {
         // Config module
         ModuleAssembly config = module.layer().module( "config" );
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
         new EntityTestAssembler().assemble( config );
 
         // EntityStore


[49/50] [abbrv] zest-qi4j git commit: cleanup of dependencies

Posted by ni...@apache.org.
cleanup of dependencies


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/778c8c43
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/778c8c43
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/778c8c43

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: 778c8c43742e550bb72f979a5b3dcd843dc43136
Parents: 52c2ad5
Author: jj <ju...@gmail.com>
Authored: Sat Jan 17 23:17:29 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Sat Jan 17 23:17:29 2015 +0100

----------------------------------------------------------------------
 core/api/build.gradle | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/778c8c43/core/api/build.gradle
----------------------------------------------------------------------
diff --git a/core/api/build.gradle b/core/api/build.gradle
index b402660..ccaa0f2 100644
--- a/core/api/build.gradle
+++ b/core/api/build.gradle
@@ -4,8 +4,6 @@ dependencies {
 
   compile project( ':org.qi4j.core:org.qi4j.core.io' )
   compile libraries.jodatime
-  compile libraries.spatial4j
-  compile libraries.jts
 
   testCompile project( ':org.qi4j.core:org.qi4j.core.testsupport' )
   testCompile project( ':org.qi4j.libraries:org.qi4j.library.constraints' )


[12/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/vs-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/vs-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/vs-municipalities.json
deleted file mode 100644
index e0c9668..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/vs-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":6002,"properties":{"name":"Brig-Glis"},"arcs":[[[-187,-77,-172,224,225,-54,-53,226]]]},{"type":"MultiPolygon","id":6004,"properties":{"name":"Eggerberg"},"arcs":[[[437,438,439,-383,-289,-56]]]},{"type":"MultiPolygon","id":6007,"properties":{"name":"Naters"},"arcs":[[[52,53,54,55,56,57,-39,58,59,60,61]]]},{"type":"MultiPolygon","id":6008,"properties":{"name":"Ried-Brig"},"arcs":[[[185,-96,-78,186,187,188,-133]]]},{"type":"MultiPolygon","id":6009,"properties":{"name":"Simplon"},"arcs":[[[71,-67,72,73,74,75,76,77]]]},{"type":"MultiPolygon","id":6010,"properties":{"name":"Termen"},"arcs":[[[-189,-188,-227,-62,358,-355,359,-134]]]},{"type":"MultiPolygon","id":6011,"properties":{"name":"Zwischbergen"},"arcs":[[[94,-68,-72,95]]]},{"type":"MultiPolygon","id":6021,"properties":{"name":"Ardon"},"arcs":[[[-261,-110,338,-101]]]},{"type":"MultiPolygon","id":6022,"properties":{"na
 me":"Chamoson"},"arcs":[[[257,258,259,-111,260,-100]]]},{"type":"MultiPolygon","id":6023,"properties":{"name":"Conthey"},"arcs":[[[-103,107,108,109,110,111,112,113]]]},{"type":"MultiPolygon","id":6024,"properties":{"name":"Nendaz"},"arcs":[[[-10,96,97,98,99,100,101,102,103,104,105,106,-69]]]},{"type":"MultiPolygon","id":6025,"properties":{"name":"Vétroz"},"arcs":[[[-339,-109,-108,-102]]]},{"type":"MultiPolygon","id":6031,"properties":{"name":"Bagnes"},"arcs":[[[0,1,2,3,4,-5,5,6,7,8,9,10,11]]]},{"type":"MultiPolygon","id":6032,"properties":{"name":"Bourg-Saint-Pierre"},"arcs":[[[83,-49,84,-2],[85]]]},{"type":"MultiPolygon","id":6033,"properties":{"name":"Liddes"},"arcs":[[[-85,-48,-3]],[[-86]]]},{"type":"MultiPolygon","id":6034,"properties":{"name":"Orsières"},"arcs":[[[42,43,44,45,46,-5,-4,47,48]]]},{"type":"MultiPolygon","id":6035,"properties":{"name":"Sembrancher"},"arcs":[[[-47,363,-361,-6,4]]]},{"type":"MultiPolygon","id":6036,"properties":{"name":"Vollèges"},"arcs":[[[360,36
 1,-309,362,-321,-7]]]},{"type":"MultiPolygon","id":6052,"properties":{"name":"Bellwald"},"arcs":[[[-328,413,414,-240,415,-36]]]},{"type":"MultiPolygon","id":6054,"properties":{"name":"Binn"},"arcs":[[[125,126,127,128]]]},{"type":"MultiPolygon","id":6055,"properties":{"name":"Blitzingen"},"arcs":[[[-242,426,-414,-327]]]},{"type":"MultiPolygon","id":6056,"properties":{"name":"Ernen"},"arcs":[[[-128,-141,237,238,239,240,241,242,-195]]]},{"type":"MultiPolygon","id":6057,"properties":{"name":"Fiesch"},"arcs":[[[430,-303,-37,-416,-239]]]},{"type":"MultiPolygon","id":6058,"properties":{"name":"Fieschertal"},"arcs":[[[33,34,35,36,37,38,39,40,41]]]},{"type":"MultiPolygon","id":6061,"properties":{"name":"Lax"},"arcs":[[[-140,440,-304,-431,-238]]]},{"type":"MultiPolygon","id":6064,"properties":{"name":"Niederwald"},"arcs":[[[-241,-415,-427]]]},{"type":"MultiPolygon","id":6073,"properties":{"name":"Grafschaft"},"arcs":[[[-243,326,327,-35,-198,328,-196]]]},{"type":"MultiPolygon","id":6074,"prope
 rties":{"name":"Münster-Geschinen"},"arcs":[[[176,-42,177,-51]]]},{"type":"MultiPolygon","id":6075,"properties":{"name":"Reckingen-Gluringen"},"arcs":[[[193,-129,194,195,196,197,-34,-177,-50]]]},{"type":"MultiPolygon","id":6076,"properties":{"name":"Obergoms"},"arcs":[[[49,50,51]]]},{"type":"MultiPolygon","id":6081,"properties":{"name":"Les Agettes"},"arcs":[[[-106,443,-280,-421]]]},{"type":"MultiPolygon","id":6082,"properties":{"name":"Ayent"},"arcs":[[[141,142,143,144,-116,145,146,147]]]},{"type":"MultiPolygon","id":6083,"properties":{"name":"Evolène"},"arcs":[[[30,-12,31,32,-13,-28]]]},{"type":"MultiPolygon","id":6084,"properties":{"name":"Hérémence"},"arcs":[[[-11,68,69,70,-32]]]},{"type":"MultiPolygon","id":6087,"properties":{"name":"Saint-Martin (VS)"},"arcs":[[[-33,-71,229,-190,-14]]]},{"type":"MultiPolygon","id":6089,"properties":{"name":"Vex"},"arcs":[[[-107,420,-279,-191,-230,-70]]]},{"type":"MultiPolygon","id":6090,"properties":{"name":"Mont-Noble"},"arcs":[[[189,190,
 191,192,-15]]]},{"type":"MultiPolygon","id":6101,"properties":{"name":"Agarn"},"arcs":[[[-22,-157,-435,-173]]]},{"type":"MultiPolygon","id":6102,"properties":{"name":"Albinen"},"arcs":[[[379,-152,380,-122]]]},{"type":"MultiPolygon","id":6104,"properties":{"name":"Ergisch"},"arcs":[[[-175,284,285,286,287,-89,-244]]]},{"type":"MultiPolygon","id":6109,"properties":{"name":"Inden"},"arcs":[[[-381,-151,-423,-251,-123]]]},{"type":"MultiPolygon","id":6110,"properties":{"name":"Leuk"},"arcs":[[[-21,148,149,150,151,152,153,154,155,156]]]},{"type":"MultiPolygon","id":6111,"properties":{"name":"Leukerbad"},"arcs":[[[119,120,121,122,123,124]]]},{"type":"MultiPolygon","id":6112,"properties":{"name":"Oberems"},"arcs":[[[-23,172,173,174,175]]]},{"type":"MultiPolygon","id":6113,"properties":{"name":"Salgesch"},"arcs":[[[-20,-353,428,429,-253,-422,-149]]]},{"type":"MultiPolygon","id":6116,"properties":{"name":"Varen"},"arcs":[[[421,-252,422,-150]]]},{"type":"MultiPolygon","id":6117,"properties":{"na
 me":"Guttet-Feschel"},"arcs":[[[-295,-153,-380,-121]]]},{"type":"MultiPolygon","id":6118,"properties":{"name":"Gampel-Bratsch"},"arcs":[[[323,324,-155,-294]]]},{"type":"MultiPolygon","id":6119,"properties":{"name":"Turtmann-Unterems"},"arcs":[[[-176,243,-88,-158]],[[434,-156,-325,-409,-366,-408,-285,-174]]]},{"type":"MultiPolygon","id":6131,"properties":{"name":"Bovernier"},"arcs":[[[-229,-310,-362,-364,-46]]]},{"type":"MultiPolygon","id":6132,"properties":{"name":"Charrat"},"arcs":[[[-363,-308,-216,-322]]]},{"type":"MultiPolygon","id":6133,"properties":{"name":"Fully"},"arcs":[[[214,215,216,217,218,219,220,221,222,223]]]},{"type":"MultiPolygon","id":6134,"properties":{"name":"Isérables"},"arcs":[[[-320,-98]]]},{"type":"MultiPolygon","id":6135,"properties":{"name":"Leytron"},"arcs":[[[296,-223,297,-221,298,-259,299]]]},{"type":"MultiPolygon","id":6136,"properties":{"name":"Martigny"},"arcs":[[[-163,305,306,-217,307,308,309,-228]]]},{"type":"MultiPolygon","id":6137,"properties":{"na
 me":"Martigny-Combe"},"arcs":[[[-203,-164,227,228,-45]]]},{"type":"MultiPolygon","id":6139,"properties":{"name":"Riddes"},"arcs":[[[-9,317,318,-300,-258,-99,319,-97]]]},{"type":"MultiPolygon","id":6140,"properties":{"name":"Saillon"},"arcs":[[[-323,-224,-297,-319]],[[-222,-298]]]},{"type":"MultiPolygon","id":6141,"properties":{"name":"Saxon"},"arcs":[[[-8,320,321,-215,322,-318]]]},{"type":"MultiPolygon","id":6142,"properties":{"name":"Trient"},"arcs":[[[200,201,-165,202,-44]]]},{"type":"MultiPolygon","id":6151,"properties":{"name":"Champéry"},"arcs":[[[209,-209,-180]]]},{"type":"MultiPolygon","id":6152,"properties":{"name":"Collombey-Muraz"},"arcs":[[[271,272,273,274,-249,275,276,-232],[277]]]},{"type":"MultiPolygon","id":6153,"properties":{"name":"Monthey"},"arcs":[[[-277,339,340,341,-235,-234,233,-234,-233]],[[436,-237,-205]],[[-336,-274]],[[-278]]]},{"type":"MultiPolygon","id":6154,"properties":{"name":"Port-Valais"},"arcs":[[[-394,394,395,396,397,398,399,400,401,402,-247]]]},{"
 type":"MultiPolygon","id":6155,"properties":{"name":"Saint-Gingolph"},"arcs":[[[390,391,392,393,-246]]]},{"type":"MultiPolygon","id":6156,"properties":{"name":"Troistorrents"},"arcs":[[[230,231,232,233,-234,233,234,235,-206,236]]]},{"type":"MultiPolygon","id":6157,"properties":{"name":"Val-d'Illiez"},"arcs":[[[203,204,205,206,207,-181,208]]]},{"type":"MultiPolygon","id":6158,"properties":{"name":"Vionnaz"},"arcs":[[[334,-250,-275,335,-273]]]},{"type":"MultiPolygon","id":6159,"properties":{"name":"Vouvry"},"arcs":[[[244,245,246,247,248,249]]]},{"type":"MultiPolygon","id":6171,"properties":{"name":"Betten"},"arcs":[[[-138,300,301,-59,-38,302,303,304]]]},{"type":"MultiPolygon","id":6172,"properties":{"name":"Bister"},"arcs":[[[-434,-136]]]},{"type":"MultiPolygon","id":6173,"properties":{"name":"Bitsch"},"arcs":[[[-61,-356,-359]]]},{"type":"MultiPolygon","id":6177,"properties":{"name":"Grengiols"},"arcs":[[[131,132,133,134,135,136,137,138,139,140,-127]]]},{"type":"MultiPolygon","id":617
 8,"properties":{"name":"Martisberg"},"arcs":[[[-139,-305,-441]]]},{"type":"MultiPolygon","id":6181,"properties":{"name":"Riederalp"},"arcs":[[[354,355,-60,-302,356,357]]]},{"type":"MultiPolygon","id":6191,"properties":{"name":"Ausserberg"},"arcs":[[[381,-263,-290,382]]]},{"type":"MultiPolygon","id":6192,"properties":{"name":"Blatten"},"arcs":[[[-40,-58,78,79,80,81,82]]]},{"type":"MultiPolygon","id":6193,"properties":{"name":"Bürchen"},"arcs":[[[416,-373,-330,-266]]]},{"type":"MultiPolygon","id":6194,"properties":{"name":"Eischoll"},"arcs":[[[-333,-286,407,-365]]]},{"type":"MultiPolygon","id":6195,"properties":{"name":"Ferden"},"arcs":[[[290,291,292,293,-154,294,-120,295]]]},{"type":"MultiPolygon","id":6197,"properties":{"name":"Kippel"},"arcs":[[[-389,-388,-368,-291,427]]]},{"type":"MultiPolygon","id":6198,"properties":{"name":"Niedergesteln"},"arcs":[[[-269,-334,364,365,366,-292,367,368]]]},{"type":"MultiPolygon","id":6199,"properties":{"name":"Raron"},"arcs":[[[261,262,263,264,26
 5,266,267,268,269,-80]]]},{"type":"MultiPolygon","id":6201,"properties":{"name":"Unterbäch"},"arcs":[[[329,330,331,-287,332,333,-268,-267]]]},{"type":"MultiPolygon","id":6202,"properties":{"name":"Wiler (Lötschen)"},"arcs":[[[-82,-81,-270,-369,387,388,389]]]},{"type":"MultiPolygon","id":6203,"properties":{"name":"Mörel-Filet"},"arcs":[[[-360,-358,-357,-301,-137,433,-135]]]},{"type":"MultiPolygon","id":6204,"properties":{"name":"Steg-Hohtenn"},"arcs":[[[-367,408,-324,-293]]]},{"type":"MultiPolygon","id":6211,"properties":{"name":"Collonges"},"arcs":[[[-183,-387,425,-219,-424]]]},{"type":"MultiPolygon","id":6212,"properties":{"name":"Dorénaz"},"arcs":[[[-184,423,-218,-307,424]]]},{"type":"MultiPolygon","id":6213,"properties":{"name":"Evionnaz"},"arcs":[[[178,179,180,181,182,183,184,-161]]]},{"type":"MultiPolygon","id":6214,"properties":{"name":"Finhaut"},"arcs":[[[325,-166,-202]]]},{"type":"MultiPolygon","id":6215,"properties":{"name":"Massongex"},"arcs":[[[-404,-341,435,-385]]]},
 {"type":"MultiPolygon","id":6217,"properties":{"name":"Saint-Maurice"},"arcs":[[[-208,383,384,385,386,-182]]]},{"type":"MultiPolygon","id":6218,"properties":{"name":"Salvan"},"arcs":[[[159,160,161,162,163,164,165]]]},{"type":"MultiPolygon","id":6219,"properties":{"name":"Vernayaz"},"arcs":[[[-185,-425,-306,-162]]]},{"type":"MultiPolygon","id":6220,"properties":{"name":"Vérossaz"},"arcs":[[[-207,-236,-342,403,-384]]]},{"type":"MultiPolygon","id":6232,"properties":{"name":"Chalais"},"arcs":[[[314,315,316,-17]]]},{"type":"MultiPolygon","id":6234,"properties":{"name":"Chermignon"},"arcs":[[[-413,441,442,-346]]]},{"type":"MultiPolygon","id":6235,"properties":{"name":"Chippis"},"arcs":[[[-317,-354,-18]]]},{"type":"MultiPolygon","id":6238,"properties":{"name":"Grône"},"arcs":[[[-193,-284,336,337,-315,-16]]]},{"type":"MultiPolygon","id":6239,"properties":{"name":"Icogne"},"arcs":[[[-147,310,311,312,313]]]},{"type":"MultiPolygon","id":6240,"properties":{"name":"Lens"},"arcs":[[[409,-313,-3
 78,410,411,412,-345]]]},{"type":"MultiPolygon","id":6241,"properties":{"name":"Miège"},"arcs":[[[444,445,446,-254,-430]]]},{"type":"MultiPolygon","id":6242,"properties":{"name":"Mollens (VS)"},"arcs":[[[-124,250,251,252,253,254,255,256]]]},{"type":"MultiPolygon","id":6243,"properties":{"name":"Montana"},"arcs":[[[-412,-411,-377,-376,-348,-347,-443,-442]]]},{"type":"MultiPolygon","id":6244,"properties":{"name":"Randogne"},"arcs":[[[-256,374,-349,375,376,377,-312,378]]]},{"type":"MultiPolygon","id":6246,"properties":{"name":"Saint-Léonard"},"arcs":[[[-283,-148,-314,-410,-344,-337]]]},{"type":"MultiPolygon","id":6248,"properties":{"name":"Sierre"},"arcs":[[[-338,343,344,345,346,347,348,349,350,351,352,-19,353,-316]]]},{"type":"MultiPolygon","id":6249,"properties":{"name":"Venthône"},"arcs":[[[-351,-350,-375,-255,-447,447]]]},{"type":"MultiPolygon","id":6250,"properties":{"name":"Veyras"},"arcs":[[[-352,-448,-446,-445,-429]]]},{"type":"MultiPolygon","id":6252,"properties":{"name":"An
 niviers"},"arcs":[[[12,13,14,15,16,17,18,19,20,21,22,23,24,25]]]},{"type":"MultiPolygon","id":6261,"properties":{"name":"Arbaz"},"arcs":[[[342,-117,-145]]]},{"type":"MultiPolygon","id":6263,"properties":{"name":"Grimisuat"},"arcs":[[[-282,-118,-343,-144,-143]]]},{"type":"MultiPolygon","id":6265,"properties":{"name":"Savièse"},"arcs":[[[-113,114,115,116,117,118]]]},{"type":"MultiPolygon","id":6266,"properties":{"name":"Sion"},"arcs":[[[278,279,280,-104,-114,-119,281,-142,282,283,-192]]]},{"type":"MultiPolygon","id":6267,"properties":{"name":"Veysonnaz"},"arcs":[[[-105,-281,-444]]]},{"type":"MultiPolygon","id":6281,"properties":{"name":"Baltschieder"},"arcs":[[[-57,288,289,-262,-79]],[[-419,-264,-382,-440,-439,448]]]},{"type":"MultiPolygon","id":6282,"properties":{"name":"Eisten"},"arcs":[[[-75,210,-92,211,212,213,-167]]]},{"type":"MultiPolygon","id":6283,"properties":{"name":"Embd"},"arcs":[[[-90,-288,-332,-372,-406]]]},{"type":"MultiPolygon","id":6285,"properties":{"name":"Grächen
 "},"arcs":[[[-91,405,-371,406,-212]]]},{"type":"MultiPolygon","id":6286,"properties":{"name":"Lalden"},"arcs":[[[-226,-420,-449,-438,-55]]]},{"type":"MultiPolygon","id":6287,"properties":{"name":"Randa"},"arcs":[[[-24,157,-87,158,-130]]]},{"type":"MultiPolygon","id":6288,"properties":{"name":"Saas-Almagell"},"arcs":[[[62,-30,63,64,65,66,67]]]},{"type":"MultiPolygon","id":6289,"properties":{"name":"Saas-Balen"},"arcs":[[[270,-199,-93,-211,-74]]]},{"type":"MultiPolygon","id":6290,"properties":{"name":"Saas-Fee"},"arcs":[[[-131,-159,-94,198,199,-65]]]},{"type":"MultiPolygon","id":6291,"properties":{"name":"Saas-Grund"},"arcs":[[[-66,-200,-271,-73]]]},{"type":"MultiPolygon","id":6292,"properties":{"name":"St. Niklaus"},"arcs":[[[86,87,88,89,90,91,92,93]]]},{"type":"MultiPolygon","id":6293,"properties":{"name":"Stalden (VS)"},"arcs":[[[-213,-407,-370,432,-169,-405]]]},{"type":"MultiPolygon","id":6294,"properties":{"name":"Staldenried"},"arcs":[[[-214,404,-168]]]},{"type":"MultiPolygon","
 id":6295,"properties":{"name":"Täsch"},"arcs":[[[-29,-25,129,130,-64]]]},{"type":"MultiPolygon","id":6296,"properties":{"name":"Törbel"},"arcs":[[[369,370,371,-331,372,373]]]},{"type":"MultiPolygon","id":6297,"properties":{"name":"Visp"},"arcs":[[[-171,417,-265,418,419,-225]]]},{"type":"MultiPolygon","id":6298,"properties":{"name":"Visperterminen"},"arcs":[[[-76,166,167,168,169,170,171]]]},{"type":"MultiPolygon","id":6299,"properties":{"name":"Zeneggen"},"arcs":[[[-170,-433,-374,-417,-418]]]},{"type":"MultiPolygon","id":6300,"properties":{"name":"Zermatt"},"arcs":[[[26,27,-26,28,29]]]},{"type":"MultiPolygon","id":6391,"properties":{"name":"Kommunanz Reckingen-Gluringen/Grafschaft"},"arcs":[[[-329,-197]]]},{"type":"MultiPolygon","id":9759,"properties":{"name":"Lac Léman (VS)"},"arcs":[[[431,-402,-401,-400,-399,-398,-397,-396,-395,-393,-392]]]}]}},"arcs":[[[4212,1214],[-42,-37],[-16,-4],[-22,-41],[-18,-21],[3,-46],[11,-45],[5,-48],[-21,-32],[-41,18],[-33,3],[-15,-40],[-29,1],[-27,-
 16],[-13,3],[-16,-29],[-7,-32],[-22,-31],[-17,-53],[-49,-64],[-23,-3],[-6,-28],[-30,-12],[-29,-34],[-36,6],[-19,27],[-23,-37],[0,-32],[-39,-80],[-16,-17],[-40,-15],[-35,47],[-55,43],[-18,-9],[-19,6],[-24,43],[2,41],[-39,19],[-34,42],[-80,-58],[-43,-6],[-33,20],[-9,60],[-36,0],[-27,13],[-23,-6],[-10,21],[-33,37]],[[3066,788],[-2,22],[12,59],[15,34],[12,59],[-12,21],[-31,-3],[-22,11],[-28,-13],[-43,6],[-1,35],[-14,13],[-14,40],[-27,44],[-15,15],[-10,45],[8,15],[-14,20],[0,51],[-5,21]],[[2875,1283],[20,39],[37,14],[-2,84],[-11,42],[-25,46],[-10,41],[4,22],[-29,17],[-17,26],[-26,1],[-62,52],[-29,105],[0,44],[-18,32],[-9,39],[-29,-4],[-56,118],[-37,19],[-30,63],[-7,48],[-35,68]],[[2504,2199],[-54,92],[-16,70],[-23,43],[3,26]],[[2414,2430],[-1,0]],[[2414,2430],[6,27],[-17,68],[13,11],[16,54],[33,86],[2,53],[-25,87],[2,28],[-21,-18],[-14,-46]],[[2409,2780],[0,24],[-14,37],[-9,78],[4,24],[-8,74],[15,20],[15,42],[16,5],[43,-22],[11,55],[10,27],[-1,52]],[[2491,3196],[15,20],[6,32],[34,22],[20
 ,-11],[17,41],[20,-4],[40,19],[10,-4]],[[2653,3311],[126,-56],[4,-29],[52,-80],[55,-50],[15,-43],[6,-40],[29,-13],[6,9],[31,-29]],[[2977,2980],[43,-36],[0,-25],[25,-33],[72,-79],[6,-27],[32,-29],[47,2],[10,20],[35,-64],[42,-20],[-2,-41],[14,-28],[4,-33],[25,-2],[10,-36],[40,2],[31,-13],[9,-14]],[[3420,2524],[-6,-40],[9,-14],[-10,-44],[16,-64],[0,-22],[16,-19],[19,-56],[37,-13],[-10,-97],[37,-84],[-16,-54],[7,-16],[-11,-31],[13,-9],[22,-39],[20,-17],[53,-9],[9,-38],[28,-38],[22,-84],[14,-39],[45,-23],[33,-36],[30,44],[22,-16],[29,3],[29,-15]],[[3877,1654],[-7,-30],[17,-54],[21,6],[19,31],[26,3],[47,-14],[12,20],[4,39],[30,-40],[31,-25],[24,-31],[10,-68],[16,-28],[3,-43],[20,-45],[19,-14],[-4,-52],[17,-11],[21,-36],[9,-48]],[[4941,2197],[-10,50],[-17,42],[-8,64],[32,67],[-30,42],[-34,12],[-20,61],[-30,11],[-9,29],[-2,42],[-25,56],[-31,11],[-46,57],[16,53],[3,50],[-20,20],[-3,39],[-22,47],[-42,49],[-19,43],[-1,27],[-14,21],[-37,32],[-19,42],[-9,40],[-1,38],[-32,48],[-16,68],[-17,19],[-
 48,122],[-16,28],[-45,41]],[[4369,3568],[39,46],[-21,30],[-6,26],[16,34],[5,45],[-12,5],[3,27],[-20,64]],[[4373,3845],[22,25],[0,110],[17,50],[-6,41],[10,41],[41,49],[22,54],[-31,71],[2,38]],[[4450,4324],[14,14],[8,42],[-13,54],[1,37]],[[4460,4471],[47,37],[73,97],[37,43],[25,38],[12,77],[-2,96],[13,34],[-12,45],[15,14],[-4,26],[-22,16],[-41,79]],[[4601,5073],[-40,43],[-10,51],[9,9],[1,34],[19,28],[33,28]],[[4613,5266],[22,-25],[23,-50],[34,-3],[21,20],[39,11]],[[4752,5219],[46,19]],[[4798,5238],[41,9],[123,-189],[0,-32],[10,-46],[31,-56],[43,-20],[55,-40],[17,4]],[[5118,4868],[3,-44],[10,-23],[33,-35],[19,-6]],[[5183,4760],[12,-29],[7,-63],[22,-49],[6,-106],[-8,-14],[9,-174],[-4,-78],[6,-19],[-21,-37],[6,-39],[-7,-20],[3,-38],[-13,-51],[14,-33],[15,-11],[-8,-50],[33,-47],[20,-8],[23,-49],[-6,-21],[7,-36],[-9,-45],[-20,-42],[-32,-37],[21,-35],[2,-28],[13,-11],[13,-39],[-2,-41],[17,-63],[25,-39],[17,-12],[56,-139],[43,-29],[26,-11],[32,-27],[21,-35]],[[5522,3155],[5,-44],[25,-68],[-5
 ,-30],[-53,-109],[-5,-77],[-17,-30],[-12,-55],[-28,-62],[-18,-14],[-16,-62],[4,-25]],[[5402,2579],[-1,-5]],[[5401,2574],[-27,-55],[-6,-59],[-35,-47],[-9,-50],[6,-67],[-17,-6],[-59,-56],[-33,2],[-43,-25],[-14,-33],[-34,-11],[-23,-28],[-31,3],[-25,-32],[-28,53],[-34,48],[-48,-14]],[[6694,1740],[-15,-31],[-14,-72],[-19,-9],[-6,-27],[-25,-43],[-8,-49],[-52,-29],[-43,-38],[0,-18],[18,-48],[3,-54],[-24,-38],[5,-12],[-17,-35],[15,-33],[-3,-66],[-38,-22],[-12,-131],[14,-25],[4,-32],[33,-63],[-21,-56],[-2,-24],[-18,-14],[-19,2],[-19,-39],[-12,10],[-17,42],[-16,3],[-50,-6],[-41,18],[-23,-4],[-26,35],[-62,30],[-14,-4],[-32,-38],[-29,-14],[-20,-38],[-37,-30],[-33,36],[-11,48],[-31,44],[-45,16],[-25,48],[-16,12],[-18,42],[-77,21],[-50,26],[-10,-58],[-27,-64],[-18,-14],[-15,-27],[-6,-51],[-24,-7],[-59,3],[-20,19],[-31,49],[-3,46],[-26,20],[10,93],[-4,28],[9,52],[-45,67],[-38,18],[-35,-3],[-52,26],[-21,62],[-5,43],[-18,20],[-6,31],[-12,6],[-16,53],[-22,19],[-18,-1],[-21,16],[-23,-30],[-23,-3],[-45
 ,-42],[-32,-8],[-61,12],[-37,15],[-31,-11],[-33,-25],[-31,13],[-91,3],[-32,23],[-14,31],[4,53],[-20,85],[-18,17]],[[4726,1610],[7,18],[64,82],[13,49],[51,18],[20,27],[6,27],[-7,20],[2,56],[15,35],[6,79],[23,58],[15,118]],[[5401,2574],[22,-62],[25,-28],[33,11],[24,33],[25,-9],[32,-47],[29,-25],[29,-12],[43,31],[11,-22],[14,0],[17,24],[39,-8],[33,-45],[37,-20],[59,-11],[55,-54],[43,27],[23,-4],[19,21],[30,-48],[24,-18],[5,-43],[-5,-27],[21,-60],[23,-21],[21,-57],[30,-25],[51,-4],[40,-50],[22,-21],[73,-22],[33,7],[1,16],[45,-5],[37,14],[42,34],[39,8]],[[6545,2052],[35,-74],[47,-41],[40,3],[12,-49],[-4,-82],[19,-69]],[[4726,1610],[-50,-2],[-33,-21],[-66,4],[-25,-27],[-6,-48],[-20,-47],[12,-83],[6,-9],[11,-75],[-19,-70],[-28,-30],[-23,26],[-40,-1],[-31,11],[-28,53],[-10,5],[-11,-26],[-20,-16],[-32,-3],[-36,44],[-22,-33],[5,-23],[-27,-30],[-21,5]],[[3877,1654],[25,22],[41,69],[-7,70],[-23,33],[-24,19],[-4,53],[-8,34],[6,96],[-4,33],[18,59],[2,68],[-27,16],[-24,46],[3,54],[17,28],[1,30],[2
 0,42],[-5,21],[7,56],[0,85],[-40,15],[2,24],[-12,31],[27,38],[11,41],[-14,94],[12,25],[-13,60],[-2,124],[-9,54],[6,90],[-10,23]],[[3849,3207],[24,4],[16,51],[52,23],[21,23],[24,69],[1,53],[9,54],[29,33],[11,38],[44,41],[31,9],[-15,-17],[18,-104],[11,-30],[10,19],[40,40],[5,23],[48,4],[42,-21],[65,17],[34,32]],[[8312,8226],[-22,-19],[-15,-46],[5,-27]],[[8280,8134],[-24,-4],[-84,-107],[8,-41],[-8,-48],[-17,-22],[-8,-58],[8,-68],[-10,-36]],[[8145,7750],[-25,-18],[-39,-77],[-75,-22],[-18,-23],[0,-35],[33,-157],[0,-62],[28,-56],[5,-92],[13,-35],[13,-6],[17,-52],[10,-13],[-16,-100],[-11,-35]],[[8080,6967],[-30,14],[-2,15],[-31,0],[-47,69],[-15,-2],[-10,23],[2,32],[-15,18],[-18,-38],[-37,15],[14,3],[13,53],[-23,9],[-34,-9],[-51,-31],[-6,16],[-36,-8]],[[7754,7146],[4,40],[-16,30],[-23,63],[-168,224],[-50,-40],[-23,26],[-33,83],[-37,50],[-4,31],[-35,66],[-46,46],[-84,-21],[-23,-20],[-59,-94],[0,-16]],[[7157,7614],[-45,22],[-45,-6],[-12,17],[-46,1],[-6,-12]],[[7003,7636],[-11,44],[-4,48],[-20
 ,2],[-47,53],[-67,43],[-6,51],[-38,90],[-1,45]],[[6809,8012],[10,64],[50,60],[29,-1],[22,12],[10,-10],[22,14],[41,46],[20,1],[17,46],[-4,46],[16,50],[-24,37],[0,21],[-13,21],[4,18],[-13,19],[-16,43],[7,36],[24,21],[11,43],[59,40],[34,-5],[17,24],[24,77],[18,30],[28,-3],[31,21],[9,16],[49,33],[49,-16],[35,6],[20,-8],[9,-22],[45,-37],[64,-11],[44,-53],[6,15],[51,6],[27,27],[46,-42],[59,-9],[15,-27],[35,-15],[18,8],[54,-24],[19,-39],[30,-36],[21,-41],[30,-3],[26,-19],[27,-6],[55,-39],[48,-1],[14,-8],[17,13],[35,-12],[30,5],[-3,-62],[4,-29],[26,-16],[11,-30],[25,3]],[[8283,8310],[26,-62],[3,-22]],[[2232,261],[-40,-40],[-34,-9],[-11,-21],[-25,-14],[-6,-38],[-17,-33],[-31,-38],[-28,-20],[-19,-38],[-31,5],[-23,-15],[-45,11],[-22,37],[-9,70],[-22,60],[18,43],[-61,90],[-19,10],[-16,29],[-14,48],[0,65],[-16,-2],[-23,36],[-35,28],[2,116],[-23,51],[-41,24],[-57,95],[-9,89],[-23,48],[-16,54],[7,65],[9,22],[-5,114],[-13,23],[-82,32],[-51,82],[-11,41],[-12,12],[11,49],[68,46],[9,23],[-7,22]],[[145
 9,1533],[20,30],[14,6],[24,-14],[64,36],[14,22],[-40,80],[-1,13],[36,44],[-3,49],[-22,8],[-23,54],[-7,3],[4,53],[27,52],[2,93]],[[1568,2062],[16,25],[42,10],[8,-5]],[[1634,2092],[11,21],[60,58],[-1,21],[25,54],[49,43],[34,46],[14,28],[6,68],[63,71],[31,26],[31,-8]],[[1957,2520],[12,-34],[17,-12],[-2,-24],[18,-27],[83,64],[-6,23],[41,-14],[31,11],[33,2],[16,13],[19,-26],[25,-12],[101,-19],[68,-35]],[[2504,2199],[-6,-49],[20,-122],[-4,-35],[-67,13],[-123,35],[-45,-58],[-12,5],[-25,-41],[-14,-37],[-42,-58],[13,-96],[12,-23],[-8,-22],[-6,-140],[-13,-45],[-6,-64],[2,-35],[-12,-42],[4,-12],[-25,-87],[14,-15],[5,-31],[-19,-33],[10,-23],[-14,-34],[-19,-17],[-6,-113],[-16,-30],[1,-29],[-13,-12],[-15,-48],[-19,-33],[2,-28],[23,-58],[9,-68],[47,-20]],[[2137,694],[16,-38],[0,-51],[19,-51],[-2,-31],[16,-26],[0,-54],[9,-41],[22,-59],[15,-82]],[[9009,7135],[3,19],[-16,16],[36,53],[12,29],[-21,31],[-4,20]],[[9019,7303],[42,51],[39,60],[-8,49],[-28,66],[0,94],[-5,19],[26,48],[27,38],[14,8],[22,-25],
 [18,16],[2,19],[63,24],[42,26],[12,40],[-49,62],[-12,57],[-21,37],[-12,49],[-34,-9],[-26,-20],[-42,3],[-23,17],[-43,-22],[-19,42],[-12,47],[-68,-66],[-12,39],[-2,52],[-25,41],[-49,38],[-31,52],[-38,43],[-10,42],[-31,29],[-17,58]],[[8709,8427],[24,43],[42,22],[22,24],[33,-6],[28,32],[22,57],[41,26],[30,-2],[27,18],[23,45],[26,34],[-1,24],[23,58],[44,17],[18,-5],[55,16],[42,40],[27,46],[19,20],[-2,29],[34,58],[17,18],[24,59],[-24,48],[16,67],[-12,80],[2,47],[19,28],[4,34],[15,31],[13,76],[-3,60],[-7,3],[-4,45],[4,60],[18,54],[40,9],[22,37],[3,19],[46,88],[15,7],[27,106],[112,-21],[13,-44],[6,-52],[-5,-91],[-9,-16],[14,-102],[-4,-28],[4,-73],[-3,-42],[-19,-48],[-5,-72],[-48,-92],[16,-33],[-8,-18],[-11,-108],[4,-47],[17,-42],[-3,-27],[42,-79],[17,-62],[-1,-32],[23,-49],[-2,-46],[5,-42],[14,-33],[3,-39],[14,-42],[23,-6],[14,-32],[38,-11],[12,-23],[23,-19],[61,-31],[33,31],[11,-5],[33,-54],[5,-22],[38,-30],[-1,-22],[-31,-24],[-10,-38],[-29,-34],[-33,-80],[-26,-37],[-24,-6],[-50,-156],[-49
 ,20],[-17,-3],[-24,-25],[-31,-13],[-15,-17],[-31,26],[-19,-25],[-59,-6],[-13,23],[-24,-5],[-14,11],[-4,-39],[19,-83],[-18,-28],[-9,-43],[-24,-46],[21,-34],[-1,-26],[18,-17],[1,-18],[-41,-31],[3,-47],[-22,-30],[17,-92],[-31,-17],[-25,28],[-48,-15],[-58,-56],[-17,-29],[-9,-43],[-42,-55],[-14,-11],[-18,-40],[-67,-66],[-13,-39],[-26,0],[-34,-19],[-31,4],[-16,21]],[[7229,5824],[-114,-38],[-123,-95],[-45,-31],[-26,-31],[-41,-27],[-7,27],[-25,-12],[-55,-12]],[[6793,5605],[-45,-13],[-42,-23],[-19,2]],[[6687,5571],[-37,4]],[[6650,5575],[3,58],[8,12],[-40,25],[20,32],[24,8],[-11,75],[-27,22],[0,31],[-43,-10],[0,45],[-38,112],[-5,42]],[[6541,6027],[-6,42],[-2,69],[47,43],[27,-1],[18,51],[-12,34],[0,72],[25,28],[45,20],[12,58],[1,33],[11,53],[-11,61],[-33,32],[14,33],[-2,47],[10,39],[-6,67],[12,72],[-17,49],[-28,20],[-38,53],[-22,17]],[[6586,7019],[23,33],[49,37],[13,48],[35,33],[31,59],[19,11],[14,40],[58,52],[62,94],[16,51],[3,28],[22,27],[16,55],[25,36],[31,13]],[[7157,7614],[9,-11],[170,-94
 ],[147,-172],[46,-30],[79,-111],[-39,-72],[-15,-48],[-12,-89],[-16,-44]],[[7526,6943],[-31,-33],[-68,-50],[-34,-64],[-64,-49],[-51,-62],[-4,-29],[-32,-60],[-2,-20],[-20,-48],[9,-69]],[[7229,6459],[-13,-63],[0,-35],[-7,-26],[-16,-14],[2,-45],[-8,-38],[8,-11],[-5,-61],[7,-59],[12,-32],[9,-62],[10,-36],[15,0],[8,-27],[13,3],[25,-44]],[[7289,5909],[-11,-35],[-49,-50]],[[7432,3046],[-8,-20],[2,-52],[-18,-34],[-6,-31],[4,-33],[-6,-72],[-19,-27],[-21,-63],[4,-23],[-8,-36],[15,-37],[-2,-43],[10,-16],[6,-40],[19,-54],[14,-78],[15,-28],[0,-25],[-19,-26],[-43,-24],[-19,-22],[-28,-59],[-23,-28],[12,-11],[22,-69],[-29,-43],[-9,-29],[10,-26],[-2,-62],[-31,-9],[-36,10],[-5,-41],[-22,-64],[-14,-21],[2,-21],[-30,-56],[-29,12],[-32,28],[-37,-6],[-42,-22],[-44,-13],[-22,15],[-71,2],[-58,-20],[-29,15],[-27,-1],[-23,-15],[-61,12]],[[6545,2052],[9,43],[1,144],[7,22],[17,7],[29,85]],[[6608,2353],[13,59],[33,45],[41,97],[20,15],[36,-1],[17,17],[38,84],[13,83],[35,64],[6,21],[45,63],[-28,50],[-10,29],[8,50]
 ,[30,32],[-36,54],[0,12]],[[6869,3127],[21,18],[169,37],[40,27],[13,35],[54,50],[25,9],[11,17],[78,61],[17,0]],[[7297,3381],[22,-23]],[[7319,3358],[14,-67],[4,-63],[18,-12],[2,-22],[32,-76],[27,-34],[16,-38]],[[3420,2524],[15,16],[-12,51],[-17,13],[2,55],[25,68],[46,72],[5,16],[-20,27],[-4,35],[8,23],[-25,64],[-10,53],[17,13],[7,38],[-18,38],[-2,73],[-18,48],[1,41],[-24,33],[-13,42],[-2,36],[-19,25],[36,58],[2,54],[21,41],[-7,51],[10,15],[-4,26],[13,41],[6,49],[39,30]],[[3478,3769],[19,-11],[45,47],[21,59],[37,40],[11,30],[21,170],[14,27],[72,38],[11,-59],[42,8],[5,10]],[[3776,4128],[18,-50],[-3,-17],[11,-40],[37,-46],[48,-99],[-44,-45],[-15,-57],[-22,-48],[-4,-49],[12,-96],[-2,-60],[35,-61],[10,-81],[-6,-77],[-9,-25],[-1,-36],[8,-34]],[[7718,4837],[8,-5],[-13,-36],[-1,-46],[-17,-35],[60,-80],[10,-90],[12,-14],[4,-40],[34,-11],[34,-42],[9,-76],[-7,-19],[5,-23],[18,-16],[15,-47],[-3,-28],[-47,-21],[-4,-17],[-26,-18],[-13,-30],[-35,-29],[-27,-7],[-21,11],[-31,-9],[-24,-24],[-3,-70],[-
 10,-59],[-23,-53],[-14,-57],[-44,-65],[-5,-25],[-25,-38],[-15,-7],[-12,-26],[-35,-14],[-29,-40],[-11,-36],[3,-106],[18,-56],[-6,-101],[-43,-36],[-29,-2],[-19,11],[-19,37],[-18,16]],[[7297,3381],[-6,38],[6,51],[-25,47],[-6,26],[4,46],[-19,73],[4,45],[-14,42],[0,22],[14,67],[31,28],[-2,24],[-15,10],[-28,-14]],[[7241,3886],[-29,31],[-14,26],[-4,85]],[[7194,4028],[5,53],[-12,24]],[[7187,4105],[-8,27],[-6,82],[-11,18],[29,77],[-17,22],[-13,2],[-22,58],[-19,33],[-3,66],[6,49],[-4,39],[-13,25],[-3,55],[5,35],[-9,42],[5,32],[-5,44],[22,42],[6,42],[-17,70],[-2,42],[11,38]],[[7119,5045],[27,-15],[28,-61],[23,23],[34,1],[14,12],[12,29],[21,-2],[37,12],[39,48],[3,15],[42,110]],[[7399,5217],[13,-51],[22,-148],[18,-31],[20,-13],[21,-41],[12,3],[24,-24],[38,-77],[41,-29],[110,31]],[[6586,7019],[-31,-12],[-63,-89],[-29,-12],[-15,8],[-14,-30],[-40,-18],[-2,-19],[-27,-22],[-30,-43],[1,-23],[-17,-26],[12,-46]],[[6331,6687],[-21,-5],[-40,-30],[-34,-9],[-25,20]],[[6211,6663],[-37,26],[-66,94],[-12,8],[-
 50,82],[-38,52],[-22,44],[-10,36]],[[5976,7005],[-3,16],[16,49],[-37,27],[-43,41],[-24,38],[-5,34],[-31,59]],[[5849,7269],[24,37],[34,15],[11,41],[26,27],[12,34],[40,34],[27,54],[32,23],[50,26],[82,65],[0,17],[30,43],[33,25],[37,44],[28,12],[13,-22],[73,16],[42,-6],[49,12],[51,28],[22,30],[25,-14],[15,5],[47,59],[35,-4],[24,55],[42,5],[9,30],[-7,12],[25,30],[29,10]],[[3066,788],[-25,-18],[-5,-35],[-22,-14],[-6,-43],[-11,-20],[-26,-86],[-10,-47],[-33,-12],[-26,-38],[-12,-37],[-10,-2],[-29,-57],[-16,-14],[-15,8],[-4,43],[-27,16],[-16,-23],[-26,-15],[-30,1],[-43,22],[-15,-27],[-16,7],[-40,-21],[-4,-60],[-29,-23],[-6,-17],[-22,-7],[-17,-48],[-19,-9],[-14,-65],[2,-47],[17,-44],[-24,-32],[-37,-23],[-34,16],[-37,46],[-19,-9],[-79,106],[16,56],[-20,30],[-45,15]],[[2137,694],[31,40],[33,22],[47,67],[13,30],[0,28],[18,82],[27,65],[-6,53],[12,71],[25,98],[15,18],[36,-11],[34,5],[33,20],[6,83],[29,17],[37,37],[35,19],[4,-57],[17,-5],[20,17],[-14,53],[27,-15],[6,-48],[16,-38],[27,-6],[29,-28],[4
 8,3],[66,-22],[28,19],[39,-28]],[[2527,1321],[0,61],[-33,-16],[6,-37],[-2,-60],[16,-9],[13,61]],[[6425,3140],[-27,31],[-33,11],[-4,26],[-30,63],[-25,-27],[-65,-11],[-47,13],[-86,-64],[-33,-3],[-46,50],[-72,3],[0,21],[16,36],[-14,-3],[-21,22],[-72,-45],[-37,8],[-64,64],[-37,12]],[[5728,3347],[-40,64],[-16,44],[11,61],[-32,34],[4,44],[21,50],[-12,27],[-7,45],[7,20],[-3,44],[19,32],[10,46],[-16,40],[18,27],[-4,22],[-42,62],[1,25],[17,35],[3,101],[-3,28],[8,37],[44,28],[25,-2],[29,40],[4,27]],[[5774,4328],[1,3]],[[5775,4331],[32,-7],[20,-23],[39,-10],[33,21],[21,-9],[24,6],[28,24],[26,3],[0,57],[-9,31],[81,16],[39,-3],[28,-39],[38,-16],[21,-31]],[[6196,4351],[-6,-22],[-35,-46],[-6,-25],[26,-27],[-12,-39],[46,-45],[-5,-51],[25,-7],[17,-20],[4,-31],[29,-34],[20,-4],[21,-25],[53,-13],[23,-16]],[[6396,3946],[-6,-30],[16,-62],[-9,-50],[4,-36],[-11,-45],[23,-60],[29,-10],[18,-60],[29,-55],[2,-27],[27,-43]],[[6518,3468],[6,-13],[-14,-67],[10,-77],[-4,-25]],[[6516,3286],[-17,-37],[-59,-72],[-15
 ,-37]],[[7815,4911],[49,2],[12,-53],[-2,-52],[23,-64],[23,6],[28,-64],[2,-19],[53,-42],[33,-3],[28,-181],[47,-107],[0,-43],[11,-106],[23,-19],[48,-82],[5,-32],[-3,-43],[-33,-27],[-11,-18],[-7,-51],[-32,-49],[-8,-48],[0,-54],[20,-42],[2,-68],[10,-8],[-27,-77],[-24,-50],[-23,-20],[-24,-4],[-15,14],[-72,-28],[-15,-34],[-37,-32],[9,-28],[-11,-41],[7,-23],[-9,-32],[-2,-39],[-17,-15],[-12,-47],[-39,-16],[-8,7],[-19,-32],[-39,-11],[-58,-29],[-19,11],[-30,1],[-52,-22],[-52,-42],[-32,12],[-38,-30],[-46,9]],[[7718,4837],[45,40],[52,34]],[[2977,2980],[10,32],[-12,47],[6,16],[-4,80],[-11,54]],[[2966,3209],[19,15],[18,34],[25,8],[9,34],[2,47],[14,37],[-12,35],[4,43],[25,59],[6,30],[-11,21],[2,78],[-16,71],[-33,-3],[-26,28],[-31,11],[8,23],[-34,18],[-18,-6],[-42,51],[-28,53],[-7,54],[-32,-4],[12,71],[-5,36]],[[2815,4053],[-10,14]],[[2805,4067],[39,31],[36,56],[31,30]],[[2911,4184],[90,76]],[[3001,4260],[72,26],[40,35]],[[3113,4321],[50,62],[14,11]],[[3177,4394],[31,-66],[48,37],[18,8],[43,38],[11
 ,-41],[21,-39]],[[3349,4331],[-42,-36],[4,-29],[-26,-28],[1,-24],[-12,-38],[50,-15],[12,24],[47,2]],[[3383,4187],[27,-13],[25,-40],[4,-26],[51,-67],[13,-47]],[[3503,3994],[-4,-46],[6,-64],[-6,-57],[-9,-11],[-12,-47]],[[3113,4321],[-18,46],[-2,22],[-17,3],[-18,82],[38,26],[-16,27],[-13,65],[7,32],[-27,34]],[[3047,4658],[-39,10],[-14,-11],[-11,16],[-27,-46],[-10,2],[-37,-47],[-21,-14],[-27,-38],[-12,6],[-4,58],[14,40],[-4,62],[6,75],[-10,50],[-13,10],[-5,45],[-17,13],[-16,57],[-3,31],[-19,29],[3,71],[-3,33],[-22,3],[-9,30],[-40,-7],[-50,-68],[-29,-23]],[[2628,5045],[-27,-40],[-24,-20],[-29,-46],[-1,-37],[-14,-8],[-35,-65],[-12,-54]],[[2486,4775],[-36,-23],[-18,5],[-35,-17],[-19,-20],[-12,18],[-38,-11],[-49,111],[-19,5],[-31,-14]],[[2229,4829],[3,45],[21,59],[34,7],[25,38],[23,49],[14,10],[17,52],[28,47],[27,-7],[27,27],[6,34],[-18,118],[24,27],[26,9],[-5,33],[17,10],[-44,75],[-1,110],[69,114]],[[2522,5686],[65,42],[19,-4],[40,-41],[0,-27],[15,-16],[289,41],[20,-1],[9,-18],[83,-13],[55
 ,18],[33,-59],[29,-24],[25,-46],[54,-25],[26,-65],[-12,-76],[11,-76],[-13,-60],[-12,-12],[-11,-42],[-13,-16],[3,-28],[-18,-32],[4,-9],[-11,-65],[-14,-45],[4,-13],[-23,-27],[-2,-35],[-13,-34],[3,-40],[-14,-19],[20,-43],[-12,-60],[12,-35]],[[3173,4681],[6,-101],[-35,-52],[-9,-27],[7,-28],[35,-79]],[[2522,5686],[122,202],[65,-34],[78,16],[25,28],[25,13],[27,63],[22,31],[-7,14],[-4,70],[7,89],[-9,25],[11,46],[167,112],[29,-20],[20,10],[66,110],[15,-61],[-2,-84],[-25,-60],[9,-35],[-10,-61],[16,-44],[28,-49],[46,6],[51,28],[33,6],[46,31],[12,16],[42,1],[24,31]],[[3451,6186],[15,-60],[-22,-67],[7,-33]],[[3451,6026],[-14,-70],[9,-19],[-11,-25],[8,-64],[-14,-46],[16,-39],[-18,-109],[4,-26],[-20,-51],[-9,-48],[-4,-62],[39,-144],[17,-46],[49,-56],[0,-44],[12,-22],[-3,-37],[9,-52]],[[3521,5066],[5,-55],[-25,-57],[-2,-25],[-15,-58],[-5,-37]],[[3479,4834],[-17,10],[-51,-61],[6,-11],[-52,-40],[-62,-31],[-31,24],[-37,1],[-23,-8],[-39,-37]],[[5478,6974],[0,-59],[16,-29],[-17,-57],[-32,-62],[-13,-44]
 ,[-47,-58],[22,-48]],[[5407,6617],[-19,-18],[-10,-75],[-17,-18],[-33,-13],[-38,-5],[-10,-13]],[[5280,6475],[-55,12],[-31,-11],[-30,11],[-17,-27],[-29,-5],[-14,-17],[-3,-26],[-66,-63],[-49,-63],[-12,-6]],[[4974,6280],[-2,40],[-10,-38],[-23,-55],[8,-32],[-5,-29],[-37,26],[2,26],[-14,70],[-57,37],[47,30],[6,33],[15,21],[-41,69],[-27,33],[20,38],[-14,27],[-17,-7],[-22,12],[-19,-9],[-36,2]],[[4748,6574],[-10,8],[-41,-10],[-19,-30],[-32,13],[-25,26],[-19,52]],[[4602,6633],[-19,30],[-31,34],[-23,2],[-57,43],[-26,32],[28,86],[6,36],[53,26],[38,0],[31,20],[39,-9],[21,18],[38,5],[37,32],[30,1],[18,-47],[56,-27],[8,35],[17,33],[-11,55],[6,19],[17,-3],[31,32],[14,43],[-8,81],[8,24],[45,11],[40,52],[8,39],[55,-49],[252,-152],[69,-52],[20,4],[32,-74],[34,-39]],[[8899,6919],[5,-17],[21,-10],[14,-22],[21,1],[40,-32],[23,23],[2,-16],[36,-55],[7,-54],[-14,-22],[-1,-41],[24,-23],[-21,-37],[-2,-52],[-10,-35],[-30,-21],[-41,-17],[-55,-57],[-47,-77],[-44,23],[-16,17],[-52,-33],[-19,-48],[26,-43],[3,-66],
 [-33,-37],[17,-35],[-18,-11],[-20,16],[-20,-1],[-20,-22],[2,-50],[-54,-13],[-29,8],[-44,-59],[-23,-16],[7,-21],[-19,-37],[8,-38],[10,-8],[-15,-34],[-45,-48],[2,-44],[-21,-48],[5,-33],[-36,-41]],[[8423,5633],[-9,1],[-12,37],[-19,18],[1,59],[-21,19],[-11,72],[-29,75],[-22,87],[-19,29],[-21,9],[-35,39],[12,31],[4,54],[-3,60],[5,10],[-6,56],[-26,21],[-9,-7],[-38,28],[-16,43],[-29,35]],[[8120,6409],[27,49],[27,13],[35,-9],[29,18],[11,44],[13,16],[17,51],[26,13],[68,10],[19,22],[64,26],[74,67],[57,40],[3,16],[27,10],[47,60],[28,70],[49,9],[14,-18],[17,2],[17,22]],[[8789,6940],[63,-27],[47,6]],[[5402,2579],[41,29],[37,6],[56,-12],[20,9],[40,73],[45,33],[37,6],[27,-5],[41,17],[12,17],[46,23],[43,9],[71,-2],[2,49],[61,-14],[15,-17],[42,21],[18,-34],[29,-25],[24,-54],[16,-14],[28,3],[24,-7],[33,9],[27,19],[0,26],[54,6],[45,47],[50,23]],[[6386,2820],[16,-65],[40,-62],[-2,-44],[-14,-18],[0,-67],[18,-50],[20,-35],[25,-26],[0,-38],[17,-21],[28,0],[27,-30],[47,-11]],[[8423,5633],[-42,-53],[-25,14]
 ,[-46,-29],[-45,-46],[-25,3],[-31,-14],[-19,3],[-39,-12],[-29,30],[-29,16],[-8,17],[-43,11]],[[8042,5573],[-48,56],[-11,3],[-6,43],[-37,13],[-27,27],[-68,22],[-25,-17]],[[7820,5720],[-26,67],[-23,24],[8,13],[-14,28],[-11,52]],[[7754,5904],[3,6]],[[7757,5910],[6,42],[8,3],[-10,48],[31,16],[-11,35],[-3,44],[-27,69],[-27,22],[-42,47],[-10,64],[-21,61],[-37,42]],[[7614,6403],[-14,41]],[[7600,6444],[12,-11],[29,39],[41,29],[1,19],[29,38],[14,51]],[[7726,6609],[23,-1],[25,-47],[15,2],[40,44]],[[7829,6607],[-6,-46],[8,-37]],[[7831,6524],[9,-21],[39,-1],[41,27],[25,-2],[4,18],[35,31],[16,-15],[21,21],[39,-14],[14,-22],[-1,-32],[20,-22],[0,-44],[11,-31],[16,-8]],[[3786,4953],[-31,14],[-15,-28],[-30,-16]],[[3710,4923],[-24,-1],[-29,22],[-2,21],[14,29],[-4,69],[-28,40]],[[3637,5103],[-1,0]],[[3636,5103],[7,23],[-2,44],[25,28],[16,36],[-19,49],[-10,55],[-13,104],[-17,100],[24,3],[16,23],[9,32],[-65,102],[-9,33],[8,20],[-12,36],[0,103],[-38,21],[-22,40],[-35,44],[-48,27]],[[3451,6186],[23,44],[2
 1,5],[41,40],[21,44],[24,6],[34,61],[7,-4],[27,52],[40,42],[9,-28],[19,24],[27,11],[15,19],[21,3],[10,18],[68,8],[31,52],[28,13],[11,-23],[28,-20],[37,-11],[18,10],[28,-27],[-3,-23],[20,-26]],[[4056,6476],[-48,-40],[-43,-15],[-34,-35],[-22,-50],[-79,-79],[-10,-30],[13,-1],[29,-50],[14,-13],[14,-47],[29,-27],[27,-76],[1,-35],[28,-60],[13,-71],[-11,-27],[-5,-78],[-10,-48],[-26,-67],[-21,-30],[-12,-36],[2,-20],[-20,-28],[-11,-39],[7,-21],[-13,-47],[4,-35],[-11,-14],[-8,-78],[-16,-24],[-6,-28],[-2,-89]],[[3829,5138],[-21,-20],[-9,-32],[-28,-44],[-16,-35],[10,-32],[21,-22]],[[4798,5238],[-16,133],[-26,93],[1,99],[19,64]],[[4776,5627],[104,62],[67,20],[49,3],[11,84],[13,23],[-1,29],[-25,30]],[[4994,5878],[-14,48],[26,-19]],[[5006,5907],[11,-42],[20,20],[28,-2],[29,18],[35,37],[17,35],[51,47]],[[5197,6020],[21,-17],[9,-48],[-4,-18],[15,-6],[-16,-79],[-35,-59],[43,-35],[10,10],[19,-17],[50,-20],[-1,-29],[33,102],[31,71],[2,70],[8,23],[-32,28],[-28,58],[11,42],[-1,68],[24,38],[11,34],[-1,26]
 ,[-16,52],[14,55],[-8,36],[9,17],[40,30],[48,51],[14,51]],[[5467,6554],[27,-48],[6,-27],[-23,-54],[17,-80],[29,-56]],[[5523,6289],[-29,-58],[-25,-31],[-13,-31],[17,-95],[-8,-34],[-4,-61],[9,-32],[-2,-146],[-21,-38],[-10,-115]],[[5437,5648],[-78,-39],[8,-27]],[[5367,5582],[-42,-36],[-36,-41],[-53,7],[-20,-56],[1,-65],[-9,-76],[7,-14],[2,-87],[8,-11],[-4,-75],[-10,-24],[-14,-87],[-27,-45],[-27,-32],[-11,-61],[-14,-11]],[[5522,3155],[3,35],[21,56],[18,10],[38,-3],[49,31],[29,12],[20,-11],[21,38],[7,24]],[[6425,3140],[27,-56],[-14,-70],[-44,-63],[4,-85],[-12,-46]],[[689,2710],[-16,71],[12,14],[10,53],[-18,23],[-24,77],[-13,26],[21,27],[10,40],[33,52],[12,51],[-10,15],[-1,51],[18,44],[10,56],[15,23]],[[748,3333],[32,5],[19,13],[41,6],[9,7],[29,-7],[11,10],[38,-31],[30,-17],[56,-3],[45,-23],[22,-20],[50,21],[33,1],[43,96],[26,22],[-13,28],[-15,49],[19,47],[4,74],[-9,35],[23,1],[-1,15],[36,-4],[14,21],[22,-10],[71,21]],[[1383,3690],[2,-19],[24,-55],[41,-37],[12,-19],[32,-16],[-19,-49],[5,-
 44],[32,2],[0,-19],[29,-26],[21,-39],[-28,-83],[-3,-24],[-20,-1],[-13,-32],[-22,-30],[44,-59]],[[1520,3140],[-19,-23]],[[1501,3117],[-18,-8],[-9,-25],[-21,-12],[-6,-36],[-18,28],[-16,-29],[-66,-80],[-15,10],[-11,-52],[-23,-66],[-14,-22]],[[1284,2825],[-5,-1]],[[1279,2824],[6,28],[3,79],[-26,50],[-34,14],[-44,48],[-25,-24],[-36,-13],[40,-63],[-52,-67],[9,-49],[-15,-27],[-23,-5],[-52,33],[-35,5],[-28,-25],[-64,-26],[-10,5],[-38,-61],[-36,48],[-8,-30],[-45,-43],[-11,-28],[-16,-8],[-29,33],[-21,12]],[[7187,4105],[-66,58],[-48,31],[-27,1],[-12,23],[-45,-1],[-30,39],[-1,14],[-31,-7],[-19,6],[-25,-8],[-2,13]],[[6881,4274],[-29,27],[-4,40],[11,83],[-23,44],[10,31],[26,41],[-9,45],[-52,37],[-39,56],[-23,-1],[-23,34]],[[6726,4711],[-26,8],[2,28],[-21,0],[1,28],[-54,31],[-3,35],[-68,11],[-24,81],[-38,0],[11,68]],[[6506,5001],[-9,70],[16,56],[5,39]],[[6518,5166],[7,85],[-7,51],[19,14],[38,-20],[20,7],[30,26],[-8,39],[17,4],[3,-24],[66,-67],[65,12],[45,41]],[[6813,5334],[17,19],[27,1],[28,-17],[
 13,-21],[-21,-24],[4,-40],[13,-25],[20,-79],[29,-70],[8,17],[21,-1],[17,48],[20,-5],[33,-32],[46,-17],[20,20],[11,-63]],[[5183,4760],[11,13],[2,30],[31,51],[24,28],[-13,33],[33,64],[-6,53],[29,47],[-5,106],[-9,38],[4,75],[-9,23],[8,17],[40,25]],[[5323,5363],[21,6],[41,-7],[47,6],[3,-22],[21,-50],[13,-64],[13,-17]],[[5482,5215],[28,-87],[20,-76],[5,-52],[-5,-61],[-19,-60],[14,-74],[-2,-33],[10,-53],[-10,-15],[-1,-150],[-16,-75],[-16,-45]],[[5490,4434],[-35,-107],[-3,-42],[-9,-26],[0,-52],[-8,-73],[5,-16],[-14,-45],[-11,-71],[-6,-77],[6,-32],[-9,-224],[-5,-56],[-25,-90],[0,-70],[20,-51],[94,-144],[23,-54],[9,-49]],[[9019,7303],[-27,0],[-13,31],[-56,101],[0,30],[-13,52],[-30,44],[-11,57],[-58,131],[-35,50],[-14,11],[-22,-30],[-35,-14],[-78,102],[-20,35],[-5,30],[10,34],[-21,29],[-52,40],[-26,3],[-25,-29],[-14,12],[-13,38],[6,62],[-12,11],[-19,-19],[-31,20],[-44,5],[-2,21],[-25,58],[-22,8]],[[8283,8310],[36,30],[69,13],[12,-12],[32,29],[48,16],[66,10],[23,-7],[29,7],[13,-7],[66,39],[32,
 -1]],[[748,3333],[-23,17],[-15,-10],[-19,13],[-50,-31],[-26,27],[-28,11],[-21,-10],[-57,9],[-73,21],[-27,20],[-5,37]],[[404,3437],[16,10],[30,45],[1,19],[40,44],[30,-9],[15,-17],[32,-5],[24,12],[38,-9],[20,14],[10,42],[34,40],[13,40],[21,10],[27,37],[52,13]],[[807,3723],[25,14],[58,60],[26,41],[3,18],[34,33],[23,32],[41,12]],[[1017,3933],[1,-22],[29,-10],[50,-30],[39,2],[24,-6],[37,14],[74,75],[4,33],[19,2],[47,31],[7,10],[28,0],[26,39],[30,0],[33,12],[46,-6],[20,-19]],[[1531,4058],[-20,-30],[-12,-44],[0,-29],[33,-165],[-2,-31]],[[1530,3759],[-1,-38]],[[1529,3721],[-29,-27],[-42,7],[-33,-13],[-42,2]],[[8042,5573],[-21,-5],[-37,-54],[-14,-34],[-13,-1],[-33,-35],[-12,-65],[-28,-67],[-13,-14],[-36,-9],[-20,-55],[-63,-88],[-33,-23],[4,-53],[-13,-17],[-20,-3],[2,-28],[46,-60],[71,-15],[6,-36]],[[7399,5217],[-22,106],[-25,81],[-39,28],[-6,24],[-25,39],[-8,38],[-15,28],[-16,4],[2,53],[-23,21],[13,25],[-9,38],[27,35],[-25,9],[-6,30]],[[7222,5776],[27,27],[55,5]],[[7304,5808],[52,17],[31,-3]
 ,[41,-16],[73,55],[4,-39],[-6,-40],[21,-2],[14,-43],[-2,-19],[-23,-37],[-29,-11],[0,-29],[-29,-32],[-16,-37],[37,1],[24,15],[53,11],[30,-31],[44,16],[14,44],[11,-77],[49,-12],[59,26],[34,44],[25,20],[-9,70],[14,21]],[[4373,3845],[-9,-24],[-21,-16],[-48,-9],[-15,22],[-16,42],[-16,5],[-14,34],[-2,34],[-11,21],[-8,50],[-35,9],[-30,48],[-37,18],[-103,70],[-14,19],[-58,-2],[-33,-18],[-37,-32],[-67,18],[-26,11]],[[3773,4145],[-6,13],[8,45],[-9,35],[0,36],[15,47],[-10,41],[5,47],[-3,37],[-18,6],[-5,32],[-13,13],[6,55]],[[3743,4552],[9,10],[30,92],[43,77],[15,20]],[[3840,4751],[57,22],[42,28],[61,18],[14,-63],[11,-2],[12,-74],[32,-50],[63,-44],[48,-7],[19,-11],[39,-107],[69,-114],[34,-47],[57,44],[52,-20]],[[9009,7135],[-23,-32],[-6,-33],[-20,-37],[0,-42],[-39,-62],[-22,-10]],[[8789,6940],[-12,19],[-2,36],[-17,-1],[-28,15],[-23,60],[-14,3],[-14,37]],[[8679,7109],[-10,12],[11,88],[-5,14],[21,13],[-3,63],[-36,21],[8,52],[-48,122],[-46,54],[-19,8],[-64,77]],[[8488,7633],[-10,16],[28,7],[-11,31
 ],[11,25],[-18,11],[-12,-28],[-22,28],[-22,-12]],[[8432,7711],[-8,38],[-33,54],[-3,30],[-31,54],[-15,36],[-20,91],[-21,54],[-19,32],[-2,34]],[[6516,3286],[14,19],[21,-3],[46,42],[56,-34],[10,0],[15,-36],[18,-17],[95,64],[53,13]],[[6844,3334],[3,-51],[16,-39],[-2,-61],[8,-56]],[[1459,1533],[-14,19],[-25,60],[-18,2],[-7,30],[7,29],[-13,32],[0,40],[-29,45],[-29,-27],[-27,12],[-43,49],[-19,5],[-12,72],[1,34],[-15,62],[3,26],[-25,26],[-42,64],[-19,55],[-22,-8],[-49,140],[-19,104],[-17,16]],[[1026,2420],[33,48],[11,3],[17,39],[29,40],[13,61],[7,63],[25,21],[14,44],[14,23],[23,1],[21,14],[46,47]],[[1284,2825],[1,-29],[28,-37],[-28,-57],[-26,10],[-15,-20],[14,-24],[38,-12],[50,-37],[-7,-55],[3,-59],[35,-50],[-18,-100],[11,9],[54,6],[27,-90],[19,-14],[50,-93],[15,-51],[14,-14],[19,-46]],[[233,4058],[-32,186]],[[201,4244],[68,31],[22,-40],[5,-35],[27,7],[23,26],[27,2],[29,37],[2,16]],[[404,4288],[12,10],[36,134],[60,65],[40,12],[46,-2],[20,-12],[31,10],[27,-10],[51,23],[13,-9],[26,13],[25,-10
 ],[19,-34],[30,-16],[43,-39],[29,-43],[24,-11],[49,-83],[18,-19]],[[1003,4267],[-18,-46],[11,-69],[16,-34],[13,-71],[6,-104]],[[1031,3943],[-14,-10]],[[807,3723],[-21,43],[-17,64],[-14,26],[-3,29],[-43,37],[-13,48],[-45,32],[-31,7],[24,27],[35,63],[7,42],[-21,20],[-78,-26],[-14,-12],[-85,-9],[7,-30],[-44,-50],[-25,-51],[-14,1],[-17,21],[-44,31],[-9,-16],[-26,17],[-31,-16],[-2,14],[-34,36],[-16,-13]],[[404,3437],[-18,9],[-25,-8],[-22,6],[-43,-15],[-30,-1],[-22,-24],[-14,37],[-8,-3],[-17,52],[-51,-6],[-11,15],[-8,69],[-7,23],[-2,46],[-23,64],[-3,30],[14,57],[-4,36],[37,69],[11,3],[21,45],[12,7],[12,76],[30,34]],[[7194,4028],[-57,25],[-29,5],[-35,-8],[-35,-21],[-37,-39],[-50,-21],[-26,29],[-41,2],[-23,-27],[-56,5],[-23,-24],[-21,-52],[-43,-17],[15,-34],[41,-60],[-35,-16],[-27,-38],[-43,-28],[-68,-25],[-7,-24],[-32,-42],[3,-35],[-10,-36],[-22,-30],[-1,-28],[-14,-21]],[[6396,3946],[25,49],[-7,34],[7,18],[27,21],[12,33],[-1,27],[16,39],[2,58],[-8,22],[8,81],[-2,45]],[[6475,4373],[21,-12],
 [9,17],[0,49],[13,46],[12,6]],[[6530,4479],[13,-15],[33,-61],[27,-35],[42,-12],[29,-41],[25,-14],[30,-4],[22,-49],[81,-5],[33,13],[16,18]],[[2312,3713],[-92,-87],[10,-22],[-28,-29],[-30,-51]],[[2172,3524],[-2,6],[-149,-202]],[[2021,3328],[-155,-13],[-14,15],[-48,-29],[-57,-21],[-8,4]],[[1739,3284],[13,24],[11,41],[6,93],[-10,23],[6,62],[-4,23],[32,50],[15,52],[17,19],[31,80],[-37,68],[-10,90]],[[1809,3909],[7,39],[13,29],[6,45],[-9,28],[5,38],[-12,44],[-6,44],[-20,31],[2,34],[-14,26]],[[1781,4267],[38,6],[39,22]],[[1858,4295],[37,-48]],[[1895,4247],[19,-79],[35,-42],[128,-63],[46,12],[22,-13],[44,-5]],[[2189,4057],[14,-66]],[[2203,3991],[22,-80],[61,-130],[26,-68]],[[6813,5334],[-35,73],[4,65],[-2,38],[-70,-14],[-10,15]],[[6700,5511],[-13,29],[0,31]],[[7229,5824],[9,-20],[-16,-28]],[[1501,3117],[22,-27],[23,7],[25,74],[37,-29],[11,8],[22,-48],[8,22],[35,-27],[38,9],[11,-16],[-38,-55],[-30,-81],[13,-23],[3,-28],[-26,-100],[-8,-93],[41,-17],[14,13]],[[1702,2706],[5,-12],[34,-14],[11,-
 23],[3,-52],[21,-47],[1,-54],[-37,-61],[-7,-32],[-40,-53],[-22,-11],[-24,-90],[-16,-43],[3,-122]],[[3776,4128],[-3,17]],[[286,4664],[3,30],[33,24],[22,2],[39,79],[4,51],[12,42],[18,4],[53,44],[20,38],[-5,51]],[[485,5029],[31,-61],[18,-8],[34,17],[15,27],[25,21],[44,-20],[37,5],[16,-40],[17,-9],[20,-31],[41,21],[-6,27],[27,29],[68,-36],[18,-32],[26,5],[0,-16],[60,-25]],[[976,4903],[9,-15]],[[985,4888],[0,-1]],[[985,4887],[8,-17],[-8,-25],[-23,-22],[7,-25],[-24,-54],[22,-39],[17,17],[-11,-37],[1,-71],[-9,-26],[11,-57],[-9,-142],[41,-43]],[[1008,4346],[-5,-79]],[[404,4288],[-16,22],[1,19],[-16,42],[-12,-4],[-23,48],[-26,22],[8,23],[41,70],[13,31],[5,33],[-29,36],[7,39],[-33,-8],[-38,3]],[[7831,6524],[31,43],[31,24],[27,32],[24,64]],[[7944,6687],[15,28],[37,38],[25,60],[23,16],[35,60]],[[8079,6889],[10,20],[55,63],[16,9],[3,23],[30,30],[-16,44],[27,38],[15,67]],[[8219,7183],[36,-55],[10,38],[30,40],[18,-15],[39,-54],[43,-74],[7,-55],[27,-79],[66,33],[10,13]],[[8505,6975],[35,43],[45,-15
 ],[16,13],[24,60]],[[8625,7076],[11,-8],[27,14],[16,27]],[[5490,4434],[37,-23],[21,-26],[50,-24],[28,-5],[27,-16],[121,-12]],[[286,5735],[-17,5],[-59,61],[-33,-15],[-9,6],[-13,83],[9,31],[-16,29],[1,20],[-56,-10],[-13,6],[-1,49],[-24,61],[-7,41],[-23,31]],[[25,6133],[30,21],[39,-8],[56,9],[27,26],[8,31],[27,-1],[37,-17],[19,11],[-27,44],[16,46],[43,-33]],[[300,6262],[23,-19],[3,-22],[39,-42],[74,3],[52,-6],[42,-22],[118,86]],[[651,6240],[9,-48],[30,-39],[32,-89],[36,-43],[27,-3],[66,13],[32,-24],[54,-105],[8,-63]],[[945,5839],[-48,-21],[-78,-40]],[[819,5778],[-13,52],[-28,-21],[-34,13],[-29,34],[-21,-11],[-47,-44],[-38,21],[-70,9],[-33,-18],[-38,7],[-12,-17],[-83,-42],[-25,4],[-62,-30]],[[4748,6574],[-7,-51],[-42,-47],[2,-78]],[[4701,6398],[-42,-19],[-22,-18],[-6,-133],[-7,-16],[18,-5],[4,-24],[61,-14],[7,-40],[-21,-38],[28,-43]],[[4721,6048],[3,-13],[-33,-79],[2,-51],[-19,-14],[-38,-7],[-20,-64],[-24,13],[-19,-3]],[[4573,5830],[-16,-12],[1,-28],[-17,-22],[-55,7]],[[4486,5775],[-7,-
 13],[-39,9],[21,-20],[-9,-27],[9,-48],[-7,-14],[-24,-6],[-26,-35],[-56,-54]],[[4348,5567],[-10,12],[19,30],[12,118],[-12,28],[6,64],[-28,75],[6,21],[-14,44],[6,44],[-15,57],[-18,32],[-11,58],[7,46],[28,133],[-42,46],[-8,19]],[[4274,6394],[19,7],[21,38],[6,30],[33,4],[52,-17],[31,-3],[14,14],[50,18],[4,36],[16,51],[82,61]],[[2805,4067],[-80,-32],[-29,-49],[-11,-5],[-32,21]],[[2653,4002],[2,93],[-9,99],[-12,34],[-19,-36],[-49,37],[-16,-6],[-27,12],[-9,-8],[-12,27],[-35,30],[-37,12],[-23,-13],[-22,8],[-23,59],[-62,58],[-37,2],[-11,26],[-21,20],[-80,165],[-22,27],[-11,54],[-12,32]],[[2106,4734],[28,-4],[42,27],[18,37],[29,17],[6,18]],[[2486,4775],[72,-31],[14,-25],[17,-8],[16,-35],[15,-9],[45,-84],[-2,-17],[33,-75],[12,-49],[8,3],[11,-52],[21,-6],[1,-20],[27,-19],[-3,-107],[55,-58],[29,49],[54,-48]],[[6331,6687],[14,-38],[27,-30],[2,-83],[11,-93],[-8,-18],[-3,-59],[-14,-41],[0,-34],[-11,-22],[6,-36],[12,-16]],[[6367,6217],[-29,-52],[2,-28],[-37,-78],[8,-30],[-18,-25],[-15,-38],[-61,-62]
 ,[-25,-44],[-41,-58],[12,-100],[31,-9],[2,-25],[44,-6],[26,-40],[21,-4]],[[6287,5618],[-8,-58]],[[6279,5560],[-13,-69],[-17,-70],[-30,9],[1,-30],[34,-38]],[[6254,5362],[-27,-5],[0,19],[-40,9],[-3,16],[-54,16],[-26,38],[14,58],[-40,14],[-37,25],[-2,-26]],[[6039,5526],[-14,29]],[[6025,5555],[-24,-7]],[[6001,5548],[-15,59],[29,177],[34,82],[-6,43],[24,23],[11,43],[29,58],[2,39],[16,29],[5,59],[-6,13],[8,36],[-2,61],[12,73],[-33,92],[12,11],[-22,65]],[[6099,6511],[19,60],[26,7],[36,38],[31,47]],[[7241,3886],[-27,-46],[-27,2],[-33,-25],[-34,-10],[-10,-37],[-60,-92],[-28,-2],[-130,-90],[-46,3],[-4,-33],[-20,-45],[16,-62],[-7,-21],[13,-94]],[[485,5029],[34,87],[-6,95],[35,77],[-1,30],[-32,76],[1,23]],[[516,5417],[82,-29],[18,5],[20,27],[38,33]],[[674,5453],[5,-58],[-18,-32],[-14,-86],[-16,-70],[-16,-27],[58,-9],[8,54],[29,65],[1,50],[6,25],[-6,68],[24,22],[-24,45]],[[711,5500],[4,8],[45,6],[42,-12],[55,62],[-12,37],[27,20],[-28,92],[-25,65]],[[945,5839],[-3,-97],[15,-106],[10,-50],[3,-78],
 [32,-48],[53,-48],[46,-70],[16,-61]],[[1117,5281],[-24,-37],[-4,-33],[14,-35],[16,-87],[-24,-16],[-4,20],[-32,-12],[-3,24],[-44,-17],[-19,-15],[-9,19],[-21,93],[-11,-24],[-16,9],[-4,-17],[-38,-18],[-22,35],[-5,34],[-11,-15],[-18,12],[-9,78],[-16,35],[-30,-31],[-54,-69],[9,-44],[35,36],[15,-48],[-12,-37],[29,-13],[17,11],[11,-27],[40,-60],[40,-32],[37,1],[48,-58],[-22,-40]],[[818,5502],[8,-67],[46,52],[-17,48],[-37,-33]],[[3743,4552],[-19,48],[-13,-32],[-7,7],[-40,-30],[-28,-9],[-32,-41],[-37,-17]],[[3567,4478],[-31,-19],[-35,0],[14,-38],[-34,-36],[-9,-43],[-12,-7],[18,-92],[-6,-19],[-19,-4],[-84,-3]],[[3369,4217],[-11,37],[1,28],[-10,49]],[[3479,4834],[3,-22],[37,9],[67,38],[14,28],[55,20],[22,-4],[33,20]],[[3786,4953],[38,-161]],[[3824,4792],[16,-41]],[[5482,5215],[-13,114],[-25,57],[6,39],[-5,26],[23,11],[5,19],[28,2],[10,12],[90,44],[25,-1],[25,-28],[28,-71],[9,-53],[23,-34]],[[5711,5352],[-8,-60],[-23,-79],[-19,-27],[11,-65],[12,-34],[6,-62],[36,-57]],[[5726,4968],[4,-26],[22,-6
 8],[2,-24],[-31,-74],[-7,-29],[-23,-10],[-3,-44],[11,-23],[49,-10],[25,-15],[28,-79],[19,-15]],[[5822,4551],[-15,-35],[-36,-61],[-4,-87],[8,-37]],[[6541,6027],[-36,-16]],[[6505,6011],[-47,34],[-10,40],[-18,44],[-34,43],[-18,39],[-11,6]],[[5663,7076],[27,-74],[35,-44],[5,-55],[-7,-35],[-26,-29],[20,-4],[17,-30],[36,-20],[28,-26],[33,-56],[-20,-13],[-24,-50],[-8,-46],[4,-22],[16,1],[17,-25],[-4,-48],[24,-43],[7,-26],[46,38],[28,3],[79,-57]],[[5996,6415],[-2,-55],[-10,-18],[5,-27],[-25,-33]],[[5964,6282],[-33,40],[-22,7],[-18,-8],[-27,8],[-46,-23],[-35,-6]],[[5783,6300],[-2,52],[-35,-16],[-91,-9],[-33,52],[-21,-14],[-41,-65],[-37,-11]],[[5467,6554],[-7,59],[-20,-19],[-33,23]],[[5478,6974],[28,-25],[34,11],[16,41],[21,37],[53,11],[33,27]],[[2544,3981],[-36,59],[-4,20],[-19,-11],[-29,15],[-18,-14],[-66,-3],[-11,11],[-66,-36],[-22,-32],[-46,-15],[-10,26],[-14,-10]],[[2189,4057],[-17,134],[-58,58],[-115,-6],[-104,4]],[[1858,4295],[35,49],[14,28],[17,2],[12,21],[27,16],[29,37],[23,56],[43,6
 2],[-6,75],[13,40],[5,42],[13,17],[23,-6]],[[2653,4002],[-80,-7],[-29,-14]],[[7600,6444],[-62,-39]],[[7538,6405],[-6,50],[-27,61],[23,86],[1,38],[9,68],[16,32],[2,53],[31,34],[-61,116]],[[7754,7146],[-6,-26],[-24,-37],[-10,-1],[-22,-36],[-4,-37]],[[7688,7009],[-18,-61]],[[7670,6948],[-4,-6],[22,-109],[21,-67],[-8,-17],[8,-31],[29,-19],[5,-17],[-20,-52],[3,-21]],[[1520,3140],[11,47],[27,57],[5,51],[23,84],[0,29],[33,30],[13,20],[6,44]],[[1638,3502],[87,-162],[14,-56]],[[2021,3328],[-39,-54],[10,-15],[69,71],[24,-50],[-54,-54],[-7,-22],[-1,-50],[27,-25],[35,28],[18,-44],[51,-43]],[[2154,3070],[-25,-28],[-54,-41],[-51,-31],[-55,-17],[-24,-20],[-33,-14],[-9,-22],[-16,8],[-8,-23]],[[1879,2882],[-10,7],[-51,-34],[-56,-21],[-27,-41],[2,-70],[-35,-17]],[[4056,6476],[9,21],[36,0],[16,32],[5,37],[35,20],[17,-23],[17,-69],[1,-74],[9,-16]],[[4201,6404],[-15,-18],[-21,-105],[36,-58],[25,-48],[0,-16],[-35,-60]],[[4191,6099],[-7,-3],[-44,-95],[-32,-59],[-24,-33],[-25,-18],[-9,-22],[1,-71],[-9,-3],
 [-15,-54],[12,-10],[18,-59],[-32,-15],[-15,-30],[7,-35],[-42,-32],[-2,-65],[-9,-14],[3,-33],[-7,-36],[11,-52],[-16,-3],[0,-21],[-46,-41],[-19,-49],[-19,-76],[16,-4],[-14,-23],[4,-34],[-24,-67]],[[3853,5042],[-3,31],[8,64],[-7,15],[-22,-14]],[[4460,4471],[-90,77],[-12,32],[-15,103],[5,45],[-39,98],[-13,62],[-71,78],[-21,-14],[-27,31],[-16,30]],[[4161,5013],[81,64],[88,39],[20,23],[47,38],[50,53]],[[4447,5230],[34,-63],[38,5],[18,-43],[31,-39],[33,-17]],[[2653,3311],[14,80],[-14,-5],[-23,31],[17,24],[-21,41],[2,29],[-17,39],[-8,47],[-14,38],[2,17],[-46,86],[-43,53]],[[2502,3791],[-10,13],[16,45],[9,81],[8,28],[19,23]],[[2815,4053],[-26,-43],[-2,-28],[-15,-37],[-33,-29],[-8,-18],[-41,-27],[12,-26],[29,-18],[16,-35],[-4,-27],[11,-27],[31,-20],[10,-22],[8,-58],[31,-58],[-1,-29],[30,-67],[2,-34],[25,-42],[18,-53],[32,-35],[6,-63],[20,-48]],[[2491,3196],[-36,17],[-30,-4],[-26,-16],[-18,7],[-31,-9],[-42,35],[-45,-2],[-41,-26]],[[2222,3198],[28,105],[11,29],[-32,79],[-57,113]],[[2312,3713],[
 36,23],[70,23],[22,-30],[62,62]],[[5783,6300],[9,-65],[-7,-66],[-11,-13],[5,-50],[-9,-26],[-20,-98],[4,-71],[-26,-60],[-19,-59],[7,-82],[0,-81],[-11,-25],[10,-5]],[[5715,5599],[-31,3],[-53,15],[-50,49],[-27,2],[-18,-30],[-38,13],[-61,-3]],[[1026,2420],[-18,-7],[-36,28],[-7,27],[-20,22],[11,31],[7,63],[-22,21],[-31,-15],[-23,7],[-81,-139],[1,-26],[-16,-24],[-79,-22],[-19,-24],[-3,-45],[-11,-9],[-20,30],[-17,2],[-31,23],[-14,38],[-21,21],[5,48],[14,41],[6,58],[17,34],[7,49],[26,18],[17,26],[21,14]],[[8625,7076],[-36,56],[-10,51],[-64,53],[-18,51],[-26,39],[-23,59],[-25,11],[-33,29],[-16,38],[-47,84],[2,38],[-29,36],[-9,25],[-27,16],[-35,9],[-37,-16],[-8,19],[-35,26]],[[8149,7700],[6,36],[-10,14]],[[8432,7711],[2,-67],[22,-31],[25,4],[7,16]],[[6039,5526],[13,-49],[-3,-38],[17,-21],[6,-41],[9,-100],[15,-48],[-15,-15],[-21,-62],[-4,-36],[-21,-53],[-6,-101],[-8,-32],[-16,-22],[-5,-76],[-6,-17]],[[5994,4815],[7,-80],[7,-17]],[[6008,4718],[-35,-18],[-8,-131],[-25,-31],[-42,-22],[-22,1],[-54
 ,34]],[[5726,4968],[45,30],[20,28],[32,16],[46,110],[19,37],[27,28],[23,56],[19,31],[8,37],[21,23],[20,53],[0,35],[-12,34]],[[5994,5486],[12,38],[-5,24]],[[516,5417],[-29,28],[-13,-4],[-6,-23],[-18,-7],[-16,17],[-9,40],[-24,10],[-29,56],[-25,5],[-12,41],[12,37],[-8,4],[-21,68],[-23,13],[-9,33]],[[711,5500],[-37,-47]],[[3824,4792],[35,48]],[[3859,4840],[44,18],[51,65],[40,19],[63,21],[104,50]],[[2628,5045],[29,-28],[6,10],[89,11],[26,-66],[1,-24],[32,-86],[-4,-24],[15,-27],[9,-45],[-7,-65],[0,-69],[-12,-41],[6,-23],[-6,-34],[21,-37],[71,-73],[88,-135],[9,-29]],[[1117,5281],[16,-127],[5,-19],[52,-96],[28,-42]],[[1218,4997],[-25,-47],[4,-55],[-13,-16],[-13,-60],[27,-8],[-11,-32],[5,-14],[-17,-18],[3,-30],[11,-8],[-9,-27],[-26,-7],[11,-86],[-13,-1],[-15,-44],[-30,-20],[-39,-107],[-10,-44]],[[1058,4373],[-50,-27]],[[3636,5103],[-11,9],[-52,-19],[-8,21],[-22,-17],[-22,-31]],[[3859,4840],[112,158],[-23,54]],[[3948,5052],[82,61],[-2,11],[27,17],[17,-6],[15,33],[34,23]],[[4121,5191],[-4,-20]
 ,[25,3],[43,25],[14,15],[72,43]],[[4271,5257],[50,55],[20,12]],[[4341,5324],[3,0]],[[4344,5324],[12,5],[22,34],[2,43],[16,19],[-9,12]],[[4387,5437],[9,27],[24,25]],[[4420,5489],[12,16],[33,7]],[[4465,5512],[9,-10],[35,0],[13,16],[18,-7],[28,6],[33,63],[25,28]],[[4626,5608],[12,-27],[-8,-41],[4,-73],[38,2],[9,-58],[29,5],[16,-95],[26,-102]],[[4613,5266],[-40,59],[-61,-27],[-65,-68]],[[7373,6095],[-8,-26]],[[7365,6069],[-30,33],[-30,67],[6,13],[-18,24],[4,33],[-17,35],[-2,98],[12,29],[-29,-6],[-6,62],[3,36],[-29,-34]],[[7538,6405],[-18,-1],[-19,-17],[12,-26],[-22,8],[-2,-26],[-35,-64],[-26,24]],[[7428,6303],[24,-42],[-11,-5],[-22,-58],[-33,-58],[-13,-45]],[[7289,5909],[9,44],[33,56],[27,21],[7,39]],[[7373,6095],[12,14],[46,-37],[16,-5],[19,-32],[27,0],[41,-16],[48,-31],[35,-3],[33,-30],[14,-24],[6,-43],[31,-22],[17,4],[36,34]],[[2409,2780],[-16,-13],[-60,-3],[-58,-16],[-24,23],[-13,-9],[-87,11],[-33,-5],[-20,-17],[-30,-3],[0,66],[-41,56],[-49,2],[-4,-9]],[[1974,2863],[-27,-5],[-21,16]
 ,[-47,8]],[[2154,3070],[30,39],[9,35],[29,54]],[[1957,2520],[11,28],[-5,15],[-6,127],[-10,64],[-2,47],[29,62]],[[5994,5486],[-44,13],[-85,43],[-50,-1],[-32,11],[-70,-23]],[[5713,5529],[2,66]],[[5715,5595],[34,-3],[12,37],[22,10],[98,-23],[0,58],[-17,1],[2,36],[-8,20],[52,120],[22,30],[16,77],[-9,61],[5,89],[12,61],[-8,46],[4,37],[12,30]],[[5996,6415],[20,60],[36,14]],[[6052,6489],[19,2],[28,20]],[[6407,4998],[0,-28],[14,-37],[4,-79],[6,2],[-6,-45],[18,-63],[-49,-96],[-25,-7],[-12,-33],[-13,0],[27,-32],[-48,-50]],[[6323,4530],[-28,-34]],[[6295,4496],[-20,28],[-11,39],[-61,83],[-32,-44],[-26,-8],[-7,23],[-24,16],[-47,10],[-11,34],[-21,10],[-27,31]],[[5994,4815],[65,34],[33,-15],[17,3],[45,63],[1,25],[16,5],[8,31],[25,17],[13,41],[41,13],[7,23],[34,27],[39,45],[-15,42]],[[6323,5169],[18,-16],[8,-34],[29,-32],[16,-80],[13,-9]],[[4348,5567],[21,-32],[10,-90],[8,-8]],[[4344,5324],[-10,30],[-41,62],[-87,172]],[[4206,5588],[-16,23],[-20,93],[16,24],[-15,32]],[[4171,5760],[6,38],[40,23],[-37
 ,57],[3,33],[-7,25],[-27,25],[10,30],[39,80],[-7,28]],[[4201,6404],[21,-5],[25,20],[27,-25]],[[5280,6475],[-1,-54],[-11,-26],[2,-74],[9,-93],[-11,-52],[4,-16],[-13,-40],[8,-23],[-33,-44],[-37,-33]],[[5006,5907],[8,29],[-20,57],[1,56],[-24,57],[20,22],[-19,33],[5,55],[-22,0],[0,29],[19,35]],[[6514,5761],[-9,-43],[-16,-14],[-41,-11],[-2,-9],[-39,-11],[-15,7],[-57,-40],[-48,-22]],[[6505,6011],[11,-114],[-2,-136]],[[1031,3943],[58,-5],[-12,25],[27,60],[24,21],[28,12],[18,30],[7,34],[49,29],[14,25],[5,125],[44,45],[19,34],[0,46],[10,56],[30,46],[5,31],[-15,2],[-4,24]],[[1338,4583],[16,14]],[[1354,4597],[8,-32],[24,-27],[19,-174],[9,-27],[47,-45],[29,-56],[18,-59],[16,-28],[9,-34]],[[1533,4115],[8,-39],[-10,-18]],[[6052,6489],[-10,30],[1,29],[-16,12],[-9,-12],[-8,24],[-45,59],[-26,85],[-15,67],[-13,-7],[-17,22],[-10,38],[-22,42],[-11,6],[-10,45]],[[5841,6929],[-1,29],[-16,31],[-22,18],[-35,66],[-59,57]],[[5708,7130],[63,58],[8,25],[27,10],[22,26],[8,25],[13,-5]],[[25,6133],[-17,41],[-8,62
 ],[5,71],[28,43],[27,26],[58,3],[38,56],[7,31],[29,29],[14,28],[5,56],[-25,37],[7,82],[13,21]],[[206,6719],[4,-17],[26,-26],[32,-5],[9,-17],[69,-40]],[[346,6614],[40,7],[70,21]],[[456,6642],[-1,-21],[-30,-39],[-12,-43],[3,-28],[-19,-60],[-11,-106],[-44,-11],[-18,-45],[-24,-27]],[[456,6642],[23,-15]],[[479,6627],[-1,2]],[[478,6629],[1,-2]],[[479,6627],[22,-21],[5,20],[18,20],[-11,60]],[[513,6706],[-3,9]],[[510,6715],[-1,-8]],[[509,6707],[1,8]],[[510,6715],[9,7]],[[519,6722],[18,-40],[45,-66],[33,-61],[22,-17],[37,-57],[8,-116],[-9,-60],[-22,-65]],[[1058,4373],[28,60],[38,51],[35,70],[60,-2],[11,-20],[10,22],[41,36],[24,-14],[25,16],[8,-9]],[[6530,4479],[-16,62],[-21,65],[-8,6],[-17,52],[9,64],[28,-5],[40,-22],[23,-25],[27,-7],[24,5],[19,21],[4,33],[36,-26],[9,-27],[27,-27],[19,11],[-7,52]],[[6196,4351],[35,54],[42,43],[22,48]],[[6323,4530],[69,-53],[18,-20],[37,-67],[28,-17]],[[5711,5352],[12,8],[-12,113],[2,56]],[[5715,5595],[0,4]],[[3948,5052],[-50,-43],[-45,33]],[[4171,5760],[-25,
 -4],[-27,15],[-15,-21]],[[4104,5750],[8,-25],[5,-82]],[[4117,5643],[-32,-10],[13,-69],[-13,-17],[-7,-54],[-39,-14],[11,-22],[-10,-9],[11,-27],[34,-139],[48,10],[-4,-69],[-8,-32]],[[8149,7700],[0,-38],[11,-74],[37,-82],[6,-65],[42,30],[16,-41],[-6,-23],[-25,-21],[23,-38]],[[8253,7348],[7,-35],[-24,-38],[20,-26],[-19,-53],[-18,-13]],[[8079,6889],[-15,34],[16,44]],[[6254,5362],[-21,-49],[8,-40],[21,-37],[43,-27],[11,6],[7,-46]],[[6518,5166],[-17,99],[-21,51],[-5,32],[-32,-10],[-28,12],[-9,-12],[-62,12],[-18,-17],[-18,4],[-2,21],[-52,4]],[[6279,5560],[40,-10],[78,12],[94,-2]],[[6491,5560],[37,-10],[35,-23],[46,-41],[25,-5],[37,7],[0,12],[29,11]],[[3503,3994],[25,58],[23,96],[4,48],[14,55],[8,59],[-5,48],[4,46],[-9,74]],[[4776,5627],[12,35],[0,30],[-11,-1],[-6,49],[17,40],[20,82],[24,53],[-7,40],[-34,45],[1,17],[-23,32],[-35,-13],[-13,12]],[[4701,6398],[28,-55],[26,-28],[8,-40],[24,-8],[19,-33],[-1,-18],[15,-35],[-7,-39],[17,-37],[18,-13],[14,-30],[37,-8],[11,-36],[19,-32],[11,-2],[22,-3
 8],[19,-64],[13,-4]],[[1530,3759],[43,23],[5,33],[36,-1],[78,43],[1,33],[17,51],[36,17],[10,-17],[53,-32]],[[1638,3502],[-33,54],[-55,58],[-14,26],[-8,43],[1,38]],[[1533,4115],[44,25],[92,82],[15,3],[29,44],[44,20],[24,-22]],[[8505,6975],[-7,29],[-29,62],[-4,31],[-28,68],[-31,49],[-2,35],[-23,20],[-15,-12],[-5,28],[-11,-14],[-15,18],[-11,-13],[-52,58],[-19,14]],[[5663,7076],[38,38],[7,16]],[[4626,5608],[-2,27]],[[4624,5635],[6,46],[-16,38],[-6,47],[9,15],[-19,24],[-19,6],[-6,19]],[[7944,6687],[-10,32],[-27,46],[-27,24],[-36,59],[-9,33],[-44,42],[-50,66],[-42,24],[-11,-4]],[[206,6719],[95,411],[22,-31],[177,-336],[19,-41]],[[6407,4998],[47,-9],[52,12]],[[7614,6403],[-8,-20],[-35,-27],[-37,-38],[43,-64],[6,-52],[96,-183],[39,-71],[2,-20],[37,-18]],[[5323,5363],[2,46],[11,50],[-5,42],[24,41],[9,3],[3,37]],[[1218,4997],[44,-51],[9,-31],[6,-81],[27,-51],[18,-56],[30,-36],[2,-94]],[[201,4244],[-18,78],[0,30],[22,38],[4,36],[12,14],[-1,23],[22,19],[17,57],[20,18],[12,25],[0,55],[-5,27]],[[
 6650,5575],[-89,-16],[-36,8],[-23,27]],[[6502,5594],[-15,-4],[-48,18],[16,57],[53,41]],[[6508,5706],[6,55]],[[7829,6607],[-6,78],[-43,66],[-25,10],[-23,31],[0,21],[25,21],[0,14],[-41,60],[-46,40]],[[4117,5643],[14,-77],[18,-47],[38,-75],[18,-98],[15,-7],[3,-37]],[[4223,5302],[20,-6],[28,-39]],[[3383,4187],[-14,30]],[[4624,5635],[-12,-19],[-45,-36],[-21,1],[-8,20]],[[4538,5601],[-1,35],[-17,34]],[[4520,5670],[-32,31],[-7,37],[5,37]],[[4520,5670],[2,-13],[-60,-99],[-9,-25],[12,-21]],[[6502,5594],[-11,-34]]],"transform":{"scale":[0.07088847799758645,-0.048004800480048],"translate":[125.59305425106652,490]}}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/zg-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/zg-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/zg-municipalities.json
deleted file mode 100644
index 7fb02a0..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/zg-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":1701,"properties":{"name":"Baar"},"arcs":[[[-8,18,19,20,-12,-17]]]},{"type":"MultiPolygon","id":1702,"properties":{"name":"Cham"},"arcs":[[[-24,24,25,26,-6]]]},{"type":"MultiPolygon","id":1703,"properties":{"name":"Hünenberg"},"arcs":[[[-23,27,-25]]]},{"type":"MultiPolygon","id":1704,"properties":{"name":"Menzingen"},"arcs":[[[10,11,12,13,-2]]]},{"type":"MultiPolygon","id":1705,"properties":{"name":"Neuheim"},"arcs":[[[-21,30,-13]]]},{"type":"MultiPolygon","id":1706,"properties":{"name":"Oberägeri"},"arcs":[[[0,1,2]]]},{"type":"MultiPolygon","id":1707,"properties":{"name":"Risch"},"arcs":[[[21,22,23,-5]]]},{"type":"MultiPolygon","id":1708,"properties":{"name":"Steinhausen"},"arcs":[[[-7,-27,31,-19]]]},{"type":"MultiPolygon","id":1709,"properties":{"name":"Unterägeri"},"arcs":[[[14,15,-9,16,-11,-1,17]]]},{"type":"MultiPolygon","id":1710,"properties":{"name":"Walchw
 il"},"arcs":[[[-10,-16,28,29]]]},{"type":"MultiPolygon","id":1711,"properties":{"name":"Zug"},"arcs":[[[3,4,5,6,7,8,9]],[[-29,-15,32]]]}]}},"arcs":[[[6995,685],[-66,803],[61,-63],[23,-7],[34,10],[42,-7],[92,41],[37,10],[21,23],[29,-13],[11,36],[20,-5],[37,28],[-17,21],[-74,49],[1,33],[-12,15],[25,29],[-5,39],[-17,35],[-19,-15],[-57,-3],[-81,-31],[20,69],[-8,26],[8,34],[-40,51],[14,23],[-5,24],[11,54],[28,38],[37,-3],[25,9],[33,-31],[40,-1],[24,-8],[83,-2],[28,-6],[53,27],[6,21],[-91,57],[-34,5],[-36,23],[-33,36],[-67,50],[-39,35],[-45,28],[-40,-46],[-17,-52],[-3,-102],[-120,18],[-42,-10],[-48,14],[-39,-12],[-14,-18],[-59,20],[19,53],[-6,60],[9,13],[22,72],[-2,28],[25,88],[2,50],[89,393],[-203,522],[-28,76],[14,52],[24,37],[4,24],[-12,80],[-19,21],[3,42],[-14,58],[7,65],[7,11],[10,61],[-20,48],[-18,11],[-31,61],[-21,30],[21,18],[-59,146]],[[6533,4204],[17,21],[78,69],[37,56],[39,35],[36,-24],[29,29],[38,10],[87,-6],[56,-19],[70,19],[58,51],[25,3],[35,-14],[15,-26],[79,-99],[31,9],[26
 ,-28],[72,70],[59,32],[30,2],[33,-24],[62,-69],[18,19],[84,17],[17,-23],[23,3],[95,-21],[84,14],[36,-21],[65,19],[41,4],[18,-11],[67,-2],[70,-9],[85,13],[28,21],[25,31],[14,3],[83,-21],[47,-30],[51,-8],[38,2],[32,-9],[89,24],[8,53],[-14,30],[-2,32],[59,66],[13,39],[-16,22],[-21,93],[-13,41],[19,17],[53,8],[38,-8],[44,19],[20,72]],[[8843,4800],[78,-11],[67,17],[55,0],[21,-10],[78,-3],[34,38],[10,39],[36,13],[92,66],[49,6],[111,39],[57,-5],[57,10],[55,16],[36,21],[37,12],[79,-18],[24,-21],[31,-159],[2,-50],[42,-30],[6,-20],[-6,-38],[1,-65],[20,-30],[17,-76],[-20,-78],[14,-74],[63,-64],[10,-27],[-21,0],[-47,-27],[-9,-53],[-17,-1],[-8,28],[-18,13],[-59,-23],[-12,-29],[-23,-9],[-44,-35],[-26,-49],[-53,-7],[-16,-44],[-30,-44],[-25,-21],[-19,-62],[-26,-43],[-47,-131],[-26,-18],[-16,-69],[-1,-43],[13,-79],[16,-23],[9,-56],[37,-18],[32,5],[6,-16],[-17,-37],[-21,-13],[8,-33],[19,-17],[8,-49],[-37,20],[-16,-6],[-22,-52],[6,-32],[-29,-12],[6,-38],[15,-15],[-21,-25],[23,-7],[9,-22],[23,-5],[-18,
 -32],[-32,10],[-5,-45],[11,-22],[-19,-11],[-25,-40],[8,-21],[-17,-19],[-20,-46],[9,-21],[-12,-28],[3,-55],[-23,-11],[7,-35],[-11,-12],[-49,-7],[-17,-34],[-29,24],[-40,-49],[10,-43],[-26,0],[30,-40],[-23,-10],[-15,12],[-18,-25],[1,-29],[-14,-25],[-29,13],[-20,-43],[-17,12],[-12,-24],[-17,-2],[-20,-49],[7,-26],[-27,-17],[-19,11],[15,-43],[-20,-18],[24,-8],[24,-71],[-33,3],[25,-48],[3,-20],[-156,-7],[-55,-43],[-48,0],[-37,11],[-61,-10],[-34,-23],[12,-89],[17,-50],[-3,-32],[-24,-56],[-54,-44],[-78,-102],[-61,-42],[-264,-501],[-16,-227],[-88,-57],[-27,-34],[-22,8],[-110,-74],[-85,-1],[-86,15],[-57,-5],[-10,15],[-77,-3],[-55,5],[-95,47],[-365,9],[-100,-32],[-39,-150]],[[3281,1928],[-442,753]],[[2839,2681],[282,1087],[-522,1387]],[[2599,5155],[48,814],[-10,80],[14,16],[3,74],[41,95]],[[2695,6234],[106,-22],[0,8],[55,31],[46,15],[26,23],[14,39],[88,-13],[14,-95],[27,9],[77,51],[-6,25],[73,49],[-28,48],[92,37],[153,73]],[[3432,6512],[4,8],[3,-131],[-33,-7],[-32,-32],[6,-10],[-27,-32],[62,-62
 ],[19,-40],[24,-28],[89,45],[-26,25],[12,84],[40,19],[34,31],[21,-23],[41,80],[12,-11],[-3,-24],[17,-38],[-23,-39],[88,-84],[15,26],[70,-62],[79,-78],[6,-16],[50,-53],[35,47],[34,12],[62,-15],[17,117],[33,25],[31,49],[6,32],[20,-3],[41,-31],[69,-117],[11,-11],[-5,-41],[-16,-53],[-21,-45],[-46,1],[-18,-60],[-1,-43],[-17,-1],[-13,-50],[17,-31],[49,-43],[3,5],[51,-39],[23,-2],[53,-44],[4,-89],[19,-16],[18,-52],[19,23],[11,37],[12,5],[121,-2],[15,-53],[35,-46],[15,-41],[50,-55],[2,-36],[-11,-35],[33,-70],[-80,-27],[-31,-36],[-15,-33],[-2,-47],[18,-5],[-11,-102],[57,-97],[36,-6],[14,8],[34,-75],[-8,-22],[52,-153],[52,2],[-5,-75],[25,-28],[86,-5],[4,-23],[33,15],[20,-32],[30,6],[50,-10],[26,-18],[76,42],[27,27],[0,27],[27,-1],[-2,-27],[87,-362],[23,-28]],[[5364,4204],[-7,-39],[-31,-39],[-43,-43],[-38,-9],[-45,-77],[-60,-68],[-80,-76],[-2,-30],[-47,-13],[-14,-19],[-28,-6],[-45,-51],[-3,-36],[-40,-83],[-7,-81],[1,-54],[-32,-144],[-7,-90],[-9,-49],[24,-111],[13,-37],[-3,-39],[31,-46],[-2,-11
 2],[13,-37],[39,-49],[17,-12],[-29,-98],[16,-142]],[[4946,2514],[-70,-4],[-10,10],[-38,-23],[-42,6],[-44,-35],[-31,-15],[-13,9],[-41,-28],[-3,-18],[-38,-31],[-21,-30],[-34,92],[-24,144],[-59,181],[-160,-6],[-17,11],[-93,-76],[-36,49],[-40,27],[-20,2],[-57,-15],[-58,-119],[-79,-32],[-92,38],[-52,-38],[3,-112],[-6,-22],[-27,-15],[-23,-26],[-23,-70],[-18,-25],[22,-43],[-49,-78],[-19,-56],[-52,-58],[-16,-55],[-42,-37],[-34,-39],[-209,-49]],[[6533,4204],[-45,-18],[-59,11],[-39,41],[-68,127],[-25,11],[-39,-16],[-45,-31],[-46,-15],[-48,-70],[-28,-4],[-38,-25],[-53,3],[-17,10],[-24,-13],[-11,20],[-44,23],[-59,-51],[-22,-10],[-45,8],[-52,19],[-55,-27],[-36,-64],[-7,-39],[-49,-24],[-6,-32],[-28,20],[3,74],[-18,111],[-28,88]],[[5502,4331],[29,42],[-6,24],[-19,3],[-83,31],[-5,30],[14,34],[-2,64],[-10,35],[-3,90],[8,27],[25,39],[-4,51],[-17,46],[1,31],[-34,34],[-9,32],[22,96],[-12,38],[-24,30],[1,82],[6,41],[18,27],[10,68],[14,40],[-12,116],[-25,50],[36,40],[0,22],[-23,60],[-6,52],[-32,28],[-12,
 46],[4,63],[-22,24],[-34,12],[-38,-4],[-12,18],[7,48],[-34,74],[-11,50],[25,45],[4,31],[17,22],[4,27],[17,22],[10,57],[1,45],[12,22]],[[5298,6336],[26,-40],[20,-15],[28,55],[31,10],[18,-22],[-7,28],[66,38],[9,-17],[10,39],[20,18],[19,-18],[20,7],[-6,29],[14,4],[24,-32],[28,-6],[3,-20],[50,41],[-23,60],[37,21],[132,194],[14,-2],[12,61],[47,-17],[11,31],[37,-6],[39,-31],[40,-62],[32,3],[46,-41],[42,-16],[28,22],[47,6],[49,-117],[25,-5],[35,-34],[32,-16],[31,-37],[12,24],[47,-67],[10,62],[51,-25],[26,33],[14,0],[17,45],[50,6],[32,-36],[22,9],[0,41],[31,8],[5,37],[61,-10],[43,-26],[36,-5],[26,18],[66,-78],[9,-38],[43,-6],[25,55],[31,20],[-26,80],[-22,6],[-23,-16],[-22,28],[6,84],[-36,44],[25,54],[-37,114],[-5,48],[54,30],[-21,118],[-28,71],[13,80],[-13,55],[-47,43],[-32,-9],[-31,3],[-19,26]],[[6777,7375],[39,61],[23,53],[29,20],[94,-46],[26,-60],[36,-46],[56,-25],[16,-22],[1,-38],[13,-40],[60,-73],[20,-51],[5,-48],[14,-58],[26,-65],[36,-65],[-3,-45],[-22,-51],[-3,-30],[62,-79],[55,-42],
 [6,-22],[-14,-67],[-2,-50],[8,-31],[45,-80],[124,-261],[4,-50],[18,-35],[41,-29],[15,-45],[-5,-21],[-48,-88],[-43,-55],[-14,-68],[-19,-35],[-7,-49],[3,-33],[28,-44],[29,-20],[79,-17],[93,8],[45,-11],[43,-22],[91,10],[76,-8],[25,-11],[9,-29],[-14,-69],[14,-25],[64,-26],[31,6],[100,51],[76,22],[57,9],[27,10],[34,29],[26,8],[71,-56],[29,-13],[23,3],[57,40],[33,3],[53,-16],[-9,-63],[24,-64],[-9,-49],[-1,-46],[7,-73],[-6,-65],[-11,-24],[19,-95],[9,-84],[36,-25],[38,2],[40,-36],[35,-16]],[[6028,214],[-34,22],[-28,61],[-14,49],[-51,75],[-15,46],[-32,53],[-4,26],[-34,59],[-24,58],[-50,74],[-51,27],[-18,73],[-5,50],[-13,7]],[[5655,894],[-18,81],[-45,52],[18,56],[-20,40],[-29,30],[-25,49],[-25,5],[-39,26],[18,24],[-31,135],[-3,54],[-19,24],[-10,43],[-17,22],[3,41],[35,61],[26,16],[19,34],[-15,37],[-12,65],[-34,29],[-7,43],[15,64],[-1,64],[-6,22],[-39,44],[-14,37],[-40,40],[-30,18],[-67,6],[-50,25],[-81,0],[-29,-9],[-47,65],[-35,81],[-3,71],[-44,79],[-8,46]],[[5364,4204],[25,15],[45,-12],[50,4
 6],[1,23],[-15,41],[32,14]],[[6995,685],[-243,-92],[-57,2],[-67,53],[-42,-36],[-53,-36],[-26,-44],[-47,-44],[-25,-151],[-90,-44],[-70,-14],[-53,-51],[-79,-41],[-42,-2],[-38,6],[-35,23]],[[3432,6512],[-5,101],[12,4],[-19,102],[20,40],[10,-3],[53,43],[3,22],[18,15],[3,91],[21,0],[-4,39],[10,41],[-48,22],[-6,-22],[-35,6],[-48,85],[-44,22],[-68,18],[-7,136],[14,76],[56,-9],[5,64],[21,57],[31,67],[60,86],[27,47],[-47,78],[-36,25],[-59,93]],[[3370,7858],[62,-11],[49,2],[47,22],[-4,9],[35,24],[11,24],[41,42],[-27,53],[73,-21],[41,33],[28,4],[31,44],[63,-9],[14,61],[-14,128],[7,45],[138,15],[122,-15],[18,52],[14,-14],[-7,-28],[18,-31],[17,-8],[44,4],[14,-10],[49,11],[6,-19],[27,9],[18,-8],[48,1],[38,-25],[5,-24],[31,-11],[26,43],[-7,40],[7,74],[19,30],[0,90],[25,-30],[100,-60],[6,57],[29,32],[49,39],[10,23],[127,-59],[39,-8],[24,-23],[24,-8],[30,33],[59,5],[84,-17],[57,-1],[27,96],[119,-91],[29,-36],[14,-46],[52,-46],[122,6],[70,-37],[29,-27],[44,1],[58,-7],[31,8],[61,-12],[37,-34],[5,-39]]
 ,[[5833,8203],[28,-11],[83,-111],[-20,-58],[-3,-35],[-23,-52],[2,-21],[-42,-65],[-36,-45],[-33,-23],[-31,-53],[-28,-66],[-56,-13],[-11,17],[-31,-4],[-60,-51],[-42,-20],[-10,-32],[5,-61],[16,-20],[-8,-35],[-23,-16],[-7,-23],[-78,-4],[-21,-117],[-1,-71],[5,-35],[-13,-30],[-3,-36],[-30,-72],[-53,-63],[14,-27],[-16,-62],[-5,-44],[12,-31],[26,-31],[12,-52],[-20,-54],[-9,-155],[-6,-29],[-29,-74],[11,-51],[-1,-31]],[[2839,2681],[-428,-460],[14,-10],[-21,-17],[-7,-23],[-18,3],[7,-33],[-13,-27],[-32,-2],[-56,-29],[-83,-31],[-22,-19],[-139,-141],[-49,14],[-26,188],[-24,92],[-16,79],[-9,19],[-28,211],[-3,-1],[-9,103],[-33,262],[-14,84],[-10,-4],[-52,-96],[-11,14],[-57,-43],[-9,15],[-66,20],[-49,1],[-14,-14],[6,-41],[-38,-35],[-48,-61],[-137,-123],[-74,-25],[-6,9],[-28,-30],[23,-25],[-44,-33],[-54,52],[-57,-56],[-10,19],[-62,3],[-2,-45],[-32,-21],[-10,57],[-20,-17],[-24,13],[-57,-51],[-44,49],[-21,12],[-20,-30],[10,-23],[-5,-23],[-51,86],[-31,34],[-35,107],[0,21],[13,60],[29,35],[35,148],[-42,9
 ],[-10,47],[26,64],[4,34],[-9,31],[-22,117],[-58,157],[-43,141],[38,81],[27,81],[17,96],[2,95],[-5,55],[-16,79],[-66,213],[-10,45],[-4,63],[19,80],[53,108]],[[669,4498],[48,-48],[19,-124],[17,14],[66,6],[31,25],[81,14],[4,47],[55,21],[108,-28],[80,1],[6,135],[175,-25],[263,60],[22,29],[16,-15],[30,12],[35,-1],[20,60],[-27,89],[83,50],[-9,106],[19,39],[23,4],[12,-25],[42,14],[29,31],[7,-10],[20,59],[24,10],[14,43],[217,290]],[[2199,5381],[400,-226]],[[2199,5381],[-243,138],[-70,71],[-31,58],[-36,20],[-3,-19],[-22,-11],[-23,9],[-50,115],[4,98],[8,44],[-66,21],[-160,13],[-11,27],[-31,25],[-66,29],[-26,22],[-44,17],[-38,57],[-40,34],[-47,106],[-33,34],[12,43],[-33,55],[-53,26],[13,58],[-21,23],[-71,13],[-7,99],[4,39],[-20,117],[-3,82],[-28,-4],[-21,45],[7,42],[-13,46],[-8,68],[20,-5],[6,42],[20,60],[12,18],[22,71],[-112,234],[1,42],[-47,37],[-18,47],[-5,59],[-31,10],[-18,18],[9,88],[9,14],[-28,66],[-34,50],[-27,114],[-24,42],[0,92],[14,42],[6,49],[-12,103],[-29,76],[0,149],[-13,1],[8,29
 2],[15,94],[23,72],[19,104]],[[715,9122],[-5,-103],[5,-80],[14,-83],[-5,-32],[19,-10],[19,-102],[-5,-20],[12,-26],[21,6],[25,-31],[31,-6],[11,-34],[15,-106],[128,28],[60,29],[57,40],[35,1],[65,-44],[105,-25],[16,8],[36,-7],[62,14],[31,26],[36,54],[49,-98],[38,-56],[27,27],[66,20],[-7,-66],[13,-35],[25,-31],[12,-65],[68,-1],[8,7],[-1,-43],[61,9],[31,-58],[-45,-16],[43,-37],[47,21],[40,28],[33,2],[31,-70],[35,-23],[58,-100],[33,-102],[44,12],[88,11],[51,15],[42,-75],[17,17],[39,11],[13,-89],[35,5],[31,-18],[45,-65],[-30,-26],[4,-27],[-12,-15],[22,-57],[59,25],[13,41],[22,25],[34,-38],[87,-44]],[[2772,7640],[-136,-110],[-58,32],[37,-64],[39,-22],[18,-21],[-87,-86],[16,-71],[-94,-37],[7,-21],[-80,-72],[36,-65],[-47,-57],[32,-69],[32,-44],[21,-13],[14,18],[23,-3],[21,27],[17,-19],[15,-53],[25,-25],[-34,-65],[-19,-98],[39,-26],[10,-18],[7,-59],[18,-41],[20,-18],[60,-29],[9,-82],[-12,-89],[-12,-68],[-14,-38]],[[669,4498],[22,61],[10,55],[1,289],[-4,52],[-26,124],[-53,242],[-36,153],[-19,46
 ],[-32,47],[-48,40],[-33,14],[-155,40],[-18,14],[-14,38],[-48,264],[-15,112],[-4,57],[7,108],[18,136],[21,81],[20,54],[73,142],[21,86],[1,56],[-13,77],[-83,242],[-13,69],[-12,151],[-13,91],[-27,114],[-7,94],[18,262],[-10,87],[-26,71],[-25,44],[-46,59],[-36,69],[-15,75],[-36,217],[-14,96],[5,67],[43,162],[48,109],[52,75],[178,214],[30,55],[14,64],[0,117],[6,49],[15,48],[94,176],[21,63],[4,68],[-13,70],[-16,35],[35,-25],[26,-32],[36,-81],[3,-50],[11,-52],[23,-51],[11,-43],[44,-29],[23,-73],[-28,-58],[-30,-23],[-13,-49],[29,-30],[45,-88],[-8,-53],[17,-50],[-3,-43],[13,-47]],[[5655,894],[-28,-11],[-41,-48],[-8,-115],[-20,-25]],[[5558,695],[-28,69],[-30,-5],[-103,15],[-77,-32],[-109,33],[-41,-13],[-89,-12],[-49,2],[-41,43],[-51,2],[-28,-24],[-81,-88],[-5,-22],[-29,-18],[-19,5],[-79,-20],[-41,19],[-61,-7],[-9,-12],[-83,-21],[-27,10],[-22,-5],[-120,2],[-19,-18],[-23,-56],[-38,5],[-43,-40],[-3,5],[-943,599],[14,817]],[[5833,8203],[11,-4],[45,19],[21,34],[-4,53],[17,-5],[8,-24],[40,-35],[34,
 -9],[41,7],[37,21],[36,-14],[9,-21],[-6,-36],[-60,-88],[-12,-60],[25,-71],[12,-54],[4,-69],[24,-34],[18,-3],[57,18],[39,41],[32,61],[25,12],[22,-8],[37,-39],[44,-16],[57,34],[33,0],[22,-23],[42,-94],[43,-48],[9,-21],[-3,-41],[-29,-65],[-2,-24],[24,-41],[1,-23],[-31,-27],[5,-62],[21,-61],[27,-31],[22,-68],[26,-9],[20,9],[62,75],[39,16]],[[2772,7640],[112,12],[14,-20],[54,36],[123,113],[80,31],[45,35],[48,-2],[113,30],[9,-17]],[[6028,214],[-105,-135],[-27,-14],[-82,-12],[-30,-16],[-15,-24],[-30,-9],[-96,-4],[-45,26],[-19,1],[-23,24],[-17,59],[11,55],[9,7],[10,69],[14,43],[29,59],[1,31],[-18,22],[-16,57],[-7,96],[-3,107],[-11,39]]],"transform":{"scale":[0.060721335804227304,-0.048004800480048],"translate":[176.4236816467656,490]}}


[48/50] [abbrv] zest-qi4j git commit: rolled back build.gradle (JDK 1.8 jacoco issues)

Posted by ni...@apache.org.
rolled back build.gradle (JDK 1.8 jacoco issues)


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/52c2ad5c
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/52c2ad5c
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/52c2ad5c

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: 52c2ad5cc6cf8f9a374d4e5212a5e53d8dba3ff5
Parents: df3b395
Author: jj <ju...@gmail.com>
Authored: Sat Jan 17 23:12:29 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Sat Jan 17 23:12:29 2015 +0100

----------------------------------------------------------------------
 build.gradle | 103 ++++++++++++++++++++++++++----------------------------
 1 file changed, 50 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/52c2ad5c/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 660f461..e053c34 100644
--- a/build.gradle
+++ b/build.gradle
@@ -49,11 +49,11 @@ idea.project.ipr {
 // Needed as Gradle forbid access to declared repositories URLs by design
 // Releasable submodules should not declare repositories in their own build files
 def repos_urls = [
-  mavenCentral: "http://repo1.maven.org/maven2/",
-  ops4j: "http://repository.ops4j.org/maven2/",
-  restlet: 'http://maven.restlet.org',
-  javanet: "http://download.java.net/maven/2",
-  clojars: "http://clojars.org/repo/",
+        mavenCentral: "http://repo1.maven.org/maven2/",
+        ops4j: "http://repository.ops4j.org/maven2/",
+        restlet: 'http://maven.restlet.org',
+        javanet: "http://download.java.net/maven/2",
+        clojars: "http://clojars.org/repo/",
 ]
 
 allprojects {
@@ -71,7 +71,7 @@ allprojects {
 
   group = name.substring( 0, name.lastIndexOf( '.' ) )
   version = System.properties.version ?: "0"
-  
+
   // UTF-8 For all compilations and javadocs
   // Deprecation warnings for all compilations
   // Unchecked warnings for non-test core compilations
@@ -81,7 +81,7 @@ allprojects {
   }
   if("core".equals(group)) {
     tasks.matching({ task -> task instanceof Compile && !task.name.contains('test') }).
-        each({ task -> task.options.compilerArgs << "-Xlint:unchecked" })
+            each({ task -> task.options.compilerArgs << "-Xlint:unchecked" })
   }
   tasks.withType(Javadoc) {
     options.encoding = 'UTF-8'
@@ -148,11 +148,11 @@ allprojects {
 
   test.onlyIf { !project.hasProperty( 'skipTests' ) }
   test {
-      testLogging {
-          info {
-              exceptionFormat "full"
-          }
+    testLogging {
+      info {
+        exceptionFormat "full"
       }
+    }
   }
 
   sourceSets {
@@ -173,9 +173,9 @@ allprojects {
 
   // Actual code projects BEGIN -------------------------------------------
   if( ext.javaDir.isDirectory() || ext.scalaDir.isDirectory() ||
-      ext.testJavaDir.isDirectory() || ext.testScalaDir.isDirectory() )
+          ext.testJavaDir.isDirectory() || ext.testScalaDir.isDirectory() )
   {
-    // apply plugin: 'jacoco'
+    apply plugin: 'jacoco'
     apply plugin: 'osgi'
     apply plugin: VersionClass
     apply plugin: AsciidocBuildInfo
@@ -272,7 +272,7 @@ allprojects {
     // Dependency Report generate only the runtime configuration
     // The report is packaged in the SDK distributions
     dependencyReport {
-        configurations = [ project.configurations.runtime ]
+      configurations = [ project.configurations.runtime ]
     }
 
     task minBuild {
@@ -340,10 +340,10 @@ test {
 
 // Jacoco
 configurations {
-  //jacoco
+  jacoco
 }
 dependencies {
-  // jacoco 'org.jacoco:org.jacoco.ant:0.7.1.201405082137'
+  jacoco 'org.jacoco:org.jacoco.ant:0.7.1.201405082137'
 }
 // Generate a global code codeverage report
 task coverageReport {
@@ -356,7 +356,6 @@ task coverageReport {
   def toolsProjects = coveredProjects.findAll { p -> p.name.startsWith( 'org.qi4j.tool' ) }
   def tutoProjects = coveredProjects.findAll { p -> p.name.startsWith( 'org.qi4j.tuto' ) }
   def samplesProjects = coveredProjects.findAll { p -> p.name.startsWith( 'org.qi4j.sample' ) }
-  /**
   ant {
     taskdef name:'jacocoreport', classname: 'org.jacoco.ant.ReportTask', classpath: configurations.jacoco.asPath
     mkdir dir: outputPath
@@ -397,11 +396,9 @@ task coverageReport {
   }
   inputs.dir coveredProjects.collect { p -> "${p.buildDir.path}/jacoco" }
   outputs.dir outputPath
-   */
 }
 
 
-
 // Build the whole SDK public Javadoc
 task javadocs( type: Javadoc ) {
 
@@ -411,9 +408,9 @@ task javadocs( type: Javadoc ) {
   title = "${rootProject.title} ${version}"
   def apiSources = releaseApprovedProjects.findAll( { project ->
     ( project.name.startsWith( 'org.qi4j.core' ) && !project.name.startsWith( 'org.qi4j.core.runtime' ) ) ||
-    project.name.startsWith( 'org.qi4j.library' ) ||
-    project.name.startsWith( 'org.qi4j.extension' ) ||
-    project.name.startsWith( 'org.qi4j.tool' )
+            project.name.startsWith( 'org.qi4j.library' ) ||
+            project.name.startsWith( 'org.qi4j.extension' ) ||
+            project.name.startsWith( 'org.qi4j.tool' )
   } )
   source apiSources.collect { project ->
     project.sourceSets.main.allJava
@@ -425,13 +422,13 @@ task javadocs( type: Javadoc ) {
   } )
   options.links( "http://docs.oracle.com/javase/7/docs/api/" )
   options.group( [ "Core API": [ "org.qi4j.api", "org.qi4j.api.*", "org.qi4j.io", "org.qi4j.functional" ],
-                         "Core Bootstrap": [ "org.qi4j.bootstrap", "org.qi4j.bootstrap.*" ],
-                         "Core SPI": [ "org.qi4j.spi", "org.qi4j.spi.*" ],
-                         "Libraries": [ "org.qi4j.library.*", "org.qi4j.logging", "org.qi4j.logging.*", "org.qi4j.lang.*" ],
-                         "Extensions": [ "org.qi4j.valueserialization.*", "org.qi4j.entitystore.*", "org.qi4j.index.*", "org.qi4j.metrics.*", "org.qi4j.cache.*", "org.qi4j.migration", "org.qi4j.migration.*" ],
-                         "Tools": [ "org.qi4j.tools.*", "org.qi4j.envisage", "org.qi4j.envisage.*", "org.qi4j.library.swing.entityviewer" ],
-                         "Test Support": [ "org.qi4j.test", "org.qi4j.test.*" ]
-                 ] )
+                   "Core Bootstrap": [ "org.qi4j.bootstrap", "org.qi4j.bootstrap.*" ],
+                   "Core SPI": [ "org.qi4j.spi", "org.qi4j.spi.*" ],
+                   "Libraries": [ "org.qi4j.library.*", "org.qi4j.logging", "org.qi4j.logging.*", "org.qi4j.lang.*" ],
+                   "Extensions": [ "org.qi4j.valueserialization.*", "org.qi4j.entitystore.*", "org.qi4j.index.*", "org.qi4j.metrics.*", "org.qi4j.cache.*", "org.qi4j.migration", "org.qi4j.migration.*" ],
+                   "Tools": [ "org.qi4j.tools.*", "org.qi4j.envisage", "org.qi4j.envisage.*", "org.qi4j.library.swing.entityviewer" ],
+                   "Test Support": [ "org.qi4j.test", "org.qi4j.test.*" ]
+  ] )
 
 }
 
@@ -452,36 +449,36 @@ task archiveJavadocs(type: Copy ) {
 
 // Build All
 task buildAll( dependsOn: [
-    archiveJavadocs,
-    test,
-    jar,
-    subprojects*.dependencyReport,
-    subprojects*.assemble,
-    ':org.qi4j.manual:website'
+        archiveJavadocs,
+        test,
+        jar,
+        subprojects*.dependencyReport,
+        subprojects*.assemble,
+        ':org.qi4j.manual:website'
 ] ) { }
 
 // Prepare runtime dependencies download facility (metalink)
 buildAll.doLast {
-    def runtimeDepsMetalink = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<metalink xmlns=\"urn:ietf:params:xml:ns:metalink\">\n"
-    runtimeDepsMetalink = runtimeDepsMetalink + " <identity>qi4j-sdk-runtime-deps</identity>\n"
-    runtimeDepsMetalink = runtimeDepsMetalink + " <version>${version}</version>\n"
-    def handledGavPaths = []
-    releaseApprovedProjects.each { p ->
-      p.configurations.runtime.allDependencies.each { dep ->
-        def gavpath = dep.group.replace(".","/") + "/" + dep.name + "/" + dep.version + "/" + dep.name + "-" + dep.version + ".jar"
-        if( !dep.group.startsWith("org.qi4j") && !handledGavPaths.contains( gavpath ) ) {
-          runtimeDepsMetalink = runtimeDepsMetalink + "  <file name=\"${dep.group}-${dep.name}-${dep.version}.jar\">\n"
-          repos_urls.each { repo_url ->
-            runtimeDepsMetalink = runtimeDepsMetalink + "    <url>" + repo_url.value + dep.group.replace(".","/") + "/" + dep.name + "/" + dep.version + "/" + dep.name + "-" + dep.version + ".jar" + "</url>\n"
-          }
-          runtimeDepsMetalink = runtimeDepsMetalink + "  </file>\n\n"
-          handledGavPaths << gavpath
+  def runtimeDepsMetalink = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<metalink xmlns=\"urn:ietf:params:xml:ns:metalink\">\n"
+  runtimeDepsMetalink = runtimeDepsMetalink + " <identity>qi4j-sdk-runtime-deps</identity>\n"
+  runtimeDepsMetalink = runtimeDepsMetalink + " <version>${version}</version>\n"
+  def handledGavPaths = []
+  releaseApprovedProjects.each { p ->
+    p.configurations.runtime.allDependencies.each { dep ->
+      def gavpath = dep.group.replace(".","/") + "/" + dep.name + "/" + dep.version + "/" + dep.name + "-" + dep.version + ".jar"
+      if( !dep.group.startsWith("org.qi4j") && !handledGavPaths.contains( gavpath ) ) {
+        runtimeDepsMetalink = runtimeDepsMetalink + "  <file name=\"${dep.group}-${dep.name}-${dep.version}.jar\">\n"
+        repos_urls.each { repo_url ->
+          runtimeDepsMetalink = runtimeDepsMetalink + "    <url>" + repo_url.value + dep.group.replace(".","/") + "/" + dep.name + "/" + dep.version + "/" + dep.name + "-" + dep.version + ".jar" + "</url>\n"
         }
+        runtimeDepsMetalink = runtimeDepsMetalink + "  </file>\n\n"
+        handledGavPaths << gavpath
       }
     }
-    runtimeDepsMetalink = runtimeDepsMetalink + "</metalink>\n"
-    new File( buildDir.toString(), "reports" ).mkdirs()
-    new File( buildDir.toString(), "reports/qi4j-sdk-runtime-deps.metalink" ).text = runtimeDepsMetalink
+  }
+  runtimeDepsMetalink = runtimeDepsMetalink + "</metalink>\n"
+  new File( buildDir.toString(), "reports" ).mkdirs()
+  new File( buildDir.toString(), "reports/qi4j-sdk-runtime-deps.metalink" ).text = runtimeDepsMetalink
 }
 
 def srcDistImage = copySpec {
@@ -611,7 +608,7 @@ task checkReleaseSpec {
     def notReleasable = [:]
     releaseApprovedProjects*.configurations.runtime.allDependencies.findAll({ it instanceof ProjectDependency }).each { dep ->
       def depNotReleaseApproved = releaseApprovedProjects.findAll { rp ->
-        rp.group == dep.dependencyProject.group && rp.name == dep.dependencyProject.name 
+        rp.group == dep.dependencyProject.group && rp.name == dep.dependencyProject.name
       }.isEmpty()
       if( depNotReleaseApproved )
       {


[41/50] [abbrv] zest-qi4j git commit: Final cleanup

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
index 1936d50..3b59443 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
@@ -152,9 +152,6 @@ public interface ElasticSearchFinder
             // Log
             LOGGER.debug( "Will search Entities: {}", request );
 
-            System.out.println("Request " + request.toString());
-
-
             // Execute
             SearchResponse response = request.execute().actionGet();
 
@@ -187,8 +184,6 @@ public interface ElasticSearchFinder
             // Log
             LOGGER.debug( "Will search Entity: {}", request );
 
-            System.out.println("request " + request.toString());
-
             // Execute
             SearchResponse response = request.execute().actionGet();
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
index 0e7edd4..dee2e26 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
@@ -127,10 +127,9 @@ public interface ElasticSearchIndexer
                             index( bulkBuilder, changedState.identity().identity(), updatedJson );
                             break;
                         case NEW:
-                            // LOGGER.trace( "Creating Entity State in Index: {}", changedState );
+                            LOGGER.trace( "Creating Entity State in Index: {}", changedState );
                             String newJson = toJSON(changedState, newStates, uow );
-                            // System.out.println("#Will index: {} : " + newJson);
-                            // LOGGER.trace( "Will index: {}", newJson );
+                            LOGGER.trace( "Will index: {}", newJson );
                             index( bulkBuilder, changedState.identity().identity(), newJson );
                             break;
                         case LOADED:

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java
index a6e4f11..bd72319 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/convert/ConvertFinderSupport.java
@@ -27,16 +27,21 @@ import java.util.HashMap;
 import java.util.Map;
 
 
-public class ConvertFinderSupport implements ElasticSearchSpatialFinder.SpatialQuerySpecSupport {
+public class ConvertFinderSupport implements ElasticSearchSpatialFinder.SpatialQuerySpecSupport
+{
 
     private static final Map<Class<?>, ConvertFinderSupport.ConvertSpecification> SPATIAL_CONVERT_OPERATIONS = new HashMap<>(2);
-    static {
+
+    static
+    {
         SPATIAL_CONVERT_OPERATIONS.put(ST_GeomFromTextSpecification.class, new ST_GeometryFromText());
     }
+
     private Module module;
     private ElasticSearchSupport support;
 
-    public ElasticSearchSpatialFinder.SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support) {
+    public ElasticSearchSpatialFinder.SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support)
+    {
         this.module = module;
         this.support = support;
 
@@ -46,11 +51,14 @@ public class ConvertFinderSupport implements ElasticSearchSpatialFinder.SpatialQ
     public void processSpecification(FilterBuilder filterBuilder,
                                      Specification<?> spec,
                                      Map<String, Object> variables)
-            throws EntityFinderException {
+            throws EntityFinderException
+    {
 
-        if (SPATIAL_CONVERT_OPERATIONS.get(spec.getClass()) != null) {
+        if (SPATIAL_CONVERT_OPERATIONS.get(spec.getClass()) != null)
+        {
             SPATIAL_CONVERT_OPERATIONS.get(spec.getClass()).support(module, support).processSpecification(filterBuilder, (SpatialConvertSpecification) spec, variables);
-        } else {
+        } else
+        {
             throw new UnsupportedOperationException("Spatial predicates specification unsupported by Elastic Search "
                     + "(New Query API support missing?): "
                     + spec.getClass() + ": " + spec);
@@ -59,11 +67,13 @@ public class ConvertFinderSupport implements ElasticSearchSpatialFinder.SpatialQ
 
     }
 
-    public interface Support {
+    public interface Support
+    {
         ConvertSpecification support(Module module, ElasticSearchSupport support);
     }
 
-    public static interface ConvertSpecification extends Support {
+    public static interface ConvertSpecification extends Support
+    {
         void processSpecification(FilterBuilder filterBuilder, SpatialConvertSpecification<?> spec, Map<String, Object> variables) throws EntityFinderException;
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
index d0e3766..2360f5f 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
@@ -29,14 +29,23 @@ import java.util.HashMap;
 import java.util.Map;
 
 
-public class PredicateFinderSupport implements ElasticSearchSpatialFinder.SpatialQuerySpecSupport {
+public class PredicateFinderSupport implements ElasticSearchSpatialFinder.SpatialQuerySpecSupport
+{
 
     private static final Map<Class<?>, PredicateFinderSupport.PredicateSpecification> SPATIAL_PREDICATE_OPERATIONS = new HashMap<>(3);
 
+    static
+    {
+        SPATIAL_PREDICATE_OPERATIONS.put(ST_WithinSpecification.class, new ST_Within());
+        SPATIAL_PREDICATE_OPERATIONS.put(ST_DisjointSpecification.class, new ST_Disjoint());
+        SPATIAL_PREDICATE_OPERATIONS.put(ST_IntersectsSpecification.class, new ST_Intersects());
+    }
+
     private Module module;
     private ElasticSearchSupport support;
 
-    public ElasticSearchSpatialFinder.SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support) {
+    public ElasticSearchSpatialFinder.SpatialQuerySpecSupport support(Module module, ElasticSearchSupport support)
+    {
         this.module = module;
         this.support = support;
 
@@ -46,30 +55,31 @@ public class PredicateFinderSupport implements ElasticSearchSpatialFinder.Spatia
     public void processSpecification(FilterBuilder filterBuilder,
                                      Specification<?> spec,
                                      Map<String, Object> variables)
-            throws EntityFinderException {
+            throws EntityFinderException
+    {
 
-        if (SPATIAL_PREDICATE_OPERATIONS.get(spec.getClass()) != null) {
+        if (SPATIAL_PREDICATE_OPERATIONS.get(spec.getClass()) != null)
+        {
             SPATIAL_PREDICATE_OPERATIONS.get(spec.getClass()).support(module, support).processSpecification(filterBuilder, (SpatialPredicatesSpecification) spec, variables);
-        } else {
+        } else
+        {
             throw new UnsupportedOperationException("Spatial predicates specification unsupported by Elastic Search "
                     + "(New Query API support missing?): "
                     + spec.getClass() + ": " + spec);
         }
     }
 
-    public interface Support {
+    public interface Support
+    {
         PredicateSpecification support(Module module, ElasticSearchSupport support);
     }
 
 
-    public static interface PredicateSpecification extends Support {
+    public static interface PredicateSpecification extends Support
+    {
         void processSpecification(FilterBuilder filterBuilder, SpatialPredicatesSpecification<?> spec, Map<String, Object> variables) throws EntityFinderException;
     }
-    static {
-        SPATIAL_PREDICATE_OPERATIONS.put(ST_WithinSpecification.class, new ST_Within());
-        SPATIAL_PREDICATE_OPERATIONS.put(ST_DisjointSpecification.class, new ST_Disjoint());
-        SPATIAL_PREDICATE_OPERATIONS.put(ST_IntersectsSpecification.class, new ST_Intersects());
-    }
+
 
 }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
index d00bd2e..1516038 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_Within.java
@@ -31,13 +31,15 @@ import org.qi4j.spi.query.EntityFinderException;
 import java.util.Map;
 
 
-public class ST_Within extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification {
+public class ST_Within extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
+{
 
 
     public void processSpecification(FilterBuilder filterBuilder,
                                      SpatialPredicatesSpecification<?> spec,
                                      Map<String, Object> variables)
-            throws EntityFinderException {
+            throws EntityFinderException
+    {
         TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
 
         if (!isValid(spec))
@@ -63,7 +65,8 @@ public class ST_Within extends AbstractElasticSearchSpatialFunction implements P
                 isTPoint(geomOfFilterProperty) &&
                         isMappedAsGeoPoint(spec.property()) &&
                         ((ST_WithinSpecification) spec).getDistance() > 0
-                ) {
+                )
+        {
             addFilter(createGeoDistanceFilter
                             (
                                     spec.property().toString(),
@@ -82,11 +85,14 @@ public class ST_Within extends AbstractElasticSearchSpatialFunction implements P
          * ST_Within (templafeFor(x.class).propertyOfTypeTPoint(), polygon);
          *
          */
-        else if (isPropertyOfType(TPoint.class, spec.property())) {
+        else if (isPropertyOfType(TPoint.class, spec.property()))
+        {
 
-            if (isMappedAsGeoPoint(spec.property())) {
+            if (isMappedAsGeoPoint(spec.property()))
+            {
 
-                if (geomOfFilterProperty instanceof TPolygon) {
+                if (geomOfFilterProperty instanceof TPolygon)
+                {
                     /**
                      * This must not happen, but in case the expression is defined using WTK like :
                      *
@@ -105,7 +111,8 @@ public class ST_Within extends AbstractElasticSearchSpatialFunction implements P
 
                     GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
 
-                    for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
+                    for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++)
+                    {
                         TPoint point = polygonFilter.shell().get().getPointN(i);
                         geoPolygonFilterBuilder.addPoint(point.y(), point.x());
                     }
@@ -114,23 +121,27 @@ public class ST_Within extends AbstractElasticSearchSpatialFunction implements P
                     throw new EntityFinderException("Invalid ST_Within expression. Unsupported type " + geomOfFilterProperty.getClass().getSimpleName() +
                             " On properties of type " + TPoint.class.getSimpleName() +
                             " only filters of type distance or polygon are supported.");
-            } else if (isMappedAsGeoShape(spec.property())) {
-                if (geomOfFilterProperty instanceof TPolygon) {
+            } else if (isMappedAsGeoShape(spec.property()))
+            {
+                if (geomOfFilterProperty instanceof TPolygon)
+                {
                     addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.WITHIN), filterBuilder);
-                } else if (((ST_WithinSpecification) spec).getDistance() > 0) {
+                } else if (((ST_WithinSpecification) spec).getDistance() > 0)
+                {
                     double radiusInMeters = convertDistanceToMeters(((ST_WithinSpecification) spec).getDistance(), ((ST_WithinSpecification) spec).getUnit());
                     TPolygon polygonizedCircleFilter = polygonizeCircle((TPoint) verifyProjection(geomOfFilterProperty), radiusInMeters);
                     addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.WITHIN), filterBuilder);
                 }
             }
-        } else {
-
+        } else
+        {
             addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.WITHIN), filterBuilder);
         }
     }
 
 
-    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support) {
+    public PredicateFinderSupport.PredicateSpecification support(Module module, ElasticSearchSupport support)
+    {
         this.module = module;
         this.support = support;
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
index a5f6d79..efcb425 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/AbstractElasticSearchSpatialFunction.java
@@ -39,7 +39,7 @@ import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.ElasticSearchSpatialFinder;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
 import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialFunctionsSupportMatrix;
-import org.qi4j.library.spatial.projection.ProjectionsRegistry;
+import org.qi4j.library.spatial.projections.ProjectionsRegistry;
 import org.qi4j.spi.query.EntityFinderException;
 
 import java.lang.reflect.Type;
@@ -47,13 +47,10 @@ import java.util.Map;
 
 import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
 import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper.IndexMappingCache;
-import static org.qi4j.library.spatial.projection.transformations.TTransformations.Transform;
+import static org.qi4j.library.spatial.projections.transformations.TTransformations.Transform;
 
-
-/**
- * Created by jj on 20.11.14.
- */
-public abstract class AbstractElasticSearchSpatialFunction {
+public abstract class AbstractElasticSearchSpatialFunction
+{
 
     private static final String EPSG_4326 = "EPSG:4326";
     private static final String DefaultSupportedProjection = EPSG_4326;
@@ -62,7 +59,8 @@ public abstract class AbstractElasticSearchSpatialFunction {
     protected Module module;
     protected ElasticSearchSupport support;
 
-    protected boolean isSupported(SpatialPredicatesSpecification<?> spec, TGeometry geometryOfFilter) throws EntityFinderException {
+    protected boolean isSupported(SpatialPredicatesSpecification<?> spec, TGeometry geometryOfFilter) throws EntityFinderException
+    {
         return SpatialFunctionsSupportMatrix.isSupported
                 (
                         spec.getClass(),
@@ -72,7 +70,8 @@ public abstract class AbstractElasticSearchSpatialFunction {
                 );
     }
 
-    protected boolean isValid(SpatialPredicatesSpecification<?> spec) throws EntityFinderException {
+    protected boolean isValid(SpatialPredicatesSpecification<?> spec) throws EntityFinderException
+    {
         if ((spec.param() == null && spec.operator() == null))
             return false;
         else
@@ -80,43 +79,48 @@ public abstract class AbstractElasticSearchSpatialFunction {
     }
 
 
-    protected void addFilter(FilterBuilder filter, FilterBuilder into) {
-        if (into instanceof AndFilterBuilder) {
+    protected void addFilter(FilterBuilder filter, FilterBuilder into)
+    {
+        if (into instanceof AndFilterBuilder)
+        {
             ((AndFilterBuilder) into).add(filter);
-        } else if (into instanceof OrFilterBuilder) {
+        } else if (into instanceof OrFilterBuilder)
+        {
             ((OrFilterBuilder) into).add(filter);
-        } else {
+        } else
+        {
             throw new UnsupportedOperationException("FilterBuilder is nor an AndFB nor an OrFB, cannot continue.");
         }
     }
 
-    protected TGeometry verifyProjection(TGeometry tGeometry) {
+    protected TGeometry verifyProjection(TGeometry tGeometry)
+    {
         if (new ProjectionsRegistry().getCRS(tGeometry.getCRS()) == null)
             throw new RuntimeException("Project with the CRS Identity " + tGeometry.getCRS() + " is unknown. Supported projections are JJ TODO");
 
-
-        try {
-            if (!tGeometry.getCRS().equalsIgnoreCase(DefaultSupportedProjection)) {
-                if (SpatialConfiguration.isFinderProjectionConversionEnabled(support.spatialConfiguration())) {
-                    Transform(module).from(tGeometry).to(DefaultSupportedProjection, DefaultProjectionConversionPrecisionInMeters);
-                } else throw new Exception("Filter Projection has a unsupported Projection and conversion is disabled");
-            }
-        } catch (Exception _ex) {
-            _ex.printStackTrace();
+        if (!tGeometry.getCRS().equalsIgnoreCase(DefaultSupportedProjection))
+        {
+            if (SpatialConfiguration.isFinderProjectionConversionEnabled(support.spatialConfiguration()))
+            {
+                Transform(module).from(tGeometry).to(DefaultSupportedProjection, DefaultProjectionConversionPrecisionInMeters);
+            } else
+                throw new RuntimeException("Filter Geometry uses a unsupported Projection and transformation is disabled.");
         }
-
-        return tGeometry; // ATTENTION - we are transforming as per "Reference"
+        return tGeometry; // <- ATTENTION - transmation is done directly on the "reference" to avoid cloning of composites.
     }
 
-    protected boolean isPropertyOfType(Class type, PropertyFunction propertyFunction) {
+    protected boolean isPropertyOfType(Class type, PropertyFunction propertyFunction)
+    {
         Type returnType = Classes.typeOf(propertyFunction.accessor());
         Type propertyTypeAsType = GenericPropertyInfo.toPropertyType(returnType);
 
         Class clazz;
 
-        try {
+        try
+        {
             clazz = Class.forName(propertyTypeAsType.getTypeName());
-        } catch (Exception _ex) {
+        } catch (Exception _ex)
+        {
             throw new RuntimeException(_ex);
         }
 
@@ -126,62 +130,35 @@ public abstract class AbstractElasticSearchSpatialFunction {
             return false;
     }
 
-    protected boolean isPropertyOfTypeTPoint(PropertyFunction propertyFunction) {
-        // String typeName = Classes.typeOf(propertyFunction.accessor()).getTypeName();
-        // System.out.println(typeName);
-
-        Type returnType = Classes.typeOf(propertyFunction.accessor());
-        Type propertyTypeAsType = GenericPropertyInfo.toPropertyType(returnType);
-
 
-        System.out.println("---- > " + propertyTypeAsType.getTypeName());
-
-        Class clazz;
-
-        try {
-            clazz = Class.forName(propertyTypeAsType.getTypeName());
-        } catch (Exception _ex) {
-            throw new RuntimeException(_ex);
-        }
-        // if (clazz instanceof TGeometry)
-
-        if (TPoint.class.isAssignableFrom(clazz))
-            return true;
-        else
-            return false;
-    }
-
-    protected boolean isMappedAsGeoPoint(PropertyFunction property) {
+    protected boolean isMappedAsGeoPoint(PropertyFunction property)
+    {
         return IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), property.toString());
     }
 
-
-    protected boolean isTPoint(TGeometry filterGeometry) {
-        return TPoint(module).isPoint(filterGeometry);
-    }
-
-    protected boolean isMappedAsGeoShape(PropertyFunction property) {
+    protected boolean isMappedAsGeoShape(PropertyFunction property)
+    {
         return IndexMappingCache.isMappedAsGeoShape(support.index(), support.entitiesType(), property.toString());
     }
-
-    protected boolean isMapped(PropertyFunction property) {
-        return IndexMappingCache.mappingExists(support.index(), support.entitiesType(), property.toString());
+    protected boolean isTPoint(TGeometry filterGeometry)
+    {
+        return TPoint(module).isPoint(filterGeometry);
     }
 
-    protected boolean isSpatial(PropertyFunction property) {
-        return false;
+    protected boolean isMapped(PropertyFunction property)
+    {
+        return IndexMappingCache.mappingExists(support.index(), support.entitiesType(), property.toString());
     }
 
 
-    protected GeoShapeFilterBuilder createShapeFilter(String name, TPoint point, ShapeRelation relation, double distance, TUnit unit) {
-        return createShapeFilter(name, point, relation, distance, convertDistanceUnit(unit));
-    }
 
-    protected GeoShapeFilterBuilder createShapeFilter(String name, TGeometry geometry, ShapeRelation relation) {
+    protected GeoShapeFilterBuilder createShapeFilter(String name, TGeometry geometry, ShapeRelation relation)
+    {
         return createShapeFilter(name, geometry, relation, 0, null);
     }
 
-    protected GeoDistanceFilterBuilder createGeoDistanceFilter(String name, TPoint tPoint, double distance, TUnit unit) {
+    protected GeoDistanceFilterBuilder createGeoDistanceFilter(String name, TPoint tPoint, double distance, TUnit unit)
+    {
         // Lat = Y Long = X
         return FilterBuilders.geoDistanceFilter(name)
                 .lat(tPoint.y())
@@ -189,15 +166,18 @@ public abstract class AbstractElasticSearchSpatialFunction {
                 .distance(distance, convertDistanceUnit(unit));
     }
 
-    protected TPolygon polygonizeCircle(TPoint centre, double radiusInMeters) {
+    protected TPolygon polygonizeCircle(TPoint centre, double radiusInMeters)
+    {
         double radiusInDegrees = DistanceUtils.dist2Degrees(radiusInMeters, DistanceUtils.EARTH_MEAN_RADIUS_KM * 1000);
         TCircle tCircle = module.newValueBuilder(TCircle.class).prototype().of(centre, radiusInDegrees);
         return tCircle.polygonize(360);
     }
 
 
-    private DistanceUnit convertDistanceUnit(TUnit tUnit) {
-        switch (tUnit) {
+    private DistanceUnit convertDistanceUnit(TUnit tUnit)
+    {
+        switch (tUnit)
+        {
             case MILLIMETER:
                 return DistanceUnit.MILLIMETERS;
             case CENTIMETER:
@@ -211,8 +191,10 @@ public abstract class AbstractElasticSearchSpatialFunction {
         }
     }
 
-    protected double convertDistanceToMeters(double source, TUnit sourceUnit) {
-        switch (sourceUnit) {
+    protected double convertDistanceToMeters(double source, TUnit sourceUnit)
+    {
+        switch (sourceUnit)
+        {
             case MILLIMETER:
                 return source / 1000;
             case CENTIMETER:
@@ -227,44 +209,49 @@ public abstract class AbstractElasticSearchSpatialFunction {
     }
 
 
-    private GeoShapeFilterBuilder createShapeFilter(String name, TGeometry geometry, ShapeRelation relation, double distance, DistanceUnit unit) {
-        if (geometry instanceof TPoint) {
+    private GeoShapeFilterBuilder createShapeFilter(String name, TGeometry geometry, ShapeRelation relation, double distance, DistanceUnit unit)
+    {
+        if (geometry instanceof TPoint)
+        {
             CircleBuilder circleBuilder = ShapeBuilder.newCircleBuilder();
             circleBuilder.center(((TPoint) geometry).x(), ((TPoint) geometry).y()).radius(distance, unit);
             return FilterBuilders.geoShapeFilter(name, circleBuilder, relation);
-        } else if (geometry instanceof TPolygon) {
+        } else if (geometry instanceof TPolygon)
+        {
             PolygonBuilder polygonBuilder = ShapeBuilder.newPolygon();
-
-            for (int i = 0; i < ((TPolygon) geometry).shell().get().points().get().size(); i++) {
+            for (int i = 0; i < ((TPolygon) geometry).shell().get().points().get().size(); i++)
+            {
                 TPoint point = ((TPolygon) geometry).shell().get().getPointN(i);
-                // System.out.println(point);
-
                 polygonBuilder.point(
                         point.x(), point.y()
                 );
             }
 
             return FilterBuilders.geoShapeFilter(name, polygonBuilder, relation);
-        } else {
-
+        } else
+        {
+            // TODO
         }
 
         return null;
     }
 
 
-    protected TGeometry resolveGeometry(FilterBuilder filterBuilder, Specification<Composite> spec, Module module) throws EntityFinderException {
+    protected TGeometry resolveGeometry(FilterBuilder filterBuilder, Specification<Composite> spec, Module module) throws EntityFinderException
+    {
 
-        if (spec instanceof SpatialPredicatesSpecification) {
-            if (((SpatialPredicatesSpecification) spec).param() != null) {
+        if (spec instanceof SpatialPredicatesSpecification)
+        {
+            if (((SpatialPredicatesSpecification) spec).param() != null)
+            {
                 return ((SpatialPredicatesSpecification) spec).param();
-            } else if (((SpatialPredicatesSpecification) spec).operator() != null) {
+            } else if (((SpatialPredicatesSpecification) spec).operator() != null)
+            {
 
-                if (((SpatialPredicatesSpecification) spec).operator() instanceof SpatialConvertSpecification) {
+                if (((SpatialPredicatesSpecification) spec).operator() instanceof SpatialConvertSpecification)
+                {
                     executeSpecification(filterBuilder, (SpatialPredicatesSpecification) spec, null);
-                    System.out.println("Converted Geometry " + ((SpatialConvertSpecification) ((SpatialPredicatesSpecification) spec).operator()).getGeometry());
                     return ((SpatialConvertSpecification) ((SpatialPredicatesSpecification) spec).operator()).getGeometry();
-                    // return executeSpecification(filterBuilder, (SpatialPredicatesSpecification)spec, null);
                 }
 
                 return null;
@@ -276,19 +263,23 @@ public abstract class AbstractElasticSearchSpatialFunction {
 
     private void executeSpecification(FilterBuilder filterBuilder,
                                       SpatialPredicatesSpecification<?> spec,
-                                      Map<String, Object> variables) throws EntityFinderException {
+                                      Map<String, Object> variables) throws EntityFinderException
+    {
 
 
-        if (((SpatialPredicatesSpecification) spec).operator() instanceof SpatialConvertSpecification) {
+        if (((SpatialPredicatesSpecification) spec).operator() instanceof SpatialConvertSpecification)
+        {
 
 
-            if (ElasticSearchFinder.Mixin.EXTENDED_SPEC_SUPPORTS.get(spec.operator().getClass().getSuperclass()) != null) {
+            if (ElasticSearchFinder.Mixin.EXTENDED_SPEC_SUPPORTS.get(spec.operator().getClass().getSuperclass()) != null)
+            {
 
                 ElasticSearchSpatialFinder.SpatialQuerySpecSupport spatialQuerySpecSupport = ElasticSearchFinder.Mixin.EXTENDED_SPEC_SUPPORTS
                         .get(spec.operator().getClass().getSuperclass()).support(module, support);
                 spatialQuerySpecSupport.processSpecification(filterBuilder, spec.operator(), variables);
 
-            } else {
+            } else
+            {
                 throw new UnsupportedOperationException("Query specification unsupported by Elastic Search "
                         + "(New Query API support missing?): "
                         + spec.getClass() + ": " + spec);

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
index f7ed650..8b2aa0e 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/internal/InternalUtils.java
@@ -25,22 +25,28 @@ import java.lang.reflect.Type;
 /**
  * Ugly - not proud on this... How to make it better ?
  */
-public class InternalUtils {
+public class InternalUtils
+{
 
-    public static Class classOfPropertyType(PropertyFunction propertyFunction) {
+    public static Class classOfPropertyType(PropertyFunction propertyFunction)
+    {
         Type typeOfProperty = GenericPropertyInfo.toPropertyType(Classes.typeOf(propertyFunction.accessor()));
         Class classOfProperty = null;
-        try {
+        try
+        {
             classOfProperty = Class.forName(typeOfProperty.getTypeName());
-        } catch (Exception _ex) {
+        } catch (Exception _ex)
+        {
             // must not happen
             // TODO, logger
-        } finally {
+        } finally
+        {
             return classOfProperty;
         }
     }
 
-    public static Class<? extends TGeometry> classOfGeometry(TGeometry geometry) {
+    public static Class<? extends TGeometry> classOfGeometry(TGeometry geometry)
+    {
         if (geometry instanceof TPoint) return TPoint.class;
         if (geometry instanceof TMultiPoint) return TMultiPoint.class;
         if (geometry instanceof TLineString) return TLineString.class;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java
index c1de598..87e7a08 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/SpatialIndexMapper.java
@@ -24,22 +24,28 @@ import org.slf4j.LoggerFactory;
 import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
 import static org.qi4j.index.elasticsearch.extensions.spatial.mappings.builders.SpatialMappingFactory.*;
 
-public class SpatialIndexMapper {
+public class SpatialIndexMapper
+{
 
     private static final Logger LOGGER = LoggerFactory.getLogger(SpatialIndexMapper.class);
 
 
-    public static void createIfNotExist(ElasticSearchSupport support, TGeometry geometry, String property) {
-        if (!MappingsCachesTable.getMappingCache(support).exists(property)) {
+    public static void createIfNotExist(ElasticSearchSupport support, TGeometry geometry, String property)
+    {
+        if (!MappingsCachesTable.getMappingCache(support).exists(property))
+        {
             String mappingsOnServer = MappingQuery(support).get(property);
-            System.out.println("Found " + mappingsOnServer);
 
-            if (mappingsOnServer != null) {
+            if (mappingsOnServer != null)
+            {
                 // TODO JJ check mappings : configuration versus server-side settings
                 MappingsCachesTable.getMappingCache(support).put(property, mappingsOnServer);
-            } else {
-                if (TPoint(support.getModule()).isPoint(geometry)) {
-                    switch (SpatialConfiguration.getMethod(support.spatialConfiguration())) {
+            } else
+            {
+                if (TPoint(support.getModule()).isPoint(geometry))
+                {
+                    switch (SpatialConfiguration.getMethod(support.spatialConfiguration()))
+                    {
                         case GEO_POINT:
                             GeoPointMapping(support).create(property);
                             break;
@@ -49,7 +55,8 @@ public class SpatialIndexMapper {
                         default:
                             throw new RuntimeException("Unknown Point Maping Type.");
                     }
-                } else {
+                } else
+                {
                     GeoShapeMapping(support).create(property);
                 }
             }
@@ -64,23 +71,27 @@ public class SpatialIndexMapper {
 
     {
 
-        public static boolean isMappedAsGeoShape(String index, String type, String property) {
+        public static boolean isMappedAsGeoShape(String index, String type, String property)
+        {
             if (!MappingsCachesTable.getMappingCache(index, type).exists(property)) // <- No mappings yet, as no data in the index ?
                 return false;
             return MappingsCachesTable.getMappingCache(index, type).get(property).toString().indexOf("type=geo_shape") > -1 ? true : false;
         }
 
-        public static boolean isMappedAsGeoPoint(String index, String type, String property) {
+        public static boolean isMappedAsGeoPoint(String index, String type, String property)
+        {
             if (!MappingsCachesTable.getMappingCache(index, type).exists(property)) // <- No mappings yet, as no data in the index ?
                 return false;
             return MappingsCachesTable.getMappingCache(index, type).get(property).toString().indexOf("type=geo_point") > -1 ? true : false;
         }
 
-        public static boolean mappingExists(String index, String type, String property) {
+        public static boolean mappingExists(String index, String type, String property)
+        {
             return MappingsCachesTable.getMappingCache(index, type).exists(property);
         }
 
-        public static void clear() {
+        public static void clear()
+        {
             MappingsCachesTable.clear();
         }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java
index 882c42c..6d2e957 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/builders/AbstractBuilder.java
@@ -18,14 +18,13 @@ import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.mappings.cache.MappingsCachesTable;
 
-/**
- * Created by jj on 19.12.14.
- */
-public class AbstractBuilder {
+public class AbstractBuilder
+{
 
     protected ElasticSearchSupport support;
 
-    public String get(String field) {
+    public String get(String field)
+    {
         if (!isValid()) throw new RuntimeException("ElasticSearch Index or Type not defined");
 
         String index = support.index();
@@ -39,7 +38,8 @@ public class AbstractBuilder {
         if (response != null &&
                 response.fieldMappings(index, type, field) != null &&
                 !response.fieldMappings(index, type, field).isNull() &&
-                response.fieldMappings(index, type, field).fullName().equals(field)) {
+                response.fieldMappings(index, type, field).fullName().equals(field))
+        {
 
             return response.fieldMappings(index, type, field).sourceAsMap().toString();
         } else
@@ -47,11 +47,13 @@ public class AbstractBuilder {
     }
 
 
-    protected boolean isValid() {
+    protected boolean isValid()
+    {
         return (support != null) && (support.index() != null) && (support.entitiesType() != null) ? true : false;
     }
 
-    protected boolean put(String field, String mappingJson) {
+    protected boolean put(String field, String mappingJson)
+    {
         if (!isValid()) throw new RuntimeException("ElasticSearch Index or Type not defined");
 
         String index = support.index();
@@ -62,7 +64,8 @@ public class AbstractBuilder {
                 .setSource(mappingJson)
                 .execute().actionGet();
 
-        if (ESSpatialMappingPUTResponse.isAcknowledged()) {
+        if (ESSpatialMappingPUTResponse.isAcknowledged())
+        {
             // we are reading the mapping back from server to assure that the server-side mappings always "wins"
             MappingsCachesTable.getMappingCache(support.index(), support.entitiesType()).put(field, get(field));
             return true;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java
index d5f9aa3..bd2c297 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/mappings/cache/MappingsCachesTable.java
@@ -19,22 +19,27 @@ import com.google.common.collect.Table;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 
 
-public class MappingsCachesTable {
+public class MappingsCachesTable
+{
 
     private static final Table<String, String, MappingsCache> CACHES_TABLE = HashBasedTable.create();
 
-    public static MappingsCache getMappingCache(String index, String type) {
+    public static MappingsCache getMappingCache(String index, String type)
+    {
         return CACHES_TABLE.get(index, type);
     }
 
-    public static MappingsCache getMappingCache(ElasticSearchSupport support) {
-        if (!CACHES_TABLE.contains(support.index(), support.entitiesType())) {
+    public static MappingsCache getMappingCache(ElasticSearchSupport support)
+    {
+        if (!CACHES_TABLE.contains(support.index(), support.entitiesType()))
+        {
             CACHES_TABLE.put(support.index(), support.entitiesType(), new MappingsCache(support));
         }
         return CACHES_TABLE.get(support.index(), support.entitiesType());
     }
 
-    public static void clear() {
+    public static void clear()
+    {
         CACHES_TABLE.clear();
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialQueryTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialQueryTest.java
deleted file mode 100644
index 6746ade..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/ElasticSearchSpatialQueryTest.java
+++ /dev/null
@@ -1,237 +0,0 @@
-package org.qi4j.index.elasticsearch;
-
-// import com.fasterxml.jackson.databind.ObjectMapper;
-// import org.geojson.Feature;
-// import org.geojson.FeatureCollection;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.entity.EntityBuilder;
-import org.qi4j.api.geometry.TFeature;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.query.Query;
-import org.qi4j.api.query.QueryBuilder;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-// import org.qi4j.library.spatial.transformator.GeoJsonTransformator;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialQueryTest;
-import org.qi4j.test.indexing.model.City;
-import org.qi4j.test.indexing.model.Person;
-import org.qi4j.test.util.DelTreeAfter;
-
-import java.io.File;
-
-import static org.qi4j.api.query.QueryExpressions.templateFor;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_GeometryFromText;
-import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_Within;
-import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
-
-/**
- * Created by jakes on 2/8/14.
- */
-public class ElasticSearchSpatialQueryTest
-        extends AbstractSpatialQueryTest
-{
-
-
-
-
-
-
-    private static final File DATA_DIR = new File( "build/tmp/es-money-query-test" );
-    @Rule
-    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
-
-    @BeforeClass
-    public static void beforeClass_IBMJDK()
-    {
-        assumeNoIbmJdk();
-    }
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        super.assemble( module );
-
-
-        // Config module
-        ModuleAssembly config = module.layer().module( "config" );
-        new EntityTestAssembler().assemble( config );
-
-        // Index/Query
-        new ESFilesystemIndexQueryAssembler().
-                withConfig( config, Visibility.layer ).
-                assemble( module );
-        ElasticSearchConfiguration esConfig = config.forMixin( ElasticSearchConfiguration.class ).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData( new File( DATA_DIR, "qi4j-data" ) ).
-                withLog( new File( DATA_DIR, "qi4j-logs" ) ).
-                withTemporary( new File( DATA_DIR, "qi4j-temp" ) );
-        module.services( FileConfigurationService.class ).
-                setMetaInfo( override );
-    }
-
-/**
-    // @Before
-    public void setup()
-    {
-
-
-       //  UnitOfWork uow = module.newUnitOfWork();
-        try
-        {
-
-
-            BufferedInputStream inputstream = new BufferedInputStream(new FileInputStream("/home/jakes/Projects/QI4J/Spatial/qi4j-sdk/libraries/spatial/src/test/resources/topo/geojson/germany/bavaria.neustadt.geojson"));
-
-            //  BufferedInputStream inputstream = new BufferedInputStream(new FileInputStream("/media/HDD_002/spatial/OpenStreetMap/geofabrik.de/nuenberg.geojson"));
-
-            FeatureCollection featureCollection =
-                    new ObjectMapper().readValue(inputstream, FeatureCollection.class);
-
-            System.out.println("Found num of features " + featureCollection.getFeatures().size());
-
-            int count = 0;
-
-            Iterator<Feature> features = featureCollection.getFeatures().iterator();
-
-            while (features.hasNext()) {
-
-                count++;
-
-                Feature feature = features.next();
-
-                TFeature tFeature =  GeoJsonTransformator.withGeometryFactory(Geometry).transformGeoFeature(feature);
-                if (tFeature != null)
-                {
-                    // System.out.println(tFeature);
-
-                   // if (tFeature.asGeometry().type().get().equalsIgnoreCase("point"))
-                    if (tFeature.asGeometry() instanceof TPoint)
-                    {
-                        UnitOfWork uow1 = module.newUnitOfWork();
-                            MapFeature mapFeature = from(tFeature);
-                         System.out.println(mapFeature);
-                        uow1.complete();
-
-                    }
-                }
-
-            }
-
-
-
-        }
-        catch( Exception ex )
-        {
-            ex.printStackTrace();
-            // log.error( ex.getMessage(), ex );
-            // throw ex;
-        }
-
-    }
-
- */
-
-    @Test
-    public void script0()  throws Exception {
-
-        // UnitOfWork uow = module.newUnitOfWork();
-        try
-        {
-
-          System.out.println("Test..");
-            // setup();
-
-
-        }
-        catch( Exception ex )
-        {
-            ex.printStackTrace();
-            // log.error( ex.getMessage(), ex );
-            throw ex;
-        }
-        finally
-        {
-          //   uow.discard();
-        }
-
-        // uow.complete();
-
-    }
-
-
-
-    @Test
-    public void whenQueryUsePolygon() throws Exception
-    {
-
-
-        QueryBuilder<City> qb = this.module.newQueryBuilder(City.class);
-
-        Query<City> query = unitOfWork.newQuery(
-                qb
-                        .where(
-                                ST_Within
-                                        (
-                                                templateFor(City.class).location(),
-
-                                                ST_GeometryFromText(
-                                                        "POLYGON((" +
-                                                        "49.56797785892715 10.62652587890625," +
-                                                        "49.5835615987737 10.748062133789062," +
-                                                        "49.533230478523684 10.78857421875," +
-                                                        "49.484185749507716 10.72265625," +
-                                                        "49.49310663031507 10.578460693359375," +
-                                                        "49.5416968611641 10.583267211914062," +
-                                                        "49.555507284155276 10.605239868164062," +
-                                                        "49.56797785892715 10.62652587890625))")
-                                        )
-                        ));
-
-
-        // System.out.println( "*** script01: " + query );
-        query.find();
-
-        System.out.println("Found Cities " + query.count());
-    }
-
-
-
-
-    private MapFeature from(TFeature tFeature)
-    {
-        MapFeature feature;
-        EntityBuilder<MapFeature> featureBuilder = unitOfWork.newEntityBuilder( MapFeature.class );
-        feature = featureBuilder.instance();
-
-        feature.geometry1().set(tFeature.asGeometry());
-       //  feature.properties().set(tFeature.asProperties());
-
-        feature = featureBuilder.newInstance();
-
-        return feature;
-
-    }
-
-
-    @Test
-    public void whenQueryForPersonsInACity() {
-
-
-
-
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialClusterQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialClusterQueryTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialClusterQueryTest.java
deleted file mode 100644
index 4252da5..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialClusterQueryTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.query.QueryExecutionException;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.entitystore.riak.RiakHttpMapEntityStoreAssembler;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.assembly.TGeometryAssembler;
-import org.qi4j.spi.query.EntityFinderException;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
-import org.qi4j.test.util.DelTreeAfter;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
-
-import java.io.File;
-
-import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
-
-/**
- * Created by jj on 21.12.14.
- */
-public class ElasticSearchSpatialClusterQueryTest
-        extends AbstractSpatialRegressionTest
-{
-    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
-    @Rule
-    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
-
-    @BeforeClass
-    public static void beforeClass_IBMJDK()
-    {
-        assumeNoIbmJdk();
-    }
-
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        super.assemble( module );
-
-        // Geometry support
-        new TGeometryAssembler().assemble(module);
-
-
-
-        // Config module
-        ModuleAssembly config = module.layer().module( "config" );
-        new EntityTestAssembler().assemble( config );
-
-        config.values(SpatialConfiguration.Configuration.class,
-                SpatialConfiguration.FinderConfiguration.class,
-                SpatialConfiguration.IndexerConfiguration.class,
-                SpatialConfiguration.IndexingMethod.class,
-                SpatialConfiguration.ProjectionSupport.class).
-                visibleIn(Visibility.application);
-
-
-        // Index/Query
-        new ESClusterIndexQueryAssembler().
-                withConfig(config, Visibility.layer).
-                identifiedBy("ElasticSearchBenchmark").
-                assemble(module);
-        ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData(new File(DATA_DIR, "qi4j-data")).
-                withLog(new File(DATA_DIR, "qi4j-logs")).
-                withTemporary(new File(DATA_DIR, "qi4j-temp"));
-        module.services(FileConfigurationService.class).
-                setMetaInfo(override);
-
-        // In-Memory Entity Store
-        // new EntityTestAssembler().assemble( module );
-
-
-        /** RIAK */
-        ModuleAssembly configRiak = module.layer().module( "configRiak" );
-        new EntityTestAssembler().assemble( configRiak );
-        new OrgJsonValueSerializationAssembler().assemble( module );
-        // START SNIPPET: assembly
-        new RiakHttpMapEntityStoreAssembler().withConfig( configRiak, Visibility.layer ).assemble( module );
-        /** +++ */
-    }
-
-
-    @Test(expected=QueryExecutionException.class)
-    public void script01c()
-            throws EntityFinderException
-    {
-       super.script01c(); // <- no orderBy() support for GeoShapes
-    }
-
-    @Test(expected=QueryExecutionException.class)
-    public void script01d()
-            throws EntityFinderException
-    {
-        super.script01d(); // <- no orderBy() support for GeoShapes
-    }
-
-    @Test(expected=QueryExecutionException.class)
-    public void script01e()
-            throws EntityFinderException
-    {
-        super.script01e(); // <- no orderBy() support for GeoShapes
-    }
-
-    @Test(expected=QueryExecutionException.class)
-    public void script01f()
-            throws EntityFinderException
-    {
-        super.script01f(); // <- no orderBy() support for GeoShapes
-    }
-
-    @Test(expected=QueryExecutionException.class)
-    public void script03c()
-            throws EntityFinderException
-    {
-        super.script03c(); // <- no orderBy() support for GeoShapes
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
index bd27bd9..c476c8c 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialQueryTestUsingGeoPointIndexing.java
@@ -102,7 +102,7 @@ public class ElasticSearchSpatialQueryTestUsingGeoPointIndexing
     public void script02a()
             throws EntityFinderException
     {
-        super.script02a();
+        super.script02a();  // <- no ST_Disjoint when GEOSHAPE indexing for TPoints
     }
 
     @Test (expected=QueryExecutionException.class)
@@ -110,7 +110,7 @@ public class ElasticSearchSpatialQueryTestUsingGeoPointIndexing
     public void script02b()
             throws EntityFinderException
     {
-        super.script02b();
+        super.script02b(); // <- no ST_Disjoint when GEOSHAPE indexing for TPoints
     }
 
     @Test (expected=QueryExecutionException.class)
@@ -118,7 +118,7 @@ public class ElasticSearchSpatialQueryTestUsingGeoPointIndexing
     public void script02c()
             throws EntityFinderException
     {
-        super.script02c();
+        super.script02c(); // <- no ST_Disjoint when GEOSHAPE indexing for TPoints
     }
 
     @Test (expected=QueryExecutionException.class)
@@ -126,7 +126,7 @@ public class ElasticSearchSpatialQueryTestUsingGeoPointIndexing
     public void script02d()
             throws EntityFinderException
     {
-        super.script02d();
+        super.script02d(); // <- no ST_Disjoint when GEOSHAPE indexing for TPoints
     }
 
     @Test (expected=QueryExecutionException.class)
@@ -134,7 +134,7 @@ public class ElasticSearchSpatialQueryTestUsingGeoPointIndexing
     public void script02e()
             throws EntityFinderException
     {
-        super.script02e();
+        super.script02e(); // <- no ST_Disjoint when GEOSHAPE indexing for TPoints
     }
 
     @Test (expected=QueryExecutionException.class)
@@ -142,7 +142,7 @@ public class ElasticSearchSpatialQueryTestUsingGeoPointIndexing
     public void script02f()
             throws EntityFinderException
     {
-        super.script02f();
+        super.script02f(); // <- no ST_Disjoint when GEOSHAPE indexing for TPoints
     }
 
     @Test (expected=QueryExecutionException.class)
@@ -150,7 +150,7 @@ public class ElasticSearchSpatialQueryTestUsingGeoPointIndexing
     public void script03a()
             throws EntityFinderException
     {
-        super.script03a();
+        super.script03a(); // <- no ST_Disjoint when GEOSHAPE indexing for TPoints
     }
 
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
deleted file mode 100644
index 7fd00bf..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial;
-
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.query.Query;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
-import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
-import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
-import org.qi4j.library.fileconfig.FileConfigurationOverride;
-import org.qi4j.library.fileconfig.FileConfigurationService;
-import org.qi4j.library.spatial.assembly.TGeometryAssembler;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
-import org.qi4j.test.util.DelTreeAfter;
-
-import java.io.File;
-
-import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
-
-/**
- * Created by jj on 21.12.14.
- */
-public class ElasticSearchSpatialRegressionQueryClusterTest
-        extends AbstractSpatialRegressionTest
-{
-    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
-    @Rule
-    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
-
-    @BeforeClass
-    public static void beforeClass_IBMJDK()
-    {
-        assumeNoIbmJdk();
-    }
-
-    protected boolean isExpressionSupported(Query<?> expression)
-    {
-        return true;
-    }
-
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        super.assemble( module );
-
-        // Geometry support
-        new TGeometryAssembler().assemble(module);
-
-
-
-        // Config module
-        ModuleAssembly config = module.layer().module( "config" );
-        new EntityTestAssembler().assemble( config );
-
-        config.values(SpatialConfiguration.Configuration.class,
-                SpatialConfiguration.FinderConfiguration.class,
-                SpatialConfiguration.IndexerConfiguration.class,
-                SpatialConfiguration.IndexingMethod.class,
-                SpatialConfiguration.ProjectionSupport.class).
-                visibleIn(Visibility.application);
-
-        // Index/Query
-        new ESClusterIndexQueryAssembler().
-                withConfig(config, Visibility.layer).
-                identifiedBy("ElasticSearchConfigurationVariant1").
-                assemble(module);
-        ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
-        esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
-
-
-        // FileConfig
-        FileConfigurationOverride override = new FileConfigurationOverride().
-                withData(new File(DATA_DIR, "qi4j-data")).
-                withLog(new File(DATA_DIR, "qi4j-logs")).
-                withTemporary(new File(DATA_DIR, "qi4j-temp"));
-        module.services(FileConfigurationService.class).
-                setMetaInfo(override);
-
-
-        config.services(FileConfigurationService.class)
-                // .identifiedBy("ElasticSearchConfigurationVariant1")
-                .setMetaInfo(override)
-                .visibleIn(Visibility.application);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/model/VerifyStatialTypes.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/model/VerifyStatialTypes.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/model/VerifyStatialTypes.java
deleted file mode 100644
index 31d8595..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/model/VerifyStatialTypes.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial.model;
-
-import com.vividsolutions.jts.geom.MultiLineString;
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.property.Property;
-
-/**
- * Created by jj on 01.12.14.
- */
-public interface VerifyStatialTypes {
-
-    @Optional
-    Property<String> foo();
-
-    @Optional
-    Property<TPoint> point();
-
-    @Optional
-    Property<TMultiPoint> mPoint();
-
-    @Optional
-    Property<TLineString> line();
-
-    @Optional
-    Property<TPolygon> polygon();
-
-    @Optional
-    Property<TMultiPolygon> mPolygon();
-
-    @Optional
-    Property<TFeature> feature();
-
-    @Optional
-    Property<TFeatureCollection> collection();
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/model/entity/SpatialEntity.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/model/entity/SpatialEntity.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/model/entity/SpatialEntity.java
deleted file mode 100644
index 0146bc5..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/model/entity/SpatialEntity.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial.model.entity;
-
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.index.elasticsearch.extension.spatial.model.VerifyStatialTypes;
-
-/**
- * Created by jj on 01.12.14.
- */
-public interface SpatialEntity extends EntityComposite,
-        VerifyStatialTypes
-{}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomUtils.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomUtils.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomUtils.java
deleted file mode 100644
index 34b1cd9..0000000
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/utils/RandomUtils.java
+++ /dev/null
@@ -1,438 +0,0 @@
-package org.qi4j.index.elasticsearch.extension.spatial.utils;
-
-import java.io.Serializable;
-import java.util.Random;
-
-/**
- * This class generates pseudorandom numbers.  It uses the same
- * algorithm as the original JDK-class, so that your programs behave
- * exactly the same way, if started with the same seed.
- *
- * The algorithm is described in <em>The Art of Computer Programming,
- * Volume 2</em> by Donald Knuth in Section 3.2.1.  It is a 48-bit seed,
- * linear congruential formula.
- *
- * If two instances of this class are created with the same seed and
- * the same calls to these classes are made, they behave exactly the
- * same way.  This should be even true for foreign implementations
- * (like this), so every port must use the same algorithm as described
- * here.
- *
- * If you want to implement your own pseudorandom algorithm, you
- * should extend this class and overload the <code>next()</code> and
- * <code>setSeed(long)</code> method.  In that case the above
- * paragraph doesn't apply to you.
- *
- * This class shouldn't be used for security sensitive purposes (like
- * generating passwords or encryption keys.  See <code>SecureRandom</code>
- * in package <code>java.security</code> for this purpose.
- *
- * For simple random doubles between 0.0 and 1.0, you may consider using
- * Math.random instead.
- *
- * @see java.security.SecureRandom
- * @see Math#random()
- * @author Jochen Hoenicke
- * @author Eric Blake (ebb9@email.byu.edu)
- * @status updated to 1.4
- */
-public class RandomUtils implements Serializable, Cloneable
-{
-    public Random clone() {
-        try {
-            return (Random)super.clone();
-        } catch (Exception e) {
-            return null;
-        }
-    }
-
-
-    /**
-     * Randomizes all elements of an array.
-     *
-     * @param data the array to be randomized
-     */
-    public void randomizeArray(int[] data) {
-        int len = data.length;
-        for (int i = 0; i < len-1; i++) {
-            int r = i + nextInt(len-i);
-            // swap data at indices i and r
-            int temp = data[r];
-            data[r] = data[i];
-            data[i] = temp;
-        }
-    }
-
-
-    /**
-     * True if the next nextGaussian is available.  This is used by
-     * nextGaussian, which generates two gaussian numbers by one call,
-     * and returns the second on the second call.
-     *
-     * @serial whether nextNextGaussian is available
-     * @see #nextGaussian()
-     * @see #nextNextGaussian
-     */
-    private boolean haveNextNextGaussian;
-
-    /**
-     * The next nextGaussian, when available.  This is used by nextGaussian,
-     * which generates two gaussian numbers by one call, and returns the
-     * second on the second call.
-     *
-     * @serial the second gaussian of a pair
-     * @see #nextGaussian()
-     * @see #haveNextNextGaussian
-     */
-    private double nextNextGaussian;
-
-    /**
-     * The seed.  This is the number set by setSeed and which is used
-     * in next.
-     *
-     * @serial the internal state of this generator
-     *
-     */
-    private long seed;
-
-    /**
-     * Compatible with JDK 1.0+.
-     */
-    private static final long serialVersionUID = 3905348978240129619L;
-
-    /**
-     * Creates a new pseudorandom number generator.  The seed is initialized
-     * to the current time, as if by
-     * <code>setSeed(System.currentTimeMillis());</code>.
-     *
-     * @see System#currentTimeMillis()
-     */
-    public RandomUtils()
-    {
-        this(System.currentTimeMillis());
-    }
-
-    /**
-     * Creates a new pseudorandom number generator, starting with the
-     * specified seed, using <code>setSeed(seed);</code>.
-     *
-     * @param seed the initial seed
-     */
-    public RandomUtils(long seed)
-    {
-        setSeed(seed);
-    }
-
-    /**
-     * Sets the seed for this pseudorandom number generator.  As described
-     * above, two instances of the same random class, starting with the
-     * same seed, should produce the same results, if the same methods
-     * are called.  The implementation for java.util.Random is:
-     *
-     <pre>public synchronized void setSeed(long seed)
-     {
-     this.seed = (seed ^ 0x5DEECE66DL) & ((1L &lt;&lt; 48) - 1);
-     haveNextNextGaussian = false;
-     }</pre>
-     *
-     * @param seed the new seed
-     */
-    public synchronized void setSeed(long seed)
-    {
-        this.seed = (seed ^ 0x5DEECE66DL) & ((1L << 48) - 1);
-        haveNextNextGaussian = false;
-    }
-
-    /**
-     * Generates the next pseudorandom number.  This returns
-     * an int value whose <code>bits</code> low order bits are
-     * independent chosen random bits (0 and 1 are equally likely).
-     * The implementation for java.util.Random is:
-     *
-     <pre>protected synchronized int next(int bits)
-     {
-     seed = (seed * 0x5DEECE66DL + 0xBL) & ((1L &lt;&lt; 48) - 1);
-     return (int) (seed &gt;&gt;&gt; (48 - bits));
-     }</pre>
-     *
-     * @param bits the number of random bits to generate, in the range 1..32
-     * @return the next pseudorandom value
-     * @since 1.1
-     */
-    protected synchronized int next(int bits)
-    {
-        seed = (seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1);
-        return (int) (seed >>> (48 - bits));
-    }
-
-    /**
-     * Fills an array of bytes with random numbers.  All possible values
-     * are (approximately) equally likely.
-     * The JDK documentation gives no implementation, but it seems to be:
-     *
-     <pre>public void nextBytes(byte[] bytes)
-     {
-     for (int i = 0; i &lt; bytes.length; i += 4)
-     {
-     int random = next(32);
-     for (int j = 0; i + j &lt; bytes.length && j &lt; 4; j++)
-     {
-     bytes[i+j] = (byte) (random & 0xff)
-     random &gt;&gt;= 8;
-     }
-     }
-     }</pre>
-     *
-     * @param bytes the byte array that should be filled
-     * @throws NullPointerException if bytes is null
-     * @since 1.1
-     */
-    public void nextBytes(byte[] bytes)
-    {
-        int random;
-        // Do a little bit unrolling of the above algorithm.
-        int max = bytes.length & ~0x3;
-        for (int i = 0; i < max; i += 4)
-        {
-            random = next(32);
-            bytes[i] = (byte) random;
-            bytes[i + 1] = (byte) (random >> 8);
-            bytes[i + 2] = (byte) (random >> 16);
-            bytes[i + 3] = (byte) (random >> 24);
-        }
-        if (max < bytes.length)
-        {
-            random = next(32);
-            for (int j = max; j < bytes.length; j++)
-            {
-                bytes[j] = (byte) random;
-                random >>= 8;
-            }
-        }
-    }
-
-    /**
-     * Generates the next pseudorandom number.  This returns
-     * an int value whose 32 bits are independent chosen random bits
-     * (0 and 1 are equally likely).  The implementation for
-     * java.util.Random is:
-     *
-     <pre>public int nextInt()
-     {
-     return next(32);
-     }</pre>
-     *
-     * @return the next pseudorandom value
-     */
-    public int nextInt()
-    {
-        return next(32);
-    }
-
-    /**
-     * Generates the next pseudorandom number.  This returns
-     * a value between 0(inclusive) and <code>n</code>(exclusive), and
-     * each value has the same likelihodd (1/<code>n</code>).
-     * (0 and 1 are equally likely).  The implementation for
-     * java.util.Random is:
-     *
-     <pre>
-     public int nextInt(int n)
-     {
-     if (n &lt;= 0)
-     throw new IllegalArgumentException("n must be positive");
-
-     if ((n & -n) == n)  // i.e., n is a power of 2
-     return (int)((n * (long) next(31)) &gt;&gt; 31);
-
-     int bits, val;
-     do
-     {
-     bits = next(31);
-     val = bits % n;
-     }
-     while(bits - val + (n-1) &lt; 0);
-
-     return val;
-     }</pre>
-     *
-     * <p>This algorithm would return every value with exactly the same
-     * probability, if the next()-method would be a perfect random number
-     * generator.
-     *
-     * The loop at the bottom only accepts a value, if the random
-     * number was between 0 and the highest number less then 1<<31,
-     * which is divisible by n.  The probability for this is high for small
-     * n, and the worst case is 1/2 (for n=(1<<30)+1).
-     *
-     * The special treatment for n = power of 2, selects the high bits of
-     * the random number (the loop at the bottom would select the low order
-     * bits).  This is done, because the low order bits of linear congruential
-     * number generators (like the one used in this class) are known to be
-     * ``less random'' than the high order bits.
-     *
-     * @param n the upper bound
-     * @throws IllegalArgumentException if the given upper bound is negative
-     * @return the next pseudorandom value
-     * @since 1.2
-     */
-    public int nextInt(int n)
-    {
-        if (n <= 0)
-            throw new IllegalArgumentException("n must be positive");
-        if ((n & -n) == n) // i.e., n is a power of 2
-            return (int) ((n * (long) next(31)) >> 31);
-        int bits, val;
-        do
-        {
-            bits = next(31);
-            val = bits % n;
-        }
-        while (bits - val + (n - 1) < 0);
-        return val;
-    }
-
-    /**
-     * Generates the next pseudorandom long number.  All bits of this
-     * long are independently chosen and 0 and 1 have equal likelihood.
-     * The implementation for java.util.Random is:
-     *
-     <pre>public long nextLong()
-     {
-     return ((long) next(32) &lt;&lt; 32) + next(32);
-     }</pre>
-     *
-     * @return the next pseudorandom value
-     */
-    public long nextLong()
-    {
-        return ((long) next(32) << 32) + next(32);
-    }
-
-    /**
-     * Generates the next pseudorandom boolean.  True and false have
-     * the same probability.  The implementation is:
-     *
-     <pre>public boolean nextBoolean()
-     {
-     return next(1) != 0;
-     }</pre>
-     *
-     * @return the next pseudorandom boolean
-     * @since 1.2
-     */
-    public boolean nextBoolean()
-    {
-        return next(1) != 0;
-    }
-
-    /**
-     * Generates the next pseudorandom float uniformly distributed
-     * between 0.0f (inclusive) and 1.0f (exclusive).  The
-     * implementation is as follows.
-     *
-     <pre>public float nextFloat()
-     {
-     return next(24) / ((float)(1 &lt;&lt; 24));
-     }</pre>
-     *
-     * @return the next pseudorandom float
-     */
-    public float nextFloat()
-    {
-        return next(24) / (float) (1 << 24);
-    }
-
-    /**
-     * Generates the next pseudorandom double uniformly distributed
-     * between 0.0 (inclusive) and 1.0 (exclusive).  The
-     * implementation is as follows.
-     *
-     <pre>public double nextDouble()
-     {
-     return (((long) next(26) &lt;&lt; 27) + next(27)) / (double)(1L &lt;&lt; 53);
-     }</pre>
-     *
-     * @return the next pseudorandom double
-     */
-    public double nextDouble()
-    {
-        return (((long) next(26) << 27) + next(27)) / (double) (1L << 53);
-    }
-
-    /**
-     * Generates the next pseudorandom, Gaussian (normally) distributed
-     * double value, with mean 0.0 and standard deviation 1.0.
-     * The algorithm is as follows.
-     *
-     <pre>public synchronized double nextGaussian()
-     {
-     if (haveNextNextGaussian)
-     {
-     haveNextNextGaussian = false;
-     return nextNextGaussian;
-     }
-     else
-     {
-     double v1, v2, s;
-     do
-     {
-     v1 = 2 * nextDouble() - 1; // between -1.0 and 1.0
-     v2 = 2 * nextDouble() - 1; // between -1.0 and 1.0
-     s = v1 * v1 + v2 * v2;
-     }
-     while (s >= 1);
-
-     double norm = Math.sqrt(-2 * Math.log(s) / s);
-     nextNextGaussian = v2 * norm;
-     haveNextNextGaussian = true;
-     return v1 * norm;
-     }
-     }</pre>
-     *
-     * <p>This is described in section 3.4.1 of <em>The Art of Computer
-     * Programming, Volume 2</em> by Donald Knuth.
-     *
-     * @return the next pseudorandom Gaussian distributed double
-     */
-    public synchronized double nextGaussian()
-    {
-        if (haveNextNextGaussian)
-        {
-            haveNextNextGaussian = false;
-            return nextNextGaussian;
-        }
-        double v1, v2, s;
-        do
-        {
-            v1 = 2 * nextDouble() - 1; // Between -1.0 and 1.0.
-            v2 = 2 * nextDouble() - 1; // Between -1.0 and 1.0.
-            s = v1 * v1 + v2 * v2;
-        }
-        while (s >= 1);
-        double norm = Math.sqrt(-2 * Math.log(s) / s);
-        nextNextGaussian = v2 * norm;
-        haveNextNextGaussian = true;
-        return v1 * norm;
-    }
-
-
-
-    /**
-     * Generates the next pseudorandom, Poisson distributed
-     * integer value k which is distributed according to: P(k, lambda) = (lambda^k exp(-lambda) / k!)
-     * Note that <k> = <k^2>-<k>^2 = lambda
-     *
-     * A simple algorithm is used which has complexity linear in lambda (Knuth).
-     */
-    public int nextPoisson(double lambda) {
-        double l = Math.exp(-lambda);
-        double p = 1;
-        int k = 0;
-        do {
-            k++;
-            p *= nextDouble();
-        } while (p >= l);
-        return k-1;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchBenchmark.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchBenchmark.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchBenchmark.properties
deleted file mode 100644
index dd67ab3..0000000
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchBenchmark.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-nodes=localhost:9300
-
-spatial = { \
-  \
-  Enabled : true, \
-  \
-  Indexer=\
-   { \
-    Method=\
-      { \
-        Type      = "GEO_POINT", \
-        Precision = 1m, \
-      }, \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 2m, \
-      }, \
-   }, \
-  \
-  \
-  Finder=\
-    { \
-    Projection=\
-      { \
-        ConversionEnabled  = true, \
-        ConversionAccuracy = 2m, \
-      } \
-    } \
-  }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
index 3837000..7a20c60 100644
--- a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
+++ b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchGeoShapeIndexing.properties
@@ -12,7 +12,7 @@ spatial = { \
     Projection=\
       { \
         ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
+        ConversionAccuracy = 2m, \
       }, \
    }, \
   \
@@ -22,7 +22,7 @@ spatial = { \
     Projection=\
       { \
         ConversionEnabled  = true, \
-        ConversionAccuracy = 1m, \
+        ConversionAccuracy = 2m, \
       } \
     } \
   }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/assembly/TGeometryAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/assembly/TGeometryAssembler.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/assembly/TGeometryAssembler.java
index 178d838..815e198 100644
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/assembly/TGeometryAssembler.java
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/assembly/TGeometryAssembler.java
@@ -28,17 +28,17 @@ import org.qi4j.api.geometry.internal.TLinearRing;
 import org.qi4j.bootstrap.Assemblers;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.spatial.projection.ProjectionsRegistry;
+import org.qi4j.library.spatial.projections.ProjectionsRegistry;
 
 public class TGeometryAssembler
         extends Assemblers.VisibilityIdentity<TGeometryAssembler>
 {
-    private static final String CRS_EPSG_4326   = "EPSG:4326";
-    private static String DEFAULT_CRS           = CRS_EPSG_4326;
+    private static final String CRS_EPSG_4326 = "EPSG:4326";
+    private static String DEFAULT_CRS = CRS_EPSG_4326;
 
 
     @Override
-    public void assemble( ModuleAssembly module )
+    public void assemble(ModuleAssembly module)
             throws AssemblyException
     {
         // internal values
@@ -69,7 +69,7 @@ public class TGeometryAssembler
                 throw new AssemblyException("Projection CRS " + crs + " invalid.");
             }
 
-        } catch(CRSException _ex)
+        } catch (CRSException _ex)
         {
             throw new AssemblyException("Projection CRS " + crs + " invalid.", _ex);
         }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/TConversions.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/TConversions.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/TConversions.java
deleted file mode 100644
index 1037b2d..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/TConversions.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions;
-
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.conversions.from.FromHelper;
-
-public class TConversions {
-
-    public static FromHelper Convert(Module module)
-    {
-        return new FromHelper(module);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/503532e9/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/FromHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/FromHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/FromHelper.java
deleted file mode 100644
index 3f1d399..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/conversions/from/FromHelper.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.qi4j.library.spatial.conversions.from;
-
-import org.geojson.GeoJsonObject;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.conversions.to.ToHelper;
-
-
-public class FromHelper {
-
-    private Module module;
-
-    public FromHelper(Module module)
-    {
-        this.module = module;
-    }
-
-    public ToHelper from(TGeometry tGeometry)
-    {
-        return new ToHelper(module, new TGeometryFromConverter(module).convert(tGeometry));
-    }
-
-    public ToHelper from(GeoJsonObject geoJsonObject)
-    {
-        return new ToHelper(module, new GeoJsonFromConverter(module).convert(geoJsonObject));
-
-    }
-
-    public ToHelper from(String wkt) throws Exception
-    {
-        return new ToHelper(module, new WKTFromConverter(module).convert(wkt, null));
-    }
-
-    public ToHelper from(String wkt, String crs) throws Exception
-    {
-        return new ToHelper(module, new WKTFromConverter(module).convert(wkt, crs));
-    }
-
-    private FromHelper() {}
-}


[21/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/topojson/swiss/fr-municipalities.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/topojson/swiss/fr-municipalities.json b/libraries/spatial/src/test/resources/topo/topojson/swiss/fr-municipalities.json
deleted file mode 100644
index 89f445f..0000000
--- a/libraries/spatial/src/test/resources/topo/topojson/swiss/fr-municipalities.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"Topology","objects":{"municipalities":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","id":2004,"properties":{"name":"Bussy (FR)"},"arcs":[[[-289,-267,471,-335,472,473]]]},{"type":"MultiPolygon","id":2005,"properties":{"name":"Châbles"},"arcs":[[[-341,-430,-29,-320,444,-318,-422]]]},{"type":"MultiPolygon","id":2008,"properties":{"name":"Châtillon (FR)"},"arcs":[[[-445,-319]]]},{"type":"MultiPolygon","id":2009,"properties":{"name":"Cheiry"},"arcs":[[[380,381,382,383]]]},{"type":"MultiPolygon","id":2010,"properties":{"name":"Cheyres"},"arcs":[[[428,-30,429,-340]]]},{"type":"MultiPolygon","id":2011,"properties":{"name":"Cugy (FR)"},"arcs":[[[286,287,-268,288,289]]]},{"type":"MultiPolygon","id":2013,"properties":{"name":"Domdidier"},"arcs":[[[310,311,312,313,314,315]]]},{"type":"MultiPolygon","id":2014,"properties":{"name":"Dompierre (FR)"},"arcs":[[[450,451,-313]]]},{"type":"MultiPolygon","id":2015,"properties":{"name":"Estavayer-le-Lac"},"arcs":[[[-265,316
 ,317,318,319,-28,320,321]]]},{"type":"MultiPolygon","id":2016,"properties":{"name":"Fétigny"},"arcs":[[[-454,-287,461]]]},{"type":"MultiPolygon","id":2022,"properties":{"name":"Gletterens"},"arcs":[[[-478,488,-181,-365]]]},{"type":"MultiPolygon","id":2024,"properties":{"name":"Léchelles"},"arcs":[[[322,323,-112,324,-311,325,-225]]]},{"type":"MultiPolygon","id":2025,"properties":{"name":"Lully (FR)"},"arcs":[[[-342,421,-317,-264]]]},{"type":"MultiPolygon","id":2027,"properties":{"name":"Ménières"},"arcs":[[[452,-269,-288,453]]]},{"type":"MultiPolygon","id":2029,"properties":{"name":"Montagny (FR)"},"arcs":[[[104,105,106,107,108,109,110,111]]]},{"type":"MultiPolygon","id":2033,"properties":{"name":"Morens (FR)"},"arcs":[[[493,-473,-334,-485]]]},{"type":"MultiPolygon","id":2034,"properties":{"name":"Murist"},"arcs":[[[337,338,339,340,341,-263]]]},{"type":"MultiPolygon","id":2035,"properties":{"name":"Nuvilly"},"arcs":[[[464,-338,-262]]]},{"type":"MultiPolygon","id":2038,"properties
 ":{"name":"Prévondavaux"},"arcs":[[[-383,504]]]},{"type":"MultiPolygon","id":2039,"properties":{"name":"Rueyres-les-Prés"},"arcs":[[[484,-333,485]]]},{"type":"MultiPolygon","id":2040,"properties":{"name":"Russy"},"arcs":[[[-111,470,-451,-312,-325]]]},{"type":"MultiPolygon","id":2041,"properties":{"name":"Saint-Aubin (FR)"},"arcs":[[[-315,342,343,344,345]]]},{"type":"MultiPolygon","id":2043,"properties":{"name":"Sévaz"},"arcs":[[[-266,-322,-336,-472]]]},{"type":"MultiPolygon","id":2044,"properties":{"name":"Surpierre"},"arcs":[[[436,437,-381,438]]]},{"type":"MultiPolygon","id":2045,"properties":{"name":"Vallon"},"arcs":[[[476,477,-364,-344]]]},{"type":"MultiPolygon","id":2047,"properties":{"name":"Villeneuve (FR)"},"arcs":[[[-437,475]]]},{"type":"MultiPolygon","id":2049,"properties":{"name":"Vuissens"},"arcs":[[[411]]]},{"type":"MultiPolygon","id":2050,"properties":{"name":"Les Montets"},"arcs":[[[260,261,262,263,264,265,266,267,268]]]},{"type":"MultiPolygon","id":2051,"properties
 ":{"name":"Delley-Portalban"},"arcs":[[[-345,363,364,-180,365]]]},{"type":"MultiPolygon","id":2052,"properties":{"name":"Vernay"},"arcs":[[[332,333,334,335,-321,-27,336]]]},{"type":"MultiPolygon","id":2061,"properties":{"name":"Auboranges"},"arcs":[[[502,-434,-232]]]},{"type":"MultiPolygon","id":2063,"properties":{"name":"Billens-Hennens"},"arcs":[[[432,-238,-85]]]},{"type":"MultiPolygon","id":2066,"properties":{"name":"Chapelle (Glâne)"},"arcs":[[[501,-236,-299]]]},{"type":"MultiPolygon","id":2067,"properties":{"name":"Le Châtelard"},"arcs":[[[-332,357,358,-145,-328]]]},{"type":"MultiPolygon","id":2068,"properties":{"name":"Châtonnaye"},"arcs":[[[384,385,-270,386]]]},{"type":"MultiPolygon","id":2072,"properties":{"name":"Ecublens (FR)"},"arcs":[[[433,434,435,-233]]]},{"type":"MultiPolygon","id":2079,"properties":{"name":"Grangettes"},"arcs":[[[-89,-73,-455,-358,-331]]]},{"type":"MultiPolygon","id":2086,"properties":{"name":"Massonnens"},"arcs":[[[454,-72,-310,-413,-146,-359]]]},
 {"type":"MultiPolygon","id":2087,"properties":{"name":"Mézières (FR)"},"arcs":[[[-71,-87,-237,308,309]]]},{"type":"MultiPolygon","id":2089,"properties":{"name":"Montet (Glâne)"},"arcs":[[[-234,-436,499,-156]]]},{"type":"MultiPolygon","id":2096,"properties":{"name":"Romont (FR)"},"arcs":[[[236,-86,237,238,239,240]]]},{"type":"MultiPolygon","id":2097,"properties":{"name":"Rue"},"arcs":[[[230,231,232,233,-155,-154,234,235]]]},{"type":"MultiPolygon","id":2099,"properties":{"name":"Siviriez"},"arcs":[[[81,82,83,84,85,86,-70]]]},{"type":"MultiPolygon","id":2102,"properties":{"name":"Ursy"},"arcs":[[[152,153,154,155,156,-83]]]},{"type":"MultiPolygon","id":2111,"properties":{"name":"Villaz-Saint-Pierre"},"arcs":[[[412,-309,-241,413,414,-385,415,-147]]]},{"type":"MultiPolygon","id":2113,"properties":{"name":"Vuisternens-devant-Romont"},"arcs":[[[67,68,69,70,71,72,73]]]},{"type":"MultiPolygon","id":2114,"properties":{"name":"Villorsonnens"},"arcs":[[[144,145,146,147,148,149,150,151]]]},{"t
 ype":"MultiPolygon","id":2115,"properties":{"name":"Torny"},"arcs":[[[269,270,-109,271,-256,272]]]},{"type":"MultiPolygon","id":2116,"properties":{"name":"La Folliaz"},"arcs":[[[-416,-387,-273,-255,422,-148]],[[-240,449,-414]]]},{"type":"MultiPolygon","id":2121,"properties":{"name":"Haut-Intyamon"},"arcs":[[[9,10,11,12,13,14]]]},{"type":"MultiPolygon","id":2122,"properties":{"name":"Pont-en-Ogoz"},"arcs":[[[194,195,196,197,198,199,200,201]]]},{"type":"MultiPolygon","id":2123,"properties":{"name":"Botterens"},"arcs":[[[445,-281,446,-242,-34]]]},{"type":"MultiPolygon","id":2124,"properties":{"name":"Broc"},"arcs":[[[-5,-61,-81,279,280,281,282]]]},{"type":"MultiPolygon","id":2125,"properties":{"name":"Bulle"},"arcs":[[[-60,74,-58,75,76,77,78,79,80]]]},{"type":"MultiPolygon","id":2126,"properties":{"name":"Cerniat (FR)"},"arcs":[[[-7,31,32,33,34,35,36,37,-17]]]},{"type":"MultiPolygon","id":2127,"properties":{"name":"Charmey"},"arcs":[[[0,1,2,3,4,5,6,7,8]]]},{"type":"MultiPolygon","id":2
 128,"properties":{"name":"Châtel-sur-Montsalvens"},"arcs":[[[500,-282,-446,-33]]]},{"type":"MultiPolygon","id":2129,"properties":{"name":"Corbières"},"arcs":[[[241,242,243,-211,-35]]]},{"type":"MultiPolygon","id":2130,"properties":{"name":"Crésuz"},"arcs":[[[-6,-283,-501,-32]]]},{"type":"MultiPolygon","id":2131,"properties":{"name":"Echarlens"},"arcs":[[[443,-79,-348,-329,-243]],[[-247,-347,-77]]]},{"type":"MultiPolygon","id":2134,"properties":{"name":"Grandvillard"},"arcs":[[[61,-15,-39,-2]]]},{"type":"MultiPolygon","id":2135,"properties":{"name":"Gruyères"},"arcs":[[[-4,-40,-13,-55,55,56,57,58,59,60]]]},{"type":"MultiPolygon","id":2137,"properties":{"name":"Hauteville"},"arcs":[[[-36,210,211,-195,212,-63]]]},{"type":"MultiPolygon","id":2138,"properties":{"name":"Jaun"},"arcs":[[[-9,-16,21]]]},{"type":"MultiPolygon","id":2140,"properties":{"name":"Marsens"},"arcs":[[[-244,328,329,-90,330,331,-327,-196,-212]]]},{"type":"MultiPolygon","id":2143,"properties":{"name":"Morlon"},"arc
 s":[[[-80,-444,-447,-280]]]},{"type":"MultiPolygon","id":2145,"properties":{"name":"Le Pâquier (FR)"},"arcs":[[[-59,-75]]]},{"type":"MultiPolygon","id":2147,"properties":{"name":"Pont-la-Ville"},"arcs":[[[-213,-202,418,-218,-64]]]},{"type":"MultiPolygon","id":2148,"properties":{"name":"Riaz"},"arcs":[[[-78,346,-246,-274,-91,-330,347]]]},{"type":"MultiPolygon","id":2149,"properties":{"name":"La Roche"},"arcs":[[[-37,62,63,64,65,66]]]},{"type":"MultiPolygon","id":2152,"properties":{"name":"Sâles"},"arcs":[[[-53,87,-74,88,89,90,91]]]},{"type":"MultiPolygon","id":2153,"properties":{"name":"Sorens"},"arcs":[[[326,327,-152,-248,-197]]]},{"type":"MultiPolygon","id":2155,"properties":{"name":"Vaulruz"},"arcs":[[[-54,-92,273,-245,-56]]]},{"type":"MultiPolygon","id":2160,"properties":{"name":"Vuadens"},"arcs":[[[-57,244,245,246,-76]]]},{"type":"MultiPolygon","id":2162,"properties":{"name":"Bas-Intyamon"},"arcs":[[[38,-14,39,-3]]]},{"type":"MultiPolygon","id":2171,"properties":{"name":"Arcon
 ciel"},"arcs":[[[-220,389,390,-204,-352,391,392]]]},{"type":"MultiPolygon","id":2172,"properties":{"name":"Autafond"},"arcs":[[[497,-396,-424,-379]]]},{"type":"MultiPolygon","id":2173,"properties":{"name":"Autigny"},"arcs":[[[-150,387,-253,388,-276,-249]]]},{"type":"MultiPolygon","id":2174,"properties":{"name":"Avry"},"arcs":[[[398,-259,399,-372,400,401,402]]]},{"type":"MultiPolygon","id":2175,"properties":{"name":"Belfaux"},"arcs":[[[375,376,377,378,379,-223,-371]]]},{"type":"MultiPolygon","id":2177,"properties":{"name":"Chénens"},"arcs":[[[-149,-423,-254,-388]]]},{"type":"MultiPolygon","id":2179,"properties":{"name":"Chésopelloz"},"arcs":[[[-407,-401,-375,-394,-498,-378]]]},{"type":"MultiPolygon","id":2183,"properties":{"name":"Corminboeuf"},"arcs":[[[404,405,-402,406,-377,407]]]},{"type":"MultiPolygon","id":2184,"properties":{"name":"Corpataux-Magnedens"},"arcs":[[[-278,-205,-391,-427]]]},{"type":"MultiPolygon","id":2185,"properties":{"name":"Corserey"},"arcs":[[[-257,-272,-108
 ,-404]]]},{"type":"MultiPolygon","id":2186,"properties":{"name":"Cottens (FR)"},"arcs":[[[-277,-389,-252,-417,-207]]]},{"type":"MultiPolygon","id":2189,"properties":{"name":"Ependes (FR)"},"arcs":[[[-392,-351,408,-96,409,410]]]},{"type":"MultiPolygon","id":2192,"properties":{"name":"Farvagny"},"arcs":[[[-200,274,-250,275,276,-206,277,278]]]},{"type":"MultiPolygon","id":2194,"properties":{"name":"Ferpicloz"},"arcs":[[[508,-410,-95]]]},{"type":"MultiPolygon","id":2196,"properties":{"name":"Fribourg"},"arcs":[[[-143,299,300,301,302,303,-42,304]]]},{"type":"MultiPolygon","id":2197,"properties":{"name":"Givisiez"},"arcs":[[[-303,-421,-408,-376,-370,-464]]]},{"type":"MultiPolygon","id":2198,"properties":{"name":"Granges-Paccot"},"arcs":[[[-304,463,-369,-43]]]},{"type":"MultiPolygon","id":2200,"properties":{"name":"Grolley"},"arcs":[[[-380,423,-395,-323,-224]]]},{"type":"MultiPolygon","id":2206,"properties":{"name":"Marly"},"arcs":[[[348,349,350,351,-203,352,-301]]]},{"type":"MultiPolygon"
 ,"id":2208,"properties":{"name":"Matran"},"arcs":[[[-209,-418,-403,-406,-420]]]},{"type":"MultiPolygon","id":2211,"properties":{"name":"Neyruz (FR)"},"arcs":[[[-208,416,-260,-399,417]]]},{"type":"MultiPolygon","id":2213,"properties":{"name":"Noréaz"},"arcs":[[[371,372,-106,373,374]]]},{"type":"MultiPolygon","id":2216,"properties":{"name":"Pierrafortscha"},"arcs":[[[-142,430,431,-349,-300]]]},{"type":"MultiPolygon","id":2217,"properties":{"name":"Ponthaux"},"arcs":[[[393,-374,-105,-324,394,395]]]},{"type":"MultiPolygon","id":2220,"properties":{"name":"Le Mouret"},"arcs":[[[-66,92,93,94,95,96,97,98,99]]]},{"type":"MultiPolygon","id":2221,"properties":{"name":"Prez-vers-Noréaz"},"arcs":[[[-258,403,-107,-373,-400]]]},{"type":"MultiPolygon","id":2222,"properties":{"name":"Rossens (FR)"},"arcs":[[[-201,-279,426,-390,-219,-419]]]},{"type":"MultiPolygon","id":2223,"properties":{"name":"Le Glèbe"},"arcs":[[[247,-151,248,249,250,-198]]]},{"type":"MultiPolygon","id":2225,"properties":{"name
 ":"Senèdes"},"arcs":[[[-221,-393,-411,-509,-94]]]},{"type":"MultiPolygon","id":2226,"properties":{"name":"Treyvaux"},"arcs":[[[-65,217,218,219,220,-93]]]},{"type":"MultiPolygon","id":2228,"properties":{"name":"Villars-sur-Glâne"},"arcs":[[[-353,-210,419,-405,420,-302]]]},{"type":"MultiPolygon","id":2230,"properties":{"name":"Villarsel-sur-Marly"},"arcs":[[[-97,-409,-350,-432,-475]]]},{"type":"MultiPolygon","id":2231,"properties":{"name":"Vuisternens-en-Ogoz"},"arcs":[[[-199,-251,-275]]]},{"type":"MultiPolygon","id":2233,"properties":{"name":"Hauterive (FR)"},"arcs":[[[202,203,204,205,206,207,208,209]]]},{"type":"MultiPolygon","id":2234,"properties":{"name":"La Brillaz"},"arcs":[[[251,252,253,254,255,256,257,258,259]]]},{"type":"MultiPolygon","id":2235,"properties":{"name":"La Sonnaz"},"arcs":[[[368,369,370,-222,-306,-44]]]},{"type":"MultiPolygon","id":2243,"properties":{"name":"Barberêche"},"arcs":[[[305,-230,306,-129,-45]]]},{"type":"MultiPolygon","id":2250,"properties":{"name":
 "Courgevaux"},"arcs":[[[-441,478,479,-165,480,481]]]},{"type":"MultiPolygon","id":2251,"properties":{"name":"Courlevon"},"arcs":[[[-466,-442,-482,483,-457]]]},{"type":"MultiPolygon","id":2254,"properties":{"name":"Courtepin"},"arcs":[[[-307,-229,462,-130]]]},{"type":"MultiPolygon","id":2257,"properties":{"name":"Cressier (FR)"},"arcs":[[[455,456,457,458,459,-132]]]},{"type":"MultiPolygon","id":2258,"properties":{"name":"Fräschels"},"arcs":[[[-193,486]]]},{"type":"MultiPolygon","id":2259,"properties":{"name":"Galmiz"},"arcs":[[[-172,283,-215,284,285]]]},{"type":"MultiPolygon","id":2260,"properties":{"name":"Gempenach"},"arcs":[[[-492,-499,-174,-354,506]]]},{"type":"MultiPolygon","id":2261,"properties":{"name":"Greng"},"arcs":[[[-189,-166,-480,496]]]},{"type":"MultiPolygon","id":2262,"properties":{"name":"Gurmels"},"arcs":[[[-46,128,129,130,131,132,133,134,135,136]],[[507]]]},{"type":"MultiPolygon","id":2264,"properties":{"name":"Jeuss"},"arcs":[[[-133,-460,-467,-495]]]},{"type":"Mul
 tiPolygon","id":2265,"properties":{"name":"Kerzers"},"arcs":[[[190,191,192,193]]]},{"type":"MultiPolygon","id":2266,"properties":{"name":"Kleinbösingen"},"arcs":[[[-47,-137,487,-158]]]},{"type":"MultiPolygon","id":2270,"properties":{"name":"Lurtigen"},"arcs":[[[-496,-469,-175,498,-491]]]},{"type":"MultiPolygon","id":2271,"properties":{"name":"Meyriez"},"arcs":[[[-188,-168]]]},{"type":"MultiPolygon","id":2272,"properties":{"name":"Misery-Courtion"},"arcs":[[[221,222,223,224,225,226,227,228,229]]]},{"type":"MultiPolygon","id":2274,"properties":{"name":"Muntelier"},"arcs":[[[-171,-216,-284]]]},{"type":"MultiPolygon","id":2275,"properties":{"name":"Murten"},"arcs":[[[162,163,164,165,166,167,168,169,170,171,172,173,174]],[[-355,-285,-214,505]]]},{"type":"MultiPolygon","id":2276,"properties":{"name":"Ried bei Kerzers"},"arcs":[[[353,-173,-286,354,355,-191,356]]]},{"type":"MultiPolygon","id":2277,"properties":{"name":"Salvenach"},"arcs":[[[466,-459,467,-163,468,469]]]},{"type":"MultiPolyg
 on","id":2278,"properties":{"name":"Ulmiz"},"arcs":[[[-135,489,490,491,492]]]},{"type":"MultiPolygon","id":2279,"properties":{"name":"Villarepos"},"arcs":[[[-227,439,440,441,442]]]},{"type":"MultiPolygon","id":2280,"properties":{"name":"Bas-Vully"},"arcs":[[[213,214,215,-170,-187,-186,216]]]},{"type":"MultiPolygon","id":2281,"properties":{"name":"Haut-Vully"},"arcs":[[[185,186,-169,187,-167,188,189]]]},{"type":"MultiPolygon","id":2283,"properties":{"name":"Wallenried"},"arcs":[[[-463,-228,-443,465,-456,-131]]]},{"type":"MultiPolygon","id":2291,"properties":{"name":"Alterswil"},"arcs":[[[120,121,122,123,-113,124]]]},{"type":"MultiPolygon","id":2292,"properties":{"name":"Brünisried"},"arcs":[[[-425,-362,-138,-122,482]]]},{"type":"MultiPolygon","id":2293,"properties":{"name":"Düdingen"},"arcs":[[[40,41,42,43,44,45,46,47,48]]]},{"type":"MultiPolygon","id":2294,"properties":{"name":"Giffers"},"arcs":[[[-102,-368,427,-360]]]},{"type":"MultiPolygon","id":2295,"properties":{"name":"Bösin
 gen"},"arcs":[[[-48,157,158,159,160,161]]]},{"type":"MultiPolygon","id":2296,"properties":{"name":"Heitenried"},"arcs":[[[-119,-128,307]]]},{"type":"MultiPolygon","id":2298,"properties":{"name":"Oberschrot"},"arcs":[[[-19,-104,-363,424,425]]]},{"type":"MultiPolygon","id":2299,"properties":{"name":"Plaffeien"},"arcs":[[[15,-8,16,17,18,19,20]]]},{"type":"MultiPolygon","id":2300,"properties":{"name":"Plasselb"},"arcs":[[[-38,-67,-100,100,101,102,103,-18]]]},{"type":"MultiPolygon","id":2301,"properties":{"name":"Rechthalten"},"arcs":[[[-103,359,360,-140,-139,361,362]]]},{"type":"MultiPolygon","id":2302,"properties":{"name":"St. Antoni"},"arcs":[[[112,113,114,115,116,117,118,119]]]},{"type":"MultiPolygon","id":2303,"properties":{"name":"St. Silvester"},"arcs":[[[-99,366,367,-101]]]},{"type":"MultiPolygon","id":2304,"properties":{"name":"St. Ursen"},"arcs":[[[137,138,139,140,141,142,143,-123]]]},{"type":"MultiPolygon","id":2305,"properties":{"name":"Schmitten (FR)"},"arcs":[[[175,-49,-162
 ,-161,176,-116]]]},{"type":"MultiPolygon","id":2306,"properties":{"name":"Tafers"},"arcs":[[[-124,-144,-305,-41,-176,-115,-114]]]},{"type":"MultiPolygon","id":2307,"properties":{"name":"Tentlingen"},"arcs":[[[-428,-367,-98,474,-431,-141,-361]]]},{"type":"MultiPolygon","id":2308,"properties":{"name":"Ueberstorf"},"arcs":[[[-118,125,126,127]]]},{"type":"MultiPolygon","id":2309,"properties":{"name":"Wünnewil-Flamatt"},"arcs":[[[-177,160,-161,-160,184,-126,-117]]]},{"type":"MultiPolygon","id":2310,"properties":{"name":"Zumholz"},"arcs":[[[-20,-426,-483,-121,503]]]},{"type":"MultiPolygon","id":2321,"properties":{"name":"Attalens"},"arcs":[[[292,293,294,295,296]]]},{"type":"MultiPolygon","id":2323,"properties":{"name":"Bossonnens"},"arcs":[[[-295,-448,460]]]},{"type":"MultiPolygon","id":2325,"properties":{"name":"Châtel-Saint-Denis"},"arcs":[[[-11,22,23,24,25]]]},{"type":"MultiPolygon","id":2328,"properties":{"name":"Granges (Veveyse)"},"arcs":[[[447,-294,448]]]},{"type":"MultiPolygon",
 "id":2333,"properties":{"name":"Remaufens"},"arcs":[[[-24,396,-297,397]]]},{"type":"MultiPolygon","id":2335,"properties":{"name":"Saint-Martin (FR)"},"arcs":[[[290,291,-178,-51]]]},{"type":"MultiPolygon","id":2336,"properties":{"name":"Semsales"},"arcs":[[[-12,-26,49,50,51,52,53,54]]]},{"type":"MultiPolygon","id":2337,"properties":{"name":"Le Flon"},"arcs":[[[297,298,-235,-153,-82,-69,-179,-292]]]},{"type":"MultiPolygon","id":2338,"properties":{"name":"La Verrerie"},"arcs":[[[-52,177,178,-68,-88]]]},{"type":"MultiPolygon","id":2391,"properties":{"name":"Staatswald Galm"},"arcs":[[[-134,494,-470,495,-490]]]},{"type":"MultiPolygon","id":9153,"properties":{"name":"Lac de Neuchâtel (FR)"},"arcs":[[[26,27,28,29,30]],[[179,180,181,182,183]]]}]}},"arcs":[[[8098,2195],[-64,-55],[-137,-72],[-103,-34],[-62,-4],[-75,-52],[-16,5],[-84,-37],[-33,-24],[-40,-60],[-51,-50],[-46,-55],[-77,-76],[-35,-22],[-104,126],[-4,29],[-116,78],[-20,9],[-23,-31],[-52,-39],[-79,-74],[-24,-6],[-128,-84],[-89,-40]
 ,[-58,-42],[-71,-29],[-96,8],[-72,20]],[[6339,1584],[-1,38],[-19,66]],[[6319,1688],[23,30],[80,30],[63,54],[28,9],[29,38],[57,49],[33,15],[-82,55],[-16,26],[-92,69],[31,10],[-21,43],[-38,41],[-20,4],[-28,46],[43,33],[11,40],[58,78],[12,71],[39,24],[33,38],[26,72],[-43,48],[13,72]],[[6558,2683],[-45,71],[-18,11],[-28,74],[-24,26]],[[6443,2865],[-18,34],[-29,19],[-14,33],[-92,23],[-81,75]],[[6209,3049],[18,6],[6,49],[115,69],[10,21],[34,4],[-22,28],[33,28],[19,40]],[[6422,3294],[65,16],[12,42],[71,54],[23,33],[78,21],[23,35],[83,36],[44,45],[46,34],[49,-3],[10,24],[20,-15],[52,19],[65,38],[56,53],[28,6],[61,-4],[32,-19],[91,-9],[60,6],[44,24],[73,2],[21,25],[132,76],[83,35],[101,6],[34,72],[104,8],[45,29],[75,10]],[[8103,3993],[20,3],[26,-29],[74,-37],[59,2],[26,-10],[24,-30],[30,-4],[32,21]],[[8394,3909],[63,-36],[-27,-25],[4,-37],[53,-11],[32,-50],[8,-55],[-32,-16],[-44,-41],[-6,-42],[-18,-32],[-56,-23],[-33,-32],[8,-14],[-46,-30],[-19,-40],[-47,-30],[13,-34],[-122,-74],[-65,0],[-67
 ,-51],[-33,-2],[-31,-77],[-123,-6],[-92,-49],[-18,-26],[-83,-26],[-55,-54],[-74,-47],[-24,-30],[-59,-46],[-22,-32],[-38,25],[-115,25],[-36,-22],[-12,-26],[10,-44],[-35,-63],[-17,-79],[7,-21],[-13,-72],[-67,-41],[16,-42],[-16,-28],[0,-67],[24,-47],[-6,-99],[244,14],[151,165],[58,18],[115,15],[-22,-32],[12,-29],[46,-4],[121,-94],[135,-50],[157,-48]],[[5726,985],[-46,-38],[-21,-51],[-79,-40],[-37,25],[-144,-26],[-32,15],[-70,0],[-78,20],[-81,-42],[-37,9],[-66,37],[-75,-30],[-33,-37],[-73,-43],[-56,-16],[-49,-49],[-59,-42],[-88,-40],[-159,-131],[-27,-48],[-31,-14],[-73,-68],[15,-15],[-17,-84],[-37,-118],[-10,14],[-80,-24],[-64,-29],[-89,-25],[-121,-68],[-118,-27],[-55,1],[-5,13],[37,55],[98,121],[-42,77],[-57,46],[-47,57],[-42,1],[-17,37],[-11,112],[10,51],[-14,51],[54,38]],[[3700,660],[32,52],[62,67],[9,69],[28,29],[44,75],[-6,59],[-17,54],[9,55],[88,57],[71,27],[26,22],[-12,43],[-19,7],[-2,49],[-38,72],[25,35],[22,137],[22,3],[36,39],[-40,36],[-22,44]],[[4018,1691],[54,42],[11,57],[36
 ,33],[-8,20],[30,41],[33,11]],[[4174,1895],[117,1],[46,-12],[12,-37],[24,3],[44,-23],[7,-22],[26,0],[92,55]],[[4542,1860],[63,-61],[61,6],[51,13],[-1,-18],[51,2],[40,-17],[-10,-22],[30,-17],[129,-8],[115,-19]],[[5071,1719],[-10,-10],[-5,-110],[27,-25],[51,73],[42,-18],[-19,-36],[31,-19],[31,37],[0,-20],[74,-45],[111,-32],[69,-15],[8,-38],[-30,-62],[124,-67],[-42,-69],[-60,-52],[14,-33],[53,-17],[33,7],[-20,-62],[3,-30],[70,-24],[100,-67]],[[8944,3482],[-70,-17],[-74,48],[-17,42],[16,19],[101,61],[22,35],[42,25],[21,38],[38,21],[-153,95],[-64,21],[-11,49],[-80,47],[-16,34],[-79,70],[-78,-20],[-34,5],[-59,-61],[-55,-85]],[[8103,3993],[-89,103]],[[8014,4096],[40,48],[42,72],[3,64],[78,95],[24,79],[0,82],[-6,33],[80,40],[-8,48],[45,42],[-35,33],[13,17],[-36,88],[-27,17]],[[8227,4854],[31,19],[68,13],[60,-11],[-24,88],[-48,114],[-10,60],[34,14],[31,64],[-9,36],[95,35],[44,39],[23,42],[74,14],[28,31],[37,63]],[[8661,5475],[49,29],[43,40],[37,-2]],[[8790,5542],[2,-40],[24,-20],[-11,-56],[-
 38,-62],[-48,-50],[-24,-63],[-13,-129],[11,-58],[56,-82],[113,-82],[34,17],[93,-8],[217,-28],[31,-17],[90,-16],[50,5],[27,-15],[93,-18],[30,-26],[3,-45],[-16,-56],[-54,-63],[0,-52],[227,-17],[35,23],[36,-76],[58,-41],[83,-8],[48,9],[51,-44],[-17,-2],[-49,-40],[-2,-24],[30,-51],[-63,-41],[-14,-26],[41,-49],[15,-34],[-42,-39],[-44,-61],[24,-32],[-22,-67],[10,-16],[-16,-34],[4,-32],[-24,-28],[-3,-33],[128,13],[-179,-129],[-61,-20],[-2,-18],[-52,-47],[-26,-86],[-29,46],[8,60],[-20,24],[-49,14],[-17,25],[5,48],[-42,22],[-50,45],[-71,1],[-98,-13],[-51,9],[-26,-11],[-89,12],[-40,-12],[109,-148],[28,-79],[-44,-52],[-79,-30],[-135,-7]],[[8944,3482],[-13,-108],[-7,-155],[91,-55],[6,-43],[-32,-119],[-22,-157],[92,-152],[-87,-25],[-41,-21],[-29,-66],[-42,-73],[-71,-27],[-69,-11],[-136,36],[-109,47],[-35,6],[-67,-56],[-11,-20],[-50,-28],[-105,-117],[-44,-71],[-65,-72]],[[3700,660],[-87,53],[-32,48],[2,27],[-23,53],[12,26],[-11,28],[17,11],[-30,38],[-26,-7],[-69,36],[-33,54],[-115,59],[-29,42],[-
 57,14],[-44,-24],[-69,-1],[-24,15],[-22,-14],[-68,-4],[-41,11],[-59,57],[-36,-4],[-38,53],[-83,21],[-50,30],[-58,12],[-26,37],[-20,-15],[-93,15],[-50,1],[7,-16],[-28,-35],[-63,-45],[-11,26],[16,64],[27,33],[-14,100],[-22,-20],[-191,-102]],[[2159,1337],[3,47],[43,63],[31,77],[18,0],[22,52],[-12,50],[18,106],[-9,3],[47,97],[0,43],[-15,44],[24,36],[17,45],[26,25],[-12,41],[22,22],[-39,20],[-18,34]],[[2325,2142],[18,-4],[40,27],[33,-17],[46,26]],[[2462,2174],[59,57],[37,-24],[51,6],[15,-27],[-17,-38],[61,-18],[54,-32],[71,10],[20,19],[106,2],[35,-22],[6,-22],[70,-11],[49,-35],[142,-84],[65,-23],[45,1],[60,-36],[63,-10],[184,43],[98,16],[85,-25],[22,-58],[-4,-32],[45,-32],[21,-54],[26,-15],[12,-39],[75,0]],[[2342,7915],[-26,-38],[-72,-31],[3,-22],[-53,-69],[-43,-38],[-47,-21],[-53,-50],[-16,-36],[-61,-24],[-14,-19],[-45,-14],[0,-23]],[[1915,7530],[-64,-46],[-32,-51],[-28,9],[-34,-22],[-46,-4],[-14,-24],[-66,-15],[-49,-46],[10,-19],[-79,-3],[22,-22],[-22,-39],[-53,-32],[1,-14],[-86,-41],[
 -24,4],[-85,-34],[-11,-22],[-40,0],[-38,-18],[-39,16],[-42,-25],[-32,-35],[-34,-9]],[[1030,7038],[-79,-61],[-45,-19],[-46,-48],[-69,-45]],[[791,6865],[-43,-13],[-51,-67],[-89,-82],[-21,-3],[-91,-75],[-110,-78]],[[386,6547],[-386,329],[595,440],[382,276],[973,716],[245,-244],[147,-149]],[[6422,3294],[-42,2],[-20,18],[2,27],[-94,-14],[-51,45],[-42,-8],[-53,12]],[[6122,3376],[-18,4]],[[6104,3380],[0,26],[35,29]],[[6139,3435],[5,57],[46,40],[51,31],[0,29],[91,29],[-36,83],[37,71]],[[6333,3775],[66,48],[-3,39],[76,53],[47,-27],[49,0],[48,-31],[46,-15],[-10,53],[80,22],[29,49],[20,68],[-9,42]],[[6772,4076],[50,43],[23,6],[46,39],[172,101],[89,22],[9,56],[55,42],[32,14],[145,28],[23,15],[-6,57],[19,24]],[[7429,4523],[29,41],[-3,31],[33,20],[16,35],[61,17],[40,43],[54,12],[21,22],[78,31],[26,-19],[10,-51],[33,-39],[-2,-36],[22,-16],[15,-45],[37,-42],[32,-62],[20,-8],[24,-38],[-23,-46],[-29,-24],[-38,-57],[4,-51],[16,-82],[30,-25],[79,-38]],[[6319,1688],[-98,32],[63,113],[-143,0],[-25,-47],[
 -47,13],[-27,59],[-36,40],[-74,-10],[-41,25],[-117,44],[-22,29],[-14,-6],[-73,6],[-65,32],[22,31],[-43,8],[1,24],[-118,-9],[-82,46],[-83,-80],[-23,-37],[-28,-86],[-30,-45],[-48,-43],[-40,-63],[-57,-45]],[[4542,1860],[19,8],[96,80],[-33,44],[-34,23],[46,34],[30,4],[33,27],[-47,61],[38,75],[70,62],[55,-12],[9,19],[71,31],[29,28],[22,-10],[57,5],[92,31],[15,18],[21,-15],[39,17],[51,3],[71,41],[85,-20],[-3,-17],[107,-22],[30,35],[100,4],[31,12],[34,40],[66,37],[73,8],[18,12],[73,8],[57,23],[55,-3],[29,19],[109,-4],[71,11],[98,29],[95,35],[12,12],[126,30]],[[7680,6864],[-37,-34],[10,-16],[-12,-40],[-59,-15],[-43,45],[-35,-11],[-50,1],[-141,-23],[-171,-136],[-69,-13],[-20,-26],[-99,-61],[-75,-16]],[[6879,6519],[-80,84],[-10,78],[-38,1],[-18,30]],[[6733,6712],[-2,47],[-30,52],[-35,18],[-111,14],[-52,25],[-52,47],[-104,26]],[[6347,6941],[-36,63],[-7,79],[8,115]],[[6312,7198],[290,75],[102,159],[267,237],[-21,79],[38,48]],[[6988,7796],[81,28]],[[7069,7824],[44,-41],[31,-8],[52,18]],[[7196,77
 93],[101,-93],[-16,-36],[24,-27],[32,-7],[54,23],[-4,-16],[101,-40],[22,14],[31,-17]],[[7541,7594],[-25,1],[-36,-32],[28,-62],[4,-80],[75,-32],[-15,-55],[31,-48],[-45,-45],[18,-77],[23,-27],[-85,-35],[-4,-15],[46,-49],[-25,-55],[38,-9],[-3,-26],[26,1],[51,-57],[37,-28]],[[2462,2174],[-37,41],[-8,58],[41,52],[-59,17]],[[2399,2342],[43,41],[50,3]],[[2492,2386],[32,-9],[67,17],[8,16],[77,55],[20,44],[104,148],[94,-52],[27,34],[32,-18],[116,105],[90,60],[26,35],[70,58]],[[3255,2879],[88,23],[82,41]],[[3425,2943],[18,-52],[53,-52],[37,-57],[77,-73],[31,-67],[62,-101],[45,-32],[92,-38],[39,-27],[44,-10],[83,-48]],[[4006,2386],[-125,-101],[-5,-20],[-90,-72],[-17,-30],[1,-36],[-34,-30],[-16,-44],[37,-28],[105,-24],[75,25],[237,-131]],[[4006,2386],[12,8]],[[4018,2394],[39,2]],[[4057,2396],[7,71],[35,12],[-3,76],[47,18],[44,-7],[26,77],[54,69],[-40,9],[13,28],[-19,17],[6,44],[19,33],[22,-2],[91,39],[15,-23],[10,-105],[47,-154],[-17,-48],[23,-45],[-26,-52],[-91,-47],[-18,-43],[19,-35],[64,-1],
 [14,-14],[23,20],[65,28],[9,29],[48,-5],[85,48]],[[4629,2433],[106,47],[106,20],[47,-8],[1,23],[34,31],[47,5],[13,22],[44,11],[15,25],[-13,16],[31,19],[-15,13],[28,22],[24,51]],[[5097,2730],[77,46],[12,38],[19,8],[40,-59],[18,-11],[31,27],[-32,37],[23,13],[13,50],[74,7],[34,28],[42,-19],[29,15]],[[5477,2910],[9,-62],[20,-62],[47,-72],[31,-65],[-2,-22],[103,-43],[152,22],[52,15],[31,-5],[89,22],[99,37],[70,34],[21,23],[98,61],[26,30],[120,42]],[[6339,1584],[-47,-25],[-26,-40],[-8,-52],[-37,-27],[-14,-59],[-47,-67],[-13,-79],[-84,-69],[-71,-26],[3,-7],[-62,-72],[-73,-21],[-134,-55]],[[6772,4076],[-106,7],[-64,-5],[-59,-32],[-100,33],[-125,52],[-75,66],[-55,18],[-51,31],[-31,4],[-94,36],[-81,41],[-63,40]],[[5868,4367],[24,18],[-2,39],[34,39],[-22,68],[30,28],[40,68],[19,15],[-14,25],[10,47],[-28,35],[2,30],[29,57],[52,36]],[[6042,4872],[42,0],[94,-27],[61,2],[21,20],[59,14],[104,-33],[11,24],[50,-6],[-6,-20],[39,-23],[29,2],[193,-68],[93,-25],[61,-90],[47,14],[109,-43]],[[7049,4613],[6
 ,7]],[[7055,4620],[67,-33],[74,7],[51,-5],[40,-29],[48,-13],[62,-5],[32,-19]],[[3097,3156],[-64,-21],[-51,-36],[1,25],[-63,18],[-19,-15],[-40,39],[-69,25],[-106,-39],[-71,-18],[-8,14],[-57,-23]],[[2550,3125],[-53,24],[-80,69],[-35,38],[-9,29],[-40,-10],[-86,1],[7,29]],[[2254,3305],[66,52],[36,-8],[27,52],[-33,40],[-57,7],[1,50],[12,21],[44,-6],[29,56],[55,6],[40,25],[33,60],[68,54],[34,-46],[71,-20],[46,30],[11,38],[23,24],[-26,29],[-2,29],[37,72],[22,-15],[28,34],[29,53],[-16,20],[25,68]],[[2857,4030],[37,-4],[0,39],[41,-28],[61,35],[10,22],[61,31],[58,62],[40,75],[32,91],[26,38],[29,12],[75,1],[34,36],[19,40],[21,1],[4,27],[36,-12]],[[3441,4496],[31,1],[12,-29],[-54,-42],[21,-12]],[[3451,4414],[-32,-22],[-7,-31],[-45,-34],[-9,-63],[-26,0],[-5,-37],[-33,-26],[123,-84],[36,25],[24,-29],[55,31],[4,-45],[50,-38],[72,-9],[22,-59],[58,-31],[47,9],[56,-59],[-42,-14],[90,-50],[-6,-16]],[[3883,3832],[-25,2],[-72,29],[-44,-29],[-33,31],[-49,65],[-23,14],[-53,-32],[-73,24],[-55,-11],[0,-14],
 [-66,-33],[6,-15],[-32,-24],[-36,17],[-10,-32],[-38,-2],[-64,13],[-30,-57],[-6,-74],[-26,-20],[30,-23],[-21,-25],[17,-14],[-44,-31],[7,-26],[69,-86],[5,-40],[21,-3],[-42,-75],[1,-16],[40,-29],[-36,-37],[50,-53],[-28,-59],[-32,-18],[-46,40],[-48,-33]],[[5097,2730],[-16,15],[-50,2],[30,19],[-25,33],[-59,44],[-39,-34],[-68,49],[23,15],[-28,27],[-67,-34],[-64,-54],[-38,9],[4,16],[-35,40],[-26,112],[44,20],[16,39],[-51,-9],[-76,-50],[-42,-46],[48,-37],[41,-80],[18,-16],[4,-38],[28,-46],[86,-67],[-22,-31],[13,-15],[-51,-14],[-56,-43],[17,-24],[-89,-38],[-6,-44],[41,-21],[27,4]],[[4057,2396],[-24,27],[-58,24],[-41,71],[-30,39],[50,51],[12,98],[53,64],[43,93],[43,52],[48,8],[57,-6],[8,36],[36,16],[-10,27],[48,21],[124,24],[60,-29],[53,38],[21,45],[35,-3],[3,46],[-31,-6],[-7,26],[28,43],[-56,73],[35,5],[36,28],[-48,46]],[[4545,3353],[24,22],[-17,14],[21,19],[-34,4],[-34,46]],[[4505,3458],[-8,31],[98,73],[46,-5],[38,-42],[48,-35],[50,6],[60,-34],[-10,-9],[83,13],[63,-17],[80,25],[139,-75],[39
 ,39],[26,47]],[[5257,3475],[61,-11],[18,-24]],[[5336,3440],[-37,-13],[1,-18],[-71,-40],[27,-34],[-14,-20],[14,-34],[-27,-25],[8,-54],[-34,-30],[36,-24],[50,-13],[38,4],[16,37],[22,14],[22,-52],[-9,-26],[53,-20],[61,10]],[[5492,3102],[-48,-90],[66,-38],[-30,-33],[-3,-31]],[[2254,3305],[-61,18],[-14,-33],[-39,-8]],[[2140,3282],[-43,-16],[-23,12],[-81,-19],[-60,24],[-50,-4],[10,40],[24,23],[-73,14],[3,73],[-17,59],[15,57],[36,36],[-79,40],[13,30],[-52,27],[-21,-14],[-46,33],[-23,89],[38,35],[2,17]],[[1713,3838],[50,33],[44,46],[56,-28],[45,9],[35,33],[-12,24],[17,15],[-61,30],[44,75],[71,75]],[[2002,4150],[33,44],[88,5],[-9,-12],[77,-26],[52,11],[25,27],[85,41]],[[2353,4240],[25,-36],[-25,-25],[79,-23],[31,55],[34,-24],[57,-21],[25,19],[28,-11]],[[2607,4174],[7,-14],[-43,-64],[31,-32],[104,-26],[35,-27],[30,-7],[46,33],[40,-7]],[[3255,2879],[-30,43],[-33,115],[-61,88],[-34,31]],[[3883,3832],[55,3],[79,30]],[[4017,3865],[12,-22],[47,4],[8,-15],[44,16],[25,-17],[7,-34],[17,4],[14,-30]],[
 [4191,3771],[22,-39],[0,-29],[33,-20],[-14,-31],[24,-9],[-47,-51],[13,-17]],[[4222,3575],[-56,-53],[-24,-37],[-72,-22],[-11,-12],[-80,-37],[-76,-3],[-99,-53],[-7,-19],[-30,16],[-41,-14],[-57,-42],[-50,1],[-92,-48],[-53,-44],[44,-41],[-36,-12],[-58,-57],[-114,-60],[56,-39],[9,9],[50,-65]],[[7049,4613],[-79,62],[-82,94],[-60,28],[-5,27],[-46,35],[8,50],[-28,70],[-43,39],[-92,32],[-22,53],[-66,59],[-95,20],[-13,21],[-50,22],[28,69],[-34,24]],[[6370,5318],[23,29],[43,13]],[[6436,5360],[85,13],[89,-4],[56,-11],[61,10],[-4,34],[-32,25],[-2,72],[-25,46]],[[6664,5545],[-10,62]],[[6654,5607],[52,35],[48,-16],[33,13],[110,13],[27,-7],[91,-64]],[[7015,5581],[7,-22],[37,-23],[20,5]],[[7079,5541],[35,-30],[0,-26],[23,-9],[49,-45],[2,-14],[90,-59],[22,-23],[-2,-46],[59,-24],[101,21],[28,-50],[-34,-9],[-35,-53],[9,-60],[-23,-3],[8,-41],[-20,-36],[27,-53],[20,-77]],[[7438,4904],[-25,-5],[-16,-26],[-66,-39],[-34,6],[-11,-34],[-24,-19],[-1,-30],[-146,-71],[-3,-18],[-57,-48]],[[7438,4904],[46,14],[153
 ,16],[10,63],[43,27],[40,39],[28,6],[6,38],[28,23],[15,44],[0,56],[-25,19]],[[7782,5249],[-8,18],[26,26],[81,19],[6,54],[36,30],[2,21],[-26,10],[4,32],[70,34]],[[7973,5493],[0,2]],[[7973,5495],[59,-97],[8,-76],[61,-23],[37,-37],[33,-5],[0,-37],[-74,-5],[10,-59],[46,-40],[-5,-43],[-18,-19],[8,-68],[77,-55],[18,-37],[-6,-40]],[[4406,6681],[20,-37],[37,-7],[-9,-16]],[[4454,6621],[-138,-24],[-33,1],[14,-35],[-137,-85],[54,-58],[-28,-30],[57,-58],[-16,-40]],[[4227,6292],[-47,-13],[-50,-41],[-79,-26],[-89,-10],[-63,-57],[10,-28],[-22,-16]],[[3887,6101],[-22,-30],[-30,-15],[-34,-35],[-60,-22],[-20,-44]],[[3721,5955],[-70,64],[-70,42],[-21,34],[-12,51],[-68,25],[-42,26],[-57,5]],[[3381,6202],[-28,3],[6,38],[-14,15],[31,25],[37,48],[43,37],[47,24],[9,28],[-48,31],[19,18],[-54,46],[-54,56],[23,18],[-42,48],[49,46],[-28,20],[48,85],[68,82],[45,-22],[28,-40],[36,-13],[14,12],[29,-30],[70,-1],[88,-18],[6,27],[69,51],[0,31],[43,38]],[[3921,6905],[21,44],[54,-8],[-12,-32],[27,1]],[[4011,6910],[20,
 -2],[44,-78],[41,-39],[19,-37],[99,-79],[96,-14],[76,20]],[[8779,6246],[-90,36],[-83,-32],[-10,42],[-34,30],[-31,52],[-70,9],[-8,15],[-59,-8],[-48,22],[-16,-36],[-80,1],[-35,-14],[-44,31],[-54,18],[-26,25],[-19,41],[-10,91],[-38,66]],[[8024,6635],[-38,43]],[[7986,6678],[34,44],[-2,36],[26,53],[-14,54]],[[8030,6865],[42,44],[63,25],[34,45],[-14,19],[18,71],[52,75],[95,54],[-29,40],[29,11],[60,-4],[1,35],[27,18],[53,1],[16,26]],[[8477,7325],[82,12]],[[8559,7337],[-9,-40]],[[8550,7297],[-7,-19],[-54,-56],[-89,-25],[-34,-52],[15,-71],[46,-10],[18,-31],[54,-30],[6,-28],[-32,-23],[44,-54],[39,-15],[108,-79],[-10,-30],[11,-39],[-27,-30],[38,-27],[65,12],[4,-13],[56,27],[40,1],[-15,34],[70,8],[35,28],[74,28],[48,-5]],[[9053,6798],[17,-56],[-2,-31],[-29,-55],[20,-37],[-44,-18],[-41,-33],[-18,-28],[-54,-44],[-18,-53],[2,-35],[-20,-23],[-9,-50],[-39,-57],[-39,-32]],[[8677,5750],[-61,-30]],[[8616,5720],[-12,16],[-27,-17],[-24,31],[-129,-15],[-47,59],[-88,10]],[[8289,5804],[51,104],[-39,61],[21,
 50],[-84,57],[-41,2],[-4,62],[-24,12],[-4,26],[-32,27],[-79,20],[-14,-8],[-113,-2],[-74,-22],[2,-11],[-95,7],[-80,-15],[-81,11],[-8,32],[-19,-3],[-30,54],[-40,10],[-38,57],[-8,50],[-46,44]],[[7410,6429],[42,36],[40,13],[-12,26],[36,45],[31,8],[29,-15],[108,-14],[62,4],[42,18],[55,45],[20,-3],[24,29],[46,30],[32,-13],[59,-3]],[[8779,6246],[-6,-51],[23,-34],[-23,-43],[38,-40],[0,-16],[-62,-45],[4,-28],[-69,-31],[-17,-34],[-63,-36],[-14,-22],[42,-14],[2,-53],[43,-49]],[[8559,7337],[71,58],[-8,41],[41,20],[-23,11],[37,8],[31,30],[-2,26],[-32,6],[-10,46],[71,19],[38,29],[-34,31],[-16,47],[28,19],[18,59],[28,20],[91,26],[16,30],[33,14],[13,25],[97,2],[57,-14],[25,10],[86,-3],[18,-12],[174,31],[55,-5],[57,12]],[[9519,7923],[56,-33],[8,-23],[-18,-169],[22,-87],[57,-21],[15,-23],[-7,-65],[21,-35],[-24,-43],[-52,-34],[-43,-65],[-37,-30],[-33,7],[-32,-24],[-81,-29],[-28,-22],[-26,10],[-37,41],[-15,-14],[-50,-8],[-71,13],[-39,52],[43,35],[30,-15],[47,30],[-47,34],[-103,33],[-58,-15],[6,30],[-22
 ,5],[-60,-33],[12,-27],[-20,-8],[0,-55],[-41,-10],[-115,-52]],[[8777,7273],[-91,-22],[-60,-37],[-38,76],[-38,7]],[[6988,7796],[-30,41],[-36,-18],[-39,15],[2,-25],[-27,14],[-63,-23],[-32,-48],[-14,10],[-64,-15],[-54,-23],[-3,-16],[-53,-17],[-2,-30],[25,-50],[-19,-38],[7,-40],[-75,7],[-36,-22],[-69,15],[4,-68],[-46,-34],[-60,-7],[-21,19],[-2,33],[21,29],[-11,19]],[[6291,7524],[-31,22],[-25,38],[27,50],[5,39],[-77,-19],[-108,72],[-50,-11]],[[6032,7715],[0,39],[-31,48],[-3,67]],[[5998,7869],[35,42],[28,-10],[37,35],[31,-27],[24,21],[42,-1],[55,39],[66,29],[-3,24],[115,15],[83,31],[-8,30],[66,-4]],[[6569,8093],[69,-5],[82,25],[87,-9],[-6,36],[45,10],[-6,16]],[[6840,8166],[56,36],[-51,48],[60,47],[114,44],[-81,29],[-55,-15],[-28,25],[24,45],[31,4],[81,33],[28,31],[26,2],[14,28]],[[7059,8523],[10,32],[24,-5],[8,-31],[-14,-29],[88,2],[33,14],[54,-7]],[[7262,8499],[27,-65],[2,-30],[-19,-24],[3,-38],[27,-62],[-39,-15],[-14,-34],[-87,-45],[-61,-13],[-114,-45],[120,-25]],[[7107,8103],[-16,-22],
 [-26,-84],[-30,-29],[46,-30],[-56,-52],[10,-22],[46,-26],[-12,-14]],[[8289,5804],[-35,7]],[[8254,5811],[-24,-14],[-13,29],[-56,-14]],[[8161,5812],[-14,17],[-137,72],[-63,-19],[-58,-5],[-46,44],[-81,1],[-50,-32],[-42,39],[1,-32],[-58,22],[-54,-15],[-29,-54]],[[7530,5850],[-20,-1],[-81,63],[-41,-7],[-83,31],[-36,3],[-37,42],[-65,13]],[[7167,5994],[-11,36],[-65,39],[-46,10],[-2,33],[42,14],[-14,22],[28,56],[-87,-8],[-12,-22],[-50,-7],[-56,8],[-70,-8],[-11,61],[-20,26]],[[6793,6254],[81,59],[-17,17],[55,11],[6,33],[-30,36]],[[6888,6410],[74,-8],[38,36],[85,26],[68,10],[23,20],[32,2],[117,-34],[50,-32],[35,-1]],[[4361,4212],[-152,48],[-71,9],[-38,22],[-41,40],[-41,24],[-55,55],[-32,9]],[[3931,4419],[-51,92],[-72,58],[27,13],[-31,56],[1,22],[-33,26],[-22,35],[32,38],[-55,32]],[[3727,4791],[11,18],[-37,17],[12,27],[-28,30],[24,31],[-49,14],[-29,-31],[-40,-17],[-14,56],[-33,46],[-17,1],[30,57],[-17,42],[12,31],[52,54],[42,25]],[[3646,5192],[50,31],[82,16],[22,21],[72,3]],[[3872,5263],[20,2]
 ,[12,-28],[38,-19],[36,9],[45,-61],[41,5],[10,24],[57,-8]],[[4131,5187],[42,-23],[-66,-18],[24,-43]],[[4131,5103],[2,-22],[52,-8],[43,-79],[-4,-15],[-39,-7],[3,-18],[-67,-28],[5,-14],[-39,-27],[30,-88],[65,-75],[-16,-13],[23,-32],[77,16],[34,-17],[51,-80],[17,-95],[47,9],[22,-33],[57,-44],[24,2],[40,-33],[12,-25],[90,-42]],[[4660,4335],[-95,-30],[-204,-93]],[[2140,3282],[-15,-37],[-49,-6],[-27,-39],[36,-23],[-55,-100],[-42,-19],[-47,37],[-21,-56],[-42,20],[-41,-57],[-17,22],[-40,-22],[-31,-39],[-18,-64],[-22,-25],[-63,11]],[[1646,2885],[-31,0],[18,23],[-37,40]],[[1596,2948],[-49,35],[26,15],[25,57],[40,10],[27,25],[11,38],[-40,30],[-96,1],[-18,8],[7,31],[-47,13],[9,23],[-26,1],[3,50],[22,17],[-4,48],[-72,-12],[-154,14],[0,28],[-28,65],[-64,18]],[[1168,3463],[42,74],[29,18],[-14,61],[-40,94],[-24,8]],[[1161,3718],[-19,14],[57,45],[80,115],[49,39],[39,-13],[32,42],[45,-15],[32,20],[90,-31],[-30,-36],[32,-20],[16,13],[129,-53]],[[7196,7793],[28,61],[117,98],[113,121]],[[7454,8073],[72,
 78],[41,24],[88,13],[-18,-29],[26,2],[19,-37],[46,-20],[16,-18],[112,-4],[17,43],[104,-27],[114,-12],[50,-17],[62,-55],[32,-15],[69,-10],[107,-48],[36,-8]],[[8447,7933],[-5,-16],[-130,23],[-59,-23],[5,-13],[-41,-28],[-56,6],[-41,-16],[-2,-28],[-32,-2],[2,-39],[-18,-20],[10,-26],[33,-17],[-25,-27],[-4,-56],[-85,-27],[-1,-30],[-23,-1],[28,-53],[-40,-12]],[[7963,7528],[-1,0]],[[7962,7528],[-35,-43],[-114,-10],[-43,14],[-47,41],[-55,-18],[-9,22],[-71,-8],[0,67],[-47,1]],[[6462,8544],[-139,-66],[-49,-12],[-25,-22],[-63,-13],[-9,-12]],[[6177,8419],[-18,45],[-42,-1],[-31,-18],[-37,-2],[-37,14],[-49,-20],[-73,-17],[-41,-18]],[[5849,8402],[-41,-2],[-57,78],[-93,-122],[-52,-31]],[[5606,8325],[-30,16],[-3,57],[-51,95],[-162,169]],[[5360,8662],[75,42]],[[5435,8704],[180,-189],[58,-51],[138,87],[-41,66],[-171,180]],[[5599,8797],[92,52]],[[5691,8849],[89,51]],[[5780,8900],[159,-168],[56,-23],[60,44],[63,29],[-8,7],[181,103],[20,-8],[32,44]],[[6343,8928],[96,-74],[7,-19],[104,26],[15,29],[106,46],
 [-19,30],[28,38],[53,-1]],[[6733,9003],[27,-7],[50,9],[97,-21],[39,15],[10,-41],[57,17],[-7,-60]],[[7006,8915],[-16,-85],[18,-30],[-52,-4]],[[6956,8796],[-32,-3],[-11,-42],[-49,-11],[-52,1],[-21,-21],[-38,1],[-3,17],[-53,-30],[-51,-5],[-37,-25],[83,13],[32,-41],[-38,-17],[-96,-22],[-18,19],[-51,-16],[-24,-32],[-29,24],[-37,-16],[31,-46]],[[8030,6865],[-103,-30],[-67,-6],[-17,17],[-43,4],[-16,51],[-24,14],[-48,1],[-24,-14],[-8,-38]],[[7963,7528],[38,-24],[65,0],[6,-41],[28,-1],[33,24],[52,-48],[36,-8],[52,18],[31,-11],[-1,-39],[74,-27],[35,-24],[8,-27],[57,5]],[[2492,2386],[-66,20],[-28,21],[20,39],[-44,64],[57,56],[101,52],[6,20],[56,32],[-51,51],[-27,-1],[-16,33],[-83,29],[-45,4],[43,50],[-42,33],[-63,-25],[-45,6]],[[2265,2870],[40,36],[-20,13],[14,37],[86,81],[62,41],[63,24],[25,-3],[15,26]],[[3452,8617],[-44,-32],[-75,-21],[-21,-52],[-108,-63],[-44,-11],[0,-31],[-62,-15],[-22,-27],[-41,-10]],[[3035,8355],[-36,-11],[-76,-50],[47,-23],[44,-4],[-80,-47],[-25,23],[-54,-43]],[[2855,82
 00],[-23,21]],[[2832,8221],[-13,13]],[[2819,8234],[-391,350],[510,479],[499,-429],[15,-17]],[[8447,7933],[42,16],[44,40],[46,19],[93,1],[85,-23],[90,-16],[61,-2],[212,36],[42,1],[357,-82]],[[5404,9468],[-88,-53],[54,-109],[19,-52],[0,-33],[20,6],[27,-40],[-8,-40],[26,-14],[18,-56]],[[5472,9077],[219,-228]],[[5599,8797],[-164,-93]],[[5360,8662],[-178,-101]],[[5182,8561],[-222,245],[53,64],[2,35],[-14,96],[-28,74],[-33,25],[49,9],[-34,66],[24,11],[-22,34],[33,17],[-27,41],[53,23],[-16,35],[44,42],[-54,44],[-54,22],[-58,39],[-188,44],[3,5],[174,-40],[95,-12],[442,-12]],[[7112,9243],[-17,2],[15,44],[-13,17],[-96,-1],[-43,-24],[-36,19],[-42,3],[-55,90],[-11,30],[-61,75],[18,14],[-50,35],[-42,42],[37,10],[-152,61]],[[6564,9660],[425,170]],[[6989,9830],[168,-105],[21,-7],[14,37],[94,-32],[-2,-14],[55,-17],[20,35],[34,-17],[41,45],[50,35],[40,-3],[20,-16]],[[7544,9771],[-10,-12],[57,-14],[50,-30],[-8,-12],[48,-16],[49,-42],[12,-37],[-27,-12],[-82,-93],[-109,-54],[13,-18],[-89,-32],[10,-14],
 [-43,-10],[-8,-78],[-105,11],[-16,-60],[-116,-5],[-17,11],[-41,-11]],[[5685,4374],[-41,-51],[-36,-31],[-47,-22],[-34,-45],[-23,-88]],[[5504,4137],[-11,10],[-71,-59],[-50,-67],[-33,-25],[-39,29],[-41,-2],[-62,-18],[7,18]],[[5204,4023],[34,95],[-103,9],[-104,68],[-38,11],[-16,34],[-39,33],[-99,29],[-66,-4],[-28,17],[-36,49]],[[4709,4364],[44,31],[25,49],[-3,38]],[[4775,4482],[138,-31],[64,3],[76,77],[39,57],[40,7],[23,34],[35,-4],[72,16],[-25,42],[19,27]],[[5256,4710],[41,2],[13,33],[-13,16],[58,8]],[[5355,4769],[57,7],[34,18],[74,-57]],[[5520,4737],[5,-28],[40,-17],[-7,-54],[41,-44],[50,-26],[-11,-22],[-41,-6],[-35,24],[-67,-30],[9,-18],[62,-19],[49,-36],[70,43],[46,-39],[-33,-19],[4,-46],[-17,-26]],[[6070,6118],[51,-44],[-96,-45],[-3,-24],[-63,-47],[-20,-49],[35,-34],[51,-22],[0,-21],[-26,-2]],[[5999,5830],[-71,15],[-29,-25],[23,-71],[-6,-40],[-48,-9],[-32,37],[-54,2],[-18,-36],[25,-37],[56,-9],[21,-25],[-18,-19],[-130,-31],[-102,52],[-65,-26],[-18,-31],[4,-37],[34,-7]],[[5571,5533]
 ,[-25,-45],[-90,-14],[3,-29],[-71,-11],[-5,-39],[-90,30],[5,-16],[-92,2],[-44,-8],[-38,-36]],[[5124,5367],[-13,24],[-50,24],[-78,56],[-34,54]],[[4949,5525],[29,2],[0,48]],[[4978,5575],[27,58],[36,26],[11,33],[52,18],[87,9],[40,36],[36,11],[-22,20],[27,6],[36,-20],[49,36],[36,7],[26,44],[33,12],[14,35]],[[5466,5906],[28,64],[31,28],[82,31],[14,40],[72,7],[35,32],[-1,28]],[[5727,6136],[21,7],[58,-26],[8,-42],[67,-3],[44,24],[121,-1],[24,23]],[[6333,3775],[-26,32],[-57,30],[-63,20],[-70,-6],[-80,17],[-34,23],[-84,34],[-29,40],[-45,-20],[-14,9],[-117,-4],[-68,20],[-70,56],[-3,37]],[[5573,4063],[-57,52],[-12,22]],[[5685,4374],[123,-28],[60,21]],[[6350,9616],[65,-130]],[[6415,9486],[-70,4],[-328,-206],[34,-22],[-73,-65],[-71,-37],[7,-31],[-39,-176]],[[5875,8953],[-95,-53]],[[5404,9468],[61,6],[36,-10],[75,14],[774,138]],[[6042,4872],[-43,9],[-58,-15],[-32,29],[-29,8],[-30,45],[-34,17]],[[5816,4965],[-4,57],[-44,4],[-12,31],[18,24],[59,22],[-7,26],[-60,14],[-16,28],[62,22],[22,23],[-51,49]
 ],[[5783,5265],[123,-8],[87,-1],[65,15],[16,-7],[34,27],[31,4]],[[6139,5295],[49,19],[69,1],[2,-10],[78,-5],[33,18]],[[5789,7241],[-126,-50],[-13,-25],[-87,-30]],[[5563,7136],[-54,-18],[-8,40],[-51,45],[-43,-5],[-16,29],[-115,-49],[-7,-27],[-47,-20],[-20,-21]],[[5202,7110],[-30,-9],[-22,52],[-81,52],[-66,6],[-28,36],[-41,14],[-27,-10]],[[4907,7251],[6,39],[-37,-5],[-60,37],[16,5]],[[4832,7327],[57,30],[40,73],[94,116],[65,28]],[[5088,7574],[43,-3],[44,11],[22,19],[29,-10],[78,33],[63,64],[41,-7],[21,-23],[33,19],[44,4]],[[5506,7681],[19,-33],[35,-2],[88,-28],[46,-31],[-18,-40],[38,2]],[[5714,7549],[17,-13],[52,-95],[64,-3],[-42,-28],[72,-90],[-18,-39]],[[5859,7281],[-70,-40]],[[1307,2464],[-26,14],[-50,-10],[-26,48],[-16,57],[-22,15],[-86,25]],[[1081,2613],[-6,73],[-42,43]],[[1033,2729],[44,41],[-36,50],[70,31],[38,5],[8,17],[-7,59],[-40,-2],[-13,27],[37,21],[4,30],[-26,43],[9,47],[-20,46],[-59,28],[25,29],[-57,18],[2,55],[-24,22],[25,42],[-14,38]],[[999,3376],[39,0],[16,37],[40,-4]
 ,[74,54]],[[1646,2885],[-41,-59]],[[1605,2826],[-70,-4],[-79,37],[-64,5],[-19,-17],[46,-63],[44,12],[-29,-59],[-27,2],[-3,-25],[-23,0],[-15,-36],[7,-80],[-32,-17],[16,-84],[-50,-33]],[[3391,4747],[-29,0],[-61,-63],[-60,-38],[-70,-60],[-26,-51],[-84,-1],[-59,-50],[-20,-30],[-30,33],[-85,36],[-20,0],[-39,-39],[-88,-101],[-21,-36],[-45,-51],[-19,-55],[-26,-12],[16,-26],[-18,-29]],[[2353,4240],[87,105],[32,29],[29,-10],[29,36],[-15,9],[15,46],[22,-3],[43,43],[-95,51],[-34,39],[-56,26],[-61,5]],[[2349,4616],[15,25],[-33,24],[34,52],[33,13],[41,58],[75,65],[56,29],[64,51],[60,12],[20,25],[20,-24],[36,33],[34,52]],[[2804,5031],[52,-19],[59,-49],[-43,-18],[-7,-31],[10,-51],[9,9],[38,-57],[4,-25],[53,-36],[1,-15],[53,-38],[29,4],[31,-36],[70,15],[74,53],[101,45]],[[3338,4782],[62,38],[-5,-34],[-22,-27],[18,-12]],[[6139,3435],[-207,31],[-361,10]],[[5571,3476],[-43,86],[-23,93],[29,95],[-22,125],[-22,-8],[-74,24],[-5,23]],[[5411,3914],[13,21],[43,15],[65,63],[1,28],[40,22]],[[4018,2394],[-80,5
 1],[-147,141],[-51,37],[12,10],[-25,84],[0,107],[-15,54],[24,21],[-22,60],[-26,28],[19,80],[88,29],[29,-4],[37,44],[39,20],[86,-4],[18,38],[128,27],[-6,21],[30,4],[43,60],[33,-1],[17,31],[37,26],[54,12]],[[4340,3370],[23,-51],[70,17],[26,-11],[40,20]],[[4499,3345],[46,8]],[[4709,4364],[-49,-29]],[[4131,5103],[60,12],[117,-6],[62,39],[5,-21],[35,4],[29,24],[7,-23],[34,26],[84,-8],[60,-16]],[[4624,5134],[8,-30],[58,-31],[17,-29],[-2,-37],[27,-7],[-5,-26],[78,-10],[10,-36],[24,6],[27,-34]],[[4866,4900],[-72,-32],[20,-11],[-59,-31],[-118,-34],[-29,1],[9,-32],[-22,-64],[31,-27],[-32,-10],[5,-29],[27,-30],[-6,-59],[119,-34],[36,-26]],[[4714,5771],[-106,-30],[-34,-44],[-36,-14],[-43,15],[-58,-12],[-53,7],[3,-27],[-48,-40],[-19,-32],[11,-11],[-57,-12]],[[4274,5571],[-55,-6],[-22,-15],[-39,23],[-33,0],[-51,-40]],[[4074,5533],[-50,-31],[-23,17],[-39,-20],[-24,23],[-25,-10],[-31,31],[-48,17],[-13,-14],[-51,-13],[-50,-27]],[[3720,5506],[-29,13],[28,23],[-29,28]],[[3690,5570],[31,59],[-10,9]],[[
 3711,5638],[35,18],[13,32],[33,4],[65,34],[45,53],[41,0],[38,16],[32,-3],[36,24],[29,59]],[[4078,5875],[95,6],[31,51],[36,22],[-2,15],[98,42],[56,-16],[56,11],[29,22],[76,21],[-18,23],[34,9],[-6,20],[39,10]],[[4602,6111],[41,-55],[31,-5],[12,-52],[38,-6],[133,50],[52,-63],[38,-21]],[[4947,5959],[5,-18],[-68,-12],[19,-37],[-45,-21],[-35,-5],[5,-34],[-39,-4],[-7,18],[-44,-29],[13,-15],[-37,-31]],[[1898,6106],[-74,65],[-103,-48],[-16,10]],[[1705,6133],[-34,24],[10,14],[-101,57],[18,11],[-85,55],[49,45],[-35,37]],[[1527,6376],[-36,36],[-37,14],[-20,-18],[-46,33],[47,57],[2,31]],[[1437,6529],[43,21],[5,28],[83,82],[64,52],[27,7],[39,-14],[11,21],[36,-13],[38,46],[2,39],[41,12],[2,18],[-30,22],[16,44],[68,37],[-16,53]],[[1866,6984],[26,24],[41,-25],[26,25]],[[1959,7008],[12,-8],[-35,-39],[50,-8],[0,-13],[67,-30],[18,-21],[53,-21]],[[2124,6868],[50,-26]],[[2174,6842],[19,-41],[-18,-4],[12,-43],[-39,-23],[27,-50],[-96,-33],[-11,10],[-51,-17],[-25,-22],[-70,-5],[-9,-35],[-18,-7],[-45,-43],[-
 55,-38],[47,-89],[44,4],[11,-25],[59,-43],[8,-20],[-13,-53],[56,19],[63,0]],[[2070,6284],[24,-16],[8,-62],[18,-26],[-38,-31],[-27,8],[26,-49],[-78,24],[-64,-8],[-41,-18]],[[3438,5529],[-21,27],[-62,49],[-30,2],[44,38],[-49,17],[-27,-19],[-87,54],[-86,30],[-98,14],[-31,36],[-61,13],[-15,13]],[[2915,5803],[37,39],[66,34],[-65,16],[29,38],[-24,11],[89,58],[16,46],[19,-7],[38,47],[63,17],[28,-26],[39,-6],[25,45],[83,37],[6,40],[17,10]],[[3721,5955],[-16,-53],[13,-13],[-30,-24],[13,-35],[-28,-13],[18,-24],[-63,-48],[45,-29],[-4,-23],[21,-51],[21,-4]],[[3690,5570],[-52,-24],[-43,39],[-47,-33],[-66,-30],[-44,7]],[[4222,3575],[98,-62],[35,-9],[-17,-22],[7,-35],[-34,-24],[29,-53]],[[5256,4710],[-6,45],[-98,26],[2,56],[-60,-3],[-31,27],[-81,29],[-94,17],[-22,-7]],[[4624,5134],[23,42],[69,48],[88,-22],[25,31],[32,10],[-1,42],[28,34],[-7,33],[41,39],[3,22],[-27,22],[16,18]],[[4914,5453],[-8,44],[43,28]],[[5124,5367],[49,-37],[1,-63],[53,-30],[133,11],[53,34],[-12,-23],[6,-75],[-14,-56],[57,1]],
 [[5450,5129],[-40,-81],[-34,8],[-29,-55],[1,-32],[29,-2],[-8,-39],[18,-48],[-32,-111]],[[5492,3102],[18,1],[120,-44]],[[5630,3059],[127,-33],[30,-21],[40,-1],[-5,15],[26,31]],[[5848,3050],[28,-6],[13,-48],[20,0],[133,30],[7,32],[29,8],[69,-2]],[[6147,3064],[62,-15]],[[6343,8928],[-7,33],[-32,54],[-35,-24],[-169,-62],[-225,24]],[[6415,9486],[24,-47],[112,-135],[43,-63],[70,-81],[-83,-35],[39,-39],[38,35],[25,-28],[34,21]],[[6717,9114],[55,-67],[-45,-11],[6,-33]],[[2581,6465],[-23,-33],[-74,-49],[22,-5],[-21,-30],[-21,1],[-66,-32],[60,-13],[-31,-26]],[[2427,6278],[-82,-26],[-59,3],[-34,14],[4,34],[-35,-14],[-151,-5]],[[2174,6842],[13,15],[63,-13],[-9,-19],[60,-19],[39,59],[101,-40],[19,30],[53,-20],[-5,-13],[47,-26]],[[2555,6796],[36,-68],[24,-18],[-24,-19],[31,-6],[-20,-20],[37,-67],[-95,-121],[37,-12]],[[2399,2342],[-39,-25],[-80,-30],[-35,4],[-28,-48],[-1,-37],[-31,-16],[-78,91],[-78,-37],[-50,97],[-52,83],[-45,20],[8,17],[-87,46],[-40,4],[-77,35]],[[1686,2546],[50,42],[-4,9],[136,
 113],[41,1],[59,28],[71,60],[40,-18],[40,38],[20,-20],[24,24],[23,-18],[-10,-41],[58,-5],[15,9],[-40,35],[-26,-17],[-1,32],[83,52]],[[2133,1321],[-147,-145],[-96,-60],[-27,-40],[-32,-82],[-85,-13],[-132,5],[-19,6],[-35,52],[-40,-5],[-80,56],[-86,105],[-2,36],[-28,89]],[[1324,1325],[50,17],[96,47],[16,-1],[1,47]],[[1487,1435],[21,18],[30,-2],[19,-28],[42,11],[41,-34],[62,15],[36,-2],[19,19],[63,12],[-1,40],[-32,5],[4,33],[-43,-5],[-4,21],[64,83],[3,21]],[[1811,1642],[14,7],[8,71],[21,-3],[21,70],[30,26]],[[1905,1813],[16,-5],[-34,-45],[45,-8],[99,4],[-16,-68],[3,-77],[-7,-66],[7,-25],[-16,-72],[37,-64],[94,-66]],[[1686,2546],[-18,-16],[-34,16],[-15,26],[-29,9],[-18,-21],[-48,-10]],[[1524,2550],[-13,5],[21,35],[18,5],[-14,52],[6,52],[56,87],[7,40]],[[6793,6254],[-77,-13],[-64,9],[-57,-40],[-8,-69],[-21,-36]],[[6566,6105],[-51,-1],[-25,28],[-27,71],[-24,-14],[-1,-33],[-29,0],[-49,38],[-45,-5]],[[6315,6189],[-98,96],[-6,30],[-47,46],[46,15],[51,48],[-34,70],[-16,-7],[-23,32]],[[6188,651
 9],[27,59]],[[6215,6578],[45,-7],[6,54],[157,42],[40,4],[34,23],[-6,38],[60,9],[40,-52],[65,21],[77,2]],[[6879,6519],[-10,-57],[30,-18],[-11,-34]],[[6312,7198],[-62,-40],[1,-27],[-45,-40],[-55,-11],[-29,-40],[-36,-8],[-51,25],[-53,41],[30,17],[-28,9],[-29,54],[-63,44],[-10,-24],[-44,30],[-49,13]],[[5859,7281],[5,-23],[48,5],[66,57],[26,-13],[82,24],[50,40],[-3,59],[90,27],[68,67]],[[8777,7273],[63,-36],[22,-53],[87,-49],[44,-9],[50,-32],[66,-26],[14,-33],[87,-64],[-8,-17],[28,-20],[-13,-56],[-74,-30],[-84,-21],[-6,-29]],[[3391,4747],[24,7],[34,-30],[-17,-21]],[[3432,4703],[-24,-36],[70,-21],[-30,-83],[11,-49],[-18,-18]],[[4593,7192],[-98,-84]],[[4495,7108],[-80,71],[-33,9],[-57,-26],[-57,43],[-45,-29],[-74,51],[-23,-22],[-21,37],[54,66]],[[4159,7308],[0,8],[-77,68],[-22,43],[-46,43],[9,13],[-75,81],[-2,24],[-74,76]],[[3872,7664],[-45,50]],[[3827,7714],[48,34],[40,-42],[51,38]],[[3966,7744],[69,-66],[143,-21],[21,38],[29,-2],[2,20],[36,21],[20,-13],[14,70],[79,-73],[62,20],[4,-20],[7
 7,-25],[28,10],[56,-50],[-19,-13],[-75,-107],[107,-82],[45,-17],[-9,-23],[-89,-38],[12,-31],[-70,-46],[-9,-32],[43,-54],[21,15],[30,-33]],[[1866,6984],[-21,35],[-39,-10],[-3,16],[33,12],[-38,63],[-91,-18],[2,-22],[-52,-2],[-23,-15],[9,38],[-37,4],[-24,-16],[-27,12],[-60,-54],[62,-118],[27,-14],[-22,-45],[20,-38],[-1,-30],[-42,-5],[-43,32],[-59,-28],[0,-23],[-55,-13],[-12,17],[-42,-15]],[[1328,6747],[-14,24],[36,14],[-45,11]],[[1305,6796],[70,14],[43,17],[37,27],[-6,16],[37,10],[36,25],[31,3],[-42,61],[-37,0],[-56,45],[-16,-13],[-25,20],[-99,-45],[-32,-35]],[[1246,6941],[-22,-10],[-50,20],[-30,28],[-65,18],[-49,41]],[[1915,7530],[29,-45],[36,-16],[38,16],[45,-44],[32,10],[46,-46],[-25,-4],[23,-83],[-19,-2],[21,-67]],[[2141,7249],[-129,-30],[-63,-28],[28,-44],[-135,-55],[85,-35],[-21,-17],[53,-32]],[[4907,7251],[-2,-50],[-45,-59],[-7,-39],[34,-42],[-5,-27],[-24,-15],[15,-25],[-20,-24],[2,-28],[-26,-37],[-54,-24]],[[4775,6881],[-71,-13],[-26,7],[-29,-42],[11,-22],[-156,-43],[-77,-38],[
 28,-36],[-49,-13]],[[4011,6910],[6,30],[30,5],[29,42],[67,-4],[11,28],[104,-4],[27,7],[19,35],[191,59]],[[4593,7192],[36,-22],[33,48],[53,-25],[39,37],[-6,10],[35,36],[28,57],[21,-6]],[[5204,4023],[-24,-24],[-29,12],[-23,-21],[-50,-9],[-52,-23],[-21,10],[-103,-36],[14,-25],[-98,5],[-48,29],[-109,13],[-51,-20],[-142,-34],[4,45],[-34,13],[-25,37],[-74,-37],[-36,-11],[-30,-24],[-32,46],[-20,3]],[[4221,3972],[-6,10],[39,43],[14,57],[-33,22],[46,14],[17,45],[32,11],[31,38]],[[5411,3914],[-85,-6],[-38,-15],[-24,-65],[-34,-47],[-71,17],[-42,-65],[-40,17],[-24,-29]],[[5053,3721],[-35,14],[-34,-33],[-41,18],[-16,-18],[-44,24],[-41,1],[-125,25],[-77,9],[-40,-18],[-70,-16],[-44,0],[-25,21],[-93,26],[-7,-5],[-127,16],[-43,-14]],[[4017,3865],[26,10]],[[4043,3875],[36,1],[12,49],[65,20],[74,-2],[-9,29]],[[2351,7522],[-73,-23],[26,-35],[28,5],[12,-31],[55,11],[60,-129]],[[2459,7320],[-108,-24],[15,-35],[-26,-7],[-40,-46]],[[2300,7208],[-100,-5]],[[2200,7203],[-33,6],[-26,40]],[[2342,7915],[54,-41]
 ,[29,-34],[14,15],[29,-9],[69,-70],[26,15],[26,-30],[61,35],[158,-164],[-81,-32],[11,-13],[-75,-29],[-34,42],[-74,-18],[-65,-36],[-36,11],[-31,-19],[-72,-16]],[[1527,6376],[-84,-91],[-14,7],[-48,-20],[-52,-54],[-18,7],[-56,-51],[-5,-34],[-62,-25],[-21,-42],[-19,8],[-44,-59]],[[1104,6022],[3,17],[-66,61],[-71,33],[-58,-30],[-18,13],[-31,-30],[-54,33],[-177,154]],[[632,6273],[27,21],[-15,15],[62,42],[119,65],[-1,15],[109,59],[61,40]],[[994,6530],[14,-11],[132,55]],[[1140,6574],[27,-2],[28,-40],[24,23],[30,-17],[35,-42],[4,-30],[86,41],[63,22]],[[3827,7714],[-84,97],[-46,44],[-21,-4],[-40,58],[-54,-15],[12,-24],[-121,-40],[-20,23]],[[3453,7853],[-41,78],[-35,34],[52,32],[-60,57]],[[3369,8054],[113,66],[-30,29],[173,107],[5,-26],[36,31],[36,-23],[-17,-14],[38,-24],[76,67]],[[3799,8267],[46,-55],[69,-51],[32,-33],[251,-191],[-58,-58],[-9,6],[-85,-75],[-8,8],[-89,-57],[18,-17]],[[4505,3458],[-51,-10],[-28,18],[-58,-34],[17,-2],[29,-61],[41,-4],[44,-20]],[[5053,3721],[-30,-27],[50,-21],[12
 ,-39],[81,-65],[-11,-14],[38,-17],[7,-35],[57,-28]],[[6566,6105],[36,-50],[36,19],[22,-49],[34,-35],[64,4],[13,-12],[-31,-18],[-29,-45],[66,-31],[10,-27],[80,-22],[-26,-54],[-44,-54]],[[6797,5731],[-47,40],[-24,-17],[-42,24],[-109,-12]],[[6575,5766],[-62,18],[-48,28],[-64,-18],[-29,5],[-6,30],[-40,-7],[-42,17],[-53,-9],[-29,-34],[2,-38],[-31,-20],[-97,-32]],[[6076,5706],[-37,80],[-40,44]],[[6070,6118],[18,25],[54,-2],[83,-53],[30,-2],[53,37],[7,66]],[[7304,8982],[-38,3],[-141,-19],[-46,3],[2,-22],[-36,-32],[-39,0]],[[6717,9114],[52,47],[-23,34],[-25,-12],[-31,36],[24,8],[-39,47],[-31,4],[10,19],[-46,7],[28,36],[-37,13],[-139,287]],[[6460,9640],[39,-4],[65,24]],[[7112,9243],[-11,-44],[47,-12],[36,-27],[99,13],[27,-9],[3,-27],[44,-23],[-32,-36],[-21,-96]],[[4043,3875],[-42,60],[-39,8],[-7,23],[-37,3],[-7,16],[-55,19],[-18,50],[-46,24],[-43,-21],[-23,10],[-14,40],[5,38],[-41,33],[-65,-1],[-84,24],[-11,24],[27,45],[-15,18],[28,60]],[[3556,4348],[57,-10],[45,59],[45,0],[52,-30],[18,24],[
 34,13],[23,35],[63,-2],[38,-18]],[[7973,5493],[-68,18],[-47,22],[-43,-17],[-27,4],[-66,39],[-16,35],[-81,2],[2,37],[-45,37],[-13,48],[-41,-3],[-2,34],[-18,6],[-2,55]],[[7506,5810],[25,2],[-1,38]],[[8254,5811],[-37,-40],[16,-25],[12,-57],[-20,-58],[6,-42],[-44,-44],[-10,-37]],[[8177,5508],[-62,-18],[-35,6],[-107,-1]],[[3369,8054],[-108,102]],[[3261,8156],[-42,41],[19,23],[-36,24],[-77,16],[-90,95]],[[3452,8617],[51,-55],[58,-17],[45,-40],[42,-1],[62,40],[114,-52],[32,-41],[-91,-80],[42,-29],[-52,-45],[44,-30]],[[7079,5541],[121,56]],[[7200,5597],[22,-27],[75,-28],[133,7],[84,-22],[54,-36],[21,-35],[91,-71],[30,-46],[-1,-49],[12,-29],[61,-12]],[[6347,6941],[-27,-24],[-85,-43],[-31,37],[-120,-50],[0,-20],[-97,-40],[6,-26]],[[5993,6775],[-75,-56]],[[5918,6719],[-16,38],[-51,48],[20,11],[-74,35],[-54,-10],[-8,9],[-47,-25],[-46,40],[-33,59],[10,27],[-26,3],[1,29],[-69,-14],[-4,46],[51,14],[16,25],[-30,46],[26,2],[-21,34]],[[5092,6335],[-19,-25],[-35,-2],[-97,-51],[-80,-10],[-149,32],[-82,
 -8],[3,-16]],[[4633,6255],[-119,-30],[-29,40],[-43,-7],[1,27],[-34,0],[-92,33],[-90,-26]],[[4454,6621],[37,-16],[39,3],[22,-16],[-18,-33],[13,-15],[40,11],[9,-36],[32,-45],[78,12],[37,-23],[91,28],[10,-31],[27,8],[-15,34],[61,-19],[12,20],[66,-5],[54,7],[28,-17]],[[5077,6488],[-19,-32],[3,-22],[31,-19],[-23,-49],[6,-35],[17,4]],[[5918,6719],[-24,-30],[-97,-52]],[[5797,6637],[-37,-14],[-34,11],[-60,-10],[-48,10],[-88,-12],[-35,-26],[-82,-6]],[[5413,6590],[-28,20]],[[5385,6610],[25,42],[50,27],[-34,39],[-76,21],[-19,19],[19,19],[-33,21],[-56,5]],[[5261,6803],[15,20],[72,29],[28,28],[3,27],[-29,28],[-54,85],[-94,90]],[[1955,5679],[-156,-89],[11,-24],[-54,-38],[-108,-24],[-60,-30],[-55,-17],[-79,-46],[4,-24],[-31,-34],[-78,-59],[13,-10],[-29,-34]],[[1333,5250],[-18,-14],[-88,-7],[-66,-17]],[[1161,5212],[-64,-15],[28,24],[-26,14],[30,14],[-41,37]],[[1088,5286],[27,-4],[28,18],[-18,41],[24,10],[70,56],[19,48],[80,60],[-12,29],[32,-7],[31,36],[-35,10],[16,28],[59,35],[58,52],[63,28],[58,42
 ],[72,107],[-36,-6],[41,81],[47,-19],[-14,-36],[38,-3],[38,-27],[17,-49],[45,-26],[-9,-46],[-29,-18],[19,-11],[48,9],[21,17],[33,-19],[36,-43]],[[3136,5201],[-41,-14],[-79,13]],[[3016,5200],[15,21],[-23,26],[29,56],[42,43],[25,64],[-24,10],[-24,66],[-47,19],[-70,65],[-98,-34],[-68,-17],[-52,59],[-30,-23],[-45,23],[-20,-23],[-24,27],[26,22],[-38,21],[60,72],[37,23],[58,-17],[-15,-11],[47,-22],[44,38],[94,95]],[[3438,5529],[-29,-40],[10,-7],[-64,-56],[-121,-75],[-56,-46],[-50,-66],[8,-38]],[[4131,5187],[-1,11],[92,23],[-20,36],[26,25],[-14,73],[-23,-1],[-37,93],[-80,86]],[[4274,5571],[23,-54],[31,-9],[41,-88],[-17,-5],[21,-29],[52,5],[67,-14],[77,9],[17,-21],[30,5],[61,32],[37,-20],[138,69],[62,2]],[[5783,5265],[3,56],[-29,-3],[-40,-43],[-36,5]],[[5681,5280],[19,39],[72,40],[15,20],[-1,39],[25,4],[11,31],[-44,26],[-36,11],[-42,29],[-69,17],[-60,-3]],[[6076,5706],[24,-58],[24,-18],[30,-52],[-22,-19],[7,-33],[23,-10],[48,-74],[-16,-38],[15,-24]],[[6209,5380],[-81,-39],[11,-46]],[[5076,6
 504],[1,-16]],[[4775,6881],[36,-12],[55,4],[-22,-17],[15,-36],[31,15],[18,-12],[59,13],[41,-71],[63,5],[35,-48]],[[5106,6722],[15,-51],[-54,-33],[-62,-20],[16,-43],[37,-11],[-2,-40],[20,-20]],[[2159,1337],[-26,-16]],[[1905,1813],[36,48],[52,42],[27,1],[22,34],[41,18],[5,18],[102,89],[63,64],[20,-13],[52,28]],[[5126,5981],[-49,-4],[-50,8],[-80,-26]],[[4602,6111],[31,37],[-8,16],[8,91]],[[5092,6335],[76,50],[6,-23],[64,14],[-1,12],[63,24],[-6,-23]],[[5294,6389],[-28,-46],[-52,-14],[34,-19],[10,-46],[42,-23],[18,-71],[23,-25]],[[5341,6145],[-85,-55],[-73,-17],[-10,-67],[-47,-25]],[[4078,5875],[-21,33],[24,17],[-35,60],[15,16],[-12,35],[-40,-12],[-12,26],[-57,-3],[-53,54]],[[5830,6419],[-86,-34],[-14,-18],[-6,-76],[-49,-60]],[[5675,6231],[-15,53],[-58,-19],[-47,-30],[14,-36],[-81,-31],[-43,-7],[-4,-21],[-36,10],[-64,-5]],[[5294,6389],[19,-11],[18,46],[46,36],[41,5],[30,27],[-35,12],[23,30],[-2,33],[-21,23]],[[5797,6637],[17,-53],[24,6],[11,-37],[-24,-5],[16,-41],[-9,-17],[-35,-3],[33,-6
 8]],[[6575,5766],[3,-30],[36,-18],[-5,-32],[45,-79]],[[6664,5545],[-30,14],[-35,-28],[-26,0],[-46,-54],[-2,-39],[-56,-8],[10,-26],[-54,-19]],[[6425,5385],[-63,-2],[-62,-27],[-40,3],[4,17],[-55,4]],[[642,5252],[-27,-42],[-71,-46],[-32,-65],[19,-10],[-108,-95],[-131,-57],[-25,53],[-34,28],[28,20],[-39,53],[-94,38],[-36,33],[-12,30],[63,84],[102,15],[10,28],[86,67],[65,41],[15,37],[46,69],[47,-34],[44,31],[63,-42],[53,-22],[-22,-31],[-14,-123],[6,-21],[-19,-29],[17,-10]],[[3727,4791],[-20,-17],[-46,9],[2,-24],[-47,-21],[-26,9],[-38,-16],[-3,-39],[-80,18],[-37,-7]],[[3338,4782],[-13,19],[-52,32],[10,23],[-33,46],[18,39],[-100,81],[-19,45],[-54,17],[-38,30],[-7,36],[-54,37]],[[2996,5187],[20,13]],[[3136,5201],[33,-14],[62,0],[76,-42],[56,20],[9,-11],[79,-9],[77,60],[61,25],[57,-38]],[[4978,5575],[-111,-27],[-47,54],[-41,9],[-58,51],[18,84],[22,21],[-17,21],[-30,-17]],[[5126,5981],[11,-15],[78,7],[12,-23],[47,28],[24,-20],[56,37],[112,-89]],[[5520,4737],[46,12],[30,43],[26,5],[53,-12],[26
 ,71],[19,24],[45,22],[44,38],[7,25]],[[5727,6136],[-15,39],[-37,3],[-16,37],[16,16]],[[5830,6419],[3,-25],[134,18],[65,13],[74,40],[82,54]],[[1140,6574],[59,23],[34,50],[-42,28],[60,41],[77,31]],[[3720,5506],[-37,-27],[28,-26],[-21,-24],[22,-14],[50,-63],[60,-34],[42,-8],[8,-47]],[[5261,6803],[-31,-14],[-97,-21],[10,-18],[-37,-28]],[[8177,5508],[6,-22],[63,-31],[104,-32],[39,-20],[20,17],[44,-11],[28,18],[35,47]],[[8516,5474],[46,-21],[32,32],[22,-28],[45,18]],[[5450,5129],[44,30],[51,10],[23,63],[-8,35],[55,-26],[58,9],[-21,21],[29,9]],[[7200,5597],[-41,58],[57,16],[-14,67],[36,44],[6,38],[67,18],[26,-28],[63,-22],[12,-26],[30,10],[32,44],[32,-6]],[[632,6273],[-93,-75],[-19,11],[42,73],[105,71],[33,29],[-51,62],[-83,-46],[-30,36],[-150,113]],[[791,6865],[67,-55],[34,-65],[34,2],[4,-36],[-57,-50],[45,-23],[48,-37],[28,-71]],[[7167,5994],[4,-18],[-64,-73],[-44,-14],[-55,14],[-66,-77],[10,-41],[-22,-53]],[[6930,5732],[-55,12],[-54,-22],[-24,9]],[[2002,4150],[-42,32],[-15,-2],[-62,34],
 [-20,74],[38,4],[18,55],[34,23],[74,-43],[35,27],[91,92],[40,-2],[40,31],[27,45],[28,-9],[32,39],[-1,24],[30,42]],[[1033,2729],[-26,-9],[-129,17]],[[878,2737],[-15,19],[-27,110],[57,14],[31,146],[-30,115],[18,13],[-6,45],[14,62],[-22,47],[5,48],[-26,12],[-4,26],[-31,5],[-22,52],[20,43],[12,71],[45,81],[27,7]],[[924,3653],[59,-15],[24,-45],[29,-79],[-54,-70],[23,-32],[-6,-36]],[[2030,5634],[-32,-23],[-26,0],[-92,-85],[55,-22],[-18,-41],[-28,-28],[-39,-2],[57,-21],[-30,-48],[-84,-56],[-32,-43],[-22,-65],[-37,-17],[24,-29],[-25,-41],[1,-26]],[[1702,5087],[-75,27],[-14,-7],[-33,30],[-85,56],[-57,18],[-39,30],[-36,-6],[-30,15]],[[1955,5679],[23,-26],[52,-19]],[[5088,7574],[-6,12],[44,25],[32,48],[-28,53],[-71,32],[37,13],[-13,29],[-71,-18],[5,73],[42,40],[60,34],[12,-9],[50,30],[2,21],[54,23],[61,42],[-11,11],[-67,-14],[-8,24],[100,15],[40,-1],[-10,-39],[16,-17],[65,-7],[16,-18],[29,5]],[[5468,7981],[19,-31]],[[5487,7950],[40,-59],[9,-34],[74,-40]],[[5610,7817],[11,-12],[-29,-35],[-65,18
 ],[-33,-40],[12,-67]],[[5571,3476],[-105,6],[-40,-8],[-90,-34]],[[1246,6941],[-23,-33],[67,-67],[-25,-16],[40,-29]],[[6104,3380],[-90,-29],[-15,-20],[5,-52],[-67,-44],[20,-10],[-18,-26],[12,-35],[-68,-61],[-38,-14],[3,-39]],[[5630,3059],[20,190],[-11,169],[-68,58]],[[1358,1763],[29,-29],[72,-39],[-23,-76],[-29,-38],[-3,-107],[77,-12],[6,-27]],[[1324,1325],[-92,-6],[-30,35],[-71,43],[-59,108],[-52,43],[84,93],[26,48],[7,59],[49,26],[-9,8],[64,55],[24,35],[24,-10],[-48,-63],[6,-25],[111,-11]],[[2804,5031],[130,116],[62,40]],[[4159,7308],[-63,-38],[-18,13],[-29,-34],[-42,-24],[-19,-48],[-127,-65]],[[3861,7112],[2,25],[-66,57],[-45,-18],[-34,22],[18,23],[-46,29],[5,35],[24,24],[-23,30],[44,54],[-58,44],[37,92],[56,37],[59,50],[-10,6],[48,42]],[[2570,6083],[-27,-31],[-92,1],[10,-27],[-75,-15],[-13,-32],[-96,18],[-135,-52],[0,19],[-35,-8],[-72,50],[-12,-10],[-41,26],[-70,17],[-45,46],[31,21]],[[2427,6278],[14,-20],[47,11],[39,-36],[-24,-70],[49,-15],[-30,-50],[48,-15]],[[3556,4348],[-58,2
 4],[11,17],[-58,25]],[[5998,7869],[-71,28],[-3,-24],[-69,-29]],[[5855,7844],[-33,6],[-7,23],[89,21],[59,36],[22,49],[19,8],[45,-11],[31,23],[-29,50],[-54,-5],[-32,72],[10,11]],[[5975,8127],[23,44],[129,75],[90,9],[-4,15]],[[6213,8270],[63,-21],[14,17],[90,-66],[21,15],[8,-31],[43,33],[45,-34]],[[6497,8183],[-21,-12],[29,-23],[68,-29],[-4,-26]],[[1358,1763],[102,17],[31,-5],[71,19],[120,40],[40,-3],[-2,-24],[26,-30],[-3,-26],[55,-16],[-27,-47],[10,-43],[30,-3]],[[2581,6465],[65,-33],[71,62],[-17,13],[83,56],[38,-34],[78,6],[22,-34],[39,-23],[-17,-53],[-51,-29],[-11,-42],[-79,-30],[-6,-33],[-36,-71],[-35,-42],[8,-73],[-64,-44],[-32,-41],[-41,41],[26,20],[-52,2]],[[5714,7549],[53,4],[75,-14],[65,3],[48,37],[48,64],[29,72]],[[6215,6578],[-27,72],[-1,31],[-19,33],[16,22],[-22,26],[-33,-18],[-12,18],[-53,6],[-21,20],[-50,-13]],[[1705,6133],[-36,-31],[23,-16],[-35,-39],[-85,-38],[-54,39],[-53,-85],[-52,-27],[-78,36],[-39,-64],[-70,65],[-56,34],[-14,-13],[-52,28]],[[5610,7817],[85,34],[56,-
 7],[23,-21],[81,21]],[[6636,8315],[18,-25],[-98,-58],[-59,-49]],[[6213,8270],[-42,63],[10,18],[-4,68]],[[6462,8544],[88,7],[30,-17],[21,-41],[53,13],[18,-48]],[[6672,8458],[16,-45],[-42,-10],[-38,-30],[28,-58]],[[3921,6905],[0,50],[-99,28],[15,42],[-61,48],[17,21],[28,-17],[40,35]],[[2124,6868],[47,87],[-30,0],[14,43],[75,49],[12,78],[-53,6],[11,72]],[[2300,7208],[57,-38],[1,-19],[31,-9],[33,-47],[13,-38],[58,46],[100,-115]],[[2593,6988],[-11,-108],[-26,-25],[-1,-59]],[[7015,5581],[0,40],[18,11],[-52,74],[-51,26]],[[2030,5634],[31,-5],[39,-25],[-20,-35],[68,-37],[31,-36],[-253,-294],[-11,-23],[21,-14],[-24,-27],[41,-17],[-55,-56],[-28,10],[-14,-21],[-72,26],[-82,7]],[[3453,7853],[-23,-29],[-40,-17],[18,-52],[45,-22],[43,-63],[-8,-9],[78,-104],[-71,-33],[-73,107],[-37,-12],[-60,82],[-30,-13],[-24,20],[30,4],[-11,28],[-39,22],[-54,74],[-51,12],[-15,42],[-38,19],[-6,42]],[[3087,7951],[38,10],[20,-17],[51,37],[-56,56],[53,26],[-33,31],[101,62]],[[5468,7981],[58,58],[65,34],[3,13],[52,21
 ],[29,22],[-8,17],[-94,-22],[-44,46],[-17,-7],[-41,41],[40,23],[-20,30],[-32,3]],[[5459,8260],[70,21],[17,26],[60,18]],[[5849,8402],[-26,-93],[59,-46],[32,-41],[-22,-9],[15,-47]],[[5907,8166],[-55,-18],[-19,-20],[-2,-49],[-64,10],[-3,12],[-64,-31],[-23,-25],[-61,-26],[-33,-33],[-63,-30],[-33,-6]],[[8616,5720],[-35,-11],[-5,-69],[-42,-14],[-13,-21],[-42,-8],[-8,-35],[22,-73],[23,-15]],[[5907,8166],[15,-33],[53,-6]],[[2778,7206],[-4,25],[-64,44],[-142,18],[-36,-16],[-60,12],[-13,31]],[[2351,7522],[38,-49],[23,10],[9,-27],[171,52],[85,30],[46,-52],[32,3],[35,-49],[23,6],[13,-30],[30,7],[46,-87],[26,7],[27,-30],[-159,-90],[-18,-17]],[[6989,9830],[102,42],[44,10],[-5,35],[48,-16],[20,8],[69,81],[80,-41],[44,50],[40,-27],[35,20],[8,-23],[50,-53],[-2,-18],[28,-52],[39,18],[10,-38],[-55,-55]],[[7107,8103],[24,34],[49,26],[62,-8],[58,11],[75,-16],[79,-77]],[[3087,7951],[-41,-13],[-45,66],[-60,14],[-60,-10],[-27,46],[85,47],[18,25],[-54,28],[-48,46]],[[7059,8523],[-75,31],[-6,69],[7,26],[-21,
 13]],[[6964,8662],[12,62],[56,24],[-51,-3],[14,33]],[[6995,8778],[26,6],[34,-15],[46,9],[43,25],[100,-6]],[[7244,8797],[67,-91],[16,0],[18,-40],[20,3],[16,-49],[-22,-10],[-4,-46],[-65,-8],[-1,-49],[-27,-8]],[[2778,7206],[-145,-146],[-40,-72]],[[6840,8166],[-7,0],[-58,91],[85,30],[-19,32],[-54,13],[-83,-3],[-68,-14]],[[6672,8458],[111,23],[-20,67],[77,5],[3,20],[-38,15],[135,46],[24,28]],[[5459,8260],[-51,47],[-27,36],[-199,218]],[[5385,6610],[-20,-47],[-23,-15],[-55,5],[-211,-49]],[[6956,8796],[39,-18]],[[924,3653],[3,18],[-46,16],[-30,21],[3,24],[49,-4],[78,30],[102,-21],[17,-35],[62,4],[-1,12]],[[6122,3376],[-26,-64],[-20,-1],[38,-30],[22,-59],[-17,-24],[9,-28],[31,-9],[29,-55],[-41,-42]],[[1524,2550],[-37,-54],[-49,-30],[10,-10],[-43,-26],[-86,19],[-12,15]],[[1081,2613],[0,-31],[-41,-49],[25,-50],[-60,11],[-23,-21],[-48,6],[-23,-18],[-13,-35],[-50,-14],[-74,24],[24,32],[-2,37],[46,47],[8,61],[-14,9],[22,46],[1,38],[19,31]],[[8677,5750],[45,-6],[45,-76],[30,-29],[-7,-97]],[[1161,5
 212],[-11,-16],[-79,-68],[-35,-20],[-54,-7],[-26,8],[-43,-21],[-93,3],[-46,-13],[-29,29],[-41,14],[-8,24],[50,29],[-2,30],[29,19],[11,34],[25,-13],[9,23],[38,-40],[40,13],[55,36],[30,-26],[72,35],[35,1]],[[6350,9616],[110,24]],[[7304,8982],[37,-23],[-6,-44],[8,-40],[-105,-42],[6,-36]],[[7720,8700],[-2,-64],[-53,2],[-38,-31],[-46,-9],[-109,-50],[-49,109],[21,23],[28,-1],[-19,22],[129,57],[8,-13],[53,23],[-20,34],[32,20],[12,-14],[59,-16],[-6,-92]],[[6436,5360],[-11,25]]],"transform":{"scale":[0.03698387251449812,-0.04800480048004801],"translate":[295.0991293637667,490]}}


[31/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/resources/topo/geojson/swiss/ch-lakes.json
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/resources/topo/geojson/swiss/ch-lakes.json b/libraries/spatial/src/test/resources/topo/geojson/swiss/ch-lakes.json
index 2e84cc9..633c1d1 100644
--- a/libraries/spatial/src/test/resources/topo/geojson/swiss/ch-lakes.json
+++ b/libraries/spatial/src/test/resources/topo/geojson/swiss/ch-lakes.json
@@ -1 +1,6123 @@
-{"type":"FeatureCollection","features":[{"type":"Feature","id":9040,"properties":{"name":"Greifensee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[593.9590783343607,112.49024902490248],[595.8203253450184,114.65046504650462],[596.6663467134993,115.08250825082507],[597.9071780539377,117.09870987098708],[598.1327837521992,119.018901890189],[598.8660022715492,120.50705070507047],[600.7272492822069,121.46714671467146],[600.6144464330762,123.1473147314731],[599.3736150926377,124.29942994299427],[598.4711922995915,124.20342034203418],[597.9635794785031,122.3312331233123],[595.8203253450184,118.77887788778872],[594.5230925800146,118.10681068106805],[592.3234370219645,114.8424842484248],[592.4926412956606,112.87428742874283],[593.9590783343607,112.49024902490248]]]]}},{"type":"Feature","id":9050,"properties":{"name":"Zürichsee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[616.9144581324724,147.1017101710171],[619.0577122659571,149.021902190219],[622.0469877679225,149.8379837
 983798],[637.7265837970996,147.19771977197718],[636.5421538812266,148.49384938493847],[631.9736384914303,150.12601260126007],[629.5483772351188,150.27002700270026],[629.0407644140303,149.5979597959796],[627.969137347288,150.36603660366035],[626.8975102805457,150.03000300029998],[623.8518333540148,151.03810381038102],[623.7390305048841,153.00630063006298],[622.272593466184,153.58235823582356],[620.7497550029186,152.76627662766276],[618.6629022939994,152.8142814281428],[618.3244937466071,151.75817581758173],[615.8428310657301,150.6540654065406],[611.9511327707186,150.07800780078003],[611.6127242233263,150.51005100510048],[606.6493988615723,149.64596459645963],[603.6601233596069,151.66216621662164],[602.4756934437339,151.32613261326128],[606.5365960124416,149.30993099309927],[614.7148025744225,146.66966696669664],[616.9144581324724,147.1017101710171]],[[616.4632467359494,147.9177917791779],[614.8840068481186,148.54185418541852],[614.6019997252916,149.9339933993399],[616.858056707907,14
 8.44584458445843],[616.4632467359494,147.9177917791779]]],[[[637.7265837970996,147.19771977197718],[622.0469877679225,149.8379837983798],[619.0577122659571,149.021902190219],[616.9144581324724,147.1017101710171],[614.940408272684,142.87728772877284],[617.9860851992148,143.40534053405338],[618.4372965957378,144.9414941494149],[617.4784723781263,145.51755175517548],[618.0988880483455,146.5256525652565],[619.6781279361763,146.66966696669664],[620.7497550029186,147.77377737773776],[622.6674034381417,148.10981098109806],[623.8518333540148,147.72577257725771],[623.4006219574917,146.71767176717668],[625.2054675435841,146.6216621662166],[625.8822846383687,147.38973897389735],[627.7435316490264,147.96579657965793],[630.6764057264264,147.38973897389735],[631.0148142738187,146.90969096909686],[634.2296954740457,145.6615661566156],[637.9521894953612,145.8055805580558],[637.7265837970996,147.19771977197718]]],[[[614.940408272684,142.87728772877284],[616.9144581324724,147.1017101710171],[614.7148
 025744225,146.66966696669664],[606.5365960124416,149.30993099309927],[602.4756934437339,151.32613261326128],[599.9940307628569,147.8217821782178],[597.1739595345877,146.045604560456],[596.2715367415415,144.89348934893485],[594.0718811834915,143.26132613261325],[592.4362398710953,140.8130813081308],[591.1954085306568,140.28502850285025],[590.0673800393491,140.86108610861083],[586.5704917162952,139.32493249324932],[583.3556105160683,137.5007500750075],[580.084327891276,130.78007800780074],[578.2230808806182,128.37983798379832],[577.602665210399,125.73957395739569],[576.3054324453951,122.57125712571252],[574.387784010172,119.11491149114909],[574.4441854347374,114.93849384938488],[575.403009652349,114.4104410441044],[576.5874395682221,117.57875787578757],[577.3206580875722,117.62676267626762],[578.8434965508375,119.78697869786976],[579.2383065227953,121.46714671467146],[580.8175464106259,125.06750675067502],[581.1559549580184,126.55565556555655],[583.468413365199,129.77197719771976],[58
 3.9760261862875,131.06810681068106],[586.5704917162952,134.38043804380436],[590.5185914358722,136.9246924692469],[593.9026769097953,137.64476447644762],[598.0763823276338,139.66096609660963],[598.1891851767646,140.14101410141012],[601.4604678015569,141.72517251725168],[602.7012991419954,143.2133213321332],[605.6341732193955,144.3654365436543],[613.6995769322455,143.98139813981396],[614.940408272684,142.87728772877284]]]]}},{"type":"Feature","id":9073,"properties":{"name":"Thunersee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[435.18906818280146,257.3207320732073],[440.20879496912073,261.7371737173717],[441.95723913064774,262.6492649264926],[442.6904576499977,264.08940894089403],[448.443402955667,266.2016201620162],[451.376277033067,269.22592259225917],[451.9402912787209,271.57815781578154],[453.857939713944,272.3942394239424],[454.64755965785935,271.9141914191419],[456.9600180650402,271.96219621962194],[459.1032721985248,271.14611461146114],[462.20535054962096,271.914191419
 1419],[463.3897804654941,273.45034503450347],[465.1946260515864,274.84248424842485],[464.79981607962867,275.75457545754574],[462.88216764440557,276.81068106810676],[460.7953149354863,275.7065706570657],[458.4264551037402,277.2907290729073],[456.11399669655935,278.01080108010797],[454.19634826133625,278.058805880588],[450.81226278741315,276.13861386138615],[449.176621475017,275.8025802580258],[445.3413246045708,273.64236423642365],[445.510528878267,272.1062106210621],[443.19807047108617,270.57005700570056],[442.97246477282465,269.7059705970597],[439.0807664778131,268.55385538553855],[438.34754795846305,267.1617161716172],[435.97868812671686,265.2415241524152],[435.18906818280146,263.3693369336934],[433.5534268704053,262.8892889288929],[433.6098282949707,260.72907290729074],[435.18906818280146,257.3207320732073]]]]}},{"type":"Feature","id":9089,"properties":{"name":"Brienzersee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[494.57976825015203,254.58445844584458],[497.1742337801
 598,255.54455445544554],[498.35866369603286,255.25652565256524],[499.48669218734057,256.16861686168613],[499.3738893382098,258.3288328832883],[496.10260671341746,258.90489048904885],[490.12405570948664,262.5052505250525],[487.6987944531751,264.5694569456946],[484.0891032809904,266.1056105610561],[482.34065911946345,268.07380738073806],[479.29498219293265,270.18601860186016],[475.96729814357496,270.37803780378033],[475.7980938698788,269.7059705970597],[473.8240440100903,269.08190819081904],[476.24930526640185,267.0657065706571],[477.54653803140576,266.5376537653765],[481.66384202467884,263.4173417341734],[485.72474459338656,259.4809480948095],[487.30398448121736,258.7608760876087],[488.714020095352,256.7446744674467],[491.8724998710136,255.11251125112508],[494.57976825015203,254.58445844584458]]]]}},{"type":"Feature","id":9148,"properties":{"name":"Bielersee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[347.14644443623524,187.5217521752175],[346.6388316151468,186.849684968496
 83],[349.007691446893,185.79357935793576],[347.14644443623524,187.5217521752175]]],[[[351.0381427312468,188.62586258625862],[347.7668601064545,188.62586258625862],[347.14644443623524,187.5217521752175],[349.007691446893,185.79357935793576],[352.10976979798914,184.2094209420942],[353.12499544016606,182.28922892289228],[358.65233504757384,178.88088808880883],[359.7239621143161,178.6408640864086],[363.05164616367387,175.95259525952594],[364.23607607954693,174.36843684368432],[367.4509572797739,172.016201620162],[369.7070142623893,169.6159615961596],[371.2862541502201,168.7998799879988],[371.9630712450047,169.5199519951995],[369.4814085641278,173.07230723072303],[369.19940144130084,174.41644164416437],[367.0561473078162,177.77677767776777],[367.1125487323816,179.40894089408937],[364.0104703812854,184.5454545454545],[362.6004347671508,184.73747374737474],[362.4312304934546,186.12961296129612],[360.6263849073623,187.80978097809776],[358.31392650018154,188.3378337833783],[356.1142709421315
 ,189.68196819681964],[353.2941997138622,190.59405940594058],[351.32014985407375,189.77797779777973],[351.0381427312468,188.62586258625862]],[[351.0381427312468,188.62586258625862],[352.22257264711993,188.09780978097808],[356.0014680930007,185.5055505550555],[357.9191165282238,183.44134413441344],[358.31392650018154,182.24122412241223],[357.41150370713535,181.7131713171317],[356.1142709421315,184.44944494449442],[351.0381427312468,188.62586258625862]]]]}},{"type":"Feature","id":9151,"properties":{"name":"Lac de Neuchâtel"},"geometry":{"type":"MultiPolygon","coordinates":[[[[300.44606489609635,232.59825982598255],[294.4111124676001,238.3108310831083],[298.3592121871771,242.6312631263126],[296.3287609028232,244.1194119411941],[294.0727039202078,242.9192919291929],[290.2374070497616,243.15931593159314],[289.84259707780393,243.6393639363936],[286.00730020735773,245.4155415541554],[283.0744261299577,247.23972397239723],[280.53636202451537,248.007800780078],[279.5775378069038,247.76777677
 767774],[277.6598893716807,245.65556555655564],[277.6598893716807,244.16741674167415],[281.43878481756155,240.95109510951093],[284.37165889496157,239.70297029702968],[285.6688916599654,237.78277827782776],[288.94017428475775,235.86258625862584],[290.3502098988924,233.8463846384638],[292.493464032377,232.93429342934292],[294.24190819390395,231.2541254125412],[296.27235947825784,229.95799579957992],[296.7799722993463,228.9018901890189],[300.44606489609635,232.59825982598255]]],[[[317.98690793593113,225.01350135013502],[315.336040981358,227.89378937893787],[314.49001961287723,229.2379237923792],[309.6394971002541,232.74227422742274],[308.9062785809041,234.13441344134412],[305.63499595611177,235.5265526552655],[303.5481432471925,237.20672067206718],[298.3592121871771,242.6312631263126],[294.4111124676001,238.3108310831083],[300.44606489609635,232.59825982598255],[314.03880821635414,219.78097809780974],[317.98690793593113,225.01350135013502]]],[[[341.3370977060006,203.79537953795375],[34
 0.71668203578133,205.71557155715567],[339.3066464216467,207.5397539753975],[335.8661595231582,209.93999399939992],[334.7381310318505,210.32403240324032],[331.7488555298851,212.5322532253225],[331.86165837901586,213.39633963396335],[328.9851857261812,215.65256525652563],[323.85265609073116,209.89198919891987],[335.47134955120055,202.2112211221122],[341.3370977060006,203.79537953795375]]],[[[328.9851857261812,215.65256525652563],[325.6011002522581,218.72487248724872],[322.72462759942346,220.74107410741072],[318.7765278798465,216.13261326132613],[323.85265609073116,209.89198919891987],[328.9851857261812,215.65256525652563]]],[[[322.72462759942346,220.74107410741072],[319.67895067289265,222.6132613261326],[319.67895067289265,223.28532853285327],[317.98690793593113,225.01350135013502],[314.03880821635414,219.78097809780974],[318.7765278798465,216.13261326132613],[322.72462759942346,220.74107410741072]]],[[[341.3370977060006,203.79537953795375],[339.0810407233852,197.8427842784278],[340.9
 422877340429,198.85088508850885],[342.6907318955698,201.87518751875183],[341.3370977060006,203.79537953795375]]],[[[339.0810407233852,197.8427842784278],[341.3370977060006,203.79537953795375],[335.47134955120055,202.2112211221122],[323.85265609073116,209.89198919891987],[318.7765278798465,216.13261326132613],[314.03880821635414,219.78097809780974],[300.44606489609635,232.59825982598255],[296.7799722993463,228.9018901890189],[298.07720506435015,225.34953495349532],[299.0360292819617,224.05340534053403],[300.6152691697925,223.23732373237323],[302.02530478392714,221.17311731173118],[303.83015037001945,219.54095409540952],[304.50696746480406,218.38883888388835],[308.39866575981563,215.8445844584458],[309.80870137395027,215.74857485748572],[310.1471099213426,213.97239723972393],[310.936729865258,213.1083108310831],[313.0799839987426,212.5322532253225],[314.9412310094003,211.38013801380134],[315.4488438304888,208.78787878787875],[315.61804810418494,206.003600360036],[317.47929511484267,20
 4.7074707470747],[320.6941763150696,203.98739873987398],[323.51424754333885,201.6351635163516],[323.96545893986195,201.82718271827179],[328.6467771787889,199.7149714971497],[328.81598145248506,198.94689468946893],[330.6772284631428,198.3228322832283],[332.4820740492351,196.97869786978697],[334.11771536163127,197.17071707170714],[336.03536379685437,198.56285628562853],[339.0810407233852,197.8427842784278]]]]}},{"type":"Feature","id":9157,"properties":{"name":"Baldeggersee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[529.7742571789524,149.021902190219],[531.6919056141755,149.26192619261923],[532.4251241335255,150.22202220222022],[533.1583426528755,153.77437743774374],[534.117166870487,155.35853585358535],[534.2299697196179,157.27872787278727],[533.7223568985294,157.95079507950794],[532.2559198598294,156.7026702670267],[530.451074273737,152.9102910291029],[529.1538415087332,150.89408940894089],[529.7742571789524,149.021902190219]]]]}},{"type":"Feature","id":9163,"properties":{
 "name":"Sempachersee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[510.7105756758522,159.15091509150915],[512.7974283847715,160.44704470447044],[514.4330696971676,162.36723672367236],[517.7607537465253,164.9114911491149],[520.6936278239255,167.64776477647763],[521.1448392204485,169.6159615961596],[519.9604093045754,171.6321632163216],[519.0015850869638,171.7281728172817],[515.5046967639099,169.42394239423942],[513.4742454795561,167.64776477647763],[510.6541742512868,164.43144314431441],[510.14656143019835,161.74317431743174],[510.7105756758522,159.15091509150915]]]]}},{"type":"Feature","id":9172,"properties":{"name":"Hallwilersee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[526.5593759787255,136.30063006300628],[525.3749460628524,141.00510051005097],[523.6265019013254,136.78067806780678],[522.6112762591486,132.98829882988298],[521.9908605889293,129.29192919291927],[522.0472620134947,126.65166516651664],[523.4572976276293,126.17161716171614],[524.585326118937,127.851
 78517851784],[525.318544638287,131.1161116111611],[526.6721788278562,135.6285628562856],[526.5593759787255,136.30063006300628]]],[[[525.3749460628524,141.00510051005097],[526.5593759787255,136.30063006300628],[527.4053973472062,138.3168316831683],[526.1081645822023,142.54125412541254],[525.3749460628524,141.00510051005097]]]]}},{"type":"Feature","id":9175,"properties":{"name":"Zugersee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[568.2964301571105,175.37653765376535],[565.9275703253643,173.98439843984397],[567.2812045149335,173.26432643264326],[566.6607888447143,171.82418241824178],[565.2507532305797,171.96819681968196],[564.1791261638373,171.20012001200115],[566.3787817218874,169.5199519951995],[568.3528315816759,172.25622562256223],[568.2964301571105,175.37653765376535]]],[[[572.6393398486451,177.63276327632758],[568.2964301571105,175.37653765376535],[568.3528315816759,172.25622562256223],[566.3787817218874,169.5199519951995],[564.1791261638373,171.20012001200115],[563.72
 79147673142,168.7998799879988],[565.0251475323181,166.5436543654365],[562.7690905497027,165.91959195919588],[562.656287700572,164.67146714671463],[563.4459076444873,162.65526552655263],[561.8666677566566,159.34293429342932],[562.1486748794835,158.28682868286825],[564.4611332866643,156.99069906990695],[565.8147674762336,156.75067506750673],[566.2095774481912,157.99879987998798],[567.9580216097181,157.66276627662762],[570.9472971116836,159.24692469246924],[571.3985085082066,159.9189918991899],[569.8192686203759,164.67146714671463],[569.9320714695066,167.023702370237],[568.4092330062413,169.90399039903986],[569.7628671958105,173.6483648364836],[572.6393398486451,177.63276327632758]]],[[[568.2964301571105,175.37653765376535],[572.6393398486451,177.63276327632758],[573.7109669153874,181.95319531953191],[572.0753256029913,183.96939693969392],[570.270480016899,181.56915691569156],[567.7324159114567,179.9369936993699],[564.3483304375335,176.9606960696069],[564.0663233147066,175.952595259525
 94],[565.9275703253643,173.98439843984397],[568.2964301571105,175.37653765376535]]]]}},{"type":"Feature","id":9179,"properties":{"name":"Vierwaldstättersee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[564.6867389849258,199.09090909090907],[564.2919290129681,201.92319231923187],[569.1988529501566,203.65136513651362],[572.8085441223413,202.83528352835282],[576.4182352945259,202.83528352835282],[580.5355392877991,200.33903390339032],[581.3251592317145,201.77917791779174],[577.5462637858336,204.17941794179416],[573.5981640662567,205.33153315331532],[571.6805156310336,206.48364836483648],[569.1424515255912,206.8196819681968],[566.3787817218874,206.09960996099608],[564.6867389849258,204.65946594659465],[561.8666677566566,204.7074707470747],[560.5694349916528,204.03540354035403],[558.0877723107758,203.79537953795375],[556.959743819468,202.4512451245124],[557.0725466685988,201.3951395139514],[560.8514421144796,199.6189618961896],[563.2767033707912,199.42694269426943],[563.95352046
 55758,198.70687068706866],[562.7126891251373,198.034803480348],[558.1441737353412,197.79477947794777],[558.3133780090373,194.43444344434442],[564.7995418340565,196.1626162616261],[564.6867389849258,199.09090909090907]]],[[[551.6580099103219,197.69876987698768],[549.1199458048795,197.6027602760276],[547.1458959450911,200.0990099009901],[546.5818816994372,201.7311731173117],[543.9874161694295,203.12331233123308],[544.3822261413872,204.99549954995496],[542.8029862535564,206.57965796579657],[539.4753022041987,208.69186918691867],[539.9829150252872,205.71557155715567],[541.2237463657256,205.57155715571554],[543.4234019237756,204.46744674467442],[543.7054090466025,202.6912691269127],[540.8289363937679,202.9312931293129],[541.2237463657256,200.96309630963094],[540.6597321200718,198.8988898889889],[541.4493520639871,198.70687068706866],[543.9310147448641,201.10711071107107],[549.1199458048795,194.05040504050402],[551.4888056366257,194.43444344434442],[551.6580099103219,197.69876987698768]]]
 ,[[[565.589161777972,199.28292829282924],[564.6867389849258,199.09090909090907],[564.7995418340565,196.1626162616261],[558.3133780090373,194.43444344434442],[558.1441737353412,197.79477947794777],[552.7860384016295,197.5067506750675],[551.6580099103219,197.69876987698768],[551.4888056366257,194.43444344434442],[549.1199458048795,194.05040504050402],[543.9310147448641,201.10711071107107],[541.4493520639871,198.70687068706866],[540.6597321200718,198.8988898889889],[539.5881050533294,196.59465946594656],[541.1109435165948,196.06660666066603],[541.6749577622486,197.65076507650764],[543.1413948009487,198.4188418841884],[544.8898389624756,197.26672667266723],[544.5514304150834,194.86648664866482],[545.0590432361718,194.43444344434442],[544.0438175939948,193.0903090309031],[544.5514304150834,191.60216021602156],[542.2389720079025,188.86588658865884],[539.7009079024601,186.51365136513647],[543.4234019237756,186.27362736273625],[546.6946845485679,189.77797779777973],[546.9202902468295,190.88
 208820882085],[548.1047201627025,190.88208820882085],[550.9247913909719,187.95379537953795],[553.0680455244565,186.17761776177616],[554.4216797140257,184.5454545454545],[558.5953851318642,183.48934893489348],[558.0877723107758,186.41764176417638],[556.959743819468,188.09780978097808],[554.9292925351142,189.44194419441942],[553.2372497981526,191.84218421842183],[554.1396725911989,192.41824182418242],[555.4933067807681,191.69816981698165],[557.241750942295,191.89018901890188],[558.0877723107758,191.3141314131413],[560.6258364162181,191.36213621362134],[562.4306820023104,192.9462946294629],[564.5739361357951,193.0903090309031],[565.4199575042758,194.48244824482447],[566.7171902692796,195.25052505250522],[567.2812045149335,197.69876987698768],[565.589161777972,199.28292829282924]]],[[[558.5953851318642,183.48934893489348],[554.4216797140257,184.5454545454545],[555.9445181772911,183.92139213921388],[559.1593993775181,179.88898889888986],[559.7798150477373,179.79297929792978],[558.5953851
 318642,183.48934893489348]]],[[[588.4881401515183,208.88388838883884],[588.6009430006491,210.03600360036],[587.2473088110798,213.25232523252322],[587.4729145093414,214.98049804980496],[589.164957246303,216.94869486948693],[588.8829501234761,218.48484848484844],[589.4469643691299,219.1569156915691],[588.9957529726069,220.78907890789077],[587.5293159339068,221.22112211221122],[586.0628788952067,223.28532853285327],[585.1604561021607,221.84518451845184],[584.483639007376,219.6369636963696],[584.483639007376,217.71677167716769],[585.1604561021607,216.61266126612657],[582.4531877230222,214.06840684068402],[583.2992090915029,209.89198919891987],[584.5964418565068,205.7635763576357],[584.0888290354183,203.69936993699366],[584.7092447056375,201.20312031203116],[583.0736033932413,200.77107710771077],[581.3251592317145,201.77917791779174],[580.5355392877991,200.33903390339032],[582.6223919967183,199.57095709570956],[584.9348504038991,200.24302430243023],[585.8936746215106,201.01110111011099],
 [585.6116674986837,203.69936993699366],[585.950076046076,205.23552355235523],[586.1756817443376,209.02790279027903],[588.4881401515183,208.88388838883884]]],[[[539.4753022041987,208.69186918691867],[537.783259467237,209.6999699969997],[537.1064423724524,208.64386438643862],[535.8656110320139,209.07590759075907],[536.147618154841,208.11581158115808],[538.2344708637602,206.48364836483648],[539.9829150252872,205.71557155715567],[539.4753022041987,208.69186918691867]]],[[[588.4881401515183,208.88388838883884],[586.1756817443376,209.02790279027903],[585.950076046076,205.23552355235523],[585.6116674986837,203.69936993699366],[585.8936746215106,201.01110111011099],[584.9348504038991,200.24302430243023],[582.6223919967183,199.57095709570956],[580.5355392877991,200.33903390339032],[576.4182352945259,202.83528352835282],[572.8085441223413,202.83528352835282],[569.1988529501566,203.65136513651362],[564.2919290129681,201.92319231923187],[564.6867389849258,199.09090909090907],[565.589161777972,1
 99.28292829282924],[567.6196130623258,199.66696669666965],[568.6348387045027,200.38703870387036],[572.4137341503836,199.6189618961896],[575.2338053786528,200.86708670867085],[577.602665210399,200.77107710771077],[581.3815606562798,198.17881788178818],[583.4120119406336,197.89078907890786],[584.0888290354183,199.04290429042902],[586.5704917162952,199.76297629762973],[587.0217031128184,200.96309630963094],[586.8524988391222,203.93939393939394],[587.5293159339068,206.8196819681968],[588.4881401515183,208.88388838883884]]]]}},{"type":"Feature","id":9216,"properties":{"name":"Sihlsee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[613.0227598374609,162.36723672367236],[614.3763940270301,163.03930393039303],[614.0943869042032,164.95949594959495],[615.5044225183378,169.2319231923192],[615.5044225183378,171.6321632163216],[616.0684367639917,174.27242724272423],[619.1705151150879,176.33663366336629],[618.8321065676955,177.4407440744074],[617.7604795009532,177.5367536753675],[616.124838
 1885571,176.43264326432643],[615.1660139709455,174.65646564656464],[613.473971233984,173.88838883888388],[613.0791612620262,172.78427842784276],[613.6995769322455,171.68016801680164],[612.3459427426762,170.67206720672067],[612.2895413181109,169.18391839183914],[610.4846957320185,165.87158715871584],[609.6386743635378,165.3435343534353],[610.4846957320185,163.51935193519347],[612.0075341952839,163.42334233423338],[613.0227598374609,162.36723672367236]]]]}},{"type":"Feature","id":9239,"properties":{"name":"Sarnersee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[529.5486514806909,223.95739573957394],[529.8870600280832,225.06150615061506],[529.3794472069947,227.6057605760576],[525.4313474874177,230.87008700870086],[523.6265019013254,233.79837983798376],[521.4268463432754,231.92619261926188],[522.4420719854523,229.52595259525953],[526.2209674313331,227.3177317731773],[528.5898272630793,224.05340534053403],[529.5486514806909,223.95739573957394]]]]}},{"type":"Feature","id":9267,"pr
 operties":{"name":"Walensee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[676.7563695963461,169.6159615961596],[673.7106926698153,169.18391839183914],[668.8037687326268,167.55175517551754],[666.0965003534884,167.59975997599759],[664.0096476445691,167.26372637263722],[662.6560134549998,166.25562556255625],[668.5217616097999,166.35163516351633],[670.3266071958922,166.97569756975696],[676.9255738700423,168.03180318031798],[676.7563695963461,169.6159615961596]]],[[[676.7563695963461,169.6159615961596],[676.9255738700423,168.03180318031798],[670.3266071958922,166.97569756975696],[668.5217616097999,166.35163516351633],[662.6560134549998,166.25562556255625],[665.0812747113114,164.76747674767472],[669.8189943748038,165.19951995199517],[672.0750513574192,165.8235823582358],[676.58716532265,165.91959195919588],[680.8172721650539,166.87968796879687],[686.6266188952885,166.3036303630363],[689.7850986709501,166.6396639663966],[690.6311200394309,166.3036303630363],[694.1280083624847,166.4
 4764476447642],[694.015205513354,168.89588958895888],[690.800324313127,170.04800480048004],[687.2470345655078,169.42394239423942],[686.4010131970269,170.04800480048004],[682.6785191757116,170.57605760576052],[680.9864764387501,169.71197119711968],[680.3096593439654,170.19201920192017],[676.7563695963461,169.6159615961596]]]]}},{"type":"Feature","id":9270,"properties":{"name":"Aegerisee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[583.4120119406336,166.59165916591655],[585.7244703478145,166.83168316831683],[586.7960974145568,167.8397839783978],[587.8677244812991,167.59975997599759],[589.3905629445645,168.27182718271825],[591.4774156534838,171.5361536153615],[591.364612804353,173.55235523552352],[590.2929857376107,174.6084608460846],[588.8829501234761,173.26432643264326],[588.9393515480415,172.06420642064205],[586.0628788952067,170.48004800480044],[583.6376176388952,169.80798079807977],[584.1452304599836,168.46384638463843],[583.4120119406336,166.59165916591655]]]]}},{"type":
 "Feature","id":9276,"properties":{"name":"Lac de la Gruyère"},"geometry":{"type":"MultiPolygon","coordinates":[[[[352.33537549625066,263.8493849384938],[351.32014985407375,265.81758175817583],[350.07931851363526,266.2496249624962],[350.30492421189683,267.44974497449743],[351.99696694885836,269.1779177917791],[352.22257264711993,270.8100810081008],[353.8018125349507,270.04200420042],[352.8429883173392,271.9141914191419],[351.5457555523353,271.5301530153015],[351.99696694885836,272.4902490249025],[350.30492421189683,273.97839783978395],[350.53052991015835,275.7065706570657],[349.85371281537374,276.8586858685868],[350.0229170890699,280.26702670267025],[351.0381427312468,283.2433243324332],[351.2637484295084,287.8037803780378],[349.74090996624295,287.3237323732373],[348.95129002232756,284.15541554155413],[349.007691446893,281.2751275127513],[349.5717056925468,278.1548154815481],[348.8948885977622,277.05070507050704],[349.74090996624295,275.5625562556255],[348.72568432406604,275.0825082
 508251],[347.14644443623524,276.04260426042606],[348.1052686538468,274.74647464746477],[348.33087435210837,273.1143114311431],[351.0381427312468,270.57005700570056],[351.2637484295084,269.36993699369935],[348.72568432406604,269.033903390339],[349.85371281537374,267.0657065706571],[348.4436772012391,266.39363936393636],[350.86893845755066,265.28952895289524],[352.33537549625066,263.8493849384938]]]]}},{"type":"Feature","id":9294,"properties":{"name":"Murtensee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[348.1052686538468,219.10891089108907],[344.3827746325314,213.7323732373237],[344.89038745361984,212.72427242724268],[347.93606438015064,211.4281428142814],[352.2789740716853,209.07590759075907],[354.0838196577776,209.2199219921992],[355.7758623947392,211.62016201620162],[355.5502566964776,212.58025802580255],[353.2941997138622,214.98049804980496],[350.5869313347238,217.2367236723672],[348.7820857486314,217.2367236723672],[348.1052686538468,219.10891089108907]]],[[[348.105268
 6538468,219.10891089108907],[345.22879600101214,220.8370837083708],[343.42395041491983,220.9330933093309],[341.9575133762198,220.30903090309027],[340.378273488389,218.62886288628863],[340.378273488389,216.75667566756675],[344.3827746325314,213.7323732373237],[348.1052686538468,219.10891089108907]]]]}},{"type":"Feature","id":9326,"properties":{"name":"Bodensee"},"geometry":{"type":"MultiPolygon","coordinates":[[[[664.5172604656575,44.13141314131411],[663.6148376726114,44.035403540354025],[661.2459778408652,42.259225922592236],[659.2719279810767,41.395139513951335],[655.8878425071537,41.49114911491148],[654.477806893019,40.579057905790535],[652.6165598823613,40.195019501950185],[647.1456216995189,40.147014701470084],[644.2691490466843,41.49114911491148],[641.3362749692842,43.21932193219317],[639.4186265340611,44.94749474947491],[635.9217382110073,47.011701170116964],[633.8912869266534,47.39573957395737],[628.7587572912033,49.17191719171916],[626.7847074314149,47.63576357635759],[625.6
 002775155418,47.63576357635759],[625.6002775155418,47.34773477347733],[628.4767501683764,48.21182118211817],[631.2968213966457,47.49174917491746],[633.5528783792611,46.195619561956164],[634.286096898611,46.57965796579657],[638.0085909199265,43.93939393939388],[640.3774507516728,43.363336333633356],[640.715859299065,42.355235523552324],[643.3103248290727,40.96309630963094],[645.7355860853843,37.842784278427814],[643.4231276782035,35.29852985298527],[640.2646479025419,34.24242424242419],[637.6701823725342,32.370237023702316],[635.6961325127457,31.506150615061472],[635.4705268144842,29.729972997299683],[638.4598023164497,28.481848184818432],[640.4902536008035,29.00990099009897],[644.4383533203804,31.17011701170111],[644.8895647169036,30.834083408340803],[646.863614576692,31.60216021602156],[644.3819518958151,29.1539153915391],[642.5771063097227,28.76987698769875],[642.182296337765,27.185718571857137],[643.5923319518997,27.137713771377094],[644.6075575940765,28.241824182418213],[648.048
 044492565,30.35403540354031],[649.5708829558305,30.69006900690067],[657.0158709984613,34.67446744674464],[658.9335194336844,35.10651065106509],[660.4563578969498,36.210621062106156],[661.9227949356498,38.99489948994898],[658.9335194336844,39.71497149714969],[661.8663935110844,39.66696669666965],[664.4044576165268,42.73927392739273],[664.5172604656575,44.13141314131411]],[[650.9245171453997,34.91449144914486],[651.544932815619,35.922592259225894],[650.9245171453997,36.59465946594656],[651.6013342401843,38.418841884188396],[655.8314410825883,40.195019501950185],[657.3542795458536,40.53105310531049],[658.7079137354228,39.85898589858982],[653.9701940719306,35.87458745874585],[652.8421655806228,36.16261626162611],[652.1089470612728,35.10651065106509],[650.9245171453997,34.91449144914486]]],[[[738.3467252217467,61.17311731173112],[730.6761314808543,72.16621662166216],[727.7996588280198,72.55025502550251],[725.0923904488811,72.35823582358233],[723.2311434382234,70.05400540054],[715.2221411
 499388,60.453045304530406],[714.0377112340657,59.39693969396939],[686.2318089233308,46.05160516051603],[683.1861319968,45.42754275427541],[681.0992792878808,46.05160516051603],[676.1359539261268,46.43564356435638],[673.7670940943807,46.05160516051603],[673.0338755750307,46.43564356435638],[672.4134599048115,43.89138913891384],[674.2183054909037,43.93939393939388],[676.58716532265,44.707470747074694],[678.3920109087423,43.987398739873925],[677.2639824174346,41.683168316831654],[677.4331866911307,40.24302430243023],[675.8539468033,38.08280828082803],[673.5414883961191,36.78667866786674],[672.3006570556806,35.20252025202518],[672.5826641785077,33.714371437143654],[671.3418328380692,28.481848184818432],[669.4805858274115,27.617761776177588],[667.4501345430576,25.265526552655217],[665.4760846832692,25.74557455745571],[661.5279849636921,22.385238523852365],[658.425906612596,21.281128112811246],[654.929018289542,18.832883288328787],[651.6013342401843,14.704470447044685],[649.063270134742,1
 3.168316831683114],[649.4580801066998,11.248124812481194],[650.3041014751805,9.999999999999943],[652.6729613069267,10.768076807680757],[653.462581250842,10.480048004800437],[655.0418211386728,12.30423042304227],[657.8054909423768,14.368436843684322],[660.8511678689075,15.616561656165572],[663.3892319743499,17.680768076807624],[664.7992675884844,19.888988898889863],[665.758091806096,20.65706570657062],[668.4089587606691,21.185118511851158],[672.2442556311153,23.153315331533122],[674.0491012172076,24.689468946894635],[676.58716532265,25.45754575457545],[679.2944337017884,27.137713771377094],[679.52003940005,30.93009300930089],[681.2684835615769,33.61836183618357],[685.667794677677,37.45874587458741],[687.3598374146386,38.03480348034799],[689.2210844252962,39.71497149714969],[692.8871770220462,41.92319231923187],[694.8048254572693,42.16321632163215],[698.8093266014117,44.65946594659465],[699.9373550927194,44.80348034803478],[702.4754191981617,43.45934593459344],[704.3930676333848,43.45
 934593459344],[705.1262861527348,42.83528352835282],[707.777153107308,42.787278727872774],[710.0896115144888,43.363336333633356],[711.725252826885,45.091509150915044],[713.3608941392811,45.18751875187513],[715.8989582447234,46.29162916291625],[716.4629724903773,47.10771077107705],[718.1550152273389,46.43564356435638],[719.2266422940811,46.91569156915688],[719.9034593888657,46.195619561956164],[722.4415234943081,47.443744374437415],[724.923186175185,50.75607560756072],[724.9795875997504,52.86828682868281],[726.4460246384504,54.35643564356434],[726.8972360349735,57.284728472847235],[729.0404901684581,58.91689168916889],[729.9429129615044,60.16501650165014],[731.6349556984658,61.07710771077103],[733.7782098319506,61.36513651365135],[736.6546824847851,60.453045304530406],[738.3467252217467,61.17311731173112]],[[674.7259183119922,34.33843384338428],[673.7670940943807,35.49054905490544],[675.6283411050384,35.77857785778576],[674.7259183119922,34.33843384338428]]],[[[758.4256323670238,72.1
 6621662166216],[732.5937799160774,79.55895589558952],[730.6761314808543,72.16621662166216],[738.3467252217467,61.17311731173112],[739.0799437410967,63.57335733573353],[740.8847893271891,64.7254725472547],[742.4640292150198,64.19741974197416],[742.9716420361083,64.96549654965492],[744.6636847730699,65.49354935493545],[746.1865232363352,67.26972697269724],[750.4730315033046,67.12571257125711],[751.1498485980892,68.27782778277822],[752.447081363093,68.70987098709867],[755.6055611387546,68.37383738373836],[757.297603875716,69.90999099909988],[758.4256323670238,72.16621662166216]],[[751.1498485980892,68.90189018901884],[749.9090172576507,69.66996699669966],[751.6574614191777,70.19801980198014],[752.3342785139623,68.99789978997899],[751.1498485980892,68.90189018901884]]],[[[625.6002775155418,47.34773477347733],[625.6002775155418,47.63576357635759],[623.7390305048841,47.587758775877546],[623.0058119855341,46.86768676867683],[625.6002775155418,47.34773477347733]]],[[[723.2311434382234,70.05
 400540054],[713.0788870164542,79.55895589558952],[713.6429012621081,77.1587158715871],[712.0636613742772,76.53465346534648],[708.0591602301349,72.93429342934292],[705.0134833036041,70.67806780678063],[704.2238633596887,69.04590459045903],[704.6750747562118,65.82958295829582],[704.111060510558,64.82148214821478],[698.2453123557578,61.797179717971744],[695.5944454011848,60.1170117011701],[692.7179727483501,57.76477647764773],[691.4207399833463,56.27662766276626],[687.9238516602924,54.308430843084295],[683.9757519407154,52.48424842484246],[683.4681391196269,51.90819081908188],[679.5764408246154,51.04410441044104],[677.9407995122192,49.507950795079466],[675.6847425296038,48.259825982598215],[674.7823197365576,48.3558355835583],[673.0338755750307,46.43564356435638],[673.7670940943807,46.05160516051603],[676.1359539261268,46.43564356435638],[681.0992792878808,46.05160516051603],[683.1861319968,45.42754275427541],[686.2318089233308,46.05160516051603],[714.0377112340657,59.39693969396939],[
 715.2221411499388,60.453045304530406],[723.2311434382234,70.05400540054]]],[[[664.5172604656575,44.13141314131411],[663.0508234269575,44.563456345634506],[659.6667379530345,44.32343234323429],[658.4823080371614,42.643264326432586],[656.7338638756344,43.363336333633356],[655.5494339597612,42.59525952595254],[650.529707173442,42.499249924992455],[648.8940658610459,42.83528352835282],[647.6532345206074,42.355235523552324],[644.8331632923381,43.171317131713124],[643.1975219799419,44.08340834083407],[642.2386977623304,43.89138913891384],[640.4338521762381,45.955595559555945],[638.7982108638419,46.91569156915688],[635.2449211162227,48.115811581158084],[634.286096898611,48.06780678067804],[632.9324627090418,49.41194119411938],[632.0300399159958,48.97989798979893],[630.3943986035995,49.98799879987996],[628.0819401964187,49.795979597959786],[626.7283060068495,48.115811581158084],[625.3182703927148,48.30783078307826],[623.7390305048841,47.587758775877546],[625.6002775155418,47.63576357635759]
 ,[626.7847074314149,47.63576357635759],[628.7587572912033,49.17191719171916],[633.8912869266534,47.39573957395737],[635.9217382110073,47.011701170116964],[639.4186265340611,44.94749474947491],[641.3362749692842,43.21932193219317],[644.2691490466843,41.49114911491148],[647.1456216995189,40.147014701470084],[652.6165598823613,40.195019501950185],[654.477806893019,40.579057905790535],[655.8878425071537,41.49114911491148],[659.2719279810767,41.395139513951335],[661.2459778408652,42.259225922592236],[663.6148376726114,44.035403540354025],[664.5172604656575,44.13141314131411]]],[[[732.5373784915121,80.80708070807077],[732.5937799160774,79.55895589558952],[758.4256323670238,72.16621662166216],[759.4972594337662,72.55025502550251],[761.6969149918161,74.99849984998497],[761.7533164163815,77.73477347734769],[760.8508936233354,78.55085508550854],[754.9851454685354,78.022802280228],[753.7443141280969,78.50285028502844],[751.8266656928738,81.67116711671162],[750.6422357770007,82.39123912391238],
 [751.0370457489585,80.6150615061506],[749.6270101348236,79.94299429942993],[749.4578058611276,81.28712871287127],[748.8937916154737,78.88688868886885],[748.8937916154737,81.04710471047099],[748.047770246993,80.80708070807077],[745.9609175380738,82.91929192919287],[744.4944804993736,80.56705670567055],[745.566107566116,79.60696069606956],[744.7764876222006,78.74287428742872],[742.0692192430622,81.62316231623157],[741.1667964500159,81.52715271527148],[739.869563685012,82.96729672967291],[736.5418796356544,83.20732073207319],[734.1730198039081,81.62316231623157],[733.6654069828198,80.03900390039001],[732.5373784915121,80.80708070807077]]],[[[730.6761314808543,72.16621662166216],[732.5937799160774,79.55895589558952],[732.5373784915121,80.80708070807077],[730.1685186597658,82.77527752775273],[729.7737086878083,83.9273927392739],[727.5740531297581,85.07950795079506],[722.8363334662658,85.75157515751573],[720.523875059085,85.2235223522352],[718.1550152273389,82.00720072007198],[715.2785425
 745042,80.9510951095109],[714.4889226305888,79.70297029702965],[713.0788870164542,79.55895589558952],[723.2311434382234,70.05400540054],[725.0923904488811,72.35823582358233],[727.7996588280198,72.55025502550251],[730.6761314808543,72.16621662166216]]]]}},{"type":"Feature","id":9710,"properties":{"name":"Lago di Lugano"},"geometry":{"type":"MultiPolygon","coordinates":[[[[639.4186265340611,445.3075307530753],[638.6290065901458,445.73957395739575],[637.4445766742726,447.8037803780378],[636.5421538812266,447.27572757275726],[636.767759579488,444.29942994299427],[635.4705268144842,443.1953195319532],[634.9065125688303,440.4110411041104],[635.865336786442,438.2988298829883],[635.2449211162227,436.1866186618662],[633.0452655581726,436.2826282628263],[632.7068570107804,435.3225322532253],[631.4660256703419,435.034503450345],[630.2815957544688,433.6903690369037],[633.7784840775226,435.7065706570657],[635.6961325127457,435.17851785178516],[636.1473439092688,436.1866186618662],[636.2037453338
 341,439.1149114911491],[635.5833296636149,441.37113711371137],[638.0649923444919,444.5874587458746],[639.4186265340611,445.3075307530753]]],[[[648.8376644364805,429.46594659465944],[648.3864530399574,431.4341434143414],[647.596833096042,432.3942394239424],[647.3712273977804,434.026402640264],[645.9047903590804,433.6903690369037],[647.1456216995189,429.27392739273927],[648.8376644364805,429.46594659465944]]],[[[656.4518567528075,425.1455145514551],[654.195799770192,425.96159615961597],[653.6317855245381,426.6816681668167],[650.0220943523536,428.31383138313834],[648.8376644364805,429.46594659465944],[647.1456216995189,429.27392739273927],[645.9047903590804,433.6903690369037],[647.3712273977804,434.026402640264],[646.9764174258228,435.8505850585058],[645.9047903590804,436.71467146714673],[646.9200160012574,437.43474347434744],[646.8072131521267,439.35493549354936],[647.3712273977804,440.84308430843083],[648.9504672856112,442.04320432043204],[650.0220943523536,444.5874587458746],[649.51
 44815312651,447.03570357035704],[648.3864530399574,446.79567956795677],[647.9916430679997,442.7152715271527],[644.7767618677727,440.0750075007501],[642.5771063097227,441.65916591659163],[641.3926763938496,443.96339633963396],[639.4186265340611,445.3075307530753],[638.0649923444919,444.5874587458746],[635.5833296636149,441.37113711371137],[636.2037453338341,439.1149114911491],[636.1473439092688,436.1866186618662],[635.6961325127457,435.17851785178516],[633.7784840775226,435.7065706570657],[630.2815957544688,433.6903690369037],[631.635229944038,432.34623462346235],[632.3120470388226,433.06630663066306],[631.8608356422995,434.6024602460246],[632.650455586215,435.0825082508251],[634.7937097196996,434.55445544554453],[634.1732940494803,432.7302730273027],[635.865336786442,431.2901290129013],[635.5269282390495,428.6018601860186],[636.1473439092688,427.5457545754575],[637.7265837970996,427.0657065706571],[638.4034008918842,427.8817881788179],[636.2037453338341,432.92229222922293],[637.3881
 752497073,437.4827482748275],[636.3729496075304,441.13111311131115],[638.5726051655804,443.4353435343534],[639.700633656888,443.33933393339333],[640.9414649973265,442.18721872187217],[642.8591134325496,439.2589258925893],[643.8179376501612,436.85868586858686],[645.397177537992,436.71467146714673],[644.4947547449458,435.3225322532253],[644.5511561695112,433.06630663066306],[645.7355860853843,431.0981098109811],[645.5663818116882,427.92979297929793],[644.2691490466843,426.8256825682568],[645.0023675660343,425.001500150015],[647.596833096042,424.5694569456946],[649.3452772575689,425.72157215721575],[651.2065242682266,424.7134713471347],[652.8421655806228,424.6174617461746],[656.0570467808498,421.7371737173717],[656.4518567528075,425.1455145514551]]],[[[656.4518567528075,425.1455145514551],[656.0570467808498,421.7371737173717],[657.4670823949843,420.63306330633065],[659.8359422267306,419.76897689768975],[660.7947664443421,420.05700570057],[665.306880409573,419.96099609960993],[667.11172
 59956652,419.67296729672967],[670.7778185924153,416.984698469847],[672.2442556311153,418.95289528952895],[667.506535967623,423.1773177317732],[665.1376761358767,423.46534653465346],[662.6560134549998,422.84128412841284],[658.7643151599882,422.84128412841284],[656.4518567528075,425.1455145514551]]]]}},{"type":"Feature","id":9711,"properties":{"name":"Lago Maggiore"},"geometry":{"type":"MultiPolygon","coordinates":[[[[613.0791612620262,402.1512151215121],[610.9359071285417,398.31083108310827],[608.1158359002724,401.0951095109511],[606.5929974370069,404.11941194119413],[603.9421304824339,403.15931593159314],[606.4801945878762,398.93489348934895],[607.5518216546186,395.4305430543054],[609.5822729389724,392.74227422742274],[614.6584011498571,390.9180918091809],[617.4220709535609,392.88628862886287],[618.7757051431302,392.74227422742274],[620.354945030961,390.9180918091809],[620.6933535783533,388.997899789979],[620.072937908134,387.3657365736574],[622.6674034381417,386.6456645664566],[624
 .9798618453226,385.06150615061506],[626.5027003085879,385.97359735973595],[628.420348743811,388.037803780378],[628.9843629894649,391.06210621062104],[629.9995886316418,390.6300630063006],[630.3943986035995,391.4941494149415],[628.7587572912033,391.6381638163816],[625.8258832138033,393.4143414341434],[622.3853963153149,394.2304230423042],[620.806156427484,395.0945094509451],[619.3961208133494,396.6306630663066],[617.4784723781263,397.73477347734774],[613.9815840550725,401.76717671767176],[613.0791612620262,402.1512151215121]]],[[[613.0791612620262,402.1512151215121],[610.1462871846263,402.6312631263126],[609.6950757881032,404.7914791479148],[607.4954202300531,407.33573357335734],[609.1874629670147,410.6960696069607],[608.9618572687532,412.4722472247225],[609.7514772126685,414.34443444344436],[609.5258715144071,417.17671767176716],[611.725527072457,418.7128712871287],[612.6279498655032,420.8730873087309],[612.6279498655032,422.5532553255325],[611.4999213741955,425.09750975097506],[609
 .6950757881032,426.96969696969694],[608.51064587223,426.96969696969694],[606.4801945878762,428.88988898889886],[606.2545888896148,430.9060906090609],[603.9421304824339,433.3063306330633],[598.8096008469838,436.95469546954695],[598.5839951487224,439.54695469546954],[596.7227481380646,440.2190219021902],[595.31271252393,441.4191419141914],[594.1846840326223,443.14731473147316],[591.5902185026146,444.4914491449145],[590.6877957095684,446.027602760276],[592.0978313237031,447.13171317131713],[591.7594227763107,447.7077707770777],[589.164957246303,447.8037803780378],[587.9241259058645,451.16411641164115],[589.1085558217376,453.3723372337234],[588.5445415760837,454.7164716471647],[589.6161686428261,455.964596459646],[590.91340140783,459.7089708970897],[592.2670355973992,459.94899489948995],[592.9438526921838,464.4134413441344],[593.3950640887069,465.85358535853584],[592.0978313237031,466.95769576957696],[591.5902185026146,466.47764776477646],[590.4621900113068,467.8217821782178],[590.40578
 85867414,470.84608460846084],[588.6009430006491,472.52625262526254],[587.2473088110798,472.7182718271827],[584.8784489793337,472.0942094209421],[583.468413365199,475.83858385838585],[583.468413365199,477.4227422742274],[584.6528432810721,479.1989198919892],[587.1909073865145,479.15091509150915],[586.0628788952067,479.87098709870986],[586.965301688253,482.7032703270327],[588.2625344532569,482.7992799279928],[589.164957246303,487.5037503750375],[590.6877957095684,487.45574557455745],[590.3493871621761,488.65586558655866],[592.4926412956606,489.13591359135916],[594.1282826080569,490],[590.5749928604375,489.23192319231924],[588.3189358778222,487.83978397839786],[586.8524988391222,484.14341434143415],[582.1147791756298,477.6627662766277],[581.832772052803,475.2145214521452],[582.0583777510644,473.006300630063],[583.468413365199,470.7980798079808],[586.1756817443376,469.45394539453946],[587.3601116602106,468.0618061806181],[588.4881401515183,464.65346534653463],[587.9241259058645,460.3810
 381038104],[587.0781045373838,458.55685568556856],[584.3144347336798,451.54815481548155],[584.5400404319414,449.1959195919592],[587.9241259058645,444.53945394539454],[591.6466199271799,440.6990699069907],[601.8552777735147,429.36993699369935],[604.7317504263492,426.3456345634563],[607.9466316265762,423.46534653465346],[609.1310615424493,420.2010201020102],[607.7774273528801,416.984698469847],[606.5929974370069,411.2721272127213],[605.1829618228724,407.2397239723972],[606.5929974370069,404.11941194119413],[608.1158359002724,401.0951095109511],[610.9359071285417,398.31083108310827],[613.0791612620262,402.1512151215121]]],[[[606.5929974370069,404.11941194119413],[605.1829618228724,407.2397239723972],[606.5929974370069,411.2721272127213],[607.7774273528801,416.984698469847],[609.1310615424493,420.2010201020102],[607.9466316265762,423.46534653465346],[604.7317504263492,426.3456345634563],[601.8552777735147,429.36993699369935],[591.6466199271799,440.6990699069907],[587.9241259058645,444.5
 3945394539454],[584.5400404319414,449.1959195919592],[584.3144347336798,451.54815481548155],[587.0781045373838,458.55685568556856],[587.9241259058645,460.3810381038104],[588.4881401515183,464.65346534653463],[587.3601116602106,468.0618061806181],[586.1756817443376,469.45394539453946],[583.468413365199,470.7980798079808],[582.0583777510644,473.006300630063],[581.832772052803,475.2145214521452],[582.1147791756298,477.6627662766277],[586.8524988391222,484.14341434143415],[588.3189358778222,487.83978397839786],[590.5749928604375,489.23192319231924],[594.1282826080569,490],[589.2213586708683,489.2799279927993],[587.4729145093414,489.9039903990399],[586.0628788952067,486.01560156015603],[584.3708361582453,484.6714671467147],[584.4272375828107,482.84728472847286],[583.6376176388952,482.5112511251125],[583.468413365199,481.07110711071107],[581.1559549580184,479.006900690069],[580.6483421369298,477.9027902790279],[580.084327891276,474.014401440144],[579.5767150701874,473.24632463246326],[581
 .0995535334529,468.9258925892589],[582.0583777510644,469.3579357935794],[583.7504204880261,468.0618061806181],[583.9760261862875,465.3255325532553],[585.2732589512914,463.26132613261325],[583.8068219125914,456.44464446444647],[581.832772052803,453.9003900390039],[576.4182352945259,451.5961596159616],[574.2185797364759,448.33183318331834],[574.1621783119106,446.79567956795677],[571.8497199047297,444.3954395439544],[570.2140785923336,443.24332433243325],[571.0600999608143,441.7551755175517],[573.5981640662567,440.6990699069907],[575.0081996803913,440.6990699069907],[579.2947079473606,442.66726672667266],[580.8739478351913,444.8274827482748],[582.6223919967183,446.07560756075605],[583.6940190634606,443.33933393339333],[584.7656461302029,441.56315631563155],[587.3037102356452,440.4590459045904],[591.8722256254414,436.6186618661866],[593.3386626641415,433.25832583258324],[596.8919524117607,428.64986498649864],[598.8096008469838,424.8094809480948],[600.8400521313376,421.92919291929195],[6
 04.0549333315646,421.06510651065105],[606.2545888896148,419.5769576957696],[606.4801945878762,418.0888088808881],[605.3521660965685,415.4965496549655],[605.6905746439609,414.05640564056404],[604.5625461526531,412.3282328232823],[604.3369404543917,410.55205520552056],[603.0961091139532,406.75967596759676],[603.9421304824339,403.15931593159314],[606.5929974370069,404.11941194119413]]]]}},{"type":"Feature","id":9751,"properties":{"name":"Lac de Joux"},"geometry":{"type":"MultiPolygon","coordinates":[[[[228.87265712262257,274.31443144314426],[229.21106567001488,274.84248424842485],[227.46262150848793,277.9147914791479],[221.31486623086096,283.29132913291323],[219.39721779563786,284.1074107410741],[216.9155551147609,286.3636363636364],[215.50551950062626,286.8436843684368],[215.0543081041032,285.8355835583558],[217.47956936041476,283.00330033003297],[222.10448617477633,279.16291629162913],[224.64255028021867,277.6267626762676],[228.87265712262257,274.31443144314426]]]]}},{"type":"Feature
 ","id":9757,"properties":{"name":"Lac Léman"},"geometry":{"type":"MultiPolygon","coordinates":[[[[306.08620735263486,330],[303.4353403980617,337.53675367536755],[301.46129053827326,337.6807680768077],[295.9903523554309,335.3285328532853],[292.6062668815078,334.8964896489649],[289.72979422867314,333.98439843984397],[283.35643325278465,334.1284128412841],[282.2848061860423,334.6084608460846],[276.81386800319996,334.3204320432043],[273.9373953503653,335.04050405040505],[269.3124785360037,335.1845184518452],[262.03669476706904,336.8166816681668],[258.65260929314593,334.8964896489649],[257.41177795270744,334.56045604560455],[253.97129105421897,336.048604860486],[252.44845259095356,337.53675367536755],[252.44845259095356,339.4569456945694],[251.65883264703817,341.041104110411],[243.9318374815804,344.73747374737474],[241.2245691024419,344.73747374737474],[239.98373776200344,346.65766576657666],[239.0249135443919,346.9456945694569],[237.8404836285188,349.009900990099],[236.43044801438418,3
 48.8178817881788],[233.04636254046108,347.3297329732973],[231.46712265263028,344.06540654065407],[231.52352407719565,342.86528652865286],[230.39549558588794,342.1932193219322],[227.12421296109562,342.24122412241223],[224.86815597848022,342.9132913291329],[221.65327477825326,344.88148814881487],[219.79202776759556,346.65766576657666],[218.88960497454937,349.3939393939394],[216.5771465673686,352.27422742274223],[216.74635084106475,353.4263426342634],[215.22351237779935,356.4986498649865],[213.98268103736086,356.8826882688269],[210.5421941388724,355.15451545154514],[212.62904684779164,350.9300930093009],[214.09548388649165,347.95379537953795],[216.01313232171475,344.16141614161415],[229.21106567001488,334.5124512451245],[243.5370275096227,331.8721872187218],[258.370602170319,322.79927992799276],[284.08965177213463,323.56735673567357],[306.08620735263486,330]]],[[[312.0083569320003,337.53675367536755],[306.08620735263486,330],[284.08965177213463,323.56735673567357],[258.370602170319,322
 .79927992799276],[243.5370275096227,331.8721872187218],[229.21106567001488,334.5124512451245],[216.01313232171475,344.16141614161415],[214.09548388649165,347.95379537953795],[209.6397713458262,345.79357935793576],[210.9370041108301,343.7773777377738],[213.5878710654032,340.5130513051305],[217.14116081302245,336.8166816681668],[219.39721779563786,337.44074407440746],[220.7508519852071,335.85658565856585],[220.86365483433786,333.7923792379238],[222.2172890239071,331.8241824182418],[222.38649329760327,329.95199519951996],[224.75535312934943,328.5598559855986],[226.95500868739947,325.3435343534353],[229.21106567001488,323.7113711371137],[231.29791837893413,321.35913591359133],[236.7688565617765,320.5910591059106],[238.51730072330344,321.7911791179118],[239.98373776200344,321.98319831983196],[243.1986189622304,319.8229822982298],[247.3723243800689,318.6228622862286],[248.33114859768045,317.6147614761476],[249.34637423985737,317.7587758775877],[249.45917708898816,316.17461746174615],[250.
 756409853992,314.9264926492649],[252.11004404356123,314.87848784878486],[253.52007965769587,312.4302430243024],[254.76091099813436,312.04620462046205],[256.5657565842267,309.45394539453946],[258.59620786858056,309.3579357935794],[261.3598776722844,311.1341134113411],[264.5747588725114,311.2301230123012],[265.75918878838445,310.2220222022202],[268.46645716752295,308.8298829882988],[269.93289420622295,308.8298829882988],[271.51213409405375,310.07800780078003],[273.42978252927685,310.6060606060606],[275.7422409364576,311.95019501950196],[281.5515876666923,311.9021902190219],[284.03325034756926,312.4302430243024],[286.7969201512731,313.58235823582356],[290.51941417258854,316.4626462646264],[292.9446754289001,315.74257425742576],[295.03152813781935,316.3666366636663],[296.61076802565015,317.95079507950794],[298.8104235837002,319.15091509150915],[301.12288199088096,319.3429342934293],[304.3377631911079,320.3510351035103],[307.8346515141618,320.8790879087909],[308.39866575981563,322.415241
 5241524],[310.936729865258,323.32733273327335],[312.12115978113104,325.48754875487543],[314.2080124900503,325.4395439543954],[315.27963955679263,326.6396639663966],[316.9152808691888,327.35973597359737],[318.66372503071574,327.2637263726373],[319.5097463991965,327.8397839783978],[319.9609577957196,329.47194719471946],[321.7658033818119,330.14401440144013],[323.17583899594655,333.8883888388839],[322.3298176274658,336.4806480648065],[321.4273948344196,337.44074407440746],[316.40766804810033,337.2007200720072],[313.0799839987426,337.8247824782478],[312.0083569320003,337.53675367536755]]],[[[213.98268103736086,356.8826882688269],[214.09548388649165,358.37083708370835],[212.7982511214878,360.6750675067507],[211.83942690387624,361.2511251125112],[209.3577642229993,365.1875187518752],[206.93250296668774,366.29162916291625],[206.36848872103388,367.5397539753975],[206.2556858719031,370.9000900090009],[205.63527020168388,373.06030603060304],[204.50724171037618,374.6924692469247],[202.81519897
 341462,377.76477647764773],[199.76952204688382,379.5409540954095],[198.07747930992227,379.44494449444943],[199.76952204688382,378.004800480048],[199.76952204688382,375.94059405940595],[199.20550780122997,374.6924692469247],[199.8259234714492,370.9000900090009],[199.76952204688382,368.979897989799],[202.02557902949923,366.29162916291625],[202.64599469971847,363.93939393939394],[202.25118472776077,361.971197119712],[202.75879754884923,359.042904290429],[207.15810866494928,361.3951395139514],[210.5421941388724,355.15451545154514],[213.98268103736086,356.8826882688269]]],[[[212.62904684779164,350.9300930093009],[210.5421941388724,355.15451545154514],[207.15810866494928,361.3951395139514],[202.75879754884923,359.042904290429],[203.77402319102617,358.13081308130813],[206.81970011755695,353.95439543954393],[208.68094712821465,349.1059105910591],[212.62904684779164,350.9300930093009]]],[[[214.09548388649165,347.95379537953795],[212.62904684779164,350.9300930093009],[208.68094712821465,349.1
 059105910591],[209.019355675607,346.8976897689769],[209.6397713458262,345.79357935793576],[214.09548388649165,347.95379537953795]]],[[[312.0083569320003,337.53675367536755],[311.6135469600426,339.50495049504946],[309.6394971002541,338.83288328832884],[306.5938201737233,339.07290729072906],[303.4353403980617,337.53675367536755],[306.08620735263486,330],[312.0083569320003,337.53675367536755]]]]}}]}
\ No newline at end of file
+{
+  "type": "FeatureCollection",
+  "features": [
+    {
+      "type": "Feature",
+      "id": 9040,
+      "properties": {"name": "Greifensee"},
+      "geometry": {
+        "type": "MultiPolygon",
+        "coordinates": [
+          [
+            [
+              [
+                593.9590783343607,
+                112.49024902490248
+              ],
+              [
+                595.8203253450184,
+                114.65046504650462
+              ],
+              [
+                596.6663467134993,
+                115.08250825082507
+              ],
+              [
+                597.9071780539377,
+                117.09870987098708
+              ],
+              [
+                598.1327837521992,
+                119.018901890189
+              ],
+              [
+                598.8660022715492,
+                120.50705070507047
+              ],
+              [
+                600.7272492822069,
+                121.46714671467146
+              ],
+              [
+                600.6144464330762,
+                123.1473147314731
+              ],
+              [
+                599.3736150926377,
+                124.29942994299427
+              ],
+              [
+                598.4711922995915,
+                124.20342034203418
+              ],
+              [
+                597.9635794785031,
+                122.3312331233123
+              ],
+              [
+                595.8203253450184,
+                118.77887788778872
+              ],
+              [
+                594.5230925800146,
+                118.10681068106805
+              ],
+              [
+                592.3234370219645,
+                114.8424842484248
+              ],
+              [
+                592.4926412956606,
+                112.87428742874283
+              ],
+              [
+                593.9590783343607,
+                112.49024902490248
+              ]
+            ]
+          ]
+        ]
+      }
+    },
+    {
+      "type": "Feature",
+      "id": 9050,
+      "properties": {"name": "Zürichsee"},
+      "geometry": {
+        "type": "MultiPolygon",
+        "coordinates": [
+          [
+            [
+              [
+                616.9144581324724,
+                147.1017101710171
+              ],
+              [
+                619.0577122659571,
+                149.021902190219
+              ],
+              [
+                622.0469877679225,
+                149.8379837983798
+              ],
+              [
+                637.7265837970996,
+                147.19771977197718
+              ],
+              [
+                636.5421538812266,
+                148.49384938493847
+              ],
+              [
+                631.9736384914303,
+                150.12601260126007
+              ],
+              [
+                629.5483772351188,
+                150.27002700270026
+              ],
+              [
+                629.0407644140303,
+                149.5979597959796
+              ],
+              [
+                627.969137347288,
+                150.36603660366035
+              ],
+              [
+                626.8975102805457,
+                150.03000300029998
+              ],
+              [
+                623.8518333540148,
+                151.03810381038102
+              ],
+              [
+                623.7390305048841,
+                153.00630063006298
+              ],
+              [
+                622.272593466184,
+                153.58235823582356
+              ],
+              [
+                620.7497550029186,
+                152.76627662766276
+              ],
+              [
+                618.6629022939994,
+                152.8142814281428
+              ],
+              [
+                618.3244937466071,
+                151.75817581758173
+              ],
+              [
+                615.8428310657301,
+                150.6540654065406
+              ],
+              [
+                611.9511327707186,
+                150.07800780078003
+              ],
+              [
+                611.6127242233263,
+                150.51005100510048
+              ],
+              [
+                606.6493988615723,
+                149.64596459645963
+              ],
+              [
+                603.6601233596069,
+                151.66216621662164
+              ],
+              [
+                602.4756934437339,
+                151.32613261326128
+              ],
+              [
+                606.5365960124416,
+                149.30993099309927
+              ],
+              [
+                614.7148025744225,
+                146.66966696669664
+              ],
+              [
+                616.9144581324724,
+                147.1017101710171
+              ]
+            ],
+            [
+              [
+                616.4632467359494,
+                147.9177917791779
+              ],
+              [
+                614.8840068481186,
+                148.54185418541852
+              ],
+              [
+                614.6019997252916,
+                149.9339933993399
+              ],
+              [
+                616.858056707907,
+                148.44584458445843
+              ],
+              [
+                616.4632467359494,
+                147.9177917791779
+              ]
+            ]
+          ],
+          [
+            [
+              [
+                637.7265837970996,
+                147.19771977197718
+              ],
+              [
+                622.0469877679225,
+                149.8379837983798
+              ],
+              [
+                619.0577122659571,
+                149.021902190219
+              ],
+              [
+                616.9144581324724,
+                147.1017101710171
+              ],
+              [
+                614.940408272684,
+                142.87728772877284
+              ],
+              [
+                617.9860851992148,
+                143.40534053405338
+              ],
+              [
+                618.4372965957378,
+                144.9414941494149
+              ],
+              [
+                617.4784723781263,
+                145.51755175517548
+              ],
+              [
+                618.0988880483455,
+                146.5256525652565
+              ],
+              [
+                619.6781279361763,
+                146.66966696669664
+              ],
+              [
+                620.7497550029186,
+                147.77377737773776
+              ],
+              [
+                622.6674034381417,
+                148.10981098109806
+              ],
+              [
+                623.8518333540148,
+                147.72577257725771
+              ],
+              [
+                623.4006219574917,
+                146.71767176717668
+              ],
+              [
+                625.2054675435841,
+                146.6216621662166
+              ],
+              [
+                625.8822846383687,
+                147.38973897389735
+              ],
+              [
+                627.7435316490264,
+                147.96579657965793
+              ],
+              [
+                630.6764057264264,
+                147.38973897389735
+              ],
+              [
+                631.0148142738187,
+                146.90969096909686
+              ],
+              [
+                634.2296954740457,
+                145.6615661566156
+              ],
+              [
+                637.9521894953612,
+                145.8055805580558
+              ],
+              [
+                637.7265837970996,
+                147.19771977197718
+              ]
+            ]
+          ],
+          [
+            [
+              [
+                614.940408272684,
+                142.87728772877284
+              ],
+              [
+                616.9144581324724,
+                147.1017101710171
+              ],
+              [
+                614.7148025744225,
+                146.66966696669664
+              ],
+              [
+                606.5365960124416,
+                149.30993099309927
+              ],
+              [
+                602.4756934437339,
+                151.32613261326128
+              ],
+              [
+                599.9940307628569,
+                147.8217821782178
+              ],
+              [
+                597.1739595345877,
+                146.045604560456
+              ],
+              [
+                596.2715367415415,
+                144.89348934893485
+              ],
+              [
+                594.0718811834915,
+                143.26132613261325
+              ],
+              [
+                592.4362398710953,
+                140.8130813081308
+              ],
+              [
+                591.1954085306568,
+                140.28502850285025
+              ],
+              [
+                590.0673800393491,
+                140.86108610861083
+              ],
+              [
+                586.5704917162952,
+                139.32493249324932
+              ],
+              [
+                583.3556105160683,
+                137.5007500750075
+              ],
+              [
+                580.084327891276,
+                130.78007800780074
+              ],
+              [
+                578.2230808806182,
+                128.37983798379832
+              ],
+              [
+                577.602665210399,
+                125.73957395739569
+              ],
+              [
+                576.3054324453951,
+                122.57125712571252
+              ],
+              [
+                574.387784010172,
+                119.11491149114909
+              ],
+              [
+                574.4441854347374,
+                114.93849384938488
+              ],
+              [
+                575.403009652349,
+                114.4104410441044
+              ],
+              [
+                576.5874395682221,
+                117.57875787578757
+              ],
+              [
+                577.3206580875722,
+                117.62676267626762
+              ],
+              [
+                578.8434965508375,
+                119.78697869786976
+              ],
+              [
+                579.2383065227953,
+                121.46714671467146
+              ],
+              [
+                580.8175464106259,
+                125.06750675067502
+              ],
+              [
+                581.1559549580184,
+                126.55565556555655
+              ],
+              [
+                583.468413365199,
+                129.77197719771976
+              ],
+              [
+                583.9760261862875,
+                131.06810681068106
+              ],
+              [
+                586.5704917162952,
+                134.38043804380436
+              ],
+              [
+                590.5185914358722,
+                136.9246924692469
+              ],
+              [
+                593.9026769097953,
+                137.64476447644762
+              ],
+              [
+                598.0763823276338,
+                139.66096609660963
+              ],
+              [
+                598.1891851767646,
+                140.14101410141012
+              ],
+              [
+                601.4604678015569,
+                141.72517251725168
+              ],
+              [
+                602.7012991419954,
+                143.2133213321332
+              ],
+              [
+                605.6341732193955,
+                144.3654365436543
+              ],
+              [
+                613.6995769322455,
+                143.98139813981396
+              ],
+              [
+                614.940408272684,
+                142.87728772877284
+              ]
+            ]
+          ]
+        ]
+      }
+    },
+    {
+      "type": "Feature",
+      "id": 9073,
+      "properties": {"name": "Thunersee"},
+      "geometry": {
+        "type": "MultiPolygon",
+        "coordinates": [
+          [
+            [
+              [
+                435.18906818280146,
+                257.3207320732073
+              ],
+              [
+                440.20879496912073,
+                261.7371737173717
+              ],
+              [
+                441.95723913064774,
+                262.6492649264926
+              ],
+              [
+                442.6904576499977,
+                264.08940894089403
+              ],
+              [
+                448.443402955667,
+                266.2016201620162
+              ],
+              [
+                451.376277033067,
+                269.22592259225917
+              ],
+              [
+                451.9402912787209,
+                271.57815781578154
+              ],
+              [
+                453.857939713944,
+                272.3942394239424
+              ],
+              [
+                454.64755965785935,
+                271.9141914191419
+              ],
+              [
+                456.9600180650402,
+                271.96219621962194
+              ],
+              [
+                459.1032721985248,
+                271.14611461146114
+              ],
+              [
+                462.20535054962096,
+                271.9141914191419
+              ],
+              [
+                463.3897804654941,
+                273.45034503450347
+              ],
+              [
+                465.1946260515864,
+                274.84248424842485
+              ],
+              [
+                464.79981607962867,
+                275.75457545754574
+              ],
+              [
+                462.88216764440557,
+                276.81068106810676
+              ],
+              [
+                460.7953149354863,
+                275.7065706570657
+              ],
+              [
+                458.4264551037402,
+                277.2907290729073
+              ],
+              [
+                456.11399669655935,
+                278.01080108010797
+              ],
+              [
+                454.19634826133625,
+                278.058805880588
+              ],
+              [
+                450.81226278741315,
+                276.13861386138615
+              ],
+              [
+                449.176621475017,
+                275.8025802580258
+              ],
+              [
+                445.3413246045708,
+                273.64236423642365
+              ],
+              [
+                445.510528878267,
+                272.1062106210621
+              ],
+              [
+                443.19807047108617,
+                270.57005700570056
+              ],
+              [
+                442.97246477282465,
+                269.7059705970597
+              ],
+              [
+                439.0807664778131,
+                268.55385538553855
+              ],
+              [
+                438.34754795846305,
+                267.1617161716172
+              ],
+              [
+                435.97868812671686,
+                265.2415241524152
+              ],
+              [
+                435.18906818280146,
+                263.3693369336934
+              ],
+              [
+                433.5534268704053,
+                262.8892889288929
+              ],
+              [
+                433.6098282949707,
+                260.72907290729074
+              ],
+              [
+                435.18906818280146,
+                257.3207320732073
+              ]
+            ]
+          ]
+        ]
+      }
+    },
+    {
+      "type": "Feature",
+      "id": 9089,
+      "properties": {"name": "Brienzersee"},
+      "geometry": {
+        "type": "MultiPolygon",
+        "coordinates": [
+          [
+            [
+              [
+                494.57976825015203,
+                254.58445844584458
+              ],
+              [
+                497.1742337801598,
+                255.54455445544554
+              ],
+              [
+                498.35866369603286,
+                255.25652565256524
+              ],
+              [
+                499.48669218734057,
+                256.16861686168613
+              ],
+              [
+                499.3738893382098,
+                258.3288328832883
+              ],
+              [
+                496.10260671341746,
+                258.90489048904885
+              ],
+              [
+                490.12405570948664,
+                262.5052505250525
+              ],
+              [
+                487.6987944531751,
+                264.5694569456946
+              ],
+              [
+                484.0891032809904,
+                266.1056105610561
+              ],
+              [
+                482.34065911946345,
+                268.07380738073806
+              ],
+              [
+                479.29498219293265,
+                270.18601860186016
+              ],
+              [
+                475.96729814357496,
+                270.37803780378033
+              ],
+              [
+                475.7980938698788,
+                269.7059705970597
+              ],
+              [
+                473.8240440100903,
+                269.08190819081904
+              ],
+              [
+                476.24930526640185,
+                267.0657065706571
+              ],
+              [
+                477.54653803140576,
+                266.5376537653765
+              ],
+              [
+                481.66384202467884,
+                263.4173417341734
+              ],
+              [
+                485.72474459338656,
+                259.4809480948095
+              ],
+              [
+                487.30398448121736,
+                258.7608760876087
+              ],
+              [
+                488.714020095352,
+                256.7446744674467
+              ],
+              [
+                491.8724998710136,
+                255.11251125112508
+              ],
+              [
+                494.57976825015203,
+                254.58445844584458
+              ]
+            ]
+          ]
+        ]
+      }
+    },
+    {
+      "type": "Feature",
+      "id": 9148,
+      "properties": {"name": "Bielersee"},
+      "geometry": {
+        "type": "MultiPolygon",
+        "coordinates": [
+          [
+            [
+              [
+                347.14644443623524,
+                187.5217521752175
+              ],
+              [
+                346.6388316151468,
+                186.84968496849683
+              ],
+              [
+                349.007691446893,
+                185.79357935793576
+              ],
+              [
+                347.14644443623524,
+                187.5217521752175
+              ]
+            ]
+          ],
+          [
+            [
+              [
+                351.0381427312468,
+                188.62586258625862
+              ],
+              [
+                347.7668601064545,
+                188.62586258625862
+              ],
+              [
+                347.14644443623524,
+                187.5217521752175
+              ],
+              [
+                349.007691446893,
+                185.79357935793576
+              ],
+              [
+                352.10976979798914,
+                184.2094209420942
+              ],
+              [
+                353.12499544016606,
+                182.28922892289228
+              ],
+              [
+                358.65233504757384,
+                178.88088808880883
+              ],
+              [
+                359.7239621143161,
+                178.6408640864086
+              ],
+              [
+                363.05164616367387,
+                175.95259525952594
+              ],
+              [
+                364.23607607954693,
+                174.36843684368432
+              ],
+              [
+                367.4509572797739,
+                172.016201620162
+              ],
+              [
+                369.7070142623893,
+                169.6159615961596
+              ],
+              [
+                371.2862541502201,
+                168.7998799879988
+              ],
+              [
+                371.9630712450047,
+                169.5199519951995
+              ],
+              [
+                369.4814085641278,
+                173.07230723072303
+              ],
+              [
+                369.19940144130084,
+                174.41644164416437
+              ],
+              [
+                367.0561473078162,
+                177.77677767776777
+              ],
+              [
+                367.1125487323816,
+                179.40894089408937
+              ],
+              [
+                364.0104703812854,
+                184.5454545454545
+              ],
+              [
+                362.6004347671508,
+                184.73747374737474
+              ],
+              [
+                362.4312304934546,
+                186.12961296129612
+              ],
+              [
+                360.6263849073623,
+                187.80978097809776
+              ],
+              [
+                358.31392650018154,
+                188.3378337833783
+              ],
+              [
+                356.1142709421315,
+                189.68196819681964
+              ],
+              [
+                353.2941997138622,
+                190.59405940594058
+              ],
+              [
+                351.32014985407375,
+                189.77797779777973
+              ],
+              [
+                351.0381427312468,
+                188.62586258625862
+              ]
+            ],
+            [
+              [
+                351.0381427312468,
+                188.62586258625862
+              ],
+              [
+                352.22257264711993,
+                188.09780978097808
+              ],
+              [
+                356.0014680930007,
+                185.5055505550555
+              ],
+              [
+                357.9191165282238,
+                183.44134413441344
+              ],
+              [
+                358.31392650018154,
+                182.24122412241223
+              ],
+              [
+                357.41150370713535,
+                181.7131713171317
+              ],
+              [
+                356.1142709421315,
+                184.44944494449442
+              ],
+              [
+                351.0381427312468,
+                188.62586258625862
+              ]
+            ]
+          ]
+        ]
+      }
+    },
+    {
+      "type": "Feature",
+      "id": 9151,
+      "properties": {"name": "Lac de Neuchâtel"},
+      "geometry": {
+        "type": "MultiPolygon",
+        "coordinates": [
+          [
+            [
+              [
+                300.44606489609635,
+                232.59825982598255
+              ],
+              [
+                294.4111124676001,
+                238.3108310831083
+              ],
+              [
+                298.3592121871771,
+                242.6312631263126
+              ],
+              [
+                296.3287609028232,
+                244.1194119411941
+              ],
+              [
+                294.0727039202078,
+                242.9192919291929
+              ],
+              [
+                290.2374070497616,
+                243.15931593159314
+              ],
+              [
+                289.84259707780393,
+                243.6393639363936
+              ],
+              [
+                286.00730020735773,
+                245.4155415541554
+              ],
+              [
+                283.0744261299577,
+                247.23972397239723
+              ],
+              [
+                280.53636202451537,
+                248.007800780078
+              ],
+              [
+                279.5775378069038,
+                247.76777677767774
+              ],
+              [
+                277.6598893716807,
+                245.65556555655564
+              ],
+              [
+                277.6598893716807,
+                244.16741674167415
+              ],
+              [
+                281.43878481756155,
+                240.95109510951093
+              ],
+              [
+                284.37165889496157,
+                239.70297029702968
+              ],
+              [
+                285.6688916599654,
+                237.78277827782776
+              ],
+              [
+                288.94017428475775,
+                235.86258625862584
+              ],
+              [
+                290.3502098988924,
+                233.8463846384638
+              ],
+              [
+                292.493464032377,
+                232.93429342934292
+              ],
+              [
+                294.24190819390395,
+                231.2541254125412
+              ],
+              [
+                296.27235947825784,
+                229.95799579957992
+              ],
+              [
+                296.7799722993463,
+                228.9018901890189
+              ],
+              [
+                300.44606489609635,
+                232.59825982598255
+              ]
+            ]
+          ],
+          [
+            [
+              [
+                317.98690793593113,
+                225.01350135013502
+              ],
+              [
+                315.336040981358,
+                227.89378937893787
+              ],
+              [
+                314.49001961287723,
+                229.2379237923792
+              ],
+              [
+                309.6394971002541,
+                232.74227422742274
+              ],
+              [
+                308.9062785809041,
+                234.13441344134412
+              ],
+              [
+                305.63499595611177,
+                235.5265526552655
+              ],
+              [
+                303.5481432471925,
+                237.20672067206718
+              ],
+              [
+                298.3592121871771,
+                242.6312631263126
+              ],
+              [
+                294.4111124676001,
+                238.3108310831083
+              ],
+              [
+                300.44606489609635,
+                232.59825982598255
+              ],
+              [
+                314.03880821635414,
+                219.78097809780974
+              ],
+              [
+                317.98690793593113,
+                225.01350135013502
+              ]
+            ]
+          ],
+          [
+            [
+              [
+                341.3370977060006,
+                203.79537953795375
+              ],
+              [
+                340.71668203578133,
+                205.71557155715567
+              ],
+              [
+                339.3066464216467,
+                207.5397539753975
+              ],
+              [
+                335.8661595231582,
+                209.93999399939992
+              ],
+              [
+                334.7381310318505,
+                210.32403240324032
+              ],
+              [
+                331.7488555298851,
+                212.5322532253225
+              ],
+              [
+                331.86165837901586,
+                213.39633963396335
+              ],
+              [
+                328.9851857261812,
+                215.65256525652563
+              ],
+              [
+                323.85265609073116,
+                209.89198919891987
+              ],
+              [
+                335.47134955120055,
+                202.2112211221122
+              ],
+              [
+                341.3370977060006,
+                203.79537953795375
+              ]
+            ]
+          ],
+          [
+            [
+              [
+                328.9851857261812,
+                215.65256525652563
+              ],
+              [
+                325.6011002522581,
+                218.72487248724872
+              ],
+              [
+                322.72462759942346,
+                220.74107410741072
+              ],
+              [
+                318.7765278798465,
+                216.13261326132613
+              ],
+              [
+                323.85265609073116,
+                209.89198919891987
+              ],
+              [
+                328.9851857261812,
+                215.65256525652563
+              ]
+            ]
+          ],
+          [
+            [
+              [
+                322.72462759942346,
+                220.74107410741072
+              ],
+              [
+                319.67895067289265,
+                222.6132613261326
+              ],
+              [
+                319.67895067289265,
+                223.28532853285327
+              ],
+              [
+                317.98690793593113,
+                225.01350135013502
+              ],
+              [
+                314.03880821635414,
+                219.78097809780974
+              ],
+              [
+                318.7765278798465,
+                216.13261326132613
+              ],
+              [
+                322.72462759942346,
+                220.74107410741072
+              ]
+            ]
+          ],
+          [
+            [
+              [
+                341.3370977060006,
+                203.79537953795375
+              ],
+              [
+                339.0810407233852,
+                197.8427842784278
+              ],
+              [
+                340.9422877340429,
+                198.85088508850885
+              ],
+              [
+                342.6907318955698,
+                201.87518751875183
+              ],
+              [
+                341.3370977060006,
+                203.79537953795375
+              ]
+            ]
+          ],
+          [
+            [
+              [
+                339.0810407233852,
+                197.8427842784278
+              ],
+              [
+                341.3370977060006,
+                203.79537953795375
+              ],
+              [
+                335.47134955120055,
+                202.2112211221122
+              ],
+              [
+                323.85265609073116,
+                209.89198919891987
+              ],
+              [
+                318.7765278798465,
+                216.13261326132613
+              ],
+              [
+                314.03880821635414,
+                219.78097809780974
+              ],
+              [
+                300.44606489609635,
+                232.59825982598255
+              ],
+              [
+                296.7799722993463,
+                228.9018901890189
+              ],
+              [
+                298.07720506435015,
+                225.34953495349532
+              ],
+              [
+                299.0360292819617,
+                224.05340534053403
+              ],
+              [
+                300.6152691697925,
+                223.23732373237323
+              ],
+              [
+                302.02530478392714,
+           

<TRUNCATED>

[05/50] [abbrv] zest-qi4j git commit: some updates

Posted by ni...@apache.org.
some updates


Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/236d0ef9
Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/236d0ef9
Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/236d0ef9

Branch: refs/heads/ramtej-fb/spatial.queries
Commit: 236d0ef93cd8d91855b52cfbcc4040bff5730eea
Parents: b4e474d
Author: jj <ju...@gmail.com>
Authored: Tue Jan 6 22:09:06 2015 +0100
Committer: jj <ju...@gmail.com>
Committed: Tue Jan 6 22:09:06 2015 +0100

----------------------------------------------------------------------
 .../main/java/org/qi4j/api/geometry/TPoint.java |   2 +-
 .../test/indexing/AbstractSpatialQueryTest.java |  17 +--
 .../indexing/AbstractSpatialRegressionTest.java | 145 ++++++++++++++++---
 .../elasticsearch/ElasticSearchFinder.java      |  59 +-------
 .../ElasticSearchFinderSupport.java             |  12 +-
 .../elasticsearch/ElasticSearchIndexer.java     |   2 +-
 .../spatial/ElasticSearchSpatialFinder.java     |  44 +++++-
 .../SpatialFunctionsSupportMatrix.java          |   2 +-
 .../configuration/SpatialSupportMatrix.java     | 123 ----------------
 .../predicates/PredicateFinderSupport.java      |   2 +-
 .../functions/predicates/ST_DisjointV3.java     | 131 +++++++++++++++++
 .../ElasticSearchSpatialExtensionFinder.java    | 129 -----------------
 ...SearchSpatialRegressionQueryClusterTest.java |  92 ++++++++++++
 ...earchSpatialRegressionQueryVariant1Test.java |   3 -
 ...earchSpatialRegressionQueryVariant2Test.java |   3 -
 ...SearchConfigurationVariant2Backup.properties |  28 ++++
 ...archConfigurationVariant2_Backup_.properties |  28 ++++
 .../domain/openstreetmap/model/state/OSM.java   |   7 -
 .../domain/openstreetmap/model/MapEntity.java   |   7 -
 .../domain/openstreetmap/model/TagEntity.java   |   7 -
 .../OpenStreetMapDomainModelAssembler.java      |   7 -
 .../openstreetmap/model/state/Features.java     |   7 -
 .../openstreetmap/model/state/Identifiable.java |   7 -
 .../openstreetmap/model/state/Properties.java   |   7 -
 .../model/test/TestOpenStreetMapModel.java      |  26 ----
 25 files changed, 470 insertions(+), 427 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
----------------------------------------------------------------------
diff --git a/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java b/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
index 36b39f2..80b72d8 100644
--- a/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
+++ b/core/api/src/main/java/org/qi4j/api/geometry/TPoint.java
@@ -88,11 +88,11 @@ public interface TPoint extends HasNoArea, TGeometry {
         }
 
         public TPoint of(double x, double y, double z) {
-            self.geometryType().set(TGEOMETRY_TYPE.POINT);
             init();
             self.x(x); // JJ TODO use fluent DSL
             self.y(y);
             self.z(z);
+            self.geometryType().set(TGEOMETRY_TYPE.POINT);
             return self;
         }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java
index c5186f4..7bcc39d 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialQueryTest.java
@@ -32,6 +32,8 @@ public class AbstractSpatialQueryTest
                 extends AbstractAnyQueryTest
 {
 
+    private final String CRS_EPSG_4326 = "EPSG:4326";
+
     public interface MapFeature
 
     {
@@ -60,19 +62,12 @@ public class AbstractSpatialQueryTest
         module.entities(MapFeatureEntity.class);
 
         // internal values
-        module.values(Coordinate.class, TLinearRing.class);
-
-        // API values
-        module.values(TPoint.class, TLineString.class, TPolygon.class, TGeometry.class);
-
-        // internal values
-        // module.values( Coordinate.class, TLinearRing.class,TGeometry.class);
+        module.values(Coordinate.class, TLinearRing.class, TGeometry.class);
 
         // API values
-        // module.values(TPoint.class,TLineString.class, TPolygon.class); // , TFeature.class);
-
-
-
+        module.values(TPoint.class, TMultiPoint.class, TLineString.class, TPolygon.class, TMultiPolygon.class, TFeature.class, TFeatureCollection.class);
+        TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
+        tGeometry.CRS().set(CRS_EPSG_4326);
 
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
index c3de7f6..74cf07a 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/indexing/AbstractSpatialRegressionTest.java
@@ -1,29 +1,21 @@
 package org.qi4j.test.indexing;
 
 import org.junit.Ignore;
-import org.junit.Rule;
 import org.junit.Test;
 import org.qi4j.api.common.Optional;
-import org.qi4j.api.composite.Composite;
 import org.qi4j.api.entity.EntityBuilder;
 import org.qi4j.api.entity.EntityComposite;
 import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.TGeometry;
 import org.qi4j.api.property.Property;
 import org.qi4j.api.query.Query;
 import org.qi4j.api.query.QueryBuilder;
-import org.qi4j.api.query.grammar.ExpressionSpecification;
 import org.qi4j.api.query.grammar.OrderBy;
-import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecification;
 import org.qi4j.api.unitofwork.UnitOfWork;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.functional.Specification;
 import org.qi4j.spi.query.EntityFinderException;
-import org.qi4j.test.EntityTestAssembler;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.Iterator;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -32,11 +24,11 @@ import static org.junit.Assume.assumeTrue;
 import static org.qi4j.api.geometry.TGeometryFactory.*;
 import static org.qi4j.api.geometry.TGeometryFactory.TLinearRing;
 import static org.qi4j.api.query.QueryExpressions.and;
+import static org.qi4j.api.query.QueryExpressions.not;
 import static org.qi4j.api.query.QueryExpressions.templateFor;
 import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_Disjoint;
 import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_GeometryFromText;
 import static org.qi4j.api.query.grammar.extensions.spatial.SpatialQueryExpressions.ST_Within;
-import static org.junit.Assume.*;
 
 /**
  * Created by jj on 21.12.14.
@@ -60,7 +52,7 @@ public abstract class AbstractSpatialRegressionTest
         @Optional Property<TFeatureCollection>  featurecollection();
     }
 
-    private TPoint      _TPoint,_TPoint2, _TPoint3;
+    private TPoint _TPoint1,_TPoint2, _TPoint3;
     private TMultiPoint _TMultiPoint;
     private TLineString _TLineString;
     private TPolygon    _TPolygon;
@@ -71,7 +63,7 @@ public abstract class AbstractSpatialRegressionTest
 
         System.out.println("########### Populating Values ############");
 
-        _TPoint = TPoint(module).lat(48.13905780942574).lon(11.57958984375)
+        _TPoint1 = TPoint(module).lat(48.13905780942574).lon(11.57958984375)
                 .geometry();
 
         _TPoint2 = TPoint(module).lat(48.145748).lon(11.567976)
@@ -131,8 +123,8 @@ public abstract class AbstractSpatialRegressionTest
 
             // TPoint
             {
-                EntityBuilder<SpatialRegressionEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class, "Point");
-                pointBuilder.instance().point().set(_TPoint);
+                EntityBuilder<SpatialRegressionEntity> pointBuilder = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class, "Point1");
+                pointBuilder.instance().point().set(_TPoint1);
                 pointBuilder.newInstance();
 
                 EntityBuilder<SpatialRegressionEntity> pointBuilder2 = unitOfWork.newEntityBuilder(SpatialRegressionEntity.class, "Point2");
@@ -205,7 +197,7 @@ public abstract class AbstractSpatialRegressionTest
         query.find();
         assertEquals(1, query.count());
         TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_TPoint) == 0);
+        assertTrue(tPoint.compareTo(_TPoint1) == 0);
         // assertSame
     }
 
@@ -229,7 +221,7 @@ public abstract class AbstractSpatialRegressionTest
         query.find();
         assertEquals(1, query.count());
         TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_TPoint) == 0);
+        assertTrue(tPoint.compareTo(_TPoint1) == 0);
 
         // Transform(module).from(tPoint).to("EPSG:4326");
     }
@@ -249,15 +241,124 @@ public abstract class AbstractSpatialRegressionTest
                                          10, TUnit.METER
                                         )
                         ))
-                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint, OrderBy.Order.ASCENDING);
+                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
 
         assumeTrue(isExpressionSupported(query));
         query.find();
         assertEquals(query.count(), 1);
         TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_TPoint) == 0);
+        assertTrue(tPoint.compareTo(_TPoint1) == 0);
     }
 
+    @Test
+    public void script03a()
+    {
+        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+
+        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+                qb
+                        .where(and(
+                                ST_Within
+                                        (
+                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
+                                                10, TUnit.METER
+                                        )
+                                        ,
+                                ST_Within
+                                         (
+                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
+                                                 5, TUnit.METER
+                                                )
+                                ))
+                        )
+                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
+
+        assumeTrue(isExpressionSupported(query));
+        query.find();
+        assertEquals(query.count(), 1);
+        TPoint tPoint = query.iterator().next().point().get();
+        assertTrue(tPoint.compareTo(_TPoint1) == 0);
+    }
+
+    @Test
+    public void script03b() {
+        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+
+        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+                qb
+                        .where(and(
+                                ST_Within
+                                        (
+                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
+                                                1000, TUnit.KILOMETER
+                                        )
+                                ,
+                                not(ST_Within
+                                        (
+                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
+                                                1, TUnit.METER
+                                        ))
+                        ))
+        )
+        .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
+
+        assumeTrue(isExpressionSupported(query));
+        query.find();
+        assertEquals(query.count(), 2);
+
+        Iterator<SpatialRegressionsValues> results = query.iterator();
+
+        // sorted ascending by distance
+        TPoint tPoint2 = results.next().point().get();
+        TPoint tPoint3 = results.next().point().get();
+
+        assertTrue(tPoint2.compareTo(_TPoint2) == 0);
+        assertTrue(tPoint3.compareTo(_TPoint3) == 0);
+    }
+
+    @Test
+    public void script03c() {
+        QueryBuilder<SpatialRegressionsValues> qb = this.module.newQueryBuilder(SpatialRegressionsValues.class);
+
+        Query<SpatialRegressionsValues> query = unitOfWork.newQuery(
+                qb
+                        .where(and(
+                                ST_Within
+                                        (
+                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
+                                                1000, TUnit.KILOMETER
+                                        )
+                                ,
+                                not(ST_Within
+                                        (
+                                                templateFor(SpatialRegressionsValues.class).point(),
+                                                TPoint(module).y(48.13905780941111).x(11.57958981111).geometry(),
+                                                1, TUnit.METER
+                                        ))
+                        ))
+        )
+                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.DESCENDING);
+
+        assumeTrue(isExpressionSupported(query));
+        query.find();
+        assertEquals(query.count(), 2);
+
+        Iterator<SpatialRegressionsValues> results = query.iterator();
+
+        // sorted descending by distance
+        TPoint tPoint3 = results.next().point().get();
+        TPoint tPoint2 = results.next().point().get();
+
+        assertTrue(tPoint2.compareTo(_TPoint2) == 0);
+        assertTrue(tPoint3.compareTo(_TPoint3) == 0);
+    }
+
+
     @Ignore
     @Test
     public void script04()
@@ -274,13 +375,13 @@ public abstract class AbstractSpatialRegressionTest
                                          10,TUnit.METER
                                         )
                         ))
-                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint, OrderBy.Order.ASCENDING);
+                .orderBy(templateFor(SpatialRegressionsValues.class).point(), _TPoint1, OrderBy.Order.ASCENDING);
 
         // assumeTrue(isExpressionSupported(query));
         query.find();
         assertEquals(query.count(), 1);
         TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_TPoint) == 0);
+        assertTrue(tPoint.compareTo(_TPoint1) == 0);
     }
 
     @Test
@@ -320,7 +421,7 @@ public abstract class AbstractSpatialRegressionTest
         assertEquals(1, query.count());
         assertEquals(query.count(), 1);
         TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_TPoint) == 0);
+        assertTrue(tPoint.compareTo(_TPoint1) == 0);
     }
 
     @Test
@@ -423,7 +524,7 @@ public abstract class AbstractSpatialRegressionTest
         query.find();
         assertEquals(4, query.count());
         TPoint tPoint = query.iterator().next().point().get();
-        assertTrue(tPoint.compareTo(_TPoint) == 0);
+        assertTrue(tPoint.compareTo(_TPoint1) == 0);
         // assertSame
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
index 3082cac..dd204ea 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinder.java
@@ -51,6 +51,7 @@ import org.qi4j.index.elasticsearch.ElasticSearchFinderSupport.*;
 import org.qi4j.index.elasticsearch.extensions.spatial.ElasticSearchSpatialFinder;
 import org.qi4j.index.elasticsearch.extensions.spatial.functions.convert.ConvertFinderSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.PredicateFinderSupport;
+import org.qi4j.index.elasticsearch.extensions.spatial.internal.InternalUtils;
 import org.qi4j.spi.query.EntityFinder;
 import org.qi4j.spi.query.EntityFinderException;
 import org.slf4j.Logger;
@@ -145,60 +146,16 @@ public interface ElasticSearchFinder
             }
             if( orderBySegments != null )
             {
-                try {
-                for( OrderBy order : orderBySegments )
-                {
-
-                    // System.out.println("OrderBy " + order);
-                    // System.out.println("Name " + order.property().toString()); // getClass().getTypeName());
-
-
-                   //  order.property().accessor().
-
-                            String typeName = Classes.typeOf(order.property().accessor()).getTypeName();
-                    //System.out.println(typeName);
-
-                    Type returnType = Classes.typeOf(order.property().accessor());
-                    Type propertyTypeAsType = GenericPropertyInfo.toPropertyType(returnType);
-
-
-                    //System.out.println(propertyTypeAsType.getTypeName());
-
+                for( OrderBy orderBySegment : orderBySegments ) {
 
-                        Class clazz = Class.forName(propertyTypeAsType.getTypeName());
-                        // if (clazz instanceof TGeometry)
-
-                        if (TGeometry.class.isAssignableFrom(clazz))
-                        {
-                            //System.out.println("Spatial Type");
-
-                            System.out.println("Order Type " + order.property().toString());
-
-                            // if (
-                            //    !TPoint.class.isAssignableFrom(clazz) ||
-                            //    !Mappings(support).onIndex(support.index()).andType(support.entitiesType()).isGeoPoint(order.property().toString())
-                            //   )
-                            //    throw new RuntimeException("OrderBy can only be done on properties of type TPoint.");
-
-                            GeoDistanceSortBuilder geoDistanceSortBuilder = new GeoDistanceSortBuilder(order.property().toString()); // "point"); // (order.property().toString());
-                            geoDistanceSortBuilder.point(order.getCentre().x(), order.getCentre().y());
-                           // geoDistanceSortBuilder.point(48.13905780941111, 11.57958981111);
-                            geoDistanceSortBuilder.order(order.order() == OrderBy.Order.ASCENDING ? SortOrder.ASC : SortOrder.DESC);
-                            //                 .addSort(geoDistanceSortBuilder.sortMode("min").order(SortOrder.ASC).geoDistance(GeoDistance.PLANE).unit(DistanceUnit.KILOMETERS))
-
-                            // geoDistanceSortBuilder.sortMode("min").geoDistance(GeoDistance.ARC).unit(DistanceUnit.KILOMETERS)
-
-                            request.addSort(geoDistanceSortBuilder.sortMode("max").geoDistance(GeoDistance.ARC).order( SortOrder.DESC));
-                        }
-
-                    else {
-                        request.addSort(order.property().toString(),
-                                order.order() == OrderBy.Order.ASCENDING ? SortOrder.ASC : SortOrder.DESC);
+                    if (COMPLEX_TYPE_SUPPORTS.get(InternalUtils.classOfPropertyType(orderBySegment.property())) != null) {
+                        COMPLEX_TYPE_SUPPORTS.get(InternalUtils.classOfPropertyType(orderBySegment.property())).support(module, support).orderBy(request, whereClause, orderBySegment, variables);
+                    } else {
+                        request.addSort(orderBySegment.property().toString(),
+                                orderBySegment.order() == OrderBy.Order.ASCENDING ? SortOrder.ASC : SortOrder.DESC);
                     }
                 }
-                } catch (ClassNotFoundException e) {
-                    e.printStackTrace();
-                }
+
             }
 
             // Log

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinderSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinderSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinderSupport.java
index ad08680..53c8d3d 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinderSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchFinderSupport.java
@@ -18,11 +18,13 @@
 package org.qi4j.index.elasticsearch;
 
 import java.util.Map;
+
+import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.elasticsearch.index.query.FilterBuilder;
-import org.qi4j.api.query.grammar.ComparisonSpecification;
-import org.qi4j.api.query.grammar.ContainsAllSpecification;
-import org.qi4j.api.query.grammar.ContainsSpecification;
-import org.qi4j.api.query.grammar.Variable;
+import org.qi4j.api.composite.Composite;
+import org.qi4j.api.query.grammar.*;
+import org.qi4j.api.structure.Module;
+import org.qi4j.functional.Specification;
 import org.qi4j.spi.query.EntityFinderException;
 
 
@@ -50,6 +52,7 @@ public final class ElasticSearchFinderSupport
 
     public static interface ComplexTypeSupport
     {
+        ComplexTypeSupport support(Module module, ElasticSearchSupport support);
 
         FilterBuilder comparison( ComparisonSpecification<?> spec, Map<String, Object> variables );
 
@@ -57,6 +60,7 @@ public final class ElasticSearchFinderSupport
 
         FilterBuilder containsAll( ContainsAllSpecification<?> spec, Map<String, Object> variables );
 
+        void orderBy(SearchRequestBuilder request,  Specification<Composite> whereClause, OrderBy orderBySegment, Map<String, Object> variables ) throws EntityFinderException;
     }
 
     private ElasticSearchFinderSupport()

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
index 99335f3..fe969ba 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/ElasticSearchIndexer.java
@@ -130,7 +130,7 @@ public interface ElasticSearchIndexer
                         case NEW:
                             LOGGER.trace( "Creating Entity State in Index: {}", changedState );
                             String newJson = toJSON(changedState, newStates, uow );
-                            // System.out.println("#Will index: {}  : " + newJson);
+                            System.out.println("#Will index: {}  : " + newJson);
                             LOGGER.trace( "Will index: {}", newJson );
                             index( bulkBuilder, changedState.identity().identity(), newJson );
                             break;

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
index 5d1cfb1..af529fd 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/ElasticSearchSpatialFinder.java
@@ -18,10 +18,18 @@ package org.qi4j.index.elasticsearch.extensions.spatial;
  * limitations under the License.
  */
 
+import org.elasticsearch.action.search.SearchRequestBuilder;
+import org.elasticsearch.common.geo.GeoDistance;
+import org.elasticsearch.common.unit.DistanceUnit;
 import org.elasticsearch.index.query.*;
+import org.elasticsearch.search.sort.GeoDistanceSortBuilder;
+import org.elasticsearch.search.sort.SortOrder;
+import org.qi4j.api.composite.Composite;
+import org.qi4j.api.geometry.TPoint;
 import org.qi4j.api.query.grammar.ComparisonSpecification;
 import org.qi4j.api.query.grammar.ContainsAllSpecification;
 import org.qi4j.api.query.grammar.ContainsSpecification;
+import org.qi4j.api.query.grammar.OrderBy;
 import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
 import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
 import org.qi4j.api.structure.Module;
@@ -29,6 +37,8 @@ import org.qi4j.functional.Specification;
 import org.qi4j.index.elasticsearch.ElasticSearchSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.functions.convert.ConvertFinderSupport;
 import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.PredicateFinderSupport;
+import org.qi4j.index.elasticsearch.extensions.spatial.internal.InternalUtils;
+import org.qi4j.index.elasticsearch.extensions.spatial.mappings.SpatialIndexMapper;
 import org.qi4j.spi.query.EntityFinderException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -105,6 +115,18 @@ public final class ElasticSearchSpatialFinder
             implements ElasticSearchFinderSupport.ComplexTypeSupport
     {
 
+        private Module module;
+        private ElasticSearchSupport support;
+
+        public ElasticSearchFinderSupport.ComplexTypeSupport support(Module module, ElasticSearchSupport support)
+        {
+            this.module  = module;
+            this.support = support;
+
+            return this;
+        }
+
+
         public FilterBuilder comparison( ComparisonSpecification<?> spec, Map<String, Object> variables )
         {
             throw new RuntimeException("Unsupported operation");
@@ -113,19 +135,37 @@ public final class ElasticSearchSpatialFinder
         public FilterBuilder contains( ContainsSpecification<?> spec, Map<String, Object> variables )
         {
             throw new RuntimeException("Unsupported operation");
-
         }
 
         public FilterBuilder containsAll( ContainsAllSpecification<?> spec, Map<String, Object> variables )
         {
             throw new RuntimeException("Unsupported operation");
         }
+
+        public void orderBy(SearchRequestBuilder request,  Specification<Composite> whereClause, OrderBy orderBySegment, Map<String, Object> variables ) throws EntityFinderException
+        {
+            if (!TPoint.class.isAssignableFrom(InternalUtils.classOfPropertyType(orderBySegment.property())))
+            {
+                throw new EntityFinderException("Ordering can only be done on TPoints.. TODO");
+            }
+
+            if (!SpatialIndexMapper.IndexMappingCache.isMappedAsGeoPoint(support.index(), support.entitiesType(), orderBySegment.property().toString()))
+            {
+                throw new EntityFinderException("OrderBy is only supported when GEO_POINT indexing is used");
+            }
+
+            GeoDistanceSortBuilder geoDistanceSortBuilder = new GeoDistanceSortBuilder(orderBySegment.property().toString());
+            geoDistanceSortBuilder.point(orderBySegment.getCentre().y(), orderBySegment.getCentre().x());
+
+            geoDistanceSortBuilder.order(orderBySegment.order() == OrderBy.Order.ASCENDING ? SortOrder.ASC : SortOrder.DESC);
+            request.addSort(geoDistanceSortBuilder.geoDistance(GeoDistance.SLOPPY_ARC).sortMode("avg").unit(DistanceUnit.METERS));
+        }
     }
 
 
 
 
-        private ElasticSearchSpatialFinder()
+     private ElasticSearchSpatialFinder()
     {
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
index 9750b2b..c51d31a 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialFunctionsSupportMatrix.java
@@ -45,7 +45,7 @@ public class SpatialFunctionsSupportMatrix
         //supports(ST_WithinV2.class, propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), disable(OrderBy), INDEXING_METHOD.TPOINT_AS_GEOSHAPE);
 
         // ST_Disjoint
-        supports(disable(ST_DisjointSpecification.class), propertyOf(AnyGeometry), filterOf(AnyGeometry), disable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_POINT);
+        supports(enable(ST_DisjointSpecification.class), propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), enable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_POINT);
         supports(enable(ST_DisjointSpecification.class),  propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), disable(OrderBy), SpatialConfiguration.INDEXING_METHOD.GEO_SHAPE);
 
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialSupportMatrix.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialSupportMatrix.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialSupportMatrix.java
deleted file mode 100644
index e805410..0000000
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/configuration/SpatialSupportMatrix.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package org.qi4j.index.elasticsearch.extensions.spatial.configuration;
-
-import com.google.common.collect.HashBasedTable;
-import com.google.common.collect.Table;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.query.grammar.ExpressionSpecification;
-import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.ST_Disjoint;
-import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.ST_Intersects;
-import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.ST_WithinV2;
-import org.qi4j.index.elasticsearch.extensions.spatial.mappings.cache.MappingsCache;
-
-import java.lang.reflect.Array;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Created by jj on 22.12.14.
- */
-public class SpatialSupportMatrix
-{
-
-    private Boolean OrderBy = true;
-    private Class<? extends TGeometry> AnyGeometry = TGeometry.class;
-    public static enum INDEX_MAPPING_POINT_METHOD {AS_GEO_POINT, AS_GEO_SHAPE}
-
-    private static final Table<Class, INDEX_MAPPING_POINT_METHOD, ConfigurationEntry> SPATIAL_SUPPORT_MATRIX = HashBasedTable.create();
-
-
-
-    {
-        // ST_Within
-        supports(ST_WithinV2.class, propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), OrderBy, INDEX_MAPPING_POINT_METHOD.AS_GEO_POINT);
-        supports(ST_WithinV2.class, propertyOf(AnyGeometry), filterOf(TPoint.class, TPolygon.class), not(OrderBy), INDEX_MAPPING_POINT_METHOD.AS_GEO_SHAPE);
-
-        // ST_Disjoint
-        supports(not(ST_Disjoint.class), AnyGeometry, AnyGeometry, OrderBy, INDEX_MAPPING_POINT_METHOD.AS_GEO_POINT);
-        supports(ST_Disjoint.class, TGeometry.class, TGeometry.class, not(OrderBy), INDEX_MAPPING_POINT_METHOD.AS_GEO_SHAPE);
-
-        // ST_Intersects
-        supports(not(ST_Intersects.class), AnyGeometry, AnyGeometry, OrderBy, INDEX_MAPPING_POINT_METHOD.AS_GEO_POINT);
-        supports(not(ST_Intersects.class), TGeometry.class, TGeometry.class, not(OrderBy), INDEX_MAPPING_POINT_METHOD.AS_GEO_SHAPE);
-    }
-
-
-
-
-    {
-        supports(ST_WithinV2.class, TPoint.class, not(TPoint.class), OrderBy, INDEX_MAPPING_POINT_METHOD.AS_GEO_SHAPE);
-    }
-
-    private class ConfigurationEntry
-    {
-        private INDEX_MAPPING_POINT_METHOD method;
-        private Boolean orderBy;
-        private List<Class<? extends  TGeometry>> supportedPropertyGeometries = new LinkedList<>();
-        private List<Class<? extends  TGeometry>> supportedFilterGeometries = new LinkedList<>();
-
-        public ConfigurationEntry(Class<? extends  TGeometry>[] geometriesOfProperty, Class<? extends  TGeometry>[] geometriesOfFilter, Boolean orderBy, INDEX_MAPPING_POINT_METHOD method)
-        {
-            this.supportedPropertyGeometries = Arrays.asList(geometriesOfProperty);
-            this.supportedFilterGeometries   = Arrays.asList(geometriesOfFilter);
-            this.orderBy = orderBy;
-            this.method  = method;
-        }
-
-        public boolean isSupported( Class<? extends  TGeometry> geometryOfProperty, Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy)
-        {
-            return false;
-        }
-    }
-
-
-    public boolean isSupported(Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, INDEX_MAPPING_POINT_METHOD method )
-    {
-        if (SPATIAL_SUPPORT_MATRIX.contains(expression, method))
-            return SPATIAL_SUPPORT_MATRIX.get(expression, method).isSupported(geometryOfProperty, geometryOfFilter, orderBy);
-        else
-            return false;
-    }
-
-    private void supports (Class expression, Class<? extends  TGeometry> geometryOfProperty,Class<? extends  TGeometry> geometryOfFilter, Boolean orderBy, INDEX_MAPPING_POINT_METHOD method)
-    {
-        supports
-                (
-                 expression,
-                 (Class < ?extends TGeometry >[])Array.newInstance(geometryOfProperty, 1),
-                 (Class<? extends TGeometry>[]) Array.newInstance(geometryOfFilter, 1),
-                 orderBy, method
-                );
-    }
-
-    private void supports (Class expression, Class<? extends  TGeometry>[] geometriesOfProperty,Class<? extends  TGeometry>[] geometriesOfFilter, Boolean orderBy, INDEX_MAPPING_POINT_METHOD method)
-    {
-        SPATIAL_SUPPORT_MATRIX.put(expression, method, new ConfigurationEntry(geometriesOfProperty, geometriesOfFilter,orderBy, method));
-    }
-
-
-
-    private Class not(Class clazz)
-    {
-        return Object.class;
-    }
-
-    private Boolean not(Boolean bool)
-    {
-        return false;
-    }
-
-
-    private Class<? extends  TGeometry>[] filterOf(Class<? extends  TGeometry>... geometryOfFilters)
-    {
-        return geometryOfFilters;
-    }
-
-    private Class<? extends  TGeometry>[] propertyOf(Class<? extends  TGeometry>... geometryOfProperty)
-    {
-        return geometryOfProperty;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
index 3530c1c..2adcb64 100644
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/PredicateFinderSupport.java
@@ -31,7 +31,7 @@ public class PredicateFinderSupport implements ElasticSearchSpatialFinder.Spatia
     static
     {
         SPATIAL_PREDICATE_OPERATIONS.put(ST_WithinSpecification.class, new ST_Within());
-        SPATIAL_PREDICATE_OPERATIONS.put(ST_DisjointSpecification.class, new ST_DisjointV2());
+        SPATIAL_PREDICATE_OPERATIONS.put(ST_DisjointSpecification.class, new ST_DisjointV3());
         SPATIAL_PREDICATE_OPERATIONS.put(ST_IntersectsSpecification.class, new ST_Intersects());
     }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV3.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV3.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV3.java
new file mode 100644
index 0000000..c89804d
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/functions/predicates/ST_DisjointV3.java
@@ -0,0 +1,131 @@
+package org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates;
+
+import com.spatial4j.core.distance.DistanceUtils;
+import org.elasticsearch.common.geo.ShapeRelation;
+import org.elasticsearch.index.query.FilterBuilder;
+import org.elasticsearch.index.query.FilterBuilders;
+import org.elasticsearch.index.query.GeoPolygonFilterBuilder;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.api.geometry.TPolygon;
+import org.qi4j.api.geometry.internal.TCircle;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_DisjointSpecification;
+import org.qi4j.api.query.grammar.extensions.spatial.predicate.ST_WithinSpecification;
+import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
+import org.qi4j.index.elasticsearch.extensions.spatial.internal.AbstractElasticSearchSpatialFunction;
+import org.qi4j.spi.query.EntityFinderException;
+
+import java.util.Map;
+
+import static org.elasticsearch.index.query.FilterBuilders.andFilter;
+import static org.elasticsearch.index.query.FilterBuilders.notFilter;
+import static org.elasticsearch.index.query.FilterBuilders.termFilter;
+
+/**
+ * Created by jj on 23.12.14.
+ */
+public class ST_DisjointV3 extends AbstractElasticSearchSpatialFunction implements PredicateFinderSupport.PredicateSpecification
+{
+    public void processSpecification(FilterBuilder filterBuilder,
+                                     SpatialPredicatesSpecification<?> spec,
+                                     Map<String, Object> variables)
+            throws EntityFinderException
+    {
+        TGeometry geomOfFilterProperty = resolveGeometry(filterBuilder, spec, module);
+
+        if (!isValid(spec))
+            throw new EntityFinderException(spec.getClass() + " expression invalid.");
+
+        if (!isMapped(spec.property()))
+            throw new EntityFinderException(spec.getClass() + " expression invalid. No spatial mapping available for property " + spec.property());
+
+        if (!isSupported(spec, geomOfFilterProperty))
+            throw new EntityFinderException(spec.getClass() + " expression unsupported by ElasticSearch. Pls specify a supported expression.");
+
+
+
+
+        /**
+         * When the geometry used in the ST_Within expression is of type TPoint and a distance is specified, e.g.
+         *
+         * TPoint point = TPoint(module).x(..).y(..);
+         * ST_Within (templateFor(x.class).propertyOfTypeTPoint(), point, 1, TUnit.METER)
+         *
+         * then a ES GeoDistanceFilter is used.
+         *
+         */
+        if (
+                isTPoint(geomOfFilterProperty) &&
+                        isMappedAsGeoPoint(spec.property()) &&
+                        ((ST_DisjointSpecification) spec).getDistance() > 0
+                )
+        {
+            addFilter(andFilter(notFilter(createGeoDistanceFilter
+                            (
+                                    spec.property().toString(),
+                                    (TPoint) verifyProjection(geomOfFilterProperty),
+                                    ((ST_DisjointSpecification) spec).getDistance(),
+                                    ((ST_DisjointSpecification) spec).getUnit()
+                            )), null),
+                    // )termFilter( "point.type", "point" )),
+                    filterBuilder
+            );
+        }
+
+
+
+
+        else if (isPropertyOfType(TPoint.class, spec.property()) && isMappedAsGeoShape(spec.property()))
+        {
+            if (geomOfFilterProperty instanceof TPolygon)
+            {
+                /**
+                 * This must not happen, but in case the expression is defined using WTK like :
+                 *
+                 * ST_Within (templateFor(x.class).propertyOfTypeTPoint(),
+                 *              POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7, 5 5)),
+                 *              1, TUnit.METER) // <- This is invalid !!
+                 *
+                 * we have to check it here.
+                 *
+                 */
+                if (((ST_DisjointSpecification)spec).getDistance() > 0)
+                    throw new EntityFinderException("Invalid ST_Disjoint expression. A " + TPolygon.class.getSimpleName() + " can " +
+                            "not be combined with distance.");
+
+                TPolygon polygonFilter = (TPolygon)verifyProjection(geomOfFilterProperty);
+
+                GeoPolygonFilterBuilder geoPolygonFilterBuilder = FilterBuilders.geoPolygonFilter(spec.property().toString());
+
+                for (int i = 0; i < polygonFilter.shell().get().getNumPoints(); i++) {
+                    TPoint point = polygonFilter.shell().get().getPointN(i);
+                    geoPolygonFilterBuilder.addPoint(point.x(), point.y());
+                }
+                addFilter(notFilter(geoPolygonFilterBuilder), filterBuilder); // TODO NOT
+            }
+            else if (geomOfFilterProperty instanceof TPoint && ((ST_DisjointSpecification)spec).getDistance() > 0 )
+            {
+
+                double distanceMeters = convertDistanceToMeters(((ST_DisjointSpecification)spec).getDistance() , ((ST_DisjointSpecification)spec).getUnit());
+                System.out.println("Distance in Meters " + distanceMeters);
+                double distanceDegrees = DistanceUtils.dist2Degrees(distanceMeters, DistanceUtils.EARTH_MEAN_RADIUS_KM * 1000);
+                // This is a special case. We are using polygon substitution to support a circle. ATTENTION - this is just a approximation !!
+                TPoint circlePoint = (TPoint)verifyProjection(geomOfFilterProperty);
+                TCircle tCircle = module.newValueBuilder(TCircle.class).prototype().of(circlePoint, distanceDegrees);
+                TPolygon polygonizedCircleFilter = tCircle.polygonize(360);
+                addFilter(createShapeFilter(spec.property().toString(), polygonizedCircleFilter, ShapeRelation.DISJOINT), filterBuilder);
+            }
+
+
+        }
+        else
+        {
+            /**
+             * In all other cases we are using a shape filter.
+            */
+            addFilter(createShapeFilter(spec.property().toString(), geomOfFilterProperty, ShapeRelation.DISJOINT), filterBuilder);
+        }
+
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/index/ElasticSearchSpatialExtensionFinder.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/index/ElasticSearchSpatialExtensionFinder.java b/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/index/ElasticSearchSpatialExtensionFinder.java
deleted file mode 100644
index c1ec059..0000000
--- a/extensions/indexing-elasticsearch/src/main/java/org/qi4j/index/elasticsearch/extensions/spatial/index/ElasticSearchSpatialExtensionFinder.java
+++ /dev/null
@@ -1,129 +0,0 @@
-package org.qi4j.index.elasticsearch.extensions.spatial.index;
-
-/*
- * Copyright 2014 Jiri Jetmar.
- *
- * Licensed  under the  Apache License,  Version 2.0  (the "License");
- * you may not use  this file  except in  compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed  under the  License is distributed on an "AS IS" BASIS,
- * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
- * implied.
- *
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import org.elasticsearch.index.query.*;
-import org.qi4j.api.query.grammar.ComparisonSpecification;
-import org.qi4j.api.query.grammar.ContainsAllSpecification;
-import org.qi4j.api.query.grammar.ContainsSpecification;
-import org.qi4j.api.query.grammar.extensions.spatial.convert.SpatialConvertSpecification;
-import org.qi4j.api.query.grammar.extensions.spatial.predicate.SpatialPredicatesSpecification;
-import org.qi4j.api.structure.Module;
-import org.qi4j.functional.Specification;
-import org.qi4j.index.elasticsearch.ElasticSearchSupport;
-import org.qi4j.index.elasticsearch.extensions.spatial.functions.convert.ElasticSearchSpatialConvertFinderSupport;
-import org.qi4j.index.elasticsearch.extensions.spatial.functions.predicates.ElasticSearchSpatialPredicateFinderSupport;
-import org.qi4j.spi.query.EntityFinderException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.elasticsearch.index.query.FilterBuilders.geoShapeFilter;
-
-import org.qi4j.index.elasticsearch.ElasticSearchFinderSupport;
-
-public final class ElasticSearchSpatialExtensionFinder
-{
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(ElasticSearchSpatialExtensionFinder.class);
-
-    private static final Map<Class<?>, SpatialQuerySpecSupport> SPATIAL_QUERY_EXPRESSIONS_CATALOG = new HashMap<>( 2 );
-
-    static
-    {
-        SPATIAL_QUERY_EXPRESSIONS_CATALOG.put(SpatialPredicatesSpecification.class, new ElasticSearchSpatialPredicateFinderSupport());
-        SPATIAL_QUERY_EXPRESSIONS_CATALOG.put(SpatialConvertSpecification.class, new ElasticSearchSpatialConvertFinderSupport());
-    }
-
-
-
-    public interface ModuleHelper {
-        void setModule(Module module, ElasticSearchSupport support);
-    }
-
-    public static interface SpatialQuerySpecSupport extends ModuleHelper
-    {
-        void processSpecification(FilterBuilder filterBuilder, Specification<?> spec, Map<String, Object> variables)  throws EntityFinderException;
-    }
-
-
-
-    public static class SpatialSpecSupport
-                implements  SpatialQuerySpecSupport {
-
-        Module module;
-        ElasticSearchSupport support;
-
-        public void setModule(Module module, ElasticSearchSupport support)
-        {
-            this.module  = module;
-            this.support = support;
-        }
-
-
-        public void processSpecification(FilterBuilder filterBuilder,
-                                              Specification<?> spec,
-                                              Map<String, Object> variables) {
-
-            SpatialQuerySpecSupport spatialQuerySpecSupport = SPATIAL_QUERY_EXPRESSIONS_CATALOG.get(spec.getClass().getSuperclass());
-            spatialQuerySpecSupport.setModule(module, support);
-
-            try {
-                spatialQuerySpecSupport.processSpecification(filterBuilder, spec, variables);
-
-            } catch (Exception _ex) {
-                _ex.printStackTrace();
-            }
-
-
-        }
-
-    }
-
-
-    public static class SpatialTypeSupport
-            implements ElasticSearchFinderSupport.ComplexTypeSupport
-    {
-
-        public FilterBuilder comparison( ComparisonSpecification<?> spec, Map<String, Object> variables )
-        {
-            return null;
-        }
-
-        public FilterBuilder contains( ContainsSpecification<?> spec, Map<String, Object> variables )
-        {
-            return null;
-        }
-
-        public FilterBuilder containsAll( ContainsAllSpecification<?> spec, Map<String, Object> variables )
-        {
-            return null;
-        }
-    }
-
-
-
-
-        private ElasticSearchSpatialExtensionFinder()
-    {
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
new file mode 100644
index 0000000..0ad7c1c
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryClusterTest.java
@@ -0,0 +1,92 @@
+package org.qi4j.index.elasticsearch.extension.spatial;
+
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.query.Query;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.index.elasticsearch.ElasticSearchConfiguration;
+import org.qi4j.index.elasticsearch.assembly.ESClusterIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
+import org.qi4j.index.elasticsearch.extensions.spatial.configuration.SpatialConfiguration;
+import org.qi4j.library.fileconfig.FileConfigurationOverride;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.library.spatial.v2.assembly.TGeometryAssembler;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.indexing.AbstractSpatialRegressionTest;
+import org.qi4j.test.util.DelTreeAfter;
+
+import java.io.File;
+
+import static org.qi4j.test.util.Assume.assumeNoIbmJdk;
+
+/**
+ * Created by jj on 21.12.14.
+ */
+public class ElasticSearchSpatialRegressionQueryClusterTest
+        extends AbstractSpatialRegressionTest
+{
+    private static final File DATA_DIR = new File( "build/tmp/es-spatial-query-test" );
+    @Rule
+    public final DelTreeAfter delTreeAfter = new DelTreeAfter( DATA_DIR );
+
+    @BeforeClass
+    public static void beforeClass_IBMJDK()
+    {
+        assumeNoIbmJdk();
+    }
+
+    protected boolean isExpressionSupported(Query<?> expression)
+    {
+        return true;
+    }
+
+
+    @Override
+    public void assemble( ModuleAssembly module )
+            throws AssemblyException
+    {
+        super.assemble( module );
+
+        // Geometry support
+        new TGeometryAssembler().assemble(module);
+
+
+
+        // Config module
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+
+        config.values(SpatialConfiguration.Configuration.class,
+                SpatialConfiguration.FinderConfiguration.class,
+                SpatialConfiguration.IndexerConfiguration.class,
+                SpatialConfiguration.IndexingMethod.class,
+                SpatialConfiguration.ProjectionSupport.class).
+                visibleIn(Visibility.application);
+
+        // Index/Query
+        new ESClusterIndexQueryAssembler().
+                withConfig(config, Visibility.layer).
+                identifiedBy("ElasticSearchConfigurationVariant1").
+                assemble(module);
+        ElasticSearchConfiguration esConfig = config.forMixin(ElasticSearchConfiguration.class).declareDefaults();
+        esConfig.indexNonAggregatedAssociations().set(Boolean.TRUE);
+        esConfig.indexPointMappingMethod().set(ElasticSearchConfiguration.INDEX_MAPPING_POINT_METHOD.GEO_POINT);
+
+
+        // FileConfig
+        FileConfigurationOverride override = new FileConfigurationOverride().
+                withData(new File(DATA_DIR, "qi4j-data")).
+                withLog(new File(DATA_DIR, "qi4j-logs")).
+                withTemporary(new File(DATA_DIR, "qi4j-temp"));
+        module.services(FileConfigurationService.class).
+                setMetaInfo(override);
+
+
+        config.services(FileConfigurationService.class)
+                // .identifiedBy("ElasticSearchConfigurationVariant1")
+                .setMetaInfo(override)
+                .visibleIn(Visibility.application);
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
index 30e3a23..66cdc73 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant1Test.java
@@ -127,8 +127,5 @@ public class ElasticSearchSpatialRegressionQueryVariant1Test
                 // .identifiedBy("ElasticSearchConfigurationVariant1")
                 .setMetaInfo(override)
                 .visibleIn(Visibility.application);
-
-        // clear index mapping caches during junit testcases
-        // SpatialIndexMapper.IndexMappingCache.clear();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
index 45ece0d..322defa 100644
--- a/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
+++ b/extensions/indexing-elasticsearch/src/test/java/org/qi4j/index/elasticsearch/extension/spatial/ElasticSearchSpatialRegressionQueryVariant2Test.java
@@ -127,8 +127,5 @@ public class ElasticSearchSpatialRegressionQueryVariant2Test
                 // .identifiedBy("ElasticSearchConfigurationVariant1")
                 .setMetaInfo(override)
                 .visibleIn(Visibility.application);
-
-        // clear index mapping caches during junit testcases
-        // SpatialIndexMapper.IndexMappingCache.clear();
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties
new file mode 100644
index 0000000..3837000
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2Backup.properties
@@ -0,0 +1,28 @@
+spatial = { \
+  \
+  Enabled : true, \
+  \
+  Indexer=\
+   { \
+    Method=\
+      { \
+        Type      = "GEO_SHAPE", \
+        Precision = 1m, \
+      }, \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 1m, \
+      }, \
+   }, \
+  \
+  \
+  Finder=\
+    { \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 1m, \
+      } \
+    } \
+  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties
new file mode 100644
index 0000000..3837000
--- /dev/null
+++ b/extensions/indexing-elasticsearch/src/test/resources/ElasticSearchConfigurationVariant2_Backup_.properties
@@ -0,0 +1,28 @@
+spatial = { \
+  \
+  Enabled : true, \
+  \
+  Indexer=\
+   { \
+    Method=\
+      { \
+        Type      = "GEO_SHAPE", \
+        Precision = 1m, \
+      }, \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 1m, \
+      }, \
+   }, \
+  \
+  \
+  Finder=\
+    { \
+    Projection=\
+      { \
+        ConversionEnabled  = true, \
+        ConversionAccuracy = 1m, \
+      } \
+    } \
+  }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/OSM.java
----------------------------------------------------------------------
diff --git a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/OSM.java b/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/OSM.java
deleted file mode 100644
index c249034..0000000
--- a/samples/openstreetmap/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/OSM.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
-
-/**
- * Created by jj on 01.12.14.
- */
-public interface OSM {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/MapEntity.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/MapEntity.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/MapEntity.java
deleted file mode 100644
index fe7ddfa..0000000
--- a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/MapEntity.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model;
-
-/**
- * Created by jj on 28.11.14.
- */
-public interface MapEntity {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java
deleted file mode 100644
index 1175663..0000000
--- a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/TagEntity.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model;
-
-/**
- * Created by jj on 28.11.14.
- */
-public class TagEntity {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java
deleted file mode 100644
index 0c5661f..0000000
--- a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/assembly/OpenStreetMapDomainModelAssembler.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.assembly;
-
-/**
- * Created by jj on 28.11.14.
- */
-public class OpenStreetMapDomainModelAssembler {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Features.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Features.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Features.java
deleted file mode 100644
index b6c5908..0000000
--- a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Features.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
-
-/**
- * Created by jj on 28.11.14.
- */
-public interface Features {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Identifiable.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Identifiable.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Identifiable.java
deleted file mode 100644
index 763cc9d..0000000
--- a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Identifiable.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
-
-/**
- * Created by jj on 28.11.14.
- */
-public interface Identifiable {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Properties.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Properties.java b/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Properties.java
deleted file mode 100644
index 9dca43d..0000000
--- a/samples/spatial/src/main/java/org/qi4j/sample/spatial/domain/openstreetmap/model/state/Properties.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.state;
-
-/**
- * Created by jj on 28.11.14.
- */
-public interface Properties {
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/236d0ef9/samples/spatial/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOpenStreetMapModel.java
----------------------------------------------------------------------
diff --git a/samples/spatial/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOpenStreetMapModel.java b/samples/spatial/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOpenStreetMapModel.java
deleted file mode 100644
index c220823..0000000
--- a/samples/spatial/src/test/java/org/qi4j/sample/spatial/domain/openstreetmap/model/test/TestOpenStreetMapModel.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.qi4j.sample.spatial.domain.openstreetmap.model.test;
-
-import org.junit.Test;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.sample.spatial.domain.openstreetmap.model.assembly.OpenStreetMapDomainModelAssembler;
-import org.qi4j.test.AbstractQi4jTest;
-
-/**
- * Created by jj on 28.11.14.
- */
-public class TestOpenStreetMapModel extends AbstractQi4jTest {
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        new OpenStreetMapDomainModelAssembler().assemble(module);
-    }
-
-    @Test
-    public void foo()
-    {
-        System.out.println("foo");
-    }
-}


[35/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/ToHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/ToHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/ToHelper.java
new file mode 100644
index 0000000..752dffd
--- /dev/null
+++ b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projection/transformations/fromto/ToHelper.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.projection.transformations.fromto;
+
+import org.cts.IllegalCoordinateException;
+import org.cts.crs.GeodeticCRS;
+import org.cts.op.CoordinateOperation;
+import org.cts.op.CoordinateOperationFactory;
+import org.qi4j.api.geometry.*;
+import org.qi4j.api.geometry.internal.Coordinate;
+import org.qi4j.api.geometry.internal.TGeometry;
+import org.qi4j.api.structure.Module;
+import org.qi4j.library.spatial.projection.ProjectionsRegistry;
+
+import java.util.List;
+
+
+public class ToHelper
+{
+
+    private Module module;
+    private TGeometry intermediate;
+    private double maxPrecisionMeanConversionError = Double.MAX_VALUE;
+
+    public ToHelper(Module module, TGeometry intermediate)
+    {
+        this.module = module;
+        this.intermediate = intermediate;
+    }
+
+    private ToHelper() {}
+
+
+    public  void to(String CRS, double maxPrecisionMeanConversionError) throws RuntimeException
+    {
+        this.maxPrecisionMeanConversionError = maxPrecisionMeanConversionError;
+        to(CRS);
+    }
+
+    public  void to(String CRS) throws RuntimeException
+    {
+    try
+    {
+        GeodeticCRS sourceCRS = (GeodeticCRS) new ProjectionsRegistry().getCRS(intermediate.getCRS());
+        GeodeticCRS targetCRS = (GeodeticCRS) new ProjectionsRegistry().getCRS(CRS);
+
+
+        if (sourceCRS.equals(targetCRS)) {
+            return;
+        }
+        switch (intermediate.getType()) {
+            case POINT:
+                transform(sourceCRS, targetCRS, new Coordinate[]{((TPoint) intermediate).getCoordinate()});
+                break;
+            case MULTIPOINT:
+                transform(sourceCRS, targetCRS, ((TMultiPoint) intermediate).getCoordinates());
+                break;
+            case LINESTRING:
+                transform(sourceCRS, targetCRS, ((TLineString) intermediate).getCoordinates());
+                break;
+            case MULTILINESTRING:
+                transform(sourceCRS, targetCRS, ((TMultiLineString) intermediate).getCoordinates());
+                break;
+            case POLYGON:
+                transform(sourceCRS, targetCRS, ((TPolygon) intermediate).getCoordinates());
+                break;
+            case MULTIPOLYGON:
+                transform(sourceCRS, targetCRS, ((TMultiPolygon) intermediate).getCoordinates());
+                break;
+            case FEATURE:
+                transform(sourceCRS, targetCRS, ((TFeature) intermediate).getCoordinates());
+                break;
+            case FEATURECOLLECTION:
+                transform(sourceCRS, targetCRS, ((TFeatureCollection) intermediate).getCoordinates());
+                break;
+        }
+
+        // JJ TODO - Set nested TGeometries CRSs as well
+        intermediate.setCRS(targetCRS.getCode());
+    } catch(Exception _ex)
+    {
+        throw new RuntimeException(_ex);
+    }
+    }
+
+
+
+    private void transformTPoint(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TPoint tPoint ) throws Exception
+    {
+        transform(sourceCRS, targetCRS, new Coordinate[] { tPoint.getCoordinate() });
+        tPoint.setCRS(targetCRS.getCode());
+    }
+
+    private void transformTMultiPoint(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TMultiPoint tMultiPoint ) throws Exception
+    {
+        transform(sourceCRS, targetCRS, tMultiPoint.getCoordinates());
+        tMultiPoint.setCRS(targetCRS.getCode());
+        // tMultiPoint.
+    }
+
+    private void transformTLineString(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TLineString tLineString ) throws Exception
+    {
+
+        transform(sourceCRS, targetCRS, tLineString.getCoordinates());
+        tLineString.setCRS(targetCRS.getCode());
+        // tMultiPoint.
+    }
+
+
+    private void transform(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, Coordinate... coordinates) throws IllegalCoordinateException
+    {
+        List<CoordinateOperation> ops;
+        ops = CoordinateOperationFactory.createCoordinateOperations(sourceCRS, targetCRS);
+
+        if (!ops.isEmpty()) {
+            if (true) {
+                 System.out.println("Number of Operations " + ops.size());
+                 System.out.println("Precision " + ops.get(0).getPrecision() + " m.");
+                 System.out.println(ops.get(0));
+            }
+
+            if (maxPrecisionMeanConversionError < Double.MAX_VALUE && maxPrecisionMeanConversionError < ops.get(0).getPrecision())
+                throw new RuntimeException("Transformation from " + sourceCRS.getCode() + " to " + targetCRS.getCode() +
+                        " can not be done with the requested precision of " + maxPrecisionMeanConversionError + " meters." +
+                        " Current precision mean conversion error is " + ops.get(0).getPrecision() + " meters.");
+
+            for (Coordinate coordinate : coordinates)
+            {
+                double[] c = ops.get(0).transform(new double[]{coordinate.y(), coordinate.x() /** z */} );
+                coordinate.y(c[0]).x(c[1]);
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionService.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionService.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionService.java
deleted file mode 100644
index cf840e16..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionService.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.qi4j.library.spatial.projections;
-
-import org.cts.CRSFactory;
-import org.cts.IllegalCoordinateException;
-import org.cts.crs.CRSException;
-import org.cts.crs.CoordinateReferenceSystem;
-import org.cts.crs.GeodeticCRS;
-import org.cts.op.CoordinateOperation;
-import org.cts.op.CoordinateOperationFactory;
-import org.cts.registry.*;
-import org.qi4j.api.injection.scope.Structure;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.ServiceActivation;
-import org.qi4j.api.service.ServiceComposite;
-import org.qi4j.api.structure.Module;
-
-import java.util.List;
-import java.util.Set;
-
-@Mixins( ProjectionService.Mixin.class )
-public interface ProjectionService
-        extends ServiceComposite, ServiceActivation {
-
-    void test() throws Exception;
-    double[] transform(String csNameSrc, String csNameDest, double[] pointSource) throws IllegalCoordinateException, CRSException;
-    Set<String> getSupportedSRID(String registryName) throws RegistryException;
-
-
-    public abstract class Mixin implements ProjectionService
-    {
-
-        protected static CRSFactory cRSFactory;
-
-        // private static SpatialRefRegistry srr = new SpatialRefRegistry();
-
-        public void test() throws Exception
-        {
-
-            // getSupportedCodes
-            // Set<String> codes =  cRSFactory.getSupportedCodes("EPSG");
-
-            // System.out.println(codes);
-
-            // CoordinateReferenceSystem crs = cRSFactory .createFromPrj(prj);
-            System.out.println(cRSFactory.getCRS("EPSG:4326").getAuthorityKey()); //  getAuthorityName());
-
-            // String csNameSrc = "EPSG:4326"; //Input EPSG
-            String csNameSrc = "4326"; //Input EPSG
-
-            String csNameDest = "EPSG:27582";  //Target EPSG lambert 2 etendu france
-
-            CoordinateReferenceSystem inputCRS = cRSFactory.getCRS(csNameSrc);
-            System.out.println(inputCRS.toWKT());
-            CoordinateReferenceSystem outputCRS = cRSFactory.getCRS(csNameDest);
-
-        }
-
-        public Set<String> getSupportedSRID(String registryName) throws RegistryException
-        {
-            // cRSFactory.
-            return cRSFactory.getSupportedCodes(registryName);
-        }
-
-        public double[] transform(String csNameSrc, String csNameDest, double[] pointSource) throws IllegalCoordinateException, CRSException {
-
-            CoordinateReferenceSystem inputCRS = cRSFactory.getCRS(csNameSrc);
-            CoordinateReferenceSystem outputCRS = cRSFactory.getCRS(csNameDest);
-
-            return transform((GeodeticCRS) inputCRS, (GeodeticCRS) outputCRS, pointSource);
-        }
-
-
-        public double[] transform(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, double[] pointSource) throws IllegalCoordinateException {
-
-            if (sourceCRS.equals(targetCRS))
-                return pointSource;
-
-            List<CoordinateOperation> ops;
-            ops = CoordinateOperationFactory.createCoordinateOperations(sourceCRS, targetCRS);
-            if (!ops.isEmpty()) {
-               // if (verbose) {
-                    System.out.println(ops.get(0));
-               // }
-                return ops.get(0).transform(new double[]{pointSource[0], pointSource[1], pointSource[2]});
-            } else {
-                return new double[]{0.0d, 0.0d, 0.0d};
-            }
-        }
-
-
-        @Structure
-        Module module;
-
-        public void activateService()
-                throws Exception
-        {
-
-            cRSFactory = new CRSFactory();
-            RegistryManager registryManager = cRSFactory.getRegistryManager();
-            registryManager.addRegistry(new IGNFRegistry());
-            registryManager.addRegistry(new EPSGRegistry());
-            registryManager.addRegistry(new ESRIRegistry());
-            registryManager.addRegistry(new Nad27Registry());
-            registryManager.addRegistry(new Nad83Registry());
-            registryManager.addRegistry(new worldRegistry());
-
-        }
-
-        // END SNIPPET: realm-service
-        public void passivateService()
-                throws Exception
-        {
-        }
-
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/Projections.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/Projections.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/Projections.java
deleted file mode 100644
index 35a5a61..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/Projections.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.qi4j.library.spatial.projections;
-
-/**
- * Created by jakes on 2/20/14.
- */
-public interface Projections {
-
-    String EPSG_1102110 = "PROJCS[\"RGF93_Lambert_93\",GEOGCS[\"GCS_RGF_1993\","
-            + "DATUM[\"D_RGF_1993\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],"
-            + "PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],"
-            + "PROJECTION[\"Lambert_Conformal_Conic\"],PARAMETER[\"False_Easting\",700000.0],"
-            + "PARAMETER[\"False_Northing\",6600000.0],PARAMETER[\"Central_Meridian\",3.0],"
-            + "PARAMETER[\"Standard_Parallel_1\",44.0],PARAMETER[\"Standard_Parallel_2\",49.0],"
-            + "PARAMETER[\"Latitude_Of_Origin\",46.5],UNIT[\"Meter\",1.0]]";
-
-
-    String EPSG_27561= "PROJCS[\" NTF (Paris) / Lambert zone II \",GEOGCS[\" NTF (Paris) \","
-            + "DATUM[\" Nouvelle_Triangulation_Francaise_Paris \","
-            + "SPHEROID[\" Clarke 1880 (IGN) \", 6378249.2 , 293.4660212936269 ,"
-            + "AUTHORITY[\" EPSG \" , \" 7011 \"]],TOWGS84[ -168 , -60 , 320 , 0 , 0 , 0 , 0 ],"
-            + "AUTHORITY[\" EPSG \" , \" 6807 \"]],PRIMEM[\" Paris \", 2.33722917 ,"
-            + "AUTHORITY[\" EPSG \" , \" 8903 \"]],UNIT[\" grad \", 0.01570796326794897 ,"
-            + "AUTHORITY[\" EPSG \" , \" 9105 \"]],AUTHORITY[\" EPSG \",\" 4807 \"]],UNIT[\" metre \" , 1 , "
-            + "AUTHORITY[\" EPSG \" , \" 9001 \"]],PROJECTION[\" Lambert_Conformal_Conic_1SP \"],"
-            + "PARAMETER[\" latitude_of_origin \" , 52 ],PARAMETER[\" central_meridian \" , 0 ],"
-            + "PARAMETER[\" scale_factor \" , 0.99987742 ],PARAMETER[\" false_easting \" , 600000 ],"
-            + "PARAMETER[\" false_northing \" , 2200000 ],"
-            + "AUTHORITY[\" EPSG \" , \" 27572 \"],AXIS[\" X \" , EAST ],AXIS[\" Y \" , NORTH ]] ";
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionsTransformation.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionsTransformation.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionsTransformation.java
deleted file mode 100644
index 118e83a..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/projections/ProjectionsTransformation.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package org.qi4j.library.spatial.projections;
-
-import org.cts.IllegalCoordinateException;
-import org.cts.crs.CoordinateReferenceSystem;
-import org.cts.crs.GeodeticCRS;
-import org.cts.op.CoordinateOperation;
-import org.cts.op.CoordinateOperationFactory;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.library.spatial.v2.projections.ProjectionsRegistry;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created by jj on 17.11.14.
- */
-public class ProjectionsTransformation {
-
-    public  TGeometry transform(TGeometry geometry, CoordinateReferenceSystem targetCRS) throws IllegalCoordinateException, Exception
-    {
-        /**
-        System.out.println("Transforming");
-
-        CoordinateReferenceSystem sourceCRS = new ProjectionsRegistry().getCRS(geometry.getSRIDWkt());
-
-        System.out.println(sourceCRS);
-
-        TPoint point = (TPoint)geometry;
-
-        double[] pointSource = transform((GeodeticCRS) sourceCRS, (GeodeticCRS) targetCRS, point.source());
-
-        System.out.println("transformed points : " + Arrays.toString(pointSource));
-
-        // TPoint point = TPOINT(module).x(1d).y(2d).z(3d).geometry();
-
-        point.x(pointSource[0]).y(pointSource[1]);
-
-
-        // point.X(pointSource[0]);
-        // point.Y(pointSource[1]);
-        point.setSRID(targetCRS.getAuthorityName(), Integer.parseInt(targetCRS.getAuthorityKey()));
-
-
-
-        // CoordinateReferenceSystem sourceCRS = SpatialRefSysManager.getCRS(point.getSRIDWkt());
-
-      //  point.coordinates().
-
-        return point;
-         */
-        return null;
-    }
-
-// http://code.google.com/p/cloning
-    public  TPoint transform(TPoint point, CoordinateReferenceSystem targetCRS) throws IllegalCoordinateException, Exception
-    {
-        /**
-        System.out.println("Transforming");
-
-        CoordinateReferenceSystem sourceCRS = new ProjectionsRegistry().getCRS(point.getSRIDWkt());
-
-        System.out.println(sourceCRS);
-
-
-
-        double[] pointSource = transform((GeodeticCRS) sourceCRS, (GeodeticCRS) targetCRS, point.source());
-
-        System.out.println("transformed points : " + Arrays.toString(pointSource));
-
-        point.x(pointSource[0]).y(pointSource[1]);
-
-        // point.X(pointSource[0]);
-        // point.Y(pointSource[1]);
-
-
-        // CoordinateReferenceSystem sourceCRS = SpatialRefSysManager.getCRS(point.getSRIDWkt());
-
-        //  point.coordinates().
-
-        return point;
-         */
-        return null;
-    }
-
-//    public TGeometry transform(TGeometry geometry, CoordinateReferenceSystem targetCRS) throws IllegalCoordinateException {
-/**
-        if (sourceCRS.equals(targetCRS))
-            return geometry;
-
-        List<CoordinateOperation> ops;
-        ops = CoordinateOperationFactory.createCoordinateOperations(sourceCRS, targetCRS);
-        if (!ops.isEmpty()) {
-            // if (verbose) {
-            System.out.println(ops.get(0));
-            // }
-            // return ops.get(0).transform(new double[]{pointSource[0], pointSource[1], pointSource[2]});
-            return null;
-        } else {
-            // return new double[]{0.0d, 0.0d, 0.0d};
-            return null;
-        }
- */
-  //      return null;
-  //  }
-
-    public double[] transform(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, double[] pointSource) throws IllegalCoordinateException {
-
-        if (sourceCRS.equals(targetCRS))
-            return pointSource;
-
-        List<CoordinateOperation> ops;
-        ops = CoordinateOperationFactory.createCoordinateOperations(sourceCRS, targetCRS);
-        if (!ops.isEmpty()) {
-            if (true) {
-            System.out.println(ops.get(0));
-             }
-            return ops.get(0).transform(new double[]{pointSource[0], pointSource[1], pointSource[2]});
-        } else {
-            return new double[]{0.0d, 0.0d, 0.0d};
-        }
-    }
-
-/**
-    public double[] transform(String csNameSrc, String csNameDest, double[] pointSource) throws IllegalCoordinateException, CRSException {
-
-        CoordinateReferenceSystem inputCRS = cRSFactory.getCRS(csNameSrc);
-        CoordinateReferenceSystem outputCRS = cRSFactory.getCRS(csNameDest);
-
-        return transform((GeodeticCRS) inputCRS, (GeodeticCRS) outputCRS, pointSource);
-    }
-   */
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/GeoJsonTransformator.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/GeoJsonTransformator.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/GeoJsonTransformator.java
deleted file mode 100644
index 47e094b..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/GeoJsonTransformator.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.qi4j.library.spatial.transformations;
-
-
-import java.util.*;
-
-/**
- * Created by jakes on 2/23/14.
- */
-public class GeoJsonTransformator {
-
-    private static GeoJsonTransformator  self;
-
-
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/GeoJSONParserV2.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/GeoJSONParserV2.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/GeoJSONParserV2.java
deleted file mode 100644
index 86f2310..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/GeoJSONParserV2.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.qi4j.library.spatial.transformations.geojson;
-
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.transformations.geojson.internal.ParserBuilder;
-import org.qi4j.library.spatial.transformations.geojson.internal.TransformationBuilder;
-
-import java.io.InputStream;
-
-/**
- * Created by jj on 28.11.14.
- */
-public class GeoJSONParserV2 {
-
-    public static final ParserBuilder source(InputStream source)
-    {
-        return new ParserBuilder(source);
-    }
-
-    public static final TransformationBuilder transform(Module module)
-    {
-        return new TransformationBuilder(module);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/ParserBuilder.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/ParserBuilder.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/ParserBuilder.java
deleted file mode 100644
index aaf5da4..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/ParserBuilder.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.qi4j.library.spatial.transformations.geojson.internal;
-
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.geojson.Feature;
-import org.geojson.FeatureCollection;
-
-import java.io.File;
-import java.io.InputStream;
-import java.util.Iterator;
-import java.util.List;
-
-public class ParserBuilder
-{
-
-    private InputStream source;
-    private FeatureCollection featureCollection;
-    private Iterator<Feature> features;
-
-    public ParserBuilder(InputStream source)
-    {
-        this.source = source;
-    }
-
-/**
-    public void parse( Class valueType) throws Exception
-    {
-        FeatureCollection featureCollection =
-                new ObjectMapper().readValue(source, FeatureCollection);
-    }
-*/
-
-    public ParserBuilder parse() throws Exception
-    {
-        // parse(FeatureCollection.class);
-        // FeatureCollection featureCollection =
-
-
-
-        this.featureCollection = new ObjectMapper().readValue(source, FeatureCollection.class);
-
-        this.features = featureCollection.getFeatures().iterator();
-
-        return this;
-    }
-
-    public JsonParser  build() throws Exception
-    {
-        ObjectMapper mapper = new ObjectMapper();
-        JsonFactory jsonFactory = mapper.getJsonFactory();
-        JsonParser jp = jsonFactory.createJsonParser(source);
-
-        return jp;
-        /**
-        JsonFactory f = new JsonFactory();
-        JsonParser jp  = f.createParser(source);
-        // JsonParser jp = f.createJsonParser(new File("user.json"));
-
-        return jp;
-        */
-
-    }
-
-
-
-    public List<Feature>  getValues()
-    {
-        return this.featureCollection.getFeatures();
-    }
-
-
-
-
-
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
deleted file mode 100644
index ab7f559..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/transformations/geojson/internal/TransformationBuilder.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package org.qi4j.library.spatial.transformations.geojson.internal;
-
-import org.geojson.*;
-import org.qi4j.api.geometry.TLineString;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.structure.Module;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-
-/**
- * Created by jj on 28.11.14.
- */
-public class TransformationBuilder {
-
-    Module module;
-
-    private GeoJsonObject geojson;
-
-   public TransformationBuilder(Module module)
-    {
-        this.module = module;
-    }
-
-    public TransformationBuilder from(GeoJsonObject geojson )
-    {
-        this.geojson = geojson;
-        return this;
-    }
-
-    public TGeometry transform()
-    {
-
-        if (geojson instanceof Feature)
-        {
-            Feature feature = (Feature)geojson;
-            return TFeature(module).of(new TransformationBuilder(module).from(feature.getGeometry()).transform()).geometry();
-        }
-
-        else if (geojson instanceof Point)
-        {
-            Point point = (Point)geojson;
-
-            return TPoint(module)
-                    .x(point.getCoordinates().getLatitude())
-                    .y(point.getCoordinates().getLongitude())
-                    .z(point.getCoordinates().getAltitude())
-                    .geometry();
-
-
-
-        } else if (geojson  instanceof LineString)
-        {
-            // tFeature = Geometry.asFeature(
-            //        Geometry.asLinearString(toPoints(((LineString)feature.getGeometry()).getCoordinates()).toArray(new TPoint[0]))
-            //);
-
-            LineString lineString = (LineString)geojson;
-
-            TLineString tLineString = TLineString(module).of().geometry();
-            for (LngLatAlt xyz : lineString.getCoordinates() ) {
-                tLineString = TLineString(module).of(
-                        TPoint(module)
-                                .x(xyz.getLatitude())
-                                .y(xyz.getLongitude())
-                                .z(xyz.getAltitude())
-                                .geometry()
-                ).geometry();
-            }
-
-            return tLineString;
-
-        }
-        else if (geojson instanceof Polygon)
-        {
-
-            TPolygon tPolygon = null;
-
-            TLinearRing ring = getRing(((Polygon) geojson).getExteriorRing());
-
-            if (ring.isValid())
-                tPolygon = TPolygon(module).shell(ring).geometry();
-            else
-             throw  new RuntimeException("Polygon shell not valid");
-
-            for (int i = 0; i < ((Polygon)geojson).getInteriorRings().size(); i++)
-            {
-                tPolygon.withHoles(getRing(((Polygon) geojson).getInteriorRings().get(i)));
-            }
-
-            return tPolygon;
-
-        }
-        else if (geojson instanceof MultiPolygon)
-        {
-            //  ((MultiPolygon)feature.getGeometry()).g getCoordinates()
-            ListIterator<List<List<LngLatAlt>>> a = ((MultiPolygon)geojson).getCoordinates().listIterator();
-
-            while(a.hasNext()) {
-                //
-                a.next();
-            }
-        }
-        else {
-            System.out.println(geojson.getClass() + " missing");
-        }
-/**
-        if (tFeature != null) {
-            tFeature.id().set(feature.getId());
-            tFeature.properties().set(feature.getProperties());
-
-            //  System.out.println(count);
-
-            // System.out.println(tFeature.toString());
-        }
-   */
-        return null;
-
-    }
-
-    private TLinearRing getRing(List<LngLatAlt> coordinates)
-    {
-
-        TLinearRing tLinearRing = TLinearRing(module).of().geometry();
-        for (LngLatAlt xyz :coordinates ) {
-            tLinearRing.yx(xyz.getLatitude(), xyz.getLongitude());
-        }
-
-        if (!tLinearRing.isClosed())
-        {
-            tLinearRing.of(tLinearRing.getStartPoint()); // hack here - we are closing the ring
-        }
-
-        return tLinearRing;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
deleted file mode 100644
index f427128..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/assembly/TGeometryAssembler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package org.qi4j.library.spatial.v2.assembly;
-
-import org.cts.crs.CRSException;
-import org.cts.crs.CoordinateReferenceSystem;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TCircle;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.bootstrap.Assemblers;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.bootstrap.ServiceDeclaration;
-import org.qi4j.entitystore.memory.MemoryEntityStoreService;
-import org.qi4j.library.spatial.v2.projections.ProjectionsRegistry;
-import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-
-/**
- * Created by jj on 21.12.14.
- */
-public class TGeometryAssembler
-        extends Assemblers.VisibilityIdentity<TGeometryAssembler>
-{
-    private static final String CRS_EPSG_4326   = "EPSG:4326";
-    private static String DEFAULT_CRS           = CRS_EPSG_4326;
-
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        // internal values
-        module.values(Coordinate.class, TLinearRing.class, TCircle.class, TGeometry.class);
-        // API values
-        module.values(
-                TCRS.class,
-                TPoint.class,
-                TMultiPoint.class,
-                TLineString.class,
-                TMultiLineString.class,
-                TPolygon.class,
-                TMultiPolygon.class,
-                TFeature.class,
-                TFeatureCollection.class);
-
-        TGeometry tGeometry = module.forMixin(TGeometry.class).declareDefaults();
-        tGeometry.CRS().set(DEFAULT_CRS);
-    }
-
-    public TGeometryAssembler withCRS(String crs) throws AssemblyException
-    {
-        try
-        {
-            CoordinateReferenceSystem ref = new ProjectionsRegistry().getReferenceSystem(crs);
-            if (ref == null || ref.getCoordinateSystem() == null)
-            {
-                throw new AssemblyException("Projection CRS " + crs + " invalid.");
-            }
-
-        } catch(CRSException _ex)
-        {
-            throw new AssemblyException("Projection CRS " + crs + " invalid.", _ex);
-        }
-
-        DEFAULT_CRS = crs;
-        return this;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/TConversions.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/TConversions.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/TConversions.java
deleted file mode 100644
index ee29554..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/TConversions.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions;
-
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.v2.conversions.from.FromHelper;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class TConversions {
-
-    public static FromHelper Convert(Module module)
-    {
-        return new FromHelper(module);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/FromHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/FromHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/FromHelper.java
deleted file mode 100644
index 04ecba8..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/FromHelper.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions.from;
-
-import org.geojson.GeoJsonObject;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.v2.conversions.to.ToHelper;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class FromHelper {
-
-    private Module module;
-
-    public FromHelper(Module module)
-    {
-        this.module = module;
-    }
-
-    public ToHelper from(TGeometry tGeometry)
-    {
-        return new ToHelper(module, new TGeometryFromConverter(module).convert(tGeometry));
-    }
-
-    public ToHelper from(GeoJsonObject geoJsonObject)
-    {
-        return new ToHelper(module, new GeoJsonFromConverter(module).convert(geoJsonObject));
-
-    }
-
-    public ToHelper from(String wkt) throws Exception
-    {
-        return new ToHelper(module, new WKTFromConverter(module).convert(wkt, null));
-    }
-
-    public ToHelper from(String wkt, String crs) throws Exception
-    {
-        return new ToHelper(module, new WKTFromConverter(module).convert(wkt, crs));
-    }
-
-    private FromHelper() {}
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
deleted file mode 100644
index 217d80e..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/GeoJsonFromConverter.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions.from;
-
-import org.geojson.*;
-import org.qi4j.api.geometry.TLineString;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.structure.Module;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import static org.qi4j.api.geometry.TGeometryFactory.*;
-import static org.qi4j.api.geometry.TGeometryFactory.TLinearRing;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class GeoJsonFromConverter {
-
-    private Module module;
-
-    public GeoJsonFromConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert(GeoJsonObject geojson)
-
-    {
-        return transform(geojson);
-    }
-
-
-    private TGeometry transform(GeoJsonObject geojson)
-    {
-
-        if (geojson instanceof Feature)
-        {
-            Feature feature = (Feature)geojson;
-            return TFeature(module).of(new GeoJsonFromConverter(module).transform(feature.getGeometry())).geometry();
-        }
-
-        else if (geojson instanceof Point) {
-            Point point = (Point) geojson;
-
-            return TPoint(module)
-                    .x(point.getCoordinates().getLatitude())
-                    .y(point.getCoordinates().getLongitude())
-                    .z(point.getCoordinates().getAltitude())
-                    .geometry();
-        }
-     else if (geojson  instanceof LineString)
-        {
-            // tFeature = Geometry.asFeature(
-            //        Geometry.asLinearString(toPoints(((LineString)feature.getGeometry()).getCoordinates()).toArray(new TPoint[0]))
-            //);
-
-            LineString lineString = (LineString)geojson;
-
-            TLineString tLineString = TLineString(module).of().geometry();
-
-            for (LngLatAlt xyz : lineString.getCoordinates() ) {
-                tLineString.of(
-                        TPoint(module)
-                                .x(xyz.getLatitude())
-                                .y(xyz.getLongitude())
-                                .z(xyz.getAltitude())
-                                .geometry()
-                );
-            }
-
-            return tLineString;
-
-        }
-        /**
-        else if (geojson instanceof MultiPoint)
-        {
-            MultiPoint multiPoint = (MultiPoint)geojson;
-            TMultiPoint tMultiPoint = TMULTIPOINT(module).of().geometry();
-
-            for (LngLatAlt xyz : multiPoint.getCoordinates() ) {
-                tMultiPoint.of(
-                        TPOINT(module)
-                                .x(xyz.getLatitude())
-                                .y(xyz.getLongitude())
-                                .z(xyz.getAltitude())
-                                .geometry()
-                );
-
-            }
-
-            return tMultiPoint;
-
-        }
-         */
-        else if (geojson instanceof Polygon)
-        {
-
-            TPolygon tPolygon = null;
-
-            TLinearRing ring = getRing(((Polygon) geojson).getExteriorRing());
-
-            if (ring.isValid())
-                tPolygon = TPolygon(module).shell(ring).geometry();
-            else
-                throw  new RuntimeException("Polygon shell not valid");
-
-            for (int i = 0; i < ((Polygon)geojson).getInteriorRings().size(); i++)
-            {
-                tPolygon.withHoles(getRing(((Polygon) geojson).getInteriorRings().get(i)));
-            }
-
-            return tPolygon;
-
-        }
-        else if (geojson instanceof MultiPolygon)
-        {
-            //  ((MultiPolygon)feature.getGeometry()).g getCoordinates()
-            ListIterator<List<List<LngLatAlt>>> a = ((MultiPolygon)geojson).getCoordinates().listIterator();
-
-            while(a.hasNext()) {
-                //
-                a.next();
-            }
-        }
-        else {
-            System.out.println(geojson.getClass() + " missing");
-        }
-/**
- if (tFeature != null) {
- tFeature.id().set(feature.getId());
- tFeature.properties().set(feature.getProperties());
-
- //  System.out.println(count);
-
- // System.out.println(tFeature.toString());
- }
- */
-        return null;
-
-    }
-
-    private TLinearRing getRing(List<LngLatAlt> coordinates)
-    {
-
-        TLinearRing tLinearRing = TLinearRing(module).of().geometry();
-        for (LngLatAlt xyz :coordinates ) {
-            tLinearRing.yx(xyz.getLatitude(), xyz.getLongitude());
-        }
-
-        if (!tLinearRing.isClosed())
-        {
-            tLinearRing.of(tLinearRing.getStartPoint()); // hack here - we are closing the ring
-        }
-
-        return tLinearRing;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/TGeometryFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/TGeometryFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/TGeometryFromConverter.java
deleted file mode 100644
index 0f603d9..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/TGeometryFromConverter.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions.from;
-
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class TGeometryFromConverter {
-
-    private Module module;
-
-    public TGeometryFromConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert(TGeometry tGeometry)
-    {
-        return tGeometry;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/WKTFromConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/WKTFromConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/WKTFromConverter.java
deleted file mode 100644
index 4de8e1c..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/from/WKTFromConverter.java
+++ /dev/null
@@ -1,210 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions.from;
-
-import com.spatial4j.core.context.SpatialContext;
-import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
-import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
-import com.spatial4j.core.io.jts.JtsWktShapeParser;
-import com.spatial4j.core.shape.Circle;
-import com.spatial4j.core.shape.Point;
-import com.spatial4j.core.shape.Shape;
-import com.spatial4j.core.shape.jts.JtsGeometry;
-import com.spatial4j.core.shape.jts.JtsPoint;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.MultiPolygon;
-import com.vividsolutions.jts.geom.Polygon;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.structure.Module;
-import org.qi4j.api.value.ValueBuilder;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class WKTFromConverter {
-
-
-    final SpatialContext ctx;
-    {
-        JtsSpatialContextFactory factory = new JtsSpatialContextFactory();
-        factory.srid = 4326;
-        factory.datelineRule = JtsWktShapeParser.DatelineRule.ccwRect;
-        factory.wktShapeParserClass = JtsWKTReaderShapeParser.class;
-        ctx = factory.newSpatialContext();
-    }
-
-
-
-    private Module module;
-
-    public WKTFromConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert(String wkt, String crs) throws ParseException
-    {
-
-        Shape sNoDL = ctx.readShapeFromWkt(wkt);
-
-
-    if (!sNoDL.hasArea()) {
-        System.out.println("Its a JtsGeometry " + ((JtsPoint) sNoDL).getGeom().getGeometryType());
-        return buildPoint(module,sNoDL);
-    } else {
-        System.out.println("Its a JtsGeometry " + ((JtsGeometry) sNoDL).getGeom().getGeometryType());
-
-        Geometry jtsGeometry = ((JtsGeometry) sNoDL).getGeom();
-
-        if (jtsGeometry instanceof Polygon) {
-            System.out.println("Polygon");
-            return buildPolygon(module,sNoDL);
-        }
-        else if (jtsGeometry instanceof MultiPolygon) {
-            System.out.println("MultiPolygon");
-        }
-        else if (jtsGeometry instanceof LineString) {
-            System.out.println("LineString");
-        }
-
-
-
-
-    }
-
-
-
-    if (sNoDL instanceof Point)
-    {
-
-        // ctx.makeCircle(0,0,0).getBoundingBox().
-        // System.out.println("Shape is point ");
-
-        ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
-
-        builder.prototype().x(((Point) sNoDL).getX()).y(((Point) sNoDL).getY());
-/**
- builder.prototype().of
- (
- module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getX()),  //x
- module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getY())   //y
- );
- */
-        return builder.newInstance();
-
-
-//          ValueBuilder<TGeomPoint> builder = module.newValueBuilder( TGeomPoint.class );
-//          TGeomPoint proto = builder.prototype();
-//          List<Double> coordinates = new ArrayList<Double>();
-////
-//          Double lat =  3.138722;  // 3.138722;// Double.parseDouble(query.nextToken());
-//          Double lon =  101.386849; // Double.parseDouble(query.nextToken());
-////
-////
-//          coordinates.add(3.138722);
-//          coordinates.add(101.386849);
-//          proto.coordinates().set(coordinates);
-//
-//          return builder.newInstance();
-
-    } else
-
-            if (sNoDL instanceof Circle) {
-
-    } else
-    {
-        System.out.println("Its a shape");
-        if (sNoDL.hasArea() ) System.out.println("Shape With area..");
-
-        if (sNoDL instanceof JtsGeometry) {
-
-            System.out.println("Its a JtsGeometry " + ((JtsGeometry) sNoDL).getGeom().getGeometryType());
-            // ((JtsGeometry) sNoDL).getGeom()
-        }
-
-    }
-
-    System.out.println("sNoDL " + sNoDL);
-
-    return null;
-}
-
-
-    private TPoint buildPoint(Module module, Shape sNoDL) {
-        ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
-
-
-        builder.prototype().x(((Point) sNoDL).getX()).y(((Point) sNoDL).getY());
-        /**
-         builder.prototype().of
-         (
-         module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getX()),  //x
-         module.newValueBuilder(Coordinate.class).prototype().of(((Point) sNoDL).getY())   //y
-         );
-         */
-
-        return builder.newInstance();
-    }
-
-    private TPolygon buildPolygon(Module module, Shape sNoDL) {
-
-        Geometry jtsGeometry = ((JtsGeometry) sNoDL).getGeom();
-        Polygon jtsPolygon = (Polygon)jtsGeometry;
-
-        // Polygon jtsPolygon = ((JtsGeometry) sNoDL).getGeom();
-
-        // Polygon jtsPolygon = (Polygon)sNoDL;
-
-        System.out.println("Get Coordinates " + jtsPolygon.getExteriorRing().getCoordinates() );
-
-        com.vividsolutions.jts.geom.Coordinate[] coordinates = jtsPolygon.getExteriorRing().getCoordinates();
-
-        ValueBuilder<TPolygon> polygonBuilder = module.newValueBuilder(TPolygon.class);
-        ValueBuilder<TLinearRing> tLinearRingBuilder  = module.newValueBuilder(TLinearRing.class);
-
-        List<TPoint> points = new ArrayList<>();
-        for (int i = 0; i < coordinates.length; i++) {
-/**
- TPoint point = module.newValueBuilder(TPoint.class).prototype().of
- (
- module.newValueBuilder(Coordinate.class).prototype().of( coordinates[i].x),  //x
- module.newValueBuilder(Coordinate.class).prototype().of( coordinates[i].y)   //y
- );*/
-            points.add
-                    (
-                            TPoint(module)
-
-                                    .x(coordinates[i].x)
-                                    .y(coordinates[i].y).geometry()
-                    );
-        }
-        tLinearRingBuilder.prototype().of(points);
-
-        // tLinearRingBuilder.prototype().of(points);
-        // tLinearRingBuilder.prototype().type()
-
-        // TLinearRing tLinearRing = tLinearRingBuilder.newInstance();
-        // System.out.println("tLinearRing .." + tLinearRing);
-
-
-        ValueBuilder<TPolygon> builder = module.newValueBuilder(TPolygon.class);
-
-        builder.prototype().of
-                (
-                        // tLinearRingBuilder.newInstance().of(points)
-                        tLinearRingBuilder.newInstance()
-                );
-
-        return builder.newInstance();
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/GeoJsonToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/GeoJsonToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/GeoJsonToConverter.java
deleted file mode 100644
index dce34a9..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/GeoJsonToConverter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions.to;
-
-import org.geojson.GeoJsonObject;
-import org.geojson.Point;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class GeoJsonToConverter<T> {
-
-
-    private Module module;
-
-    public GeoJsonToConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public GeoJsonObject convert(TGeometry intemediate)
-    {
-        return transform(intemediate);
-    }
-
-    private GeoJsonObject transform(TGeometry intemediate)
-    {
-
-        switch(intemediate.getType())
-        {
-            case POINT              : return buildPoint((TPoint)intemediate);
-            case MULTIPOINT         : return null;
-            case LINESTRING         : return null;
-            case MULTILINESTRING    : return null;
-            case POLYGON            : return null;
-            case MULTIPOLYGON       : return null;
-            case FEATURE            : return null;
-            case FEATURECOLLECTION  : return null;
-            default : throw new RuntimeException("Unknown TGeometry Type.");
-        }
-
-    }
-
-    private Point buildPoint(TPoint point)
-    {
-        System.out.println("point.x() " + point.x());
-        System.out.println("point.y() " + point.y());
-        return new Point(point.x(), point.y());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/Spatial4JToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/Spatial4JToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/Spatial4JToConverter.java
deleted file mode 100644
index d550638..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/Spatial4JToConverter.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions.to;
-
-import com.spatial4j.core.context.SpatialContext;
-import com.spatial4j.core.context.jts.JtsSpatialContext;
-import com.spatial4j.core.context.jts.JtsSpatialContextFactory;
-import com.spatial4j.core.io.jts.JtsWKTReaderShapeParser;
-import com.spatial4j.core.io.jts.JtsWktShapeParser;
-import com.spatial4j.core.shape.Circle;
-import com.spatial4j.core.shape.Shape;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.util.GeometricShapeFactory;
-import org.geojson.GeoJsonObject;
-import org.geojson.Point;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.internal.TCircle;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class Spatial4JToConverter<T> {
-
-    // http://code.google.com/p/shape-metrics/source/browse/trunk/src/main/java/edu/psu/geovista/ian/utils/Circle.java?r=2
-
-    final SpatialContext ctx;
-    {
-        JtsSpatialContextFactory factory = new JtsSpatialContextFactory();
-        factory.srid = 4326;
-        factory.datelineRule = JtsWktShapeParser.DatelineRule.ccwRect;
-        factory.wktShapeParserClass = JtsWKTReaderShapeParser.class;
-        ctx = factory.newSpatialContext();
-    }
-
-    public static final double DATELINE = 180;
-    public static final JtsSpatialContext SPATIAL_CONTEXT = JtsSpatialContext.GEO;
-    public static final GeometryFactory FACTORY = SPATIAL_CONTEXT.getGeometryFactory();
-    public static final GeometricShapeFactory SHAPE_FACTORY = new GeometricShapeFactory();
-
-    protected final boolean multiPolygonMayOverlap = false;
-    protected final boolean autoValidateJtsGeometry = true;
-    protected final boolean autoIndexJtsGeometry = true;
-
-    protected final boolean wrapdateline = SPATIAL_CONTEXT.isGeo();
-
-
-    private Module module;
-
-    public Spatial4JToConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public GeoJsonObject convert(TGeometry intemediate)
-    {
-        // return transform(intemediate);
-        return null;
-    }
-
-    private Shape transform(TGeometry intermediate)
-    {
-
-        switch(intermediate.getType())
-        {
-            case POINT              : return null; // return newPoint((TPoint) intemediate);
-            case MULTIPOINT         : return null;
-            case LINESTRING         : return null;
-            case MULTILINESTRING    : return null;
-            case POLYGON            : return null;
-            case MULTIPOLYGON       : return null;
-            case FEATURE            : return null;
-            case FEATURECOLLECTION  : return null;
-        }
-
-        if (intermediate instanceof TCircle)
-        {
-            return newCircle((TCircle)intermediate);
-        }
-        else
-            return null;
-
-
-    }
-
-    private Point newPoint(TPoint point)
-    {
-        // SPATIAL_CONTEXT.makeCircle(0,0,0).
-
-        // SHAPE_FACTORY.set
-
-        System.out.println("point.x() " + point.x());
-        System.out.println("point.y() " + point.y());
-        return new Point(point.x(), point.y());
-    }
-
-    private Circle newCircle(TCircle circle)
-    {
-        return ctx.makeCircle(circle.getCentre().x(), circle.getCentre().y(), circle.radius().get());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/TGeometryToConverter.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/TGeometryToConverter.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/TGeometryToConverter.java
deleted file mode 100644
index d1e4fd1..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/TGeometryToConverter.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions.to;
-
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class TGeometryToConverter<T extends TGeometry> {
-
-    private Module module;
-
-    public TGeometryToConverter(Module module)
-    {
-        this.module = module;
-    }
-
-    public TGeometry convert (TGeometry tGeometry, String CRS)
-    {
-        return tGeometry;
-    }
-
-    public TGeometry convert(TGeometry tGeometry)
-    {
-        return convert(tGeometry, tGeometry.getCRS());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/ToHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/ToHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/ToHelper.java
deleted file mode 100644
index 66b7987..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/conversions/to/ToHelper.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.qi4j.library.spatial.v2.conversions.to;
-
-import org.geojson.GeoJsonObject;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-
-import static org.qi4j.library.spatial.v2.transformations.TTransformations.Transform;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class ToHelper<T extends TGeometry> {
-
-    private Module module;
-    private TGeometry intermediate;
-
-    public ToHelper(Module module, TGeometry intermediate)
-    {
-        this.module = module;
-        this.intermediate = intermediate;
-    }
-
-    public TGeometry toTGeometry()
-    {
-        return new TGeometryToConverter(module).convert(intermediate);
-    }
-
-    public TGeometry toTGeometry(String CRS) throws Exception
-    {
-        if (!intermediate.getCRS().equalsIgnoreCase(CRS))
-                Transform(module).from(intermediate).to(CRS) ;
-
-        return new TGeometryToConverter(module).convert(intermediate, CRS);
-    }
-
-
-
-    public GeoJsonObject toGeoJson()
-    {
-        return new GeoJsonToConverter(module).convert(intermediate);
-    }
-
-    private ToHelper() {}
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/projections/ProjectionsRegistry.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/projections/ProjectionsRegistry.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/projections/ProjectionsRegistry.java
deleted file mode 100644
index ccce79f..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/projections/ProjectionsRegistry.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.qi4j.library.spatial.v2.projections;
-
-import org.cts.CRSFactory;
-import org.cts.crs.CRSException;
-import org.cts.crs.CoordinateReferenceSystem;
-import org.cts.registry.*;
-
-import java.util.Set;
-
-/**
- * Created by jj on 17.11.14.
- */
-public class ProjectionsRegistry {
-
-    protected static CRSFactory cRSFactory = new CRSFactory();
-
-
-    static {
-        RegistryManager registryManager = cRSFactory.getRegistryManager();
-        registryManager.addRegistry(new IGNFRegistry());
-        registryManager.addRegistry(new EPSGRegistry());
-        registryManager.addRegistry(new ESRIRegistry());
-        registryManager.addRegistry(new Nad27Registry());
-        registryManager.addRegistry(new Nad83Registry());
-        registryManager.addRegistry(new worldRegistry());
-    }
-
-
-    public Set<String> getSupportedSRID(String registryName) throws RegistryException
-    {
-        // cRSFactory.
-
-        return cRSFactory.getSupportedCodes(registryName);
-    }
-
-    // EPSG, IGNF, ESRI
-    public Set<String> getSupportedRegistryCodes(String registryName) throws RegistryException {
-        return cRSFactory.getRegistryManager().getRegistry(registryName).getSupportedCodes();
-    }
-
-    public String[] dumpRegistries() {
-        return cRSFactory.getRegistryManager().getRegistryNames();
-    }
-
-    public CoordinateReferenceSystem getCRS(String wkt)  {
-        try {
-            return cRSFactory.getCRS(wkt);
-        } catch(CRSException _ex)
-        {
-            _ex.printStackTrace();
-            return null;
-        }
-    }
-
-
-        public CoordinateReferenceSystem getReferenceSystem(String csName) throws CRSException
-    {
-        return cRSFactory.getCRS(csName);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/projections/SpatialRefSysManager.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/projections/SpatialRefSysManager.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/projections/SpatialRefSysManager.java
deleted file mode 100644
index 203a353..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/projections/SpatialRefSysManager.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.qi4j.library.spatial.v2.projections;
-
-// https://joinup.ec.europa.eu/svn/gearscape/versions/0.1/platform/gdms/src/test/java/org/gdms/source/crs/TransformTest.java
-
-import org.cts.crs.CRSException;
-import org.cts.crs.CoordinateReferenceSystem;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.library.spatial.projections.ProjectionsTransformation;
-
-/**
- * Created by jakes on 2/20/14.
- */
-public class SpatialRefSysManager {
-
-    // getWKT(srid)
-
-
-    static public CoordinateReferenceSystem getCRS(String wkt) throws CRSException
-    {
-       return new ProjectionsRegistry().getCRS(wkt);
-    }
-
-    public void getTransformation(int sourceSRID, int targetSRID) throws Exception
-    {
-
-    }
-
-    public void getTransformation(String sourceSRCodeAndAuthority, String targetSRAuthorityAndCode) throws Exception
-    {
-
-    }
-
-    static public TGeometry transform(TGeometry geometry, String targetSRAuthorityAndCode) throws Exception
-    {
-       return new ProjectionsTransformation().transform(geometry, getCRS(targetSRAuthorityAndCode));
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/FromHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/FromHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/FromHelper.java
deleted file mode 100644
index cb9bafb..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/FromHelper.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.qi4j.library.spatial.v2.transformations;
-
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.v2.conversions.from.TGeometryFromConverter;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class FromHelper {
-
-    private Module module;
-
-    public FromHelper(Module module)
-    {
-        this.module = module;
-    }
-
-    private FromHelper() {}
-
-    public ToHelper from(TGeometry tGeometry)
-    {
-        return new ToHelper(module, new TGeometryFromConverter(module).convert(tGeometry));
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/TTransformations.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/TTransformations.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/TTransformations.java
deleted file mode 100644
index a8106fd..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/TTransformations.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.qi4j.library.spatial.v2.transformations;
-
-import org.qi4j.api.structure.Module;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class TTransformations {
-
-    public static FromHelper Transform(Module module)
-    {
-        return new FromHelper(module);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/ToHelper.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/ToHelper.java b/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/ToHelper.java
deleted file mode 100644
index eab8834..0000000
--- a/libraries/spatial/src/main/java/org/qi4j/library/spatial/v2/transformations/ToHelper.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package org.qi4j.library.spatial.v2.transformations;
-
-import org.cts.IllegalCoordinateException;
-import org.cts.crs.GeodeticCRS;
-import org.cts.op.CoordinateOperation;
-import org.cts.op.CoordinateOperationFactory;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.structure.Module;
-import org.qi4j.library.spatial.v2.projections.SpatialRefSysManager;
-
-import java.util.List;
-
-/**
- * Created by jj on 04.12.14.
- */
-public class ToHelper {
-
-    private Module module;
-    private TGeometry intermediate;
-    private double maxPrecisionMeanConversionError = Double.MAX_VALUE;
-
-    public ToHelper(Module module, TGeometry intermediate)
-    {
-        this.module = module;
-        this.intermediate = intermediate;
-    }
-
-    private ToHelper() {}
-
-
-    public  void to(String CRS, double maxPrecisionMeanConversionError) throws RuntimeException
-    {
-        this.maxPrecisionMeanConversionError = maxPrecisionMeanConversionError;
-        to(CRS);
-    }
-
-    public  void to(String CRS) throws RuntimeException
-    {
-    try {
-        GeodeticCRS sourceCRS = (GeodeticCRS) SpatialRefSysManager.getCRS(intermediate.getCRS());
-        GeodeticCRS targetCRS = (GeodeticCRS) SpatialRefSysManager.getCRS(CRS);
-
-        if (sourceCRS.equals(targetCRS)) {
-            return;
-        }
-        switch (intermediate.getType()) {
-            case POINT:
-                transform(sourceCRS, targetCRS, new Coordinate[]{((TPoint) intermediate).getCoordinate()});
-                break;
-            case MULTIPOINT:
-                transform(sourceCRS, targetCRS, ((TMultiPoint) intermediate).getCoordinates());
-                break;
-            case LINESTRING:
-                transform(sourceCRS, targetCRS, ((TLineString) intermediate).getCoordinates());
-                break;
-            // case MULTILINESTRING    : transform(sourceCRS, targetCRS, (() intermediate).getCoordinates()); break; break;
-            case POLYGON:
-                transform(sourceCRS, targetCRS, ((TPolygon) intermediate).getCoordinates());
-                break;
-            case MULTIPOLYGON:
-                transform(sourceCRS, targetCRS, ((TMultiPolygon) intermediate).getCoordinates());
-                break;
-            case FEATURE:
-                transform(sourceCRS, targetCRS, ((TFeature) intermediate).getCoordinates());
-                break;
-            case FEATURECOLLECTION:
-                transform(sourceCRS, targetCRS, ((TFeatureCollection) intermediate).getCoordinates());
-                break;
-        }
-
-        // JJ TODO - Set nested TGeometries CRSs as well
-        intermediate.setCRS(targetCRS.getCode());
-    } catch(Exception _ex)
-    {
-        throw new RuntimeException(_ex);
-    }
-    }
-
-
-
-    private void transformTPoint(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TPoint tPoint ) throws Exception
-    {
-        transform(sourceCRS, targetCRS, new Coordinate[] { tPoint.getCoordinate() });
-        tPoint.setCRS(targetCRS.getCode());
-    }
-
-    private void transformTMultiPoint(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TMultiPoint tMultiPoint ) throws Exception
-    {
-        transform(sourceCRS, targetCRS, tMultiPoint.getCoordinates());
-        tMultiPoint.setCRS(targetCRS.getCode());
-        // tMultiPoint.
-    }
-
-    private void transformTLineString(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, TLineString tLineString ) throws Exception
-    {
-
-        transform(sourceCRS, targetCRS, tLineString.getCoordinates());
-        tLineString.setCRS(targetCRS.getCode());
-        // tMultiPoint.
-    }
-
-
-    private void transform(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, Coordinate... coordinates) throws IllegalCoordinateException
-    {
-        List<CoordinateOperation> ops;
-        ops = CoordinateOperationFactory.createCoordinateOperations(sourceCRS, targetCRS);
-
-        if (!ops.isEmpty()) {
-            if (true) {
-                 System.out.println("Number of Operations " + ops.size());
-                 System.out.println("Precision " + ops.get(0).getPrecision() + " m.");
-                 System.out.println(ops.get(0));
-            }
-
-            if (maxPrecisionMeanConversionError < Double.MAX_VALUE && maxPrecisionMeanConversionError < ops.get(0).getPrecision())
-                throw new RuntimeException("Transformation from " + sourceCRS.getCode() + " to " + targetCRS.getCode() +
-                        " can not be done with the requested precision of " + maxPrecisionMeanConversionError + " meters." +
-                        " Current precision mean conversion error is " + ops.get(0).getPrecision() + " meters.");
-
-            for (Coordinate coordinate : coordinates)
-            {
-                double[] c = ops.get(0).transform(new double[]{coordinate.x(), coordinate.y() /** z */} );
-                coordinate.x(c[0]).y(c[1]);
-            }
-
-//        } else {
-//            coordinate.x(0d).y(0d);
-
-        }
-    }
-
-
-
-/**
-    private double[] transform(GeodeticCRS sourceCRS, GeodeticCRS targetCRS, double[] pointSource) throws IllegalCoordinateException {
-
-        if (sourceCRS.equals(targetCRS))
-            return pointSource;
-
-        List<CoordinateOperation> ops;
-        ops = CoordinateOperationFactory.createCoordinateOperations(sourceCRS, targetCRS);
-        if (!ops.isEmpty()) {
-            if (true) {
-                System.out.println(ops.get(0));
-            }
-            return ops.get(0).transform(new double[]{pointSource[0], pointSource[1], pointSource[2]});
-        } else {
-            return new double[]{0.0d, 0.0d, 0.0d};
-        }
-    }
-*/
-
-
-
-/**
- public double[] transform(String csNameSrc, String csNameDest, double[] pointSource) throws IllegalCoordinateException, CRSException {
-
- CoordinateReferenceSystem inputCRS = cRSFactory.getCRS(csNameSrc);
- CoordinateReferenceSystem outputCRS = cRSFactory.getCRS(csNameDest);
-
- return transform((GeodeticCRS) inputCRS, (GeodeticCRS) outputCRS, pointSource);
- }
-
- */
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/SpatialRefSysManagerTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/SpatialRefSysManagerTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/SpatialRefSysManagerTest.java
deleted file mode 100644
index 851d281..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/SpatialRefSysManagerTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package org.qi4j.library.spatial;
-
-import org.junit.Test;
-import org.qi4j.api.geometry.TLineString;
-import org.qi4j.api.geometry.TPoint;
-import org.qi4j.api.geometry.TPolygon;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.value.ValueBuilder;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.spatial.v2.projections.ProjectionsRegistry;
-import org.qi4j.library.spatial.v2.projections.SpatialRefSysManager;
-import org.qi4j.test.AbstractQi4jTest;
-
-import java.util.Arrays;
-
-import static org.junit.Assert.*;
-import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
-
-/**
- * Created by jj on 18.11.14.
- */
-public class SpatialRefSysManagerTest extends AbstractQi4jTest {
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        // Internal Types
-        module.values(
-                Coordinate.class,
-                TLinearRing.class);
-
-        // API values
-        module.values(TPoint.class,TLineString.class, TPolygon.class);
-        // module.services(GeometryFactory.class);
-
-
-        // module.forMixin( SomeType.class ).declareDefaults().someValue().set( "&lt;unknown&gt;" );
-    }
-
-    @Test
-    public void whenValidSRID() throws Exception
-    {
-        assertNotNull(SpatialRefSysManager.getCRS("EPSG:4326"));
-        System.out.println(SpatialRefSysManager.getCRS("EPSG:4326").toWKT());
-    }
-
-    @Test
-    public void whenTransformation() throws Exception
-    {
-
-        ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
-
-        // TPoint pointAs_EPSG_4326_1 = builder.prototype().X(10.712809).Y(49.550881);
-
-        // TPoint pointAs_EPSG_4326_1 = module.newValueBuilder(TPoint.class).prototype().X(10.712809).Y(49.550881);
-
-        TPoint pointAs_EPSG_4326_1 = TPoint(module).x(10.712809).y(49.550881).geometry();
-
-/**
-        TPoint point = builder.prototype().of
-            (
-                    module.newValueBuilder(Coordinate.class).prototype().of(10.712809),  //x
-                    module.newValueBuilder(Coordinate.class).prototype().of(49.550881)   //y
-            );
-*/
-
-       //  System.out.println(" Array " + Arrays.toString(pointAs_EPSG_4326_1.source()));
-
-       //  SpatialRefSysManager.transform(point, "EPSG:4326");
-
-       TPoint pointAs_EPSG_27572 = (TPoint)SpatialRefSysManager.transform(pointAs_EPSG_4326_1, "EPSG:27572");
-
-        System.out.println(pointAs_EPSG_27572);
-
-        TPoint pointAs_EPSG_4326_2 = (TPoint)SpatialRefSysManager.transform(pointAs_EPSG_27572, "EPSG:4326");
-
-        System.out.println(pointAs_EPSG_4326_2);
-
-        // SpatialRefSysManager.transform(point, "EPSG:26736");
-
-    }
-
-    @Test
-    public void dumpRegistries() throws Exception {
-        System.out.println(Arrays.toString(new ProjectionsRegistry().dumpRegistries()));
-
-        System.out.println(new ProjectionsRegistry().getSupportedRegistryCodes("epsg"));
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsFromWktTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsFromWktTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsFromWktTest.java
new file mode 100644
index 0000000..82f7455
--- /dev/null
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsFromWktTest.java
@@ -0,0 +1,33 @@
+package org.qi4j.library.spatial.conversions;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.junit.Test;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
+import org.qi4j.test.AbstractQi4jTest;
+
+
+/**
+ * Created by jj on 04.12.14.
+ */
+public class ConversionsFromWktTest extends AbstractQi4jTest {
+
+    private final String CRS_EPSG_4326 = "EPSG:4326";
+    private final String CRS_EPSG_27572 = "EPSG:27572";
+    private ObjectMapper GeoJsonMapper = new ObjectMapper();
+
+    @Override
+    public void assemble(ModuleAssembly module)
+            throws AssemblyException {
+        new TGeometryAssembler().assemble(module);
+    }
+
+    @Test
+    public void WhenConvertFromWktToTGeometry() throws Exception {
+        TPoint tPoint = (TPoint) TConversions.Convert(module).from("POINT(11.57958981111 48.13905780941111 )", CRS_EPSG_27572).toTGeometry();
+    }
+
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsWithProjectionsTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsWithProjectionsTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsWithProjectionsTest.java
new file mode 100644
index 0000000..ddcde72
--- /dev/null
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConversionsWithProjectionsTest.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.geojson.FeatureCollection;
+import org.junit.Test;
+import org.qi4j.api.geometry.TFeatureCollection;
+import org.qi4j.api.geometry.TPoint;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
+import org.qi4j.library.spatial.topo.GeoJSONSwissLakes2013;
+import org.qi4j.library.spatial.projection.transformations.TTransformations;
+import org.qi4j.test.AbstractQi4jTest;
+
+import static org.junit.Assert.assertTrue;
+import static org.qi4j.api.geometry.TGeometryFactory.TPoint;
+import static org.qi4j.library.spatial.conversions.TConversions.Convert;
+
+
+public class ConversionsWithProjectionsTest extends AbstractQi4jTest {
+
+    private final String CRS1 = "EPSG:4326";
+    private ObjectMapper geoJsonMapper = new ObjectMapper();
+
+
+    @Override
+    public void assemble(ModuleAssembly module)
+            throws AssemblyException {
+        new TGeometryAssembler().assemble(module);
+    }
+
+    @Test
+    public void whenConvertFromTGeometryToTGeometryConvertProjections() throws Exception {
+        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
+        TPoint tPoint2 = (TPoint) Convert(module).from(tPoint1).toTGeometry(CRS1);
+        assertTrue(tPoint1.compareTo(tPoint2) == 0);
+    }
+
+
+    @Test
+    public void whenConvertSwissLakesTranslateProjection() throws Exception
+    {
+        // convert from CH1903 (EPSG:21781) to EPSG:4326
+//        TFeatureCollection swisslakes =  (TFeatureCollection)Convert(module).from(geoJsonMapper.readValue(GeoJSONSwissLakes2013.SWISS_LAKES, FeatureCollection.class))
+//         .toTGeometry("EPSG:21781");
+
+        FeatureCollection featureCollection = geoJsonMapper.readValue(GeoJSONSwissLakes2013.SWISS_LAKES, FeatureCollection.class);
+        TFeatureCollection tFeatureCollection = (TFeatureCollection)Convert(module).from(featureCollection).toTGeometry();
+        tFeatureCollection.setCRS("EPSG:21781");
+        System.out.println(tFeatureCollection.getCoordinates().length);
+        System.out.println(tFeatureCollection.getNumPoints());
+
+        TTransformations.Transform(module).from(tFeatureCollection).to("EPSG:4326");
+
+        System.out.println("tFeatureCollection " + tFeatureCollection);
+
+        // tFeatureCollection.getCoordinates();
+
+
+ /**
+        TFeatureCollection tFeatureCollection = (TFeatureCollection)Convert(module).from(featureCollection).toTGeometry("EPSG:21781");
+        System.out.println(tFeatureCollection);
+        TTransformations.Transform(module).from(tFeatureCollection).to("EPSG:4326");
+        System.out.println(tFeatureCollection);
+  */
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConvertFromGeoJsonToTGeometryTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConvertFromGeoJsonToTGeometryTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConvertFromGeoJsonToTGeometryTest.java
new file mode 100644
index 0000000..377eebc
--- /dev/null
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/conversions/ConvertFromGeoJsonToTGeometryTest.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2014 Jiri Jetmar.
+ *
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ *
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.qi4j.library.spatial.conversions;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.geojson.*;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.qi4j.api.geometry.*;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.library.spatial.assembly.TGeometryAssembler;
+import org.qi4j.test.AbstractQi4jTest;
+
+import java.util.Arrays;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.qi4j.api.geometry.TGeometryFactory.*;
+
+
+public class ConvertFromGeoJsonToTGeometryTest extends AbstractQi4jTest {
+
+    private final String CRS_EPSG_4326_ = "EPSG:4326";
+    private final String CRS_EPSG_27572 = "EPSG:27572";
+    private ObjectMapper geoJsonMapper = new ObjectMapper();
+
+    @Override
+    public void assemble(ModuleAssembly module)
+            throws AssemblyException {
+        new TGeometryAssembler().assemble(module);
+    }
+
+    @Ignore("Benchmarking is not in scope for this test.")
+    @Test
+    public void whenConvertFromTGeometryToTGeometry() throws Exception {
+        TPoint tPoint1 = TPoint(module).x(11.57958981111).y(48.13905780941111).geometry();
+        for (int i = 0; i < 1000000; i++) {
+            TPoint tPoint2 = (TPoint) TConversions.Convert(module).from(tPoint1).toTGeometry(CRS_EPSG_27572);
+            TPoint tPoint3 = (TPoint) TConversions.Convert(module).from(tPoint1).toTGeometry(CRS_EPSG_4326_);
+
+        }
+    }
+
+    @Test
+    public void whenConvertPointFromGeoJsonToTGeometry() {
+        TPoint tPoint = TPoint(module).y(100).x(0).geometry();
+        Point gPoint = new Point(100, 0);
+        TPoint convTPoint = (TPoint) TConversions.Convert(module).from(gPoint).toTGeometry();
+        assertTrue(tPoint.compareTo(convTPoint) == 0);
+    }
+
+    @Test
+    public void whenConvertMultiPointFromGeoJsonToTGeometry() {
+        TMultiPoint tMultiPoint = TMultiPoint(module).of
+                (
+                        TPoint(module).y(1).x(1).geometry(),
+                        TPoint(module).y(2).x(2).geometry()
+                ).geometry();
+        MultiPoint multiPoint = new MultiPoint(new LngLatAlt(1, 1), new LngLatAlt(2, 2));
+        TMultiPoint convTMultiPoint = (TMultiPoint) TConversions.Convert(module).from(multiPoint).toTGeometry();
+        assertTrue(((TPoint) tMultiPoint.getGeometryN(0)).compareTo(convTMultiPoint.getGeometryN(0)) == 0);
+    }
+
+
+    @Test
+    public void whenConvertLineStringFromGeoJsonToTGeometry() throws Exception {
+        LineString lineString = geoJsonMapper.readValue("{\"type\":\"LineString\",\"coordinates\":[[100.0,0.0],[101.0,1.0]]}",
+                LineString.class);
+        TLineString convTLineString = (TLineString) TConversions.Convert(module).from(lineString).toTGeometry();
+        assertTrue(TLineString(module).points(new double[][]{{100, 0}, {101, 1}}).geometry().compareTo(convTLineString) == 0);
+    }
+
+    @Test
+    public void whenConvertMultiLineStringFromGeoJsonToTGeometry() throws Exception {
+        MultiLineString multiLineString = new MultiLineString();
+        multiLineString.add(Arrays.asList(new LngLatAlt(100, 0), new LngLatAlt(101, 1)));
+        TMultiLineString convTMultiLineString = (TMultiLineString) TConversions.Convert(module).from(multiLineString).toTGeometry();
+        TMultiLineString compTMultiLineString = TMultiLineString(module).of
+                (
+                        TLineString(module).points(new double[][]
+                                {
+                                        {0, 100},
+                                        {1, 101}
+                                }).geometry()
+                ).geometry();
+        assertTrue(((TLineString) compTMultiLineString.getGeometryN(0)).compareTo((TLineString) convTMultiLineString.getGeometryN(0)) == 0);
+    }
+
+    @Test
+    public void whenConvertPolygonFromGeoJsonToTGeometry() throws Exception {
+        Polygon polygon = geoJsonMapper.readValue("{\"type\":\"Polygon\",\"coordinates\":"
+                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
+                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]}", Polygon.class);
+        TPolygon convTPolygon = (TPolygon) TConversions.Convert(module).from(polygon).toTGeometry();
+
+        TPolygon compTPolygon = TPolygon(module)
+                .shell
+                        (
+                                TLinearRing(module).ring(new double[][]
+                                        {
+                                                {0, 100},
+                                                {0, 101},
+                                                {1, 101},
+                                                {1, 100},
+                                                {0, 100}
+                                        }).geometry()
+                        )
+                .withHoles
+                        (
+                                TLinearRing(module).ring(new double[][]
+                                        {
+                                                {0.2, 100.2},
+                                                {0.2, 100.8},
+                                                {0.8, 100.8},
+                                                {0.8, 100.2},
+                                                {0.2, 100.2}
+                                        }).geometry()
+                        )
+                .geometry();
+
+        assertEquals(compTPolygon.getNumPoints(), convTPolygon.getNumPoints());
+        assertTrue(compTPolygon.shell().get().compareTo(convTPolygon.shell().get()) == 0);
+    }
+
+    @Test
+    public void whenConvertMultiPolygonFromGeoJsonToTGeometry() throws Exception {
+        MultiPolygon multiPolygon = geoJsonMapper.readValue("{\"type\":\"MultiPolygon\",\"coordinates\":[[[[102.0,2.0],[103.0,2.0],[103.0,3.0],[102.0,3.0],[102.0,2.0]]],"
+                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
+                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]]}", MultiPolygon.class);
+        TMultiPolygon convTMultiPolygon = (TMultiPolygon) TConversions.Convert(module).from(multiPolygon).toTGeometry();
+        assertEquals(15, convTMultiPolygon.getNumPoints());
+    }
+
+    @Test
+    public void whenConvertFeatureFromGeoJsonToTGeometry() throws Exception {
+        Feature feature = new Feature();
+        feature.setGeometry(new Point(100, 0));
+        TFeature convTFeature = (TFeature) TConversions.Convert(module).from(feature).toTGeometry();
+        TFeature compTFeature = TFeature(module).of(TPoint(module).y(100).x(0).geometry()).geometry();
+        assertTrue(convTFeature.getNumPoints() == compTFeature.getNumPoints());
+    }
+
+    @Test
+    public void whenConvertFeatureCollectionFromGeoJsonToTGeometry() throws Exception {
+        Feature f1 = new Feature();
+        f1.setGeometry(geoJsonMapper.readValue("{\"type\":\"MultiPolygon\",\"coordinates\":[[[[102.0,2.0],[103.0,2.0],[103.0,3.0],[102.0,3.0],[102.0,2.0]]],"
+                + "[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]],"
+                + "[[100.2,0.2],[100.8,0.2],[100.8,0.8],[100.2,0.8],[100.2,0.2]]]]}", MultiPolygon.class));
+
+        Feature f2 = new Feature();
+        f2.setGeometry(geoJsonMapper.readValue("{\"type\":\"LineString\",\"coordinates\":[[100.0,0.0],[101.0,1.0]]}",
+                LineString.class));
+
+        FeatureCollection featureCollection = new FeatureCollection();
+        featureCollection.add(f1);
+        featureCollection.add(f2);
+
+        TFeatureCollection convTFeatureCollection = (TFeatureCollection) TConversions.Convert(module).from(featureCollection).toTGeometry();
+        System.out.println(convTFeatureCollection);
+    }
+
+}


[34/50] [abbrv] zest-qi4j git commit: Updates, Cleanup and preparation for a pull request.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/geojson/SimpleGeoJsonTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/geojson/SimpleGeoJsonTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/geojson/SimpleGeoJsonTest.java
deleted file mode 100644
index 3660500..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/geojson/SimpleGeoJsonTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.qi4j.library.spatial.geojson;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.geojson.FeatureCollection;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.spatial.topo.GeoJSONSwissLakes2013;
-import org.qi4j.test.AbstractQi4jTest;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Created by jakes on 2/7/14.
- */
-
-/**
- *     http://stackoverflow.com/questions/4619306/list-arrary-double-entering-values
- *     http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind/src/gov/nasa/worldwindx/examples/GeoJSONLoader.java
- *
- *
- */
-public class SimpleGeoJsonTest extends AbstractQi4jTest {
-
-    private Visibility visibility = Visibility.module;
-
-
-
-    @Rule
-    @SuppressWarnings( "PublicField" )
-    public TestName testName = new TestName();
-    private Logger log;
-
-    @Before
-    public void before()
-    {
-        log = LoggerFactory.getLogger(testName.getMethodName());
-        module.injectTo( this );
-    }
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        module.services( OrgJsonValueSerializationService.class ).
-                visibleIn( visibility ).
-                taggedWith(ValueSerialization.Formats.JSON);
-
-    }
-
-    @Service
-    @SuppressWarnings( "ProtectedField" )
-    protected ValueSerialization valueSerialization;
-
-   @Test
-   public void foo()  throws Exception {
-
-       UnitOfWork uow = module.newUnitOfWork();
-       try
-       {
-
-       }
-       catch( Exception ex )
-       {
-           ex.printStackTrace();
-           // log.error( ex.getMessage(), ex );
-           throw ex;
-       }
-       finally
-       {
-           uow.discard();
-       }
-
-
-   }
-
-    @Test
-    public void testfoo() throws Exception {
-
-        FeatureCollection featureCollection =
-                new ObjectMapper().readValue(GeoJSONSwissLakes2013.SWISS_LAKES , FeatureCollection.class);
-
-
-
-//        File file = new File("/media/HDD_002/spatial/usa-lines.geojson");
-//        FileInputStream fis = new FileInputStream(file);
-//
-//
-//         FeatureCollection featureCollection1 =
-//                new ObjectMapper().readValue(fis , FeatureCollection.class);
-
-
-
-    }
-
-
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/parser/geojson/SimpleGeoJSONParser.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/parser/geojson/SimpleGeoJSONParser.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/parser/geojson/SimpleGeoJSONParser.java
deleted file mode 100644
index 71b8f8b..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/parser/geojson/SimpleGeoJSONParser.java
+++ /dev/null
@@ -1,303 +0,0 @@
-package org.qi4j.library.spatial.parser.geojson;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.geojson.*;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.spatial.topo.GeoJSONSwissLakes2013;
-import org.qi4j.library.spatial.transformations.GeoJsonTransformator;
-import org.qi4j.library.spatial.transformations.geojson.GeoJSONParserV2;
-import org.qi4j.library.spatial.transformations.geojson.internal.ParserBuilder;
-import org.qi4j.test.AbstractQi4jTest;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedInputStream;
-import java.io.InputStream;
-import java.util.*;
-
-import static org.qi4j.library.spatial.v2.conversions.TConversions.Convert;
-
-/**
- * Created by jakes on 2/7/14.
- */
-
-/**
- *     http://stackoverflow.com/questions/4619306/list-arrary-double-entering-values
- *     http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind/src/gov/nasa/worldwindx/examples/GeoJSONLoader.java
- *
- *
- */
-public class SimpleGeoJSONParser extends AbstractQi4jTest {
-
-    private Visibility visibility = Visibility.module;
-
-
-
-    @Rule
-    @SuppressWarnings( "PublicField" )
-    public TestName testName = new TestName();
-    private Logger log;
-
-    @Before
-    public void before()
-    {
-        log = LoggerFactory.getLogger(testName.getMethodName());
-        module.injectTo( this );
-    }
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        module.services( OrgJsonValueSerializationService.class ).
-                visibleIn( visibility ).
-                taggedWith(ValueSerialization.Formats.JSON);
-
-        // internal values
-        module.values( Coordinate.class, TLinearRing.class, TGeometry.class);
-
-        // API values
-        module.values(TPoint.class,TLineString.class, TPolygon.class, TFeature.class);
-
-
-    }
-
-    @Service
-    @SuppressWarnings( "ProtectedField" )
-    protected ValueSerialization valueSerialization;
-
-
-
-    @Test
-    public void parse()  throws Exception {
-
-        ParserBuilder parser = GeoJSONParserV2.source(new BufferedInputStream(this.getClass().getClassLoader().getResource("data/munich.geojson").openStream())).parse();
-        List<Feature> features = parser.getValues();
-        System.out.println("Found features " + features.size());
-
-        for (int i = 0; i < features.size(); i++)
-        {
-            Feature feature = features.get(i);
-            System.out.println(feature.getGeometry());
-
-            TGeometry tGeometry = GeoJSONParserV2.transform(module).from(feature).transform();
-            System.out.println(i +  "  " + tGeometry + " " + tGeometry.getType());
-        }
-    }
-
-    @Test
-    public void parsePerformanceTest()  throws Exception {
-
-        // ParserBuilder parser =
-
-        JsonParser parser = GeoJSONParserV2.source(new BufferedInputStream(this.getClass().getClassLoader().getResource("data/bavaria/osm-ways").openStream())).build();
-
-        JsonToken token;
-
-        while ((token = parser.nextToken()) != null) {
-            switch (token) {
-                case START_OBJECT:
-                    JsonNode node = parser.readValueAsTree();
-                    // ... do something with the object
-                    // System.out.println("Read object: " + node.toString());
-                    // System.out.println(node.get("type"));
-                    // FeatureCollection.class
-                    // System.out.println(node.toString());
-                    // System.out.println(node.get("geometry"));
-
-                    // if (node.get("geometry").get("type"))
-                    // System.out.println(node.get("geometry").get("type"));
-                    // System.out.println(node.get("geometry").get("type"));
-
-                    // System.out.println(node.get("geometry").get("type").asText());
-
-                    System.out.println("== > " + node.get("id"));
-
-                    //  System.out.println(node.get("categories").get("osm").ar);
-
-                    JsonNode osm = node.get("categories").get("osm");
-
-                    if (osm.isArray()) {
-                        for (final JsonNode property : osm) {
-                            System.out.println(property);
-                        }
-                    }
-
-                    if ("Point".equals(node.get("geometry").get("type").asText())) {
-                        Point point = new ObjectMapper().readValue(node.get("geometry").toString(), Point.class);
-                        TPoint tPoint = (TPoint)Convert(module).from(point).toTGeometry();
-                        // System.out.println(tPoint);
-                    }
-                    else if ("LineString".equals(node.get("geometry").get("type").asText())) {
-                        LineString lineString = new ObjectMapper().readValue(node.get("geometry").toString(), LineString.class);
-                        TLineString tLineString = (TLineString)Convert(module).from(lineString).toTGeometry();
-                        // System.out.println(tLineString);
-
-                    }
-                    else if ("Polygon".equals(node.get("geometry").get("type").asText())) {
-                        Polygon polygon = new ObjectMapper().readValue(node.get("geometry").toString(), Polygon.class);
-                        TPolygon tPolygon = (TPolygon)Convert(module).from(polygon).toTGeometry();
-                        // System.out.println(tPolygon);
-                        // System.out.println(tPolygon);
-                        // System.out.println(tPolygon.shell().get().isValid());
-                    }
-
-
-                    break;
-            }
-        }
-    }
-
-        // parser.nextToken();
-
-
-        @Test
-        public void testFoo() throws Exception
-        {
-
-            InputStream source = new BufferedInputStream(this.getClass().getClassLoader().getResource("data/osm-pois").openStream());
-            GeoJsonObject object = new ObjectMapper().readValue(source, FeatureCollection.class);
-/**
-            if (object instanceof Point) {
-            }
-
-            else if (object instanceof Polygon) {
-            }
-*/
-
-
-
-        }
-
-
-
-/**
-        while (parser.nextToken() != JsonToken.END_OBJECT) {
-            parser.
-            String fieldname = parser.getCurrentName();
-            JsonToken token = parser.nextToken(); // move to value, or START_OBJECT/START_ARRAY
-            System.out.println(fieldname);
-            if ("type".equals(fieldname)) {
-               // JsonToken token = parser.getCurrentToken();
-              System.out.println("-- > " + token);
-
-                new ObjectMapper().readV readValue(source, FeatureCollection.class);
-            }
-            }
-*/
-
-                        /**
-        List<Feature> features = parser.getValues();
-        System.out.println("Found features " + features.size());
-
-        for (int i = 0; i < features.size(); i++)
-        {
-            Feature feature = features.get(i);
-            System.out.println(feature.getGeometry());
-
-            TGeometry tGeometry = GeoJSONParserV2.transform(module).from(feature).transform();
-            System.out.println(i +  "  " + tGeometry + " " + tGeometry.getType());
-        }
-         */
-
-
-   @Test
-   public void foo()  throws Exception {
-
-       UnitOfWork uow = module.newUnitOfWork();
-       try
-       {
-
-           // ClassLoader.getSystemResource(name) && null == this.getClass().getClassLoader().getResource(name))
-
-           // this.getClass().getClassLoader().getResource("name")
-
-           BufferedInputStream inputstream = new BufferedInputStream( this.getClass().getClassLoader().getResource("data/munich.geojson").openStream());
-
-           // BufferedInputStream inputstream = new BufferedInputStream(new FileInputStream("/home/jakes/Projects/QI4J/Spatial/qi4j-sdk/libraries/spatial/src/test/resources/topo/geojson/germany/bavaria.neustadt.geojson"));
-
-          //  BufferedInputStream inputstream = new BufferedInputStream(new FileInputStream("/media/HDD_002/spatial/OpenStreetMap/geofabrik.de/nuenberg.geojson"));
-
-           FeatureCollection featureCollection =
-                   new ObjectMapper().readValue(inputstream, FeatureCollection.class);
-
-           System.out.println("Found num of features " + featureCollection.getFeatures().size());
-
-           int count = 0;
-
-           Iterator<Feature> features = featureCollection.getFeatures().iterator();
-
-           while (features.hasNext()) {
-
-               count++;
-
-               Feature feature = features.next();
-
-              //  TFeature tFeature =  GeoJsonTransformator.withGeometryFactory(Geometry).transformGeoFeature(feature);
-              // System.out.println("-> " + tFeature);
-
-           }
-
-
-
-       }
-       catch( Exception ex )
-       {
-           ex.printStackTrace();
-           // log.error( ex.getMessage(), ex );
-           throw ex;
-       }
-       finally
-       {
-           uow.discard();
-       }
-
-
-   }
-
-
-
-
-
-
-    @Test
-    public void testfoo() throws Exception {
-
-        FeatureCollection featureCollection =
-                new ObjectMapper().readValue(GeoJSONSwissLakes2013.SWISS_LAKES , FeatureCollection.class);
-
-
-
-//        File file = new File("/media/HDD_002/spatial/usa-lines.geojson");
-//        FileInputStream fis = new FileInputStream(file);
-//
-//
-//         FeatureCollection featureCollection1 =
-//                new ObjectMapper().readValue(fis , FeatureCollection.class);
-
-
-
-    }
-
-
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/projections/ProjectionServiceTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/projections/ProjectionServiceTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/projections/ProjectionServiceTest.java
deleted file mode 100644
index 8b71afe..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/projections/ProjectionServiceTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package org.qi4j.library.spatial.projections;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.AbstractQi4jTest;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Created by jakes on 2/7/14.
- */
-
-/**
- *     http://stackoverflow.com/questions/4619306/list-arrary-double-entering-values
- *     http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind/src/gov/nasa/worldwindx/examples/GeoJSONLoader.java
- *
- *
- */
-public class ProjectionServiceTest extends AbstractQi4jTest {
-
-    private Visibility visibility = Visibility.module;
-
-
-
-    @Rule
-    @SuppressWarnings( "PublicField" )
-    public TestName testName = new TestName();
-    private Logger log;
-
-    @Before
-    public void before()
-    {
-        log = LoggerFactory.getLogger(testName.getMethodName());
-        module.injectTo( this );
-    }
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        module.services( OrgJsonValueSerializationService.class).
-                visibleIn( visibility ).
-                taggedWith(ValueSerialization.Formats.JSON);
-
-        module.services(ProjectionService.class);
-
-    }
-
-    @Service
-    @SuppressWarnings( "ProtectedField" )
-    protected ValueSerialization valueSerialization;
-
-    @Service
-    ProjectionService projectionService;
-
-   @Test
-   public void foo()  throws Exception {
-
-       UnitOfWork uow = module.newUnitOfWork();
-       try
-       {
-           projectionService.test();
-       }
-       catch( Exception ex )
-       {
-           ex.printStackTrace();
-           // log.error( ex.getMessage(), ex );
-           throw ex;
-       }
-       finally
-       {
-           uow.discard();
-       }
-
-   }
-
-    @Test
-    public void testSupportedCodes()  throws Exception {
-
-        UnitOfWork uow = module.newUnitOfWork();
-
-        try
-        {
-            System.out.println(projectionService.getSupportedSRID("EPSG")); // "esri")); // "EPSG"));
-        }
-        catch( Exception ex )
-        {
-            ex.printStackTrace();
-            // log.error( ex.getMessage(), ex );
-            throw ex;
-        }
-        finally
-        {
-            uow.discard();
-        }
-
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/projections/ProjectionsTransformationTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/projections/ProjectionsTransformationTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/projections/ProjectionsTransformationTest.java
deleted file mode 100644
index b2d634f..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/projections/ProjectionsTransformationTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.qi4j.library.spatial.projections;
-
-import org.junit.Test;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.value.ValueBuilder;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.AbstractQi4jTest;
-
-import static org.junit.Assert.assertNotNull;
-
-/**
- * Created by jj on 17.11.14.
- */
-public class ProjectionsTransformationTest extends AbstractQi4jTest {
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        // Internal Types
-        module.values(
-                Coordinate.class,
-                TLinearRing.class);
-
-        // API values
-        module.values(TPoint.class,TLineString.class, TPolygon.class);
-        // module.services(GeometryFactory.class);
-
-
-
-        // module.forMixin( SomeType.class ).declareDefaults().someValue().set( "&lt;unknown&gt;" );
-    }
-
-    @Test
-    public void testTransform() throws Exception {
-
-        ValueBuilder<TPoint> builder = module.newValueBuilder(TPoint.class);
-
-        // TPoint pointABC = builder.prototype().X(123).Y()
-
-        TPoint pointABC = builder.prototype().of
-                (
-                        module.newValueBuilder(Coordinate.class).prototype().of(1d),  //x
-                        module.newValueBuilder(Coordinate.class).prototype().of(1d)   //y
-                );
-
-
-
-        // ProjectionsTransformation.transform("", pointABC);
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/repository/SimpleSpatialRepositoryTest.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/repository/SimpleSpatialRepositoryTest.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/repository/SimpleSpatialRepositoryTest.java
deleted file mode 100644
index 644b51c..0000000
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/repository/SimpleSpatialRepositoryTest.java
+++ /dev/null
@@ -1,164 +0,0 @@
-package org.qi4j.library.spatial.repository;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.geojson.Feature;
-import org.geojson.FeatureCollection;
-import org.geojson.LngLatAlt;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.geometry.*;
-import org.qi4j.api.geometry.internal.Coordinate;
-import org.qi4j.api.geometry.internal.TGeometry;
-import org.qi4j.api.geometry.internal.TLinearRing;
-import org.qi4j.api.injection.scope.Service;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.library.spatial.topo.GeoJSONSwissLakes2013;
-import org.qi4j.library.spatial.transformations.GeoJsonTransformator;
-import org.qi4j.test.AbstractQi4jTest;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedInputStream;
-import java.io.FileInputStream;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Created by jakes on 2/7/14.
- */
-
-/**
- *     http://stackoverflow.com/questions/4619306/list-arrary-double-entering-values
- *     http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind/src/gov/nasa/worldwindx/examples/GeoJSONLoader.java
- *
- *
- */
-public class SimpleSpatialRepositoryTest extends AbstractQi4jTest {
-
-    private Visibility visibility = Visibility.module;
-
-
-
-    @Rule
-    @SuppressWarnings( "PublicField" )
-    public TestName testName = new TestName();
-    private Logger log;
-
-    @Before
-    public void before()
-    {
-        log = LoggerFactory.getLogger(testName.getMethodName());
-        module.injectTo( this );
-    }
-
-    @Override
-    public void assemble( ModuleAssembly module )
-            throws AssemblyException
-    {
-        module.services( OrgJsonValueSerializationService.class ).
-                visibleIn( visibility ).
-                taggedWith(ValueSerialization.Formats.JSON);
-
-        // internal values
-        module.values( Coordinate.class, TLinearRing.class, TGeometry.class);
-
-        // API values
-        module.values(TPoint.class,TLineString.class, TPolygon.class, TFeature.class);
-
-
-    }
-
-    @Service
-    @SuppressWarnings( "ProtectedField" )
-    protected ValueSerialization valueSerialization;
-
-
-
-   @Test
-   public void foo()  throws Exception {
-
-       UnitOfWork uow = module.newUnitOfWork();
-       try
-       {
-
-
-           BufferedInputStream inputstream = new BufferedInputStream(new FileInputStream("/home/jakes/Projects/QI4J/Spatial/qi4j-sdk/libraries/spatial/src/test/resources/topo/geojson/germany/bavaria.neustadt.geojson"));
-
-          //  BufferedInputStream inputstream = new BufferedInputStream(new FileInputStream("/media/HDD_002/spatial/OpenStreetMap/geofabrik.de/nuenberg.geojson"));
-
-           FeatureCollection featureCollection =
-                   new ObjectMapper().readValue(inputstream, FeatureCollection.class);
-
-           System.out.println("Found num of features " + featureCollection.getFeatures().size());
-
-           int count = 0;
-
-           Iterator<Feature> features = featureCollection.getFeatures().iterator();
-
-           while (features.hasNext()) {
-
-               count++;
-
-               Feature feature = features.next();
-
-              // TFeature tFeature =  GeoJsonTransformator.withGeometryFactory(Geometry).transformGeoFeature(feature);
-
-
-
-           }
-
-
-
-       }
-       catch( Exception ex )
-       {
-           ex.printStackTrace();
-           // log.error( ex.getMessage(), ex );
-           throw ex;
-       }
-       finally
-       {
-           uow.discard();
-       }
-
-
-   }
-
-
-
-
-
-
-    @Test
-    public void testfoo() throws Exception {
-
-        FeatureCollection featureCollection =
-                new ObjectMapper().readValue(GeoJSONSwissLakes2013.SWISS_LAKES , FeatureCollection.class);
-
-
-
-//        File file = new File("/media/HDD_002/spatial/usa-lines.geojson");
-//        FileInputStream fis = new FileInputStream(file);
-//
-//
-//         FeatureCollection featureCollection1 =
-//                new ObjectMapper().readValue(fis , FeatureCollection.class);
-
-
-
-    }
-
-
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/d305f9da/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSpec20080616.java
----------------------------------------------------------------------
diff --git a/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSpec20080616.java b/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSpec20080616.java
index eec0e2e..0d8e1bf 100644
--- a/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSpec20080616.java
+++ b/libraries/spatial/src/test/java/org/qi4j/library/spatial/topo/GeoJSONSpec20080616.java
@@ -1,28 +1,26 @@
 package org.qi4j.library.spatial.topo;
 
 /**
- *
  * http://geojson.org/geojson-spec.html
- *
  */
 public class GeoJSONSpec20080616 {
 
 
     // Version 1.0
 
-     public static final String LineString =   "{ \"type\": \"LineString\",\r\n    \"coordinates\": [ [100.0, 0.0], [101.0, 1.0] ]\r\n }";
+    public static final String LineString = "{ \"type\": \"LineString\",\r\n    \"coordinates\": [ [100.0, 0.0], [101.0, 1.0] ]\r\n }";
 
-     public static final String Polygon = "{ \"type\": \"Polygon\",\r\n    \"coordinates\": [\r\n      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]\r\n      ]\r\n }";
+    public static final String Polygon = "{ \"type\": \"Polygon\",\r\n    \"coordinates\": [\r\n      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]\r\n      ]\r\n }";
 
-     public static final String Polygon_with_Holes = "{ \\\"type\\\": \\\"Polygon\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],\\r\\n      [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]\\r\\n      ]\\r\\n  }";
+    public static final String Polygon_with_Holes = "{ \\\"type\\\": \\\"Polygon\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],\\r\\n      [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]\\r\\n      ]\\r\\n  }";
 
-     public static final String Multipoint = "{ \\\"type\\\": \\\"MultiPoint\\\",\\r\\n    \\\"coordinates\\\": [ [100.0, 0.0], [101.0, 1.0] ]\\r\\n  }";
+    public static final String Multipoint = "{ \\\"type\\\": \\\"MultiPoint\\\",\\r\\n    \\\"coordinates\\\": [ [100.0, 0.0], [101.0, 1.0] ]\\r\\n  }";
 
-     public static final String MultiLineString = "{ \\\"type\\\": \\\"MultiLineString\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n        [ [100.0, 0.0], [101.0, 1.0] ],\\r\\n        [ [102.0, 2.0], [103.0, 3.0] ]\\r\\n      ]\\r\\n    }";
+    public static final String MultiLineString = "{ \\\"type\\\": \\\"MultiLineString\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n        [ [100.0, 0.0], [101.0, 1.0] ],\\r\\n        [ [102.0, 2.0], [103.0, 3.0] ]\\r\\n      ]\\r\\n    }";
 
-     public static final String MultiPolygon = "{ \\\"type\\\": \\\"MultiPolygon\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n      [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],\\r\\n      [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],\\r\\n       [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]\\r\\n      ]\\r\\n  }";
+    public static final String MultiPolygon = "{ \\\"type\\\": \\\"MultiPolygon\\\",\\r\\n    \\\"coordinates\\\": [\\r\\n      [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],\\r\\n      [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],\\r\\n       [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]\\r\\n      ]\\r\\n  }";
 
-     public static final String GeometryCollection = "{ \\\"type\\\": \\\"GeometryCollection\\\",\\r\\n    \\\"geometries\\\": [\\r\\n      { \\\"type\\\": \\\"Point\\\",\\r\\n        \\\"coordinates\\\": [100.0, 0.0]\\r\\n        },\\r\\n      { \\\"type\\\": \\\"LineString\\\",\\r\\n        \\\"coordinates\\\": [ [101.0, 0.0], [102.0, 1.0] ]\\r\\n        }\\r\\n    ]\\r\\n  }";
+    public static final String GeometryCollection = "{ \\\"type\\\": \\\"GeometryCollection\\\",\\r\\n    \\\"geometries\\\": [\\r\\n      { \\\"type\\\": \\\"Point\\\",\\r\\n        \\\"coordinates\\\": [100.0, 0.0]\\r\\n        },\\r\\n      { \\\"type\\\": \\\"LineString\\\",\\r\\n        \\\"coordinates\\\": [ [101.0, 0.0], [102.0, 1.0] ]\\r\\n        }\\r\\n    ]\\r\\n  }";
 
     public static final String FeatureCollection = "{ \"type\": \"FeatureCollection\",\r\n    \"features\": [\r\n      { \"type\": \"Feature\",\r\n        \"geometry\": {\"type\": \"Point\", \"coordinates\": [102.0, 0.5]},\r\n        \"properties\": {\"prop0\": \"value0\"}\r\n        },\r\n      { \"type\": \"Feature\",\r\n        \"geometry\": {\r\n          \"type\": \"LineString\",\r\n          \"coordinates\": [\r\n            [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]\r\n            ]\r\n          },\r\n        \"properties\": {\r\n          \"prop0\": \"value0\",\r\n          \"prop1\": 0.0\r\n          }\r\n        },\r\n      { \"type\": \"Feature\",\r\n         \"geometry\": {\r\n           \"type\": \"Polygon\",\r\n           \"coordinates\": [\r\n             [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],\r\n               [100.0, 1.0], [100.0, 0.0] ]\r\n             ]\r\n         },\r\n         \"properties\": {\r\n           \"prop0\": \"value0\",\r\n          
  \"prop1\": {\"this\": \"that\"}\r\n           }\r\n         }\r\n       ]\r\n     }";