From 1218132a5600914dc8407a72e5a1a01df619233d Mon Sep 17 00:00:00 2001 From: Matthias Betz Date: Thu, 21 Mar 2024 14:22:25 +0100 Subject: [PATCH 01/62] fixed schema validation with external xsds update to version 3.14.1 --- .../CityDoctorCheckResult/pom.xml | 2 +- CityDoctorParent/CityDoctorEdge/pom.xml | 2 +- CityDoctorParent/CityDoctorModel/pom.xml | 2 +- .../citydoctor2/parser/CityGmlParser.java | 20 ++++++++++++++++--- .../parser/ValidationSchemaHandler.java | 10 ++++++++++ CityDoctorParent/CityDoctorValidation/pom.xml | 2 +- CityDoctorParent/pom.xml | 6 +++--- 7 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/parser/ValidationSchemaHandler.java diff --git a/CityDoctorParent/CityDoctorCheckResult/pom.xml b/CityDoctorParent/CityDoctorCheckResult/pom.xml index 9ca9bac..f4fba91 100644 --- a/CityDoctorParent/CityDoctorCheckResult/pom.xml +++ b/CityDoctorParent/CityDoctorCheckResult/pom.xml @@ -4,7 +4,7 @@ de.hft.stuttgart CityDoctorParent - 3.14.0 + 3.14.1 CityDoctorCheckResult diff --git a/CityDoctorParent/CityDoctorEdge/pom.xml b/CityDoctorParent/CityDoctorEdge/pom.xml index 1cb2930..12b788e 100644 --- a/CityDoctorParent/CityDoctorEdge/pom.xml +++ b/CityDoctorParent/CityDoctorEdge/pom.xml @@ -4,7 +4,7 @@ de.hft.stuttgart CityDoctorParent - 3.14.0 + 3.14.1 CityDoctorEdge diff --git a/CityDoctorParent/CityDoctorModel/pom.xml b/CityDoctorParent/CityDoctorModel/pom.xml index ba893b9..79f2c5a 100644 --- a/CityDoctorParent/CityDoctorModel/pom.xml +++ b/CityDoctorParent/CityDoctorModel/pom.xml @@ -4,7 +4,7 @@ de.hft.stuttgart CityDoctorParent - 3.14.0 + 3.14.1 ${project.version}-${git.commit.id.abbrev} diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/parser/CityGmlParser.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/parser/CityGmlParser.java index 9ad346c..873eea4 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/parser/CityGmlParser.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/parser/CityGmlParser.java @@ -62,7 +62,6 @@ import org.citygml4j.xml.reader.CityGMLInputFactory; import org.citygml4j.xml.reader.CityGMLReadException; import org.citygml4j.xml.reader.CityGMLReader; import org.citygml4j.xml.reader.FeatureInfo; -import org.citygml4j.xml.schema.CityGMLSchemaHandler; import org.citygml4j.xml.writer.CityGMLChunkWriter; import org.citygml4j.xml.writer.CityGMLOutputFactory; import org.citygml4j.xml.writer.CityGMLWriteException; @@ -76,7 +75,10 @@ import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXNotRecognizedException; import org.xml.sax.SAXNotSupportedException; +import org.xmlobjects.schema.SchemaHandler; import org.xmlobjects.schema.SchemaHandlerException; +import org.xmlobjects.stream.XMLReader; +import org.xmlobjects.stream.XMLReaderFactory; import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; import de.hft.stuttgart.citydoctor2.datastructure.CityObject; @@ -124,7 +126,7 @@ public class CityGmlParser { System.setProperty("javax.xml.transform.TransformerFactory", "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"); FACTORY = SAXParserFactory.newInstance(); try { - FACTORY.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); + FACTORY.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, false); } catch (SAXNotRecognizedException | SAXNotSupportedException | ParserConfigurationException e) { logger.catching(e); } @@ -526,7 +528,8 @@ public class CityGmlParser { handler = new GMLValidationHandler(); } try { - CityGMLSchemaHandler schemaHandler = context.getDefaultSchemaHandler(); + SchemaHandler schemaHandler = new ValidationSchemaHandler(context.getDefaultSchemaHandler()); + readAdditionalSchemaDefinitions(context, file, schemaHandler); Source[] schemas = schemaHandler.getSchemas(); SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); @@ -540,6 +543,17 @@ public class CityGmlParser { } } + private static void readAdditionalSchemaDefinitions(CityGMLContext context, Path file, SchemaHandler schemaHandler) + throws CityGmlParseException { + try (XMLReader reader = XMLReaderFactory.newInstance(context.getXMLObjects()) + .withSchemaHandler(schemaHandler) + .createReader(file)) { + reader.nextTag(); + } catch (Exception e) { + throw new CityGmlParseException("Failed to read file " + file.toAbsolutePath() + ".", e); + } + } + private static void drainCityModel(CityDoctorModel model, CityGmlConsumer cityObjectConsumer) { drainCityObjectList(model.getBuildings(), cityObjectConsumer); drainCityObjectList(model.getBridges(), cityObjectConsumer); diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/parser/ValidationSchemaHandler.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/parser/ValidationSchemaHandler.java new file mode 100644 index 0000000..3e08a09 --- /dev/null +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/parser/ValidationSchemaHandler.java @@ -0,0 +1,10 @@ +package de.hft.stuttgart.citydoctor2.parser; + +import org.xmlobjects.schema.SchemaHandler; + +public class ValidationSchemaHandler extends SchemaHandler { + + ValidationSchemaHandler(SchemaHandler other) { + copy(other); + } +} diff --git a/CityDoctorParent/CityDoctorValidation/pom.xml b/CityDoctorParent/CityDoctorValidation/pom.xml index 5fe43fa..24bd6e3 100644 --- a/CityDoctorParent/CityDoctorValidation/pom.xml +++ b/CityDoctorParent/CityDoctorValidation/pom.xml @@ -4,7 +4,7 @@ de.hft.stuttgart CityDoctorParent - 3.14.0 + 3.14.1 CityDoctorValidation CityDoctorValidation diff --git a/CityDoctorParent/pom.xml b/CityDoctorParent/pom.xml index f392f00..51df164 100644 --- a/CityDoctorParent/pom.xml +++ b/CityDoctorParent/pom.xml @@ -3,7 +3,7 @@ 4.0.0 de.hft.stuttgart CityDoctorParent - 3.14.0 + 3.14.1 pom CityDoctorParent @@ -103,12 +103,12 @@ org.citygml4j citygml4j-core - 3.1.0 + 3.2.0 org.citygml4j citygml4j-xml - 3.1.0 + 3.2.0 de.hft.stuttgart -- GitLab From 22fce970d4d6fddce51c55bb4e7c1d56aa4bedd5 Mon Sep 17 00:00:00 2001 From: Alex <22rial1mpg@hft-stuttgart.de> Date: Thu, 11 Jul 2024 16:48:15 +0200 Subject: [PATCH 02/62] Added basis for implementation of InteriorFacesCheck --- .../stuttgart/citydoctor2/check/CheckId.java | 1 + .../stuttgart/citydoctor2/check/ErrorId.java | 1 + .../citydoctor2/check/Requirement.java | 1 + .../check/error/InteriorFaceError.java | 81 ++++++++++++++ .../stuttgart/citydoctor2/checks/Checks.java | 2 + .../checks/geometry/InteriorFacesCheck.java | 100 ++++++++++++++++++ .../geometry/InteriorFacesCheckTest.java | 72 +++++++++++++ 7 files changed, 258 insertions(+) create mode 100644 CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorFaceError.java create mode 100644 CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheck.java create mode 100644 CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheckTest.java diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/CheckId.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/CheckId.java index 16b967a..d45fc48 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/CheckId.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/CheckId.java @@ -37,6 +37,7 @@ public class CheckId implements Serializable { public static final CheckId C_GE_R_NULL_AREA = new CheckId("C_GE_R_NULL_AREA"); public static final CheckId C_GE_S_NON_MANIFOLD_EDGE = new CheckId("C_GE_S_NON_MANIFOLD_EDGE"); public static final CheckId C_GE_S_POLYGON_WRONG_ORIENTATION = new CheckId("C_GE_S_POLYGON_WRONG_ORIENTATION"); + public static final CheckId C_GE_S_INTERIOR_FACE = new CheckId("C_GE_S_INTERIOR_FACE"); public static final CheckId C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION = new CheckId( "C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION"); public static final CheckId C_GE_S_NON_MANIFOLD_VERTEX = new CheckId("C_GE_S_NON_MANIFOLD_VERTEX"); diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorId.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorId.java index 4b9045e..5d4370f 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorId.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorId.java @@ -47,6 +47,7 @@ public class ErrorId implements Serializable { public static final ErrorId GE_R_NULL_AREA = new ErrorId("GE_R_NULL_AREA"); public static final ErrorId GE_R_TOO_FEW_POINTS = new ErrorId("GE_R_TOO_FEW_POINTS"); public static final ErrorId GE_S_NON_MANIFOLD_EDGE = new ErrorId("GE_S_NON_MANIFOLD_EDGE"); + public static final ErrorId GE_S_INTERIOR_FACE = new ErrorId("GE_S_INTERIOR_FACE"); public static final ErrorId GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION = new ErrorId( "GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION"); public static final ErrorId GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE = new ErrorId( diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java index 82c7616..c744f4e 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java @@ -47,6 +47,7 @@ public class Requirement implements Serializable { public static final Requirement R_GE_P_INNER_RINGS_NESTED = new Requirement("R_GE_P_INNER_RINGS_NESTED", RequirementType.GEOMETRY); public static final Requirement R_GE_S_TOO_FEW_POLYGONS = new Requirement("R_GE_S_TOO_FEW_POLYGONS", RequirementType.GEOMETRY); public static final Requirement R_GE_S_NOT_CLOSED = new Requirement("R_GE_S_NOT_CLOSED", RequirementType.GEOMETRY); + public static final Requirement R_GE_S_INTERIOR_FACE = new Requirement("R_GE_S_INTERIOR_FACE", RequirementType.GEOMETRY); public static final Requirement R_GE_S_NON_MANIFOLD_EDGE = new Requirement("R_GE_S_NON_MANIFOLD_EDGE", RequirementType.GEOMETRY); public static final Requirement R_GE_S_POLYGON_WRONG_ORIENTATION = new Requirement( "R_GE_S_POLYGON_WRONG_ORIENTATION", RequirementType.GEOMETRY); diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorFaceError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorFaceError.java new file mode 100644 index 0000000..743ba00 --- /dev/null +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorFaceError.java @@ -0,0 +1,81 @@ +package de.hft.stuttgart.citydoctor2.check.error; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.check.CheckError; +import de.hft.stuttgart.citydoctor2.check.ErrorId; +import de.hft.stuttgart.citydoctor2.check.ErrorReport; +import de.hft.stuttgart.citydoctor2.check.ErrorType; +import de.hft.stuttgart.citydoctor2.check.ErrorVisitor; +import de.hft.stuttgart.citydoctor2.check.HealingMethod; +import de.hft.stuttgart.citydoctor2.check.ModificationListener; +import de.hft.stuttgart.citydoctor2.datastructure.Geometry; +import de.hft.stuttgart.citydoctor2.datastructure.GmlElement; +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; + + +/** + * If a polygon is fully inside a solid geometry this error is created. + * + * @author Alexander Riegel + */ +public class InteriorFaceError implements CheckError{ + + + private static final long serialVersionUID = 6633158315015689806L; + + private List polygons; + private Geometry geom; + + + + public InteriorFaceError(Geometry geom, List polygons) { + super(); + this.polygons = polygons; + this.geom = geom; + } + + public Geometry getGeometry() { + return geom; + } + + public List getPolygons(){ + return polygons; + } + @Override + public ErrorType getType() { + return ErrorType.ERROR; + } + + @Override + public ErrorId getErrorId() { + return ErrorId.GE_S_INTERIOR_FACE; + } + + @Override + public GmlElement getFeature() { + return getGeometry(); + } + + @Override + public void accept(ErrorVisitor errorVisitor) { + errorVisitor.visit(this); + } + + public String toString() { + return "InteriorFaceError [Polygons=" + polygons + ", geom=" + geom + "]"; + } + + @Override + public boolean accept(HealingMethod method, ModificationListener l) { + return method.visit(this, l); + } + + @Override + public void report(ErrorReport report) { + report.add(geom); + polygons.forEach(x -> report.add(x)); + + } + +} diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/Checks.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/Checks.java index aa9ce41..1d87232 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/Checks.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/Checks.java @@ -34,6 +34,7 @@ import de.hft.stuttgart.citydoctor2.checks.geometry.AllPolygonsWrongOrientationC import de.hft.stuttgart.citydoctor2.checks.geometry.DuplicatePointsCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.HoleOutsideCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.InteriorDisconnectedCheck; +import de.hft.stuttgart.citydoctor2.checks.geometry.InteriorFacesCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.ManifoldVertexCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.MultipleConnectedComponentCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.NestedRingsCheck; @@ -102,6 +103,7 @@ public class Checks { publish(new PolygonWrongOrientationCheck()); publish(new AllPolygonsWrongOrientationCheck()); publish(new TooFewPolygonsCheck()); + publish(new InteriorFacesCheck()); publish(new ManifoldVertexCheck()); publish(new SolidSelfIntCheck()); diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheck.java new file mode 100644 index 0000000..a3d5f0f --- /dev/null +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheck.java @@ -0,0 +1,100 @@ +package de.hft.stuttgart.citydoctor2.checks.geometry; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import de.hft.stuttgart.citydoctor2.check.Check; +import de.hft.stuttgart.citydoctor2.check.CheckId; +import de.hft.stuttgart.citydoctor2.check.Requirement; +import de.hft.stuttgart.citydoctor2.check.RequirementType; +import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils; +import de.hft.stuttgart.citydoctor2.datastructure.Geometry; +import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; + +/** + * This class checks if a solid geometry has polygons that are fully enclosed inside the boundary surfaces. + * + * @author Alexander Riegel + */ +public class InteriorFacesCheck extends Check { + + private static final List dependencies; + + static { + ArrayList deps = new ArrayList<>(); + deps.add(CheckId.C_GE_R_TOO_FEW_POINTS); + deps.add(CheckId.C_GE_R_NOT_CLOSED); + deps.add(CheckId.C_GE_R_DUPLICATE_POINT); + deps.add(CheckId.C_GE_R_SELF_INTERSECTION); + deps.add(CheckId.C_GE_P_INTERIOR_DISCONNECTED); + deps.add(CheckId.C_GE_P_INTERSECTING_RINGS); + deps.add(CheckId.C_GE_P_NON_PLANAR); + deps.add(CheckId.C_GE_S_TOO_FEW_POLYGONS); + dependencies = Collections.unmodifiableList(deps); + } + + @Override + public void check(Geometry g) { + + // only check solids + if (g.getType() != GeometryType.SOLID) { + return; + } + // TODO: Implement check logic + // Assuming geometry is well defined (no holes or dangling polygons). + // Check should run just before the ManifoldEdgesCheck + // Step 1: + // Check pairs of polygons for their distance + // if they are too closely together (within EPSILON) add them to confirmed set + + // Step 2: + // get centroid of each polygon and move it EPSILON * normalized polygon normal vector + // if that point is inside the solid's geometry, add polygon to confirmed set + + // Step 3: + // Use intersections of the polygon normal vector(raycast from centroid) + // with other polygons to establish a list of suspects. + // Check all found suspects for number of intersections. + // Use intersection count to eliminate wrongly suspected polygons + // After sorting in ascending number of intersections: + // 0 intersections are safe to remove from suspects (safe) + // 1 intersection is guaranteed to be an interior face (confirmed) + // Move these polygons into their respective sets + + // Intersection counts >= 2 require more analysis, + // using dot product of the normalized polygon normal vectors. + // Count the number of positive (same face direction) and negative (opposite face directions) dot products. + // If the intersected polygon is in the confirmed set, ignore them + // If positive count = negative count, move into preliminary safe set + // + + } + + @Override + public Set appliesToRequirements() { + return CollectionUtils.singletonSet(Requirement.R_GE_S_INTERIOR_FACE); + } + + @Override + public List getDependencies() { + return dependencies; + } + + @Override + public RequirementType getType() { + return RequirementType.GEOMETRY; + } + + @Override + public Check createNewInstance() { + return new InteriorFacesCheck(); + } + + @Override + public CheckId getCheckId() { + return CheckId.C_GE_S_INTERIOR_FACE; + } + +} diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheckTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheckTest.java new file mode 100644 index 0000000..51a1b70 --- /dev/null +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheckTest.java @@ -0,0 +1,72 @@ +package de.hft.stuttgart.citydoctor2.checks.geometry; + +import static org.junit.Assert.assertTrue; + +import java.util.List; + +import org.junit.Before; +import org.junit.Test; + +import de.hft.stuttgart.citydoctor2.check.CheckError; +import de.hft.stuttgart.citydoctor2.check.CheckResult; +import de.hft.stuttgart.citydoctor2.check.ErrorId; +import de.hft.stuttgart.citydoctor2.check.ResultStatus; +import de.hft.stuttgart.citydoctor2.check.error.InteriorFaceError; +import de.hft.stuttgart.citydoctor2.datastructure.Geometry; +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static de.hft.stuttgart.citydoctor2.checks.util.GeometryTestUtils.createGoodGeometry; +import static de.hft.stuttgart.citydoctor2.checks.util.GeometryTestUtils.createVertex; +import static de.hft.stuttgart.citydoctor2.checks.util.GeometryTestUtils.addPolygon; + +public class InteriorFacesCheckTest { + + Geometry geom; + + @Before + public void setup() { + geom = createGoodGeometry(); + } + + @Test + public void testGoodGeometry() { + InteriorFacesCheck check = new InteriorFacesCheck(); + check.check(geom); + CheckResult cr = geom.getCheckResult(check); + assertNotNull("Check result must not be null", cr); + assertEquals("Good geometry must return OK check result", ResultStatus.OK, cr.getResultStatus()); + } + + @Test + public void testSimpleGeometryWithInteriorFace() { + Vertex v0 = createVertex(5,0,0,geom); + Vertex v1 = createVertex(5,0,10,geom); + Vertex v2 = createVertex(5,10,10,geom); + Vertex v3 = createVertex(5,10,0,geom); + Polygon insertedInteriorFace = addPolygon(geom, v0, v1, v2, v3); + geom.updateEdgesAndVertices(); + + InteriorFacesCheck check = new InteriorFacesCheck(); + check.check(geom); + CheckResult cr = geom.getCheckResult(check); + assertNotNull(cr); + assertEquals("Check should have detected an error", ResultStatus.ERROR, cr.getResultStatus()); + assertEquals("ID of found Error should be GE_S_INTERIOR_FACE",ErrorId.GE_S_INTERIOR_FACE,cr.getError().getErrorId()); + + CheckError foundError = cr.getError(); + assertTrue("Check should have returned a InteriorFaceError",foundError instanceof InteriorFaceError); + + List interiorFaces = ((InteriorFaceError) foundError).getPolygons(); + assertNotNull(interiorFaces); + assertTrue("InteriorFaces should have a single entry", interiorFaces.size() == 1); + + Polygon foundInteriorFace = interiorFaces.getFirst(); + assertEquals("Found interior face should be the inserted polygon", insertedInteriorFace, foundInteriorFace); + } + + +} -- GitLab From 216ab18abfcaf32a62ba7a2063ba16eaf55c04e4 Mon Sep 17 00:00:00 2001 From: Riegel <22rial1mpg@hft-stuttgart.de> Date: Fri, 12 Jul 2024 08:47:41 +0000 Subject: [PATCH 03/62] Revert "Added basis for implementation of InteriorFacesCheck" This reverts commit 22fce970d4d6fddce51c55bb4e7c1d56aa4bedd5 --- .../stuttgart/citydoctor2/check/CheckId.java | 1 - .../stuttgart/citydoctor2/check/ErrorId.java | 1 - .../citydoctor2/check/Requirement.java | 1 - .../check/error/InteriorFaceError.java | 81 -------------- .../stuttgart/citydoctor2/checks/Checks.java | 2 - .../checks/geometry/InteriorFacesCheck.java | 100 ------------------ .../geometry/InteriorFacesCheckTest.java | 72 ------------- 7 files changed, 258 deletions(-) delete mode 100644 CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorFaceError.java delete mode 100644 CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheck.java delete mode 100644 CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheckTest.java diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/CheckId.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/CheckId.java index d45fc48..16b967a 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/CheckId.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/CheckId.java @@ -37,7 +37,6 @@ public class CheckId implements Serializable { public static final CheckId C_GE_R_NULL_AREA = new CheckId("C_GE_R_NULL_AREA"); public static final CheckId C_GE_S_NON_MANIFOLD_EDGE = new CheckId("C_GE_S_NON_MANIFOLD_EDGE"); public static final CheckId C_GE_S_POLYGON_WRONG_ORIENTATION = new CheckId("C_GE_S_POLYGON_WRONG_ORIENTATION"); - public static final CheckId C_GE_S_INTERIOR_FACE = new CheckId("C_GE_S_INTERIOR_FACE"); public static final CheckId C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION = new CheckId( "C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION"); public static final CheckId C_GE_S_NON_MANIFOLD_VERTEX = new CheckId("C_GE_S_NON_MANIFOLD_VERTEX"); diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorId.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorId.java index 5d4370f..4b9045e 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorId.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/ErrorId.java @@ -47,7 +47,6 @@ public class ErrorId implements Serializable { public static final ErrorId GE_R_NULL_AREA = new ErrorId("GE_R_NULL_AREA"); public static final ErrorId GE_R_TOO_FEW_POINTS = new ErrorId("GE_R_TOO_FEW_POINTS"); public static final ErrorId GE_S_NON_MANIFOLD_EDGE = new ErrorId("GE_S_NON_MANIFOLD_EDGE"); - public static final ErrorId GE_S_INTERIOR_FACE = new ErrorId("GE_S_INTERIOR_FACE"); public static final ErrorId GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION = new ErrorId( "GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION"); public static final ErrorId GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE = new ErrorId( diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java index c744f4e..82c7616 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Requirement.java @@ -47,7 +47,6 @@ public class Requirement implements Serializable { public static final Requirement R_GE_P_INNER_RINGS_NESTED = new Requirement("R_GE_P_INNER_RINGS_NESTED", RequirementType.GEOMETRY); public static final Requirement R_GE_S_TOO_FEW_POLYGONS = new Requirement("R_GE_S_TOO_FEW_POLYGONS", RequirementType.GEOMETRY); public static final Requirement R_GE_S_NOT_CLOSED = new Requirement("R_GE_S_NOT_CLOSED", RequirementType.GEOMETRY); - public static final Requirement R_GE_S_INTERIOR_FACE = new Requirement("R_GE_S_INTERIOR_FACE", RequirementType.GEOMETRY); public static final Requirement R_GE_S_NON_MANIFOLD_EDGE = new Requirement("R_GE_S_NON_MANIFOLD_EDGE", RequirementType.GEOMETRY); public static final Requirement R_GE_S_POLYGON_WRONG_ORIENTATION = new Requirement( "R_GE_S_POLYGON_WRONG_ORIENTATION", RequirementType.GEOMETRY); diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorFaceError.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorFaceError.java deleted file mode 100644 index 743ba00..0000000 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/error/InteriorFaceError.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.hft.stuttgart.citydoctor2.check.error; - -import java.util.List; - -import de.hft.stuttgart.citydoctor2.check.CheckError; -import de.hft.stuttgart.citydoctor2.check.ErrorId; -import de.hft.stuttgart.citydoctor2.check.ErrorReport; -import de.hft.stuttgart.citydoctor2.check.ErrorType; -import de.hft.stuttgart.citydoctor2.check.ErrorVisitor; -import de.hft.stuttgart.citydoctor2.check.HealingMethod; -import de.hft.stuttgart.citydoctor2.check.ModificationListener; -import de.hft.stuttgart.citydoctor2.datastructure.Geometry; -import de.hft.stuttgart.citydoctor2.datastructure.GmlElement; -import de.hft.stuttgart.citydoctor2.datastructure.Polygon; - - -/** - * If a polygon is fully inside a solid geometry this error is created. - * - * @author Alexander Riegel - */ -public class InteriorFaceError implements CheckError{ - - - private static final long serialVersionUID = 6633158315015689806L; - - private List polygons; - private Geometry geom; - - - - public InteriorFaceError(Geometry geom, List polygons) { - super(); - this.polygons = polygons; - this.geom = geom; - } - - public Geometry getGeometry() { - return geom; - } - - public List getPolygons(){ - return polygons; - } - @Override - public ErrorType getType() { - return ErrorType.ERROR; - } - - @Override - public ErrorId getErrorId() { - return ErrorId.GE_S_INTERIOR_FACE; - } - - @Override - public GmlElement getFeature() { - return getGeometry(); - } - - @Override - public void accept(ErrorVisitor errorVisitor) { - errorVisitor.visit(this); - } - - public String toString() { - return "InteriorFaceError [Polygons=" + polygons + ", geom=" + geom + "]"; - } - - @Override - public boolean accept(HealingMethod method, ModificationListener l) { - return method.visit(this, l); - } - - @Override - public void report(ErrorReport report) { - report.add(geom); - polygons.forEach(x -> report.add(x)); - - } - -} diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/Checks.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/Checks.java index 1d87232..aa9ce41 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/Checks.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/Checks.java @@ -34,7 +34,6 @@ import de.hft.stuttgart.citydoctor2.checks.geometry.AllPolygonsWrongOrientationC import de.hft.stuttgart.citydoctor2.checks.geometry.DuplicatePointsCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.HoleOutsideCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.InteriorDisconnectedCheck; -import de.hft.stuttgart.citydoctor2.checks.geometry.InteriorFacesCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.ManifoldVertexCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.MultipleConnectedComponentCheck; import de.hft.stuttgart.citydoctor2.checks.geometry.NestedRingsCheck; @@ -103,7 +102,6 @@ public class Checks { publish(new PolygonWrongOrientationCheck()); publish(new AllPolygonsWrongOrientationCheck()); publish(new TooFewPolygonsCheck()); - publish(new InteriorFacesCheck()); publish(new ManifoldVertexCheck()); publish(new SolidSelfIntCheck()); diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheck.java deleted file mode 100644 index a3d5f0f..0000000 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheck.java +++ /dev/null @@ -1,100 +0,0 @@ -package de.hft.stuttgart.citydoctor2.checks.geometry; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -import de.hft.stuttgart.citydoctor2.check.Check; -import de.hft.stuttgart.citydoctor2.check.CheckId; -import de.hft.stuttgart.citydoctor2.check.Requirement; -import de.hft.stuttgart.citydoctor2.check.RequirementType; -import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils; -import de.hft.stuttgart.citydoctor2.datastructure.Geometry; -import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; - -/** - * This class checks if a solid geometry has polygons that are fully enclosed inside the boundary surfaces. - * - * @author Alexander Riegel - */ -public class InteriorFacesCheck extends Check { - - private static final List dependencies; - - static { - ArrayList deps = new ArrayList<>(); - deps.add(CheckId.C_GE_R_TOO_FEW_POINTS); - deps.add(CheckId.C_GE_R_NOT_CLOSED); - deps.add(CheckId.C_GE_R_DUPLICATE_POINT); - deps.add(CheckId.C_GE_R_SELF_INTERSECTION); - deps.add(CheckId.C_GE_P_INTERIOR_DISCONNECTED); - deps.add(CheckId.C_GE_P_INTERSECTING_RINGS); - deps.add(CheckId.C_GE_P_NON_PLANAR); - deps.add(CheckId.C_GE_S_TOO_FEW_POLYGONS); - dependencies = Collections.unmodifiableList(deps); - } - - @Override - public void check(Geometry g) { - - // only check solids - if (g.getType() != GeometryType.SOLID) { - return; - } - // TODO: Implement check logic - // Assuming geometry is well defined (no holes or dangling polygons). - // Check should run just before the ManifoldEdgesCheck - // Step 1: - // Check pairs of polygons for their distance - // if they are too closely together (within EPSILON) add them to confirmed set - - // Step 2: - // get centroid of each polygon and move it EPSILON * normalized polygon normal vector - // if that point is inside the solid's geometry, add polygon to confirmed set - - // Step 3: - // Use intersections of the polygon normal vector(raycast from centroid) - // with other polygons to establish a list of suspects. - // Check all found suspects for number of intersections. - // Use intersection count to eliminate wrongly suspected polygons - // After sorting in ascending number of intersections: - // 0 intersections are safe to remove from suspects (safe) - // 1 intersection is guaranteed to be an interior face (confirmed) - // Move these polygons into their respective sets - - // Intersection counts >= 2 require more analysis, - // using dot product of the normalized polygon normal vectors. - // Count the number of positive (same face direction) and negative (opposite face directions) dot products. - // If the intersected polygon is in the confirmed set, ignore them - // If positive count = negative count, move into preliminary safe set - // - - } - - @Override - public Set appliesToRequirements() { - return CollectionUtils.singletonSet(Requirement.R_GE_S_INTERIOR_FACE); - } - - @Override - public List getDependencies() { - return dependencies; - } - - @Override - public RequirementType getType() { - return RequirementType.GEOMETRY; - } - - @Override - public Check createNewInstance() { - return new InteriorFacesCheck(); - } - - @Override - public CheckId getCheckId() { - return CheckId.C_GE_S_INTERIOR_FACE; - } - -} diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheckTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheckTest.java deleted file mode 100644 index 51a1b70..0000000 --- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/InteriorFacesCheckTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package de.hft.stuttgart.citydoctor2.checks.geometry; - -import static org.junit.Assert.assertTrue; - -import java.util.List; - -import org.junit.Before; -import org.junit.Test; - -import de.hft.stuttgart.citydoctor2.check.CheckError; -import de.hft.stuttgart.citydoctor2.check.CheckResult; -import de.hft.stuttgart.citydoctor2.check.ErrorId; -import de.hft.stuttgart.citydoctor2.check.ResultStatus; -import de.hft.stuttgart.citydoctor2.check.error.InteriorFaceError; -import de.hft.stuttgart.citydoctor2.datastructure.Geometry; -import de.hft.stuttgart.citydoctor2.datastructure.Polygon; -import de.hft.stuttgart.citydoctor2.datastructure.Vertex; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static de.hft.stuttgart.citydoctor2.checks.util.GeometryTestUtils.createGoodGeometry; -import static de.hft.stuttgart.citydoctor2.checks.util.GeometryTestUtils.createVertex; -import static de.hft.stuttgart.citydoctor2.checks.util.GeometryTestUtils.addPolygon; - -public class InteriorFacesCheckTest { - - Geometry geom; - - @Before - public void setup() { - geom = createGoodGeometry(); - } - - @Test - public void testGoodGeometry() { - InteriorFacesCheck check = new InteriorFacesCheck(); - check.check(geom); - CheckResult cr = geom.getCheckResult(check); - assertNotNull("Check result must not be null", cr); - assertEquals("Good geometry must return OK check result", ResultStatus.OK, cr.getResultStatus()); - } - - @Test - public void testSimpleGeometryWithInteriorFace() { - Vertex v0 = createVertex(5,0,0,geom); - Vertex v1 = createVertex(5,0,10,geom); - Vertex v2 = createVertex(5,10,10,geom); - Vertex v3 = createVertex(5,10,0,geom); - Polygon insertedInteriorFace = addPolygon(geom, v0, v1, v2, v3); - geom.updateEdgesAndVertices(); - - InteriorFacesCheck check = new InteriorFacesCheck(); - check.check(geom); - CheckResult cr = geom.getCheckResult(check); - assertNotNull(cr); - assertEquals("Check should have detected an error", ResultStatus.ERROR, cr.getResultStatus()); - assertEquals("ID of found Error should be GE_S_INTERIOR_FACE",ErrorId.GE_S_INTERIOR_FACE,cr.getError().getErrorId()); - - CheckError foundError = cr.getError(); - assertTrue("Check should have returned a InteriorFaceError",foundError instanceof InteriorFaceError); - - List interiorFaces = ((InteriorFaceError) foundError).getPolygons(); - assertNotNull(interiorFaces); - assertTrue("InteriorFaces should have a single entry", interiorFaces.size() == 1); - - Polygon foundInteriorFace = interiorFaces.getFirst(); - assertEquals("Found interior face should be the inserted polygon", insertedInteriorFace, foundInteriorFace); - } - - -} -- GitLab From a27795deb24c8c10152ca734bbc173f9e2d55a84 Mon Sep 17 00:00:00 2001 From: Alex <22rial1mpg@hft-stuttgart.de> Date: Thu, 25 Jul 2024 17:34:19 +0200 Subject: [PATCH 04/62] Bugfix for found false positives of C_GE_S_SELF_INTERSECTION --- .../stuttgart/citydoctor2/edge/PolyLine.java | 37 + .../citydoctor2/edge/PolyLineSegment.java | 5 + .../checks/geometry/SolidSelfIntCheck.java | 5 +- .../checks/util/SelfIntersectionUtil.java | 13 +- .../checks/geometry/RingSelfIntCheckTest.java | 2 + .../geometry/SolidSelfIntCheckTest.java | 102 + ...SolidSelfIntTest-known_false_positive1.gml | 1206 ++ ...SolidSelfIntTest-known_false_positive2.gml | 15023 ++++++++++++++++ ...SolidSelfIntTest-known_false_positive3.gml | 9569 ++++++++++ ...SolidSelfIntTest-known_false_positive4.gml | 2170 +++ 10 files changed, 28128 insertions(+), 4 deletions(-) create mode 100644 CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive1.gml create mode 100644 CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive2.gml create mode 100644 CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive3.gml create mode 100644 CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive4.gml diff --git a/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLine.java b/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLine.java index 4a3c127..dff20ee 100644 --- a/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLine.java +++ b/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLine.java @@ -77,6 +77,43 @@ public class PolyLine extends BaseEntity { public PolyLineSegment getLastSegment() { return mpLast; } + + public Boolean isNullLine() { + return isNullLine(0.00); + } + + + public Boolean isNullLine(Double tolerance) { + // If either start or end Segment is null, return immediately + if (mpFirst == null || mpLast == null) { + return true; + } + PolyLineSegment currentSegment = mpFirst; + Double length = 0.00; + // Add length of all segments, starting from mpFirst + do { + Double segmentLength = currentSegment.getLengthVector().getLength(); + if (segmentLength > tolerance) { + length += segmentLength; + } + if (currentSegment.getNext() != null) { + currentSegment = currentSegment.getNext(); + } + + + } while (currentSegment.getNext() != null); + // Since mpLast will be missed due to loop condition add its length afterwards + Double segmentLength = mpLast.getLengthVector().getLength(); + if (segmentLength > tolerance) { + length += segmentLength; + } + // Check if total length is less than the set tolerance + if (length <= tolerance) { + return true; + } + return false; + + } @Override public String toString() { diff --git a/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLineSegment.java b/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLineSegment.java index 2cd70f5..5af8039 100644 --- a/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLineSegment.java +++ b/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLineSegment.java @@ -57,6 +57,11 @@ public class PolyLineSegment extends BaseEntity { public PolyLineSegment getNext() { return mpNext; } + + public Vector3d getLengthVector() { + Vector3d representation = mpEnd.getPoint().minus(mpStart.getPoint()); + return representation; + } @Override public String toString() { diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheck.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheck.java index 67f16dd..6a373f9 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheck.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheck.java @@ -34,9 +34,12 @@ import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.error.SolidSelfIntError; import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils; import de.hft.stuttgart.citydoctor2.checks.util.SelfIntersectionUtil; +import de.hft.stuttgart.citydoctor2.datastructure.ConcretePolygon; import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; +import de.hft.stuttgart.citydoctor2.math.Segment3d; import de.hft.stuttgart.citydoctor2.utils.PolygonIntersection; +import de.hft.stuttgart.citydoctor2.utils.PolygonIntersection.IntersectionType; /** * Check for self intersecting solids @@ -101,7 +104,7 @@ public class SolidSelfIntCheck extends Check { public List getDependencies() { return dependencies; } - + @Override public Set appliesToRequirements() { return CollectionUtils.singletonSet(Requirement.R_GE_S_SELF_INTERSECTION); diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/util/SelfIntersectionUtil.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/util/SelfIntersectionUtil.java index 994ef36..30369f8 100644 --- a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/util/SelfIntersectionUtil.java +++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/util/SelfIntersectionUtil.java @@ -118,10 +118,17 @@ public class SelfIntersectionUtil { Polygon p1, Polygon p2) { EdgePolygon edgeP1 = edgePolyMap.get(p1); EdgePolygon edgeP2 = edgePolyMap.get(p2); - List result = IntersectPlanarPolygons.intersectPolygons(edgeP1, edgeP2, 0.000001, 0.001); - if (!result.isEmpty()) { + List results = IntersectPlanarPolygons.intersectPolygons(edgeP1, edgeP2, 0.000001, 0.001); + if (!results.isEmpty()) { // at least one intersection happened - intersections.add(PolygonIntersection.lines(Collections.emptyList(), p1, p2)); + for (PolygonPolygonIntersection result: results) { + // Ensure that Intersection-Edge is not a Null-Line. + // If it is a Null-Line, detected Intersection is a False-Positive. + if (!result.getPolyLine().isNullLine()) { + intersections.add(PolygonIntersection.lines(Collections.emptyList(), p1, p2)); + } + } + } } diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheckTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheckTest.java index cea59da..b93fd42 100644 --- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheckTest.java +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/RingSelfIntCheckTest.java @@ -196,5 +196,7 @@ public class RingSelfIntCheckTest { assertSame(ResultStatus.OK, cr.getResultStatus()); } + + } diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java index b8ad9c6..7e001ce 100644 --- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java @@ -18,8 +18,15 @@ */ package de.hft.stuttgart.citydoctor2.checks.geometry; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import java.util.ArrayList; +import java.util.List; + +import org.apache.logging.log4j.core.util.internal.Status; import org.junit.Assert; import org.junit.Test; @@ -28,8 +35,11 @@ import de.hft.stuttgart.citydoctor2.check.Checker; import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration; import de.hft.stuttgart.citydoctor2.checks.util.GeometryTestUtils; +import de.hft.stuttgart.citydoctor2.datastructure.Building; import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; import de.hft.stuttgart.citydoctor2.datastructure.Geometry; +import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; +import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; import de.hft.stuttgart.citydoctor2.parser.CityGmlParser; import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; @@ -72,5 +82,97 @@ public class SolidSelfIntCheckTest { c.runChecks(); assertFalse(m.getBuildings().get(0).containsAnyError()); } + + @Test + public void testKnownFalsePositiveExample1() throws CityGmlParseException, InvalidGmlFileException { + ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); + config.setSchematronFilePathInGlobalParameters(null); + CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive1.gml", config.getParserConfiguration()); + Checker c = new Checker(config, m); + c.runChecks(); + Building building = m.getBuildings().get(0); + System.out.println(building.containsAnyError()); + // Example1 Building has some BuildingInstallations, which throw semantic errors + if (building.containsAnyError()) { + Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); + buildingGeom.clearCheckResults(); + SolidSelfIntCheck check = new SolidSelfIntCheck(); + check.check(buildingGeom); + CheckResult cr = buildingGeom.getCheckResult(check); + assertNotNull(cr); + //Ensure that checker did not find a self intersection + assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); + } + + + } + + @Test + public void testKnownFalsePositiveExample2() throws CityGmlParseException, InvalidGmlFileException { + ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); + config.setSchematronFilePathInGlobalParameters(null); + CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive2.gml", config.getParserConfiguration()); + Checker c = new Checker(config, m); + c.runChecks(); + Building building = m.getBuildings().get(0); + // If an error was found, check if error is SolidSelfInt + if (building.containsAnyError()) { + Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); + buildingGeom.clearCheckResults(); + SolidSelfIntCheck check = new SolidSelfIntCheck(); + check.check(buildingGeom); + CheckResult cr = buildingGeom.getCheckResult(check); + assertNotNull(cr); + assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); + } + + + } + + @Test + public void testKnownFalsePositiveExample3() throws CityGmlParseException, InvalidGmlFileException { + ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); + config.setSchematronFilePathInGlobalParameters(null); + CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive3.gml", config.getParserConfiguration()); + Checker c = new Checker(config, m); + c.runChecks(); + Building building = m.getBuildings().get(0); + // If an error was found, check if error is SolidSelfInt + if (building.containsAnyError()) { + Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); + buildingGeom.clearCheckResults(); + SolidSelfIntCheck check = new SolidSelfIntCheck(); + check.check(buildingGeom); + CheckResult cr = buildingGeom.getCheckResult(check); + assertNotNull(cr); + //Ensure that checker did not find the false-positive self intersection + assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); + } + + + } + + @Test + public void testKnownFalsePositiveExample4() throws CityGmlParseException, InvalidGmlFileException { + ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); + config.setSchematronFilePathInGlobalParameters(null); + CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive4.gml", config.getParserConfiguration()); + Checker c = new Checker(config, m); + c.runChecks(); + Building building = m.getBuildings().get(0); + // If an error was found, check if error is SolidSelfInt + if (building.containsAnyError()) { + Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); + buildingGeom.clearCheckResults(); + SolidSelfIntCheck check = new SolidSelfIntCheck(); + check.check(buildingGeom); + CheckResult cr = buildingGeom.getCheckResult(check); + assertNotNull(cr); + //Ensure that checker did not find the false-positive self intersection + assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); + } + + + } } diff --git a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive1.gml b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive1.gml new file mode 100644 index 0000000..8ba8551 --- /dev/null +++ b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive1.gml @@ -0,0 +1,1206 @@ + + + + + 2024-07-22 + + http://www.adv-online.de/fdv/art.htm#_9100 + + DENW52AL00tCtssr' + + + + 1000 + + + 2200 + + + 1100 + + + 05562032 + + 31001_1010 + 12.0 + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 360717.173 5718248.655 77.5 360717.593 5718249.986 77.5 360724.846 5718247.724 77.5 360724.416 5718246.39 77.5 360717.173 5718248.655 77.5 + + + + + + + + + 360724.416 5718246.39 78.0 360724.846 5718247.724 78.0 360717.593 5718249.986 78.0 360717.173 5718248.655 78.0 360724.416 5718246.39 78.0 + + + + + + + + + 360717.173 5718248.655 77.5 360724.416 5718246.39 77.5 360724.416 5718246.39 78.0 360717.173 5718248.655 78.0 360717.173 5718248.655 77.5 + + + + + + + + + 360717.593 5718249.986 77.5 360717.173 5718248.655 77.5 360717.173 5718248.655 78.0 360717.593 5718249.986 78.0 360717.593 5718249.986 77.5 + + + + + + + + + 360724.846 5718247.724 77.5 360717.593 5718249.986 77.5 360717.593 5718249.986 78.0 360724.846 5718247.724 78.0 360724.846 5718247.724 77.5 + + + + + + + + + 360724.416 5718246.39 77.5 360724.846 5718247.724 77.5 360724.846 5718247.724 78.0 360724.416 5718246.39 78.0 360724.416 5718246.39 77.5 + + + + + + + + + + + + + + + + + + + + + 360725.378 5718234.942 80.7 360728.731 5718233.901 80.7 360727.841 5718231.036 80.7 360723.663 5718232.3 80.7 360723.873 5718232.95 80.7 360724.626 5718232.714 80.7 360725.378 5718234.942 80.7 + + + + + + + + + 360724.626 5718232.714 81.0 360723.873 5718232.95 81.0 360723.663 5718232.3 81.0 360727.841 5718231.036 81.0 360728.731 5718233.901 81.0 360725.378 5718234.942 81.0 360724.626 5718232.714 81.0 + + + + + + + + + 360725.378 5718234.942 80.7 360724.626 5718232.714 80.7 360724.626 5718232.714 81.0 360725.378 5718234.942 81.0 360725.378 5718234.942 80.7 + + + + + + + + + 360728.731 5718233.901 80.7 360725.378 5718234.942 80.7 360725.378 5718234.942 81.0 360728.731 5718233.901 81.0 360728.731 5718233.901 80.7 + + + + + + + + + 360727.841 5718231.036 80.7 360728.731 5718233.901 80.7 360728.731 5718233.901 81.0 360727.841 5718231.036 81.0 360727.841 5718231.036 80.7 + + + + + + + + + 360723.663 5718232.3 80.7 360727.841 5718231.036 80.7 360727.841 5718231.036 81.0 360723.663 5718232.3 81.0 360723.663 5718232.3 80.7 + + + + + + + + + 360723.873 5718232.95 80.7 360723.663 5718232.3 80.7 360723.663 5718232.3 81.0 360723.873 5718232.95 81.0 360723.873 5718232.95 80.7 + + + + + + + + + 360724.626 5718232.714 80.7 360723.873 5718232.95 80.7 360723.873 5718232.95 81.0 360724.626 5718232.714 81.0 360724.626 5718232.714 80.7 + + + + + + + + + + + + + + + + + + + + + 360705.588 5718238.071 80.7 360706.52 5718240.923 80.7 360709.839 5718239.838 80.7 360709.128 5718237.541 80.7 360709.985 5718237.272 80.7 360709.805 5718236.677 80.7 360705.588 5718238.071 80.7 + + + + + + + + + 360709.805 5718236.677 81.0 360709.985 5718237.272 81.0 360709.128 5718237.541 81.0 360709.839 5718239.838 81.0 360706.52 5718240.923 81.0 360705.588 5718238.071 81.0 360709.805 5718236.677 81.0 + + + + + + + + + 360705.588 5718238.071 80.7 360709.805 5718236.677 80.7 360709.805 5718236.677 81.0 360705.588 5718238.071 81.0 360705.588 5718238.071 80.7 + + + + + + + + + 360706.52 5718240.923 80.7 360705.588 5718238.071 80.7 360705.588 5718238.071 81.0 360706.52 5718240.923 81.0 360706.52 5718240.923 80.7 + + + + + + + + + 360709.839 5718239.838 80.7 360706.52 5718240.923 80.7 360706.52 5718240.923 81.0 360709.839 5718239.838 81.0 360709.839 5718239.838 80.7 + + + + + + + + + 360709.128 5718237.541 80.7 360709.839 5718239.838 80.7 360709.839 5718239.838 81.0 360709.128 5718237.541 81.0 360709.128 5718237.541 80.7 + + + + + + + + + 360709.985 5718237.272 80.7 360709.128 5718237.541 80.7 360709.128 5718237.541 81.0 360709.985 5718237.272 81.0 360709.985 5718237.272 80.7 + + + + + + + + + 360709.805 5718236.677 80.7 360709.985 5718237.272 80.7 360709.985 5718237.272 81.0 360709.805 5718236.677 81.0 360709.805 5718236.677 80.7 + + + + + + + + + + + + + + + + + + + + 360708.054 5718252.973 69.0 360717.593 5718249.986 69.0 360717.173 5718248.655 69.0 360724.416 5718246.39 69.0 360724.846 5718247.724 69.0 360734.391 5718244.74 69.0 360734.349 5718244.6 69.0 360732.755 5718239.507 69.0 360730.218 5718231.37 69.0 360730.102 5718230.999 69.0 360724.626 5718232.714 69.0 360724.407 5718232.065 69.0 360723.663 5718232.3 69.0 360723.561 5718231.983 69.0 360723.258 5718232.072 69.0 360722.857 5718232.199 69.0 360717.014 5718234.018 69.0 360716.25 5718234.266 69.0 360710.418 5718236.092 69.0 360709.99 5718236.222 69.0 360709.696 5718236.319 69.0 360709.805 5718236.677 69.0 360708.945 5718236.949 69.0 360709.128 5718237.541 69.0 360703.751 5718239.23 69.0 360703.872 5718239.619 69.0 360706.41 5718247.738 69.0 360708.006 5718252.816 69.0 360708.054 5718252.973 69.0 + + + + + + + + + + + + + + + + + 360708.054 5718252.973 69.0 360708.006 5718252.816 69.0 360708.006 5718252.816 78.0 360708.054 5718252.973 78.0 360708.054 5718252.973 69.0 + + + + + + + + + + + + + + + + + 360717.593 5718249.986 69.0 360708.054 5718252.973 69.0 360708.054 5718252.973 78.0 360717.593 5718249.986 78.0 360717.593 5718249.986 69.0 + + + + + + + + + + + + + + + + + 360717.173 5718248.655 69.0 360717.593 5718249.986 69.0 360717.593 5718249.986 78.0 360717.173 5718248.655 78.0 360717.173 5718248.655 69.0 + + + + + + + + + + + + + + + + + 360724.416 5718246.39 69.0 360717.173 5718248.655 69.0 360717.173 5718248.655 78.0 360724.416 5718246.39 78.0 360724.416 5718246.39 69.0 + + + + + + + + + + + + + + + + + 360724.846 5718247.724 69.0 360724.416 5718246.39 69.0 360724.416 5718246.39 78.0 360724.846 5718247.724 78.0 360724.846 5718247.724 69.0 + + + + + + + + + + + + + + + + + 360734.391 5718244.74 69.0 360724.846 5718247.724 69.0 360724.846 5718247.724 78.0 360734.391 5718244.74 78.0 360734.391 5718244.74 69.0 + + + + + + + + + + + + + + + + + 360734.349 5718244.6 69.0 360734.391 5718244.74 69.0 360734.391 5718244.74 78.0 360734.349 5718244.6 78.0 360734.349 5718244.6 69.0 + + + + + + + + + + + + + + + + + 360732.755 5718239.507 69.0 360734.349 5718244.6 69.0 360734.349 5718244.6 78.0 360732.755 5718239.507 78.0 360732.755 5718239.507 69.0 + + + + + + + + + + + + + + + + + 360730.218 5718231.37 69.0 360732.755 5718239.507 69.0 360732.755 5718239.507 78.0 360730.218 5718231.37 78.0 360730.218 5718231.37 69.0 + + + + + + + + + + + + + + + + + 360730.102 5718230.999 69.0 360730.218 5718231.37 69.0 360730.218 5718231.37 78.0 360730.102 5718230.999 78.0 360730.102 5718230.999 69.0 + + + + + + + + + + + + + + + + + 360724.626 5718232.714 69.0 360730.102 5718230.999 69.0 360730.102 5718230.999 78.0 360724.626 5718232.714 78.0 360724.626 5718232.714 69.0 + + + + + + + + + + + + + + + + + 360724.407 5718232.065 69.0 360724.626 5718232.714 69.0 360724.626 5718232.714 78.0 360724.407 5718232.065 78.0 360724.407 5718232.065 69.0 + + + + + + + + + + + + + + + + + 360723.663 5718232.3 69.0 360724.407 5718232.065 69.0 360724.407 5718232.065 78.0 360723.663 5718232.3 78.0 360723.663 5718232.3 69.0 + + + + + + + + + + + + + + + + + 360723.561 5718231.983 69.0 360723.663 5718232.3 69.0 360723.663 5718232.3 78.0 360723.561 5718231.983 78.0 360723.561 5718231.983 69.0 + + + + + + + + + + + + + + + + + 360723.258 5718232.072 69.0 360723.561 5718231.983 69.0 360723.561 5718231.983 78.0 360723.258 5718232.072 78.0 360723.258 5718232.072 69.0 + + + + + + + + + + + + + + + + + 360722.857 5718232.199 69.0 360723.258 5718232.072 69.0 360723.258 5718232.072 78.0 360722.857 5718232.199 78.0 360722.857 5718232.199 69.0 + + + + + + + + + + + + + + + + + 360717.014 5718234.018 69.0 360722.857 5718232.199 69.0 360722.857 5718232.199 78.0 360717.014 5718234.018 78.0 360717.014 5718234.018 69.0 + + + + + + + + + + + + + + + + + 360716.25 5718234.266 69.0 360717.014 5718234.018 69.0 360717.014 5718234.018 78.0 360716.25 5718234.266 78.0 360716.25 5718234.266 69.0 + + + + + + + + + + + + + + + + + 360710.418 5718236.092 69.0 360716.25 5718234.266 69.0 360716.25 5718234.266 78.0 360710.418 5718236.092 78.0 360710.418 5718236.092 69.0 + + + + + + + + + + + + + + + + + 360709.99 5718236.222 69.0 360710.418 5718236.092 69.0 360710.418 5718236.092 78.0 360709.99 5718236.222 78.0 360709.99 5718236.222 69.0 + + + + + + + + + + + + + + + + + 360709.696 5718236.319 69.0 360709.99 5718236.222 69.0 360709.99 5718236.222 78.0 360709.696 5718236.319 78.0 360709.696 5718236.319 69.0 + + + + + + + + + + + + + + + + + 360709.805 5718236.677 69.0 360709.696 5718236.319 69.0 360709.696 5718236.319 78.0 360709.805 5718236.677 78.0 360709.805 5718236.677 69.0 + + + + + + + + + + + + + + + + + 360708.945 5718236.949 69.0 360709.805 5718236.677 69.0 360709.805 5718236.677 78.0 360708.945 5718236.949 78.0 360708.945 5718236.949 69.0 + + + + + + + + + + + + + + + + + 360709.128 5718237.541 69.0 360708.945 5718236.949 69.0 360708.945 5718236.949 78.0 360709.128 5718237.541 78.0 360709.128 5718237.541 69.0 + + + + + + + + + + + + + + + + + 360703.751 5718239.23 69.0 360709.128 5718237.541 69.0 360709.128 5718237.541 78.0 360703.751 5718239.23 78.0 360703.751 5718239.23 69.0 + + + + + + + + + + + + + + + + + 360703.872 5718239.619 69.0 360703.751 5718239.23 69.0 360703.751 5718239.23 78.0 360703.872 5718239.619 78.0 360703.872 5718239.619 69.0 + + + + + + + + + + + + + + + + + 360706.41 5718247.738 69.0 360703.872 5718239.619 69.0 360703.872 5718239.619 78.0 360706.41 5718247.738 78.0 360706.41 5718247.738 69.0 + + + + + + + + + + + + + + + + + 360708.006 5718252.816 69.0 360706.41 5718247.738 69.0 360706.41 5718247.738 78.0 360708.006 5718252.816 78.0 360708.006 5718252.816 69.0 + + + + + + + + + + + + + + + + + 360724.425 5718246.274 81.0 360724.157 5718245.499 81.0 360716.904 5718247.739 81.0 360717.173 5718248.535 81.0 360709.661 5718250.904 81.0 360706.52 5718240.923 81.0 360709.839 5718239.838 81.0 360709.128 5718237.541 81.0 360709.985 5718237.272 81.0 360709.805 5718236.677 81.0 360723.663 5718232.3 81.0 360723.873 5718232.95 81.0 360724.626 5718232.714 81.0 360725.378 5718234.942 81.0 360728.731 5718233.901 81.0 360731.893 5718243.929 81.0 360724.425 5718246.274 81.0 + + + + + + + + + + + + + + + + + 360731.893 5718243.929 78.0 360724.425 5718246.274 78.0 360724.425 5718246.274 81.0 360731.893 5718243.929 81.0 360731.893 5718243.929 78.0 + + + + + + + + + + + + + + + + + 360728.731 5718233.901 78.0 360731.893 5718243.929 78.0 360731.893 5718243.929 81.0 360728.731 5718233.901 81.0 360728.731 5718233.901 78.0 + + + + + + + + + + + + + + + + + 360725.378 5718234.942 78.0 360728.731 5718233.901 78.0 360728.731 5718233.901 81.0 360725.378 5718234.942 81.0 360725.378 5718234.942 78.0 + + + + + + + + + + + + + + + + + 360724.626 5718232.714 78.0 360725.378 5718234.942 78.0 360725.378 5718234.942 81.0 360724.626 5718232.714 81.0 360724.626 5718232.714 78.0 + + + + + + + + + + + + + + + + + 360723.873 5718232.95 78.0 360724.626 5718232.714 78.0 360724.626 5718232.714 81.0 360723.873 5718232.95 81.0 360723.873 5718232.95 78.0 + + + + + + + + + + + + + + + + + 360723.663 5718232.3 78.0 360723.873 5718232.95 78.0 360723.873 5718232.95 81.0 360723.663 5718232.3 81.0 360723.663 5718232.3 78.0 + + + + + + + + + + + + + + + + + 360709.805 5718236.677 78.0 360723.663 5718232.3 78.0 360723.663 5718232.3 81.0 360709.805 5718236.677 81.0 360709.805 5718236.677 78.0 + + + + + + + + + + + + + + + + + 360709.985 5718237.272 78.0 360709.805 5718236.677 78.0 360709.805 5718236.677 81.0 360709.985 5718237.272 81.0 360709.985 5718237.272 78.0 + + + + + + + + + + + + + + + + + 360709.128 5718237.541 78.0 360709.985 5718237.272 78.0 360709.985 5718237.272 81.0 360709.128 5718237.541 81.0 360709.128 5718237.541 78.0 + + + + + + + + + + + + + + + + + 360709.839 5718239.838 78.0 360709.128 5718237.541 78.0 360709.128 5718237.541 81.0 360709.839 5718239.838 81.0 360709.839 5718239.838 78.0 + + + + + + + + + + + + + + + + + 360706.52 5718240.923 78.0 360709.839 5718239.838 78.0 360709.839 5718239.838 81.0 360706.52 5718240.923 81.0 360706.52 5718240.923 78.0 + + + + + + + + + + + + + + + + + 360709.661 5718250.904 78.0 360706.52 5718240.923 78.0 360706.52 5718240.923 81.0 360709.661 5718250.904 81.0 360709.661 5718250.904 78.0 + + + + + + + + + + + + + + + + + 360717.173 5718248.535 78.0 360709.661 5718250.904 78.0 360709.661 5718250.904 81.0 360717.173 5718248.535 81.0 360717.173 5718248.535 78.0 + + + + + + + + + + + + + + + + + 360716.904 5718247.739 78.0 360717.173 5718248.535 78.0 360717.173 5718248.535 81.0 360716.904 5718247.739 81.0 360716.904 5718247.739 78.0 + + + + + + + + + + + + + + + + + 360724.157 5718245.499 78.0 360716.904 5718247.739 78.0 360716.904 5718247.739 81.0 360724.157 5718245.499 81.0 360724.157 5718245.499 78.0 + + + + + + + + + + + + + + + + + 360724.425 5718246.274 78.0 360724.157 5718245.499 78.0 360724.157 5718245.499 81.0 360724.425 5718246.274 81.0 360724.425 5718246.274 78.0 + + + + + + + + + + + + + + + + + 360724.626 5718232.714 78.0 360723.873 5718232.95 78.0 360723.663 5718232.3 78.0 360724.407 5718232.065 78.0 360724.626 5718232.714 78.0 + + + + + + + + + + + + + + + + + 360728.731 5718233.901 78.0 360725.378 5718234.942 78.0 360724.626 5718232.714 78.0 360730.102 5718230.999 78.0 360730.218 5718231.37 78.0 360732.755 5718239.507 78.0 360734.349 5718244.6 78.0 360734.391 5718244.74 78.0 360724.846 5718247.724 78.0 360724.416 5718246.39 78.0 360717.173 5718248.655 78.0 360717.593 5718249.986 78.0 360708.054 5718252.973 78.0 360708.006 5718252.816 78.0 360706.41 5718247.738 78.0 360703.872 5718239.619 78.0 360703.751 5718239.23 78.0 360709.128 5718237.541 78.0 360709.839 5718239.838 78.0 360706.52 5718240.923 78.0 360709.661 5718250.904 78.0 360717.173 5718248.535 78.0 360716.904 5718247.739 78.0 360724.157 5718245.499 78.0 360724.425 5718246.274 78.0 360731.893 5718243.929 78.0 360728.731 5718233.901 78.0 + + + + + + + + + + + + + + + + + 360709.985 5718237.272 78.0 360709.128 5718237.541 78.0 360708.945 5718236.949 78.0 360709.805 5718236.677 78.0 360709.985 5718237.272 78.0 + + + + + + + + + + + + + + + + + 360723.663 5718232.3 78.0 360709.805 5718236.677 78.0 360709.696 5718236.319 78.0 360709.99 5718236.222 78.0 360710.418 5718236.092 78.0 360716.25 5718234.266 78.0 360717.014 5718234.018 78.0 360722.857 5718232.199 78.0 360723.258 5718232.072 78.0 360723.561 5718231.983 78.0 360723.663 5718232.3 78.0 + + + + + + + + + + + + + + + Germany + + + + Gladbeck + + + + 14 + + + Schlaegelstraße + + + + + + + + + + + 360719.624 5718243.812 0.0 + + + + + + + + + \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive2.gml b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive2.gml new file mode 100644 index 0000000..7f9caf7 --- /dev/null +++ b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive2.gml @@ -0,0 +1,15023 @@ + + + + + 2022-11-17 + + http://repository.gdi-de.org/schemas/adv/citygml/fdv/art.htm#_9100 + + DEBWL52210004hX7 + + + + 08111000 + + + 1000 + + + 2000 + + + 3000 + + + 1000 + + + 1100 + + + 2023-03-12 + + 31001_2050 + 3100 + 20.86 + 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 513149.039 5402569.757 262.588 513149.05 5402569.737 262.587 513149.064 5402569.722 262.586 513149.079 5402569.707 262.586 513149.101 5402569.689 262.585 513149.125 5402569.673 262.585 513149.143 5402569.662 262.585 513149.164 5402569.656 262.585 513149.039 5402569.757 262.588 + + + + + + + + + + + + + + + + + 513149.026 5402569.772 262.588 513149.039 5402569.757 262.588 513149.164 5402569.656 262.585 513149.182 5402569.646 262.585 513149.202 5402569.639 262.585 513149.222 5402569.634 262.585 513149.243 5402569.631 262.585 513149.264 5402569.629 262.586 513149.285 5402569.628 262.586 513149.306 5402569.629 262.587 513149.327 5402569.631 262.588 513149.348 5402569.635 262.589 513149.368 5402569.64 262.589 513149.389 5402569.647 262.59 513149.408 5402569.655 262.591 513149.427 5402569.665 262.593 513149.445 5402569.675 262.594 513149.463 5402569.687 262.595 513149.479 5402569.7 262.596 513149.5 5402569.72 262.598 513149.76 5402569.94 262.62 513149.3 5402570.36 262.634 513149.02 5402570.08 262.608 513149.007 5402570.055 262.606 513148.999 5402570.035 262.605 513148.993 5402570.015 262.603 513148.987 5402569.995 262.602 513148.984 5402569.974 262.6 513148.981 5402569.953 262.599 513148.98 5402569.932 262.597 513148.981 5402569.911 262.596 513148.983 5402569.89 262.595 513148.987 5402569.869 262.594 513148.992 5402569.849 262.592 513148.999 5402569.83 262.591 513149.008 5402569.81 262.59 513149.016 5402569.791 262.589 513149.026 5402569.772 262.588 + + + + + + + + + + + + + + + + + 513152.973 5402566.33 262.476 513152.977 5402566.309 262.474 513152.982 5402566.289 262.473 513152.988 5402566.269 262.472 513152.996 5402566.249 262.471 513153.009 5402566.231 262.47 513152.981 5402566.436 262.483 513152.974 5402566.414 262.481 513152.971 5402566.393 262.48 513152.97 5402566.372 262.478 513152.971 5402566.351 262.477 513152.973 5402566.33 262.476 + + + + + + + + + + + + + + + + + 513165.11 5402564.25 262.68 513169.61 5402562.26 262.677 513169.583 5402562.24 262.675 513169.564 5402562.224 262.673 513169.547 5402562.207 262.672 513169.531 5402562.189 262.67 513169.516 5402562.169 262.668 513169.503 5402562.149 262.667 513169.491 5402562.127 262.665 513169.48 5402562.105 262.663 513169.471 5402562.082 262.661 513169.464 5402562.059 262.66 513169.458 5402562.035 262.658 513169.454 5402562.011 262.656 513169.452 5402561.986 262.655 513169.452 5402561.962 262.653 513169.453 5402561.937 262.651 513169.456 5402561.913 262.65 513169.46 5402561.889 262.649 513169.466 5402561.865 262.647 513169.474 5402561.842 262.646 513169.484 5402561.819 262.645 513169.495 5402561.797 262.644 513169.507 5402561.776 262.643 513169.521 5402561.756 262.642 513169.537 5402561.737 262.641 513169.553 5402561.719 262.64 513169.571 5402561.702 262.64 513169.59 5402561.687 262.639 513169.61 5402561.673 262.639 513169.631 5402561.66 262.639 513169.661 5402561.645 262.638 513169.691 5402561.633 262.638 513169.715 5402561.626 262.639 513169.739 5402561.621 262.639 513169.763 5402561.617 262.639 513169.787 5402561.615 262.64 513169.812 5402561.615 262.641 513169.836 5402561.617 262.641 513169.861 5402561.62 262.642 513169.885 5402561.625 262.643 513169.908 5402561.631 262.644 513169.931 5402561.639 262.646 513169.954 5402561.649 262.647 513169.976 5402561.661 262.648 513169.997 5402561.673 262.65 513170.017 5402561.688 262.651 513170.036 5402561.703 262.653 513170.053 5402561.72 262.654 513170.07 5402561.738 262.656 513170.085 5402561.757 262.657 513170.099 5402561.777 262.659 513170.111 5402561.799 262.661 513170.122 5402561.821 262.663 513170.132 5402561.843 262.664 513170.14 5402561.866 262.666 513170.146 5402561.89 262.668 513170.15 5402561.914 262.669 513170.153 5402561.939 262.671 513170.154 5402561.963 262.673 513170.154 5402561.988 262.674 513170.15 5402562.02 262.676 513174.28 5402560.2 262.674 513174.257 5402560.188 262.672 513174.237 5402560.175 262.671 513174.218 5402560.161 262.67 513174.2 5402560.146 262.668 513174.182 5402560.129 262.667 513174.166 5402560.112 262.665 513174.152 5402560.093 262.663 513174.138 5402560.073 262.662 513174.127 5402560.053 262.66 513174.116 5402560.031 262.658 513174.107 5402560.009 262.657 513174.1 5402559.987 262.655 513174.094 5402559.963 262.653 513174.09 5402559.94 262.652 513174.087 5402559.916 262.65 513174.087 5402559.893 262.648 513174.087 5402559.869 262.647 513174.09 5402559.845 262.645 513174.094 5402559.822 262.644 513174.1 5402559.798 262.643 513174.107 5402559.776 262.641 513174.116 5402559.754 262.64 513174.127 5402559.732 262.639 513174.138 5402559.712 262.638 513174.152 5402559.692 262.637 513174.166 5402559.673 262.636 513174.182 5402559.656 262.636 513174.2 5402559.639 262.635 513174.218 5402559.624 262.635 513174.237 5402559.61 262.634 513174.257 5402559.597 262.634 513174.28 5402559.585 262.634 513174.304 5402559.575 262.634 513174.327 5402559.567 262.634 513174.349 5402559.56 262.634 513174.373 5402559.556 262.635 513174.396 5402559.553 262.635 513174.42 5402559.551 262.636 513174.444 5402559.552 262.636 513174.468 5402559.554 262.637 513174.491 5402559.557 262.638 513174.514 5402559.563 262.639 513174.537 5402559.569 262.64 513174.56 5402559.578 262.641 513174.581 5402559.588 262.643 513174.602 5402559.599 262.644 513174.622 5402559.612 262.645 513174.641 5402559.626 262.647 513174.659 5402559.642 262.648 513174.676 5402559.659 262.65 513174.692 5402559.677 262.651 513174.706 5402559.695 262.653 513174.719 5402559.715 262.655 513174.731 5402559.736 262.656 513174.741 5402559.758 262.658 513174.75 5402559.78 262.66 513174.757 5402559.803 262.661 513174.762 5402559.826 262.663 513174.766 5402559.849 262.665 513174.768 5402559.873 262.666 513174.769 5402559.897 262.668 513174.768 5402559.921 262.669 513174.765 5402559.944 262.671 513174.76 5402559.97 262.672 513178.88 5402558.11 262.667 513178.861 5402558.093 262.665 513178.844 5402558.075 262.664 513178.828 5402558.056 262.662 513178.813 5402558.036 262.66 513178.8 5402558.015 262.659 513178.788 5402557.993 262.657 513178.778 5402557.97 262.655 513178.77 5402557.947 262.653 513178.763 5402557.923 262.652 513178.758 5402557.898 262.65 513178.754 5402557.874 262.648 513178.752 5402557.849 262.646 513178.752 5402557.824 262.645 513178.754 5402557.799 262.643 513178.758 5402557.775 262.642 513178.763 5402557.75 262.64 513178.77 5402557.726 262.639 513178.778 5402557.703 262.638 513178.788 5402557.68 262.636 513178.8 5402557.658 262.635 513178.813 5402557.637 262.634 513178.828 5402557.617 262.634 513178.844 5402557.598 262.633 513178.861 5402557.58 262.632 513178.879 5402557.563 262.631 513178.899 5402557.548 262.631 513178.92 5402557.534 262.631 513178.941 5402557.521 262.63 513178.964 5402557.511 262.63 513178.987 5402557.501 262.63 513179.012 5402557.493 262.631 513179.036 5402557.487 262.631 513179.06 5402557.483 262.631 513179.085 5402557.48 262.632 513179.11 5402557.479 262.632 513179.135 5402557.48 262.633 513179.16 5402557.483 262.634 513179.184 5402557.488 262.635 513179.208 5402557.494 262.636 513179.232 5402557.501 262.637 513179.255 5402557.511 262.639 513179.277 5402557.522 262.64 513179.299 5402557.534 262.641 513179.319 5402557.548 262.643 513179.339 5402557.564 262.644 513179.357 5402557.58 262.646 513179.375 5402557.598 262.648 513179.391 5402557.617 262.649 513179.405 5402557.638 262.651 513179.418 5402557.659 262.653 513179.43 5402557.681 262.654 513179.44 5402557.704 262.656 513179.449 5402557.727 262.658 513179.455 5402557.751 262.66 513179.461 5402557.775 262.661 513179.464 5402557.8 262.663 513179.465 5402557.825 262.665 513179.465 5402557.85 262.666 513179.464 5402557.875 262.668 513179.46 5402557.9 262.67 513183.5 5402556.11 262.666 513183.475 5402556.087 262.664 513183.457 5402556.068 262.663 513183.441 5402556.048 262.661 513183.427 5402556.027 262.659 513183.413 5402556.006 262.657 513183.402 5402555.983 262.655 513183.392 5402555.959 262.654 513183.384 5402555.935 262.652 513183.377 5402555.91 262.65 513183.372 5402555.885 262.648 513183.369 5402555.859 262.647 513183.367 5402555.834 262.645 513183.368 5402555.808 262.643 513183.37 5402555.783 262.642 513183.374 5402555.757 262.64 513183.38 5402555.732 262.639 513183.388 5402555.708 262.637 513183.397 5402555.684 262.636 513183.408 5402555.66 262.635 513183.42 5402555.638 262.634 513183.434 5402555.617 262.633 513183.449 5402555.596 262.632 513183.466 5402555.577 262.631 513183.484 5402555.559 262.63 513183.504 5402555.542 262.63 513183.524 5402555.526 262.629 513183.546 5402555.512 262.629 513183.568 5402555.5 262.629 513183.599 5402555.486 262.629 513183.63 5402555.475 262.629 513183.655 5402555.469 262.629 513183.68 5402555.464 262.63 513183.706 5402555.461 262.63 513183.732 5402555.46 262.631 513183.757 5402555.461 262.632 513183.783 5402555.463 262.632 513183.808 5402555.467 262.633 513183.833 5402555.473 262.634 513183.857 5402555.481 262.636 513183.881 5402555.49 262.637 513183.905 5402555.501 262.638 513183.927 5402555.514 262.64 513183.948 5402555.528 262.641 513183.969 5402555.544 262.643 513183.988 5402555.561 262.644 513184.006 5402555.579 262.646 513184.022 5402555.599 262.648 513184.038 5402555.619 262.65 513184.052 5402555.641 262.651 513184.064 5402555.663 262.653 513184.074 5402555.687 262.655 513184.083 5402555.711 262.657 513184.091 5402555.735 262.659 513184.096 5402555.76 262.66 513184.1 5402555.786 262.662 513184.102 5402555.811 262.664 513184.102 5402555.837 262.666 513184.1 5402555.87 262.668 513188.09 5402554.11 262.665 513188.07 5402554.089 262.663 513188.053 5402554.069 262.661 513188.038 5402554.047 262.66 513188.024 5402554.025 262.658 513188.012 5402554.002 262.656 513188.002 5402553.979 262.654 513187.993 5402553.954 262.652 513187.986 5402553.929 262.65 513187.981 5402553.904 262.649 513187.977 5402553.878 262.647 513187.976 5402553.852 262.645 513187.976 5402553.826 262.643 513187.978 5402553.8 262.642 513187.982 5402553.774 262.64 513187.987 5402553.749 262.639 513187.995 5402553.724 262.637 513188.004 5402553.7 262.636 513188.014 5402553.676 262.635 513188.027 5402553.653 262.634 513188.041 5402553.631 262.633 513188.056 5402553.61 262.632 513188.073 5402553.591 262.631 513188.091 5402553.572 262.63 513188.111 5402553.555 262.63 513188.131 5402553.539 262.629 513188.153 5402553.524 262.629 513188.175 5402553.512 262.629 513188.202 5402553.499 262.629 513188.229 5402553.489 262.629 513188.254 5402553.481 262.629 513188.279 5402553.476 262.629 513188.305 5402553.472 262.63 513188.331 5402553.47 262.63 513188.357 5402553.469 262.631 513188.383 5402553.471 262.632 513188.408 5402553.474 262.633 513188.434 5402553.479 262.634 513188.459 5402553.486 262.635 513188.483 5402553.495 262.636 513188.507 5402553.505 262.638 513188.53 5402553.517 262.639 513188.552 5402553.531 262.64 513188.574 5402553.546 262.642 513188.594 5402553.562 262.644 513188.613 5402553.58 262.645 513188.63 5402553.599 262.647 513188.646 5402553.619 262.649 513188.661 5402553.641 262.651 513188.674 5402553.663 262.652 513188.686 5402553.686 262.654 513188.696 5402553.71 262.656 513188.704 5402553.735 262.658 513188.711 5402553.76 262.66 513188.716 5402553.786 262.662 513188.719 5402553.811 262.663 513188.72 5402553.84 262.665 513192.72 5402552.07 262.662 513192.65 5402551.91 262.65 513192.64 5402551.886 262.648 513192.633 5402551.862 262.646 513192.628 5402551.839 262.645 513192.624 5402551.815 262.643 513192.622 5402551.79 262.641 513192.621 5402551.766 262.64 513192.622 5402551.742 262.638 513192.625 5402551.717 262.637 513192.629 5402551.694 262.635 513192.636 5402551.67 262.634 513192.644 5402551.647 262.633 513192.653 5402551.625 262.632 513192.664 5402551.603 262.63 513192.676 5402551.582 262.629 513192.69 5402551.562 262.629 513192.705 5402551.543 262.628 513192.722 5402551.525 262.627 513192.74 5402551.509 262.626 513192.759 5402551.493 262.626 513192.778 5402551.479 262.626 513192.799 5402551.466 262.625 513192.821 5402551.455 262.625 513192.845 5402551.445 262.625 513192.869 5402551.437 262.625 513192.893 5402551.431 262.626 513192.917 5402551.426 262.626 513192.941 5402551.423 262.627 513192.965 5402551.422 262.627 513192.99 5402551.423 262.628 513193.014 5402551.425 262.629 513193.038 5402551.429 262.63 513193.061 5402551.434 262.631 513193.085 5402551.442 262.632 513193.107 5402551.45 262.633 513193.129 5402551.461 262.634 513193.151 5402551.473 262.636 513193.171 5402551.486 262.637 513193.19 5402551.501 262.639 513193.208 5402551.517 262.64 513193.226 5402551.534 262.642 513193.241 5402551.553 262.643 513193.256 5402551.572 262.645 513193.269 5402551.593 262.647 513193.281 5402551.614 262.648 513193.291 5402551.636 262.65 513193.3 5402551.66 262.652 513193.35 5402551.78 262.661 513196.66 5402550.5 262.671 513196.937 5402550.365 262.67 513197.167 5402550.274 262.67 513197.402 5402550.2 262.672 513197.642 5402550.143 262.675 513197.885 5402550.102 262.679 513198.13 5402550.078 262.684 513198.377 5402550.072 262.691 513198.623 5402550.082 262.698 513198.869 5402550.11 262.707 513199.111 5402550.155 262.717 513199.409 5402550.235 262.73 513199.7 5402550.341 262.745 513199.924 5402550.443 262.758 513200.141 5402550.561 262.772 513200.349 5402550.693 262.786 513200.547 5402550.84 262.801 513200.735 5402551.0 262.817 513200.911 5402551.173 262.833 513201.074 5402551.358 262.85 513201.224 5402551.554 262.866 513201.36 5402551.76 262.884 513201.51 5402552.03 262.905 513204.69 5402559.04 263.448 513207.72 5402557.69 263.445 513219.026 5402583.413 265.428 513137.221 5402619.876 265.504 513136.33 5402618.75 265.407 513138.41 5402617.33 265.373 513139.92 5402616.3 265.348 513141.6 5402614.96 265.308 513139.98 5402611.44 265.035 513139.46 5402611.6 265.031 513139.11 5402610.8 264.969 513139.58 5402610.52 264.964 513138.39 5402607.83 264.757 513137.86 5402608.06 264.757 513137.55 5402607.27 264.697 513138.05 5402607.09 264.699 513136.98 5402604.66 264.512 513136.47 5402604.9 264.513 513136.12 5402604.09 264.451 513136.6 5402603.87 264.45 513135.53 5402601.45 264.264 513135.06 5402601.66 264.264 513134.68 5402600.84 264.2 513135.2 5402600.67 264.204 513134.08 5402598.16 264.01 513133.61 5402598.41 264.013 513133.25 5402597.56 263.948 513133.71 5402597.44 263.953 513132.69 5402595.04 263.769 513132.17 5402595.27 263.769 513131.78 5402594.38 263.701 513132.29 5402594.24 263.706 513131.22 5402591.75 263.515 513130.69 5402591.95 263.513 513130.34 5402591.16 263.452 513130.81 5402590.95 263.451 513129.38 5402587.67 263.199 513134.65 5402585.22 263.188 513133.2 5402581.88 262.931 513133.17 5402581.88 262.93 513133.142 5402581.867 262.928 513133.12 5402581.854 262.927 513133.098 5402581.839 262.925 513133.077 5402581.823 262.924 513133.058 5402581.806 262.922 513133.04 5402581.787 262.92 513133.023 5402581.768 262.918 513133.008 5402581.747 262.917 513132.994 5402581.725 262.915 513132.982 5402581.702 262.913 513132.971 5402581.678 262.911 513132.962 5402581.654 262.909 513132.955 5402581.629 262.908 513132.95 5402581.603 262.906 513132.946 5402581.577 262.904 513132.944 5402581.552 262.902 513132.944 5402581.526 262.901 513132.946 5402581.5 262.899 513132.949 5402581.474 262.897 513132.955 5402581.448 262.896 513132.962 5402581.423 262.894 513132.971 5402581.399 262.893 513132.981 5402581.375 262.892 513132.993 5402581.352 262.891 513133.007 5402581.33 262.89 513133.022 5402581.309 262.889 513133.039 5402581.289 262.888 513133.057 5402581.271 262.887 513133.08 5402581.25 262.886 513133.104 5402581.232 262.886 513133.126 5402581.218 262.886 513133.149 5402581.205 262.885 513133.172 5402581.194 262.885 513133.197 5402581.185 262.886 513133.222 5402581.178 262.886 513133.247 5402581.172 262.886 513133.273 5402581.168 262.887 513133.298 5402581.166 262.887 513133.324 5402581.166 262.888 513133.35 5402581.167 262.889 513133.376 5402581.17 262.89 513133.402 5402581.175 262.891 513133.427 5402581.182 262.892 513133.451 5402581.191 262.893 513133.475 5402581.201 262.894 513133.498 5402581.213 262.896 513133.52 5402581.227 262.897 513133.542 5402581.242 262.899 513133.562 5402581.258 262.9 513133.581 5402581.276 262.902 513133.598 5402581.295 262.904 513133.614 5402581.315 262.906 513133.629 5402581.337 262.907 513133.643 5402581.359 262.909 513133.654 5402581.382 262.911 513133.664 5402581.406 262.913 513133.673 5402581.431 262.915 513133.68 5402581.46 262.917 513133.81 5402581.86 262.946 513138.34 5402579.78 262.938 513138.2 5402579.4 262.91 513138.186 5402579.379 262.908 513138.178 5402579.363 262.907 513138.17 5402579.346 262.905 513138.164 5402579.329 262.904 513138.159 5402579.311 262.903 513138.155 5402579.293 262.901 513138.152 5402579.274 262.9 513138.151 5402579.256 262.899 513138.151 5402579.238 262.898 513138.152 5402579.219 262.897 513138.155 5402579.201 262.896 513138.159 5402579.183 262.894 513138.164 5402579.165 262.893 513138.17 5402579.148 262.892 513138.178 5402579.131 262.892 513138.186 5402579.114 262.891 513138.196 5402579.099 262.89 513138.207 5402579.084 262.889 513138.219 5402579.07 262.889 513138.232 5402579.057 262.888 513138.245 5402579.044 262.888 513138.26 5402579.033 262.888 513138.275 5402579.022 262.887 513138.291 5402579.013 262.887 513138.308 5402579.005 262.887 513138.331 5402578.996 262.887 513138.356 5402578.989 262.887 513138.374 5402578.985 262.888 513138.392 5402578.983 262.888 513138.411 5402578.982 262.888 513138.429 5402578.982 262.889 513138.448 5402578.984 262.89 513138.466 5402578.987 262.89 513138.484 5402578.991 262.891 513138.502 5402578.997 262.892 513138.519 5402579.003 262.893 513138.536 5402579.011 262.894 513138.552 5402579.02 262.895 513138.567 5402579.03 262.896 513138.582 5402579.041 262.897 513138.596 5402579.053 262.898 513138.609 5402579.066 262.899 513138.621 5402579.08 262.901 513138.632 5402579.095 262.902 513138.642 5402579.11 262.903 513138.651 5402579.126 262.905 513138.659 5402579.143 262.906 513138.666 5402579.16 262.907 513138.671 5402579.178 262.908 513138.675 5402579.196 262.91 513138.678 5402579.214 262.911 513138.68 5402579.24 262.913 513138.96 5402579.53 262.939 513142.24 5402576.58 262.84 513141.94 5402576.22 262.808 513141.926 5402576.201 262.806 513141.914 5402576.181 262.805 513141.904 5402576.161 262.803 513141.895 5402576.14 262.802 513141.888 5402576.119 262.8 513141.882 5402576.097 262.799 513141.878 5402576.075 262.797 513141.875 5402576.052 262.795 513141.873 5402576.029 262.794 513141.874 5402576.007 262.792 513141.876 5402575.984 262.791 513141.879 5402575.962 262.79 513141.884 5402575.94 262.788 513141.891 5402575.918 262.787 513141.899 5402575.897 262.786 513141.908 5402575.876 262.785 513141.919 5402575.856 262.784 513141.932 5402575.837 262.783 513141.945 5402575.819 262.782 513141.96 5402575.802 262.782 513141.976 5402575.786 262.781 513141.993 5402575.771 262.781 513142.011 5402575.757 262.78 513142.03 5402575.745 262.78 513142.051 5402575.733 262.78 513142.073 5402575.723 262.78 513142.094 5402575.715 262.78 513142.116 5402575.708 262.78 513142.138 5402575.703 262.78 513142.16 5402575.7 262.781 513142.183 5402575.698 262.781 513142.205 5402575.698 262.782 513142.228 5402575.699 262.782 513142.251 5402575.702 262.783 513142.273 5402575.706 262.784 513142.295 5402575.712 262.785 513142.316 5402575.72 262.786 513142.337 5402575.729 262.787 513142.357 5402575.739 262.789 513142.377 5402575.751 262.79 513142.395 5402575.764 262.791 513142.413 5402575.778 262.793 513142.429 5402575.794 262.794 513142.445 5402575.81 262.796 513142.459 5402575.828 262.797 513142.472 5402575.847 262.799 513142.483 5402575.866 262.8 513142.494 5402575.886 262.802 513142.502 5402575.908 262.804 513142.51 5402575.93 262.805 513142.65 5402576.17 262.825 513145.9 5402573.38 262.735 513145.64 5402573.06 262.707 513145.617 5402573.038 262.705 513145.602 5402573.021 262.703 513145.588 5402573.003 262.702 513145.575 5402572.984 262.7 513145.564 5402572.964 262.698 513145.554 5402572.943 262.697 513145.545 5402572.921 262.695 513145.538 5402572.9 262.694 513145.533 5402572.877 262.692 513145.529 5402572.854 262.69 513145.527 5402572.832 262.689 513145.526 5402572.809 262.687 513145.527 5402572.786 262.686 513145.53 5402572.763 262.684 513145.534 5402572.74 262.683 513145.539 5402572.718 262.682 513145.547 5402572.696 262.681 513145.555 5402572.674 262.679 513145.566 5402572.654 262.678 513145.577 5402572.634 262.677 513145.59 5402572.615 262.677 513145.605 5402572.597 262.676 513145.626 5402572.574 262.675 513145.649 5402572.554 262.674 513145.667 5402572.54 262.674 513145.686 5402572.527 262.674 513145.707 5402572.516 262.673 513145.728 5402572.507 262.673 513145.749 5402572.499 262.673 513145.771 5402572.492 262.674 513145.793 5402572.487 262.674 513145.816 5402572.483 262.674 513145.839 5402572.481 262.675 513145.862 5402572.481 262.675 513145.885 5402572.482 262.676 513145.908 5402572.485 262.677 513145.931 5402572.489 262.678 513145.953 5402572.495 262.679 513145.975 5402572.503 262.68 513145.996 5402572.512 262.681 513146.016 5402572.522 262.682 513146.036 5402572.534 262.684 513146.055 5402572.547 262.685 513146.073 5402572.562 262.687 513146.09 5402572.578 262.688 513146.11 5402572.6 262.69 513146.39 5402572.95 262.721 513149.3 5402570.36 262.634 513149.76 5402569.94 262.62 513153.29 5402566.8 262.515 513153.01 5402566.52 262.489 513152.997 5402566.495 262.487 513152.989 5402566.476 262.486 513152.983 5402566.455 262.484 513152.981 5402566.436 262.483 513153.009 5402566.231 262.47 513153.016 5402566.212 262.469 513153.027 5402566.194 262.468 513153.04 5402566.177 262.468 513153.054 5402566.162 262.467 513153.069 5402566.147 262.466 513153.091 5402566.129 262.466 513153.115 5402566.113 262.466 513153.133 5402566.102 262.465 513153.152 5402566.093 262.465 513153.172 5402566.086 262.465 513153.192 5402566.079 262.466 513153.212 5402566.074 262.466 513153.233 5402566.071 262.466 513153.254 5402566.069 262.467 513153.275 5402566.068 262.467 513153.296 5402566.069 262.468 513153.317 5402566.071 262.469 513153.338 5402566.075 262.469 513153.359 5402566.08 262.47 513153.379 5402566.087 262.471 513153.398 5402566.095 262.472 513153.417 5402566.105 262.473 513153.435 5402566.115 262.475 513153.453 5402566.127 262.476 513153.469 5402566.14 262.477 513153.49 5402566.16 262.479 513153.75 5402566.38 262.501 513157.03 5402563.45 262.402 513156.79 5402563.17 262.378 513156.777 5402563.144 262.376 513156.768 5402563.123 262.374 513156.762 5402563.102 262.372 513156.756 5402563.08 262.371 513156.752 5402563.057 262.369 513156.75 5402563.035 262.368 513156.749 5402563.013 262.366 513156.75 5402562.99 262.365 513156.752 5402562.968 262.363 513156.756 5402562.946 262.362 513156.762 5402562.924 262.361 513156.769 5402562.903 262.36 513156.777 5402562.882 262.359 513156.787 5402562.862 262.358 513156.798 5402562.842 262.357 513156.811 5402562.824 262.356 513156.825 5402562.806 262.355 513156.84 5402562.789 262.354 513156.861 5402562.769 262.354 513156.885 5402562.75 262.353 513156.904 5402562.738 262.353 513156.923 5402562.727 262.353 513156.944 5402562.717 262.353 513156.965 5402562.709 262.353 513156.986 5402562.702 262.353 513157.008 5402562.697 262.353 513157.03 5402562.694 262.353 513157.053 5402562.692 262.354 513157.075 5402562.691 262.355 513157.098 5402562.692 262.355 513157.12 5402562.695 262.356 513157.142 5402562.699 262.357 513157.164 5402562.705 262.358 513157.185 5402562.712 262.359 513157.206 5402562.721 262.36 513157.226 5402562.731 262.361 513157.245 5402562.742 262.363 513157.27 5402562.76 262.364 513157.53 5402562.98 262.386 513160.8 5402560.07 262.289 513160.6 5402559.79 262.265 513160.587 5402559.776 262.264 513160.577 5402559.763 262.263 513160.568 5402559.75 262.262 513160.56 5402559.737 262.26 513160.553 5402559.722 262.259 513160.546 5402559.708 262.258 513160.541 5402559.693 262.257 513160.537 5402559.677 262.256 513160.534 5402559.662 262.255 513160.532 5402559.646 262.254 513160.532 5402559.63 262.253 513160.532 5402559.614 262.252 513160.534 5402559.598 262.251 513160.536 5402559.583 262.25 513160.54 5402559.567 262.249 513160.545 5402559.552 262.248 513160.55 5402559.537 262.247 513160.557 5402559.523 262.247 513160.565 5402559.509 262.246 513160.574 5402559.496 262.245 513160.583 5402559.483 262.245 513160.594 5402559.471 262.244 513160.605 5402559.46 262.244 513160.617 5402559.45 262.243 513160.633 5402559.438 262.243 513160.649 5402559.429 262.243 513160.663 5402559.421 262.243 513160.677 5402559.415 262.243 513160.692 5402559.41 262.243 513160.708 5402559.406 262.243 513160.723 5402559.402 262.243 513160.739 5402559.4 262.244 513160.755 5402559.4 262.244 513160.771 5402559.4 262.245 513160.787 5402559.401 262.245 513160.803 5402559.404 262.246 513160.818 5402559.407 262.246 513160.833 5402559.412 262.247 513160.848 5402559.417 262.248 513160.862 5402559.424 262.249 513160.876 5402559.432 262.25 513160.89 5402559.44 262.251 513160.902 5402559.45 262.251 513160.914 5402559.46 262.253 513160.926 5402559.472 262.254 513160.936 5402559.484 262.255 513160.946 5402559.496 262.256 513160.955 5402559.51 262.257 513160.962 5402559.523 262.258 513160.97 5402559.54 262.259 513162.77 5402561.57 262.441 513165.11 5402564.25 262.68 + + + + + + + + + + + + + + + + + 513150.45 5402619.52 262.049 513144.69 5402622.22 261.972 513140.57 5402624.11 261.943 513137.221 5402619.876 265.504 513219.026 5402583.413 265.428 513220.84 5402587.54 262.358 513220.44 5402587.66 262.395 513222.26 5402591.7 259.379 513212.29 5402596.13 259.397 513212.22 5402595.95 259.528 513210.73 5402592.46 262.111 513160.27 5402615.0 262.128 513161.79 5402618.38 259.606 513161.89 5402618.59 259.447 513152.04 5402622.99 259.451 513150.45 5402619.52 262.049 + + + + + + + + + + + + + + + + + 513196.937 5402550.365 262.67 513196.66 5402550.5 262.671 513196.66 5402550.5 244.64 513196.937 5402550.365 244.64 513196.937 5402550.365 262.67 + + + + + + + + + + + + + + + + + 513196.937 5402550.365 244.64 513197.167 5402550.274 244.64 513197.167 5402550.274 262.67 513196.937 5402550.365 262.67 513196.937 5402550.365 244.64 + + + + + + + + + + + + + + + + + 513197.167 5402550.274 244.64 513197.402 5402550.2 244.64 513197.402 5402550.2 262.672 513197.167 5402550.274 262.67 513197.167 5402550.274 244.64 + + + + + + + + + + + + + + + + + 513197.402 5402550.2 244.64 513197.642 5402550.143 244.64 513197.642 5402550.143 262.675 513197.402 5402550.2 262.672 513197.402 5402550.2 244.64 + + + + + + + + + + + + + + + + + 513197.642 5402550.143 244.64 513197.885 5402550.102 244.64 513197.885 5402550.102 262.679 513197.642 5402550.143 262.675 513197.642 5402550.143 244.64 + + + + + + + + + + + + + + + + + 513197.885 5402550.102 244.64 513198.13 5402550.078 244.64 513198.13 5402550.078 262.684 513197.885 5402550.102 262.679 513197.885 5402550.102 244.64 + + + + + + + + + + + + + + + + + 513198.13 5402550.078 244.64 513198.377 5402550.072 244.64 513198.377 5402550.072 262.691 513198.13 5402550.078 262.684 513198.13 5402550.078 244.64 + + + + + + + + + + + + + + + + + 513198.377 5402550.072 244.64 513198.623 5402550.082 244.64 513198.623 5402550.082 262.698 513198.377 5402550.072 262.691 513198.377 5402550.072 244.64 + + + + + + + + + + + + + + + + + 513198.623 5402550.082 244.64 513198.869 5402550.11 244.64 513198.869 5402550.11 262.707 513198.623 5402550.082 262.698 513198.623 5402550.082 244.64 + + + + + + + + + + + + + + + + + 513198.869 5402550.11 244.64 513199.111 5402550.155 244.64 513199.111 5402550.155 262.717 513198.869 5402550.11 262.707 513198.869 5402550.11 244.64 + + + + + + + + + + + + + + + + + 513199.111 5402550.155 244.64 513199.409 5402550.235 244.64 513199.409 5402550.235 262.73 513199.111 5402550.155 262.717 513199.111 5402550.155 244.64 + + + + + + + + + + + + + + + + + 513199.409 5402550.235 244.64 513199.7 5402550.341 244.64 513199.7 5402550.341 262.745 513199.409 5402550.235 262.73 513199.409 5402550.235 244.64 + + + + + + + + + + + + + + + + + 513199.7 5402550.341 244.64 513199.924 5402550.443 244.64 513199.924 5402550.443 262.758 513199.7 5402550.341 262.745 513199.7 5402550.341 244.64 + + + + + + + + + + + + + + + + + 513199.924 5402550.443 244.64 513200.141 5402550.561 244.64 513200.141 5402550.561 262.772 513199.924 5402550.443 262.758 513199.924 5402550.443 244.64 + + + + + + + + + + + + + + + + + 513200.141 5402550.561 244.64 513200.349 5402550.693 244.64 513200.349 5402550.693 262.786 513200.141 5402550.561 262.772 513200.141 5402550.561 244.64 + + + + + + + + + + + + + + + + + 513200.349 5402550.693 244.64 513200.547 5402550.84 244.64 513200.547 5402550.84 262.801 513200.349 5402550.693 262.786 513200.349 5402550.693 244.64 + + + + + + + + + + + + + + + + + 513200.547 5402550.84 244.64 513200.735 5402551.0 244.64 513200.735 5402551.0 262.817 513200.547 5402550.84 262.801 513200.547 5402550.84 244.64 + + + + + + + + + + + + + + + + + 513200.735 5402551.0 244.64 513200.911 5402551.173 244.64 513200.911 5402551.173 262.833 513200.735 5402551.0 262.817 513200.735 5402551.0 244.64 + + + + + + + + + + + + + + + + + 513200.911 5402551.173 244.64 513201.074 5402551.358 244.64 513201.074 5402551.358 262.85 513200.911 5402551.173 262.833 513200.911 5402551.173 244.64 + + + + + + + + + + + + + + + + + 513201.074 5402551.358 244.64 513201.224 5402551.554 244.64 513201.224 5402551.554 262.866 513201.074 5402551.358 262.85 513201.074 5402551.358 244.64 + + + + + + + + + + + + + + + + + 513201.224 5402551.554 244.64 513201.36 5402551.76 244.64 513201.36 5402551.76 262.884 513201.224 5402551.554 262.866 513201.224 5402551.554 244.64 + + + + + + + + + + + + + + + + + 513201.36 5402551.76 244.64 513201.51 5402552.03 244.64 513201.51 5402552.03 262.905 513201.36 5402551.76 262.884 513201.36 5402551.76 244.64 + + + + + + + + + + + + + + + + + 513201.51 5402552.03 244.64 513204.69 5402559.04 244.64 513204.69 5402559.04 263.448 513201.51 5402552.03 262.905 513201.51 5402552.03 244.64 + + + + + + + + + + + + + + + + + 513207.72 5402557.69 263.445 513204.69 5402559.04 263.448 513204.69 5402559.04 244.64 513207.72 5402557.69 244.64 513207.72 5402557.69 263.445 + + + + + + + + + + + + + + + + + 513207.72 5402557.69 244.64 513219.026 5402583.413 244.64 513219.026 5402583.413 265.428 513207.72 5402557.69 263.445 513207.72 5402557.69 244.64 + + + + + + + + + + + + + + + + + 513220.84 5402587.54 262.358 513219.026 5402583.413 265.428 513219.026 5402583.413 244.64 513220.84 5402587.54 244.64 513220.84 5402587.54 262.358 + + + + + + + + + + + + + + + + + 513220.44 5402587.66 262.395 513220.84 5402587.54 262.358 513220.84 5402587.54 244.64 513220.44 5402587.66 244.64 513220.44 5402587.66 262.395 + + + + + + + + + + + + + + + + + 513222.26 5402591.7 259.379 513220.44 5402587.66 262.395 513220.44 5402587.66 244.64 513222.26 5402591.7 244.64 513222.26 5402591.7 259.379 + + + + + + + + + + + + + + + + + 513212.29 5402596.13 259.397 513222.26 5402591.7 259.379 513222.26 5402591.7 244.64 513212.29 5402596.13 244.64 513212.29 5402596.13 259.397 + + + + + + + + + + + + + + + + + 513212.22 5402595.95 259.528 513212.29 5402596.13 259.397 513212.29 5402596.13 244.64 513212.22 5402595.95 244.64 513212.22 5402595.95 259.528 + + + + + + + + + + + + + + + + + 513210.73 5402592.46 262.111 513212.22 5402595.95 259.528 513212.22 5402595.95 244.64 513210.73 5402592.46 244.64 513210.73 5402592.46 262.111 + + + + + + + + + + + + + + + + + 513160.27 5402615.0 262.128 513210.73 5402592.46 262.111 513210.73 5402592.46 244.64 513160.27 5402615.0 244.64 513160.27 5402615.0 262.128 + + + + + + + + + + + + + + + + + 513161.79 5402618.38 259.606 513160.27 5402615.0 262.128 513160.27 5402615.0 244.64 513161.79 5402618.38 244.64 513161.79 5402618.38 259.606 + + + + + + + + + + + + + + + + + 513161.89 5402618.59 259.447 513161.79 5402618.38 259.606 513161.79 5402618.38 244.64 513161.89 5402618.59 244.64 513161.89 5402618.59 259.447 + + + + + + + + + + + + + + + + + 513152.04 5402622.99 259.451 513161.89 5402618.59 259.447 513161.89 5402618.59 244.64 513152.04 5402622.99 244.64 513152.04 5402622.99 259.451 + + + + + + + + + + + + + + + + + 513150.45 5402619.52 262.049 513152.04 5402622.99 259.451 513152.04 5402622.99 244.64 513150.45 5402619.52 244.64 513150.45 5402619.52 262.049 + + + + + + + + + + + + + + + + + 513150.45 5402619.52 244.64 513144.69 5402622.22 244.64 513144.69 5402622.22 261.972 513150.45 5402619.52 262.049 513150.45 5402619.52 244.64 + + + + + + + + + + + + + + + + + 513144.69 5402622.22 244.64 513140.57 5402624.11 244.64 513140.57 5402624.11 261.943 513144.69 5402622.22 261.972 513144.69 5402622.22 244.64 + + + + + + + + + + + + + + + + + 513137.221 5402619.876 265.504 513140.57 5402624.11 261.943 513140.57 5402624.11 244.64 513137.221 5402619.876 244.64 513137.221 5402619.876 265.504 + + + + + + + + + + + + + + + + + 513137.221 5402619.876 244.64 513136.33 5402618.75 244.64 513136.33 5402618.75 265.407 513137.221 5402619.876 265.504 513137.221 5402619.876 244.64 + + + + + + + + + + + + + + + + + 513138.41 5402617.33 265.373 513136.33 5402618.75 265.407 513136.33 5402618.75 244.64 513138.41 5402617.33 244.64 513138.41 5402617.33 265.373 + + + + + + + + + + + + + + + + + 513139.92 5402616.3 265.348 513138.41 5402617.33 265.373 513138.41 5402617.33 244.64 513139.92 5402616.3 244.64 513139.92 5402616.3 265.348 + + + + + + + + + + + + + + + + + 513141.6 5402614.96 265.308 513139.92 5402616.3 265.348 513139.92 5402616.3 244.64 513141.6 5402614.96 244.64 513141.6 5402614.96 265.308 + + + + + + + + + + + + + + + + + 513141.6 5402614.96 244.64 513139.98 5402611.44 244.64 513139.98 5402611.44 265.035 513141.6 5402614.96 265.308 513141.6 5402614.96 244.64 + + + + + + + + + + + + + + + + + 513139.98 5402611.44 244.64 513139.46 5402611.6 244.64 513139.46 5402611.6 265.031 513139.98 5402611.44 265.035 513139.98 5402611.44 244.64 + + + + + + + + + + + + + + + + + 513139.46 5402611.6 244.64 513139.11 5402610.8 244.64 513139.11 5402610.8 264.969 513139.46 5402611.6 265.031 513139.46 5402611.6 244.64 + + + + + + + + + + + + + + + + + 513139.58 5402610.52 264.964 513139.11 5402610.8 264.969 513139.11 5402610.8 244.64 513139.58 5402610.52 244.64 513139.58 5402610.52 264.964 + + + + + + + + + + + + + + + + + 513139.58 5402610.52 244.64 513138.39 5402607.83 244.64 513138.39 5402607.83 264.757 513139.58 5402610.52 264.964 513139.58 5402610.52 244.64 + + + + + + + + + + + + + + + + + 513138.39 5402607.83 244.64 513137.86 5402608.06 244.64 513137.86 5402608.06 264.757 513138.39 5402607.83 264.757 513138.39 5402607.83 244.64 + + + + + + + + + + + + + + + + + 513137.86 5402608.06 244.64 513137.55 5402607.27 244.64 513137.55 5402607.27 264.697 513137.86 5402608.06 264.757 513137.86 5402608.06 244.64 + + + + + + + + + + + + + + + + + 513137.55 5402607.27 244.64 513138.05 5402607.09 244.64 513138.05 5402607.09 264.699 513137.55 5402607.27 264.697 513137.55 5402607.27 244.64 + + + + + + + + + + + + + + + + + 513138.05 5402607.09 244.64 513136.98 5402604.66 244.64 513136.98 5402604.66 264.512 513138.05 5402607.09 264.699 513138.05 5402607.09 244.64 + + + + + + + + + + + + + + + + + 513136.47 5402604.9 264.513 513136.98 5402604.66 264.512 513136.98 5402604.66 244.64 513136.47 5402604.9 244.64 513136.47 5402604.9 264.513 + + + + + + + + + + + + + + + + + 513136.47 5402604.9 244.64 513136.12 5402604.09 244.64 513136.12 5402604.09 264.451 513136.47 5402604.9 264.513 513136.47 5402604.9 244.64 + + + + + + + + + + + + + + + + + 513136.6 5402603.87 264.45 513136.12 5402604.09 264.451 513136.12 5402604.09 244.64 513136.6 5402603.87 244.64 513136.6 5402603.87 264.45 + + + + + + + + + + + + + + + + + 513136.6 5402603.87 244.64 513135.53 5402601.45 244.64 513135.53 5402601.45 264.264 513136.6 5402603.87 264.45 513136.6 5402603.87 244.64 + + + + + + + + + + + + + + + + + 513135.53 5402601.45 244.64 513135.06 5402601.66 244.64 513135.06 5402601.66 264.264 513135.53 5402601.45 264.264 513135.53 5402601.45 244.64 + + + + + + + + + + + + + + + + + 513135.06 5402601.66 244.64 513134.68 5402600.84 244.64 513134.68 5402600.84 264.2 513135.06 5402601.66 264.264 513135.06 5402601.66 244.64 + + + + + + + + + + + + + + + + + 513134.68 5402600.84 244.64 513135.2 5402600.67 244.64 513135.2 5402600.67 264.204 513134.68 5402600.84 264.2 513134.68 5402600.84 244.64 + + + + + + + + + + + + + + + + + 513135.2 5402600.67 244.64 513134.08 5402598.16 244.64 513134.08 5402598.16 264.01 513135.2 5402600.67 264.204 513135.2 5402600.67 244.64 + + + + + + + + + + + + + + + + + 513133.61 5402598.41 264.013 513134.08 5402598.16 264.01 513134.08 5402598.16 244.64 513133.61 5402598.41 244.64 513133.61 5402598.41 264.013 + + + + + + + + + + + + + + + + + 513133.61 5402598.41 244.64 513133.25 5402597.56 244.64 513133.25 5402597.56 263.948 513133.61 5402598.41 264.013 513133.61 5402598.41 244.64 + + + + + + + + + + + + + + + + + 513133.25 5402597.56 244.64 513133.71 5402597.44 244.64 513133.71 5402597.44 263.953 513133.25 5402597.56 263.948 513133.25 5402597.56 244.64 + + + + + + + + + + + + + + + + + 513133.71 5402597.44 244.64 513132.69 5402595.04 244.64 513132.69 5402595.04 263.769 513133.71 5402597.44 263.953 513133.71 5402597.44 244.64 + + + + + + + + + + + + + + + + + 513132.69 5402595.04 244.64 513132.17 5402595.27 244.64 513132.17 5402595.27 263.769 513132.69 5402595.04 263.769 513132.69 5402595.04 244.64 + + + + + + + + + + + + + + + + + 513132.17 5402595.27 244.64 513131.78 5402594.38 244.64 513131.78 5402594.38 263.701 513132.17 5402595.27 263.769 513132.17 5402595.27 244.64 + + + + + + + + + + + + + + + + + 513131.78 5402594.38 244.64 513132.29 5402594.24 244.64 513132.29 5402594.24 263.706 513131.78 5402594.38 263.701 513131.78 5402594.38 244.64 + + + + + + + + + + + + + + + + + 513132.29 5402594.24 244.64 513131.22 5402591.75 244.64 513131.22 5402591.75 263.515 513132.29 5402594.24 263.706 513132.29 5402594.24 244.64 + + + + + + + + + + + + + + + + + 513131.22 5402591.75 244.64 513130.69 5402591.95 244.64 513130.69 5402591.95 263.513 513131.22 5402591.75 263.515 513131.22 5402591.75 244.64 + + + + + + + + + + + + + + + + + 513130.69 5402591.95 244.64 513130.34 5402591.16 244.64 513130.34 5402591.16 263.452 513130.69 5402591.95 263.513 513130.69 5402591.95 244.64 + + + + + + + + + + + + + + + + + 513130.81 5402590.95 263.451 513130.34 5402591.16 263.452 513130.34 5402591.16 244.64 513130.81 5402590.95 244.64 513130.81 5402590.95 263.451 + + + + + + + + + + + + + + + + + 513130.81 5402590.95 244.64 513129.38 5402587.67 244.64 513129.38 5402587.67 263.199 513130.81 5402590.95 263.451 513130.81 5402590.95 244.64 + + + + + + + + + + + + + + + + + 513134.65 5402585.22 263.188 513129.38 5402587.67 263.199 513129.38 5402587.67 244.64 513134.65 5402585.22 244.64 513134.65 5402585.22 263.188 + + + + + + + + + + + + + + + + + 513134.65 5402585.22 244.64 513133.2 5402581.88 244.64 513133.2 5402581.88 262.931 513134.65 5402585.22 263.188 513134.65 5402585.22 244.64 + + + + + + + + + + + + + + + + + 513133.2 5402581.88 244.64 513133.17 5402581.88 244.64 513133.17 5402581.88 262.93 513133.2 5402581.88 262.931 513133.2 5402581.88 244.64 + + + + + + + + + + + + + + + + + 513133.17 5402581.88 244.64 513133.142 5402581.867 244.64 513133.142 5402581.867 262.928 513133.17 5402581.88 262.93 513133.17 5402581.88 244.64 + + + + + + + + + + + + + + + + + 513133.142 5402581.867 244.64 513133.12 5402581.854 244.64 513133.12 5402581.854 262.927 513133.142 5402581.867 262.928 513133.142 5402581.867 244.64 + + + + + + + + + + + + + + + + + 513183.427 5402556.027 244.64 513183.413 5402556.006 244.64 513183.413 5402556.006 262.657 513183.427 5402556.027 262.659 513183.427 5402556.027 244.64 + + + + + + + + + + + + + + + + + 513183.413 5402556.006 244.64 513183.402 5402555.983 244.64 513183.402 5402555.983 262.655 513183.413 5402556.006 262.657 513183.413 5402556.006 244.64 + + + + + + + + + + + + + + + + + 513183.402 5402555.983 244.64 513183.392 5402555.959 244.64 513183.392 5402555.959 262.654 513183.402 5402555.983 262.655 513183.402 5402555.983 244.64 + + + + + + + + + + + + + + + + + 513183.384 5402555.935 244.64 513183.384 5402555.935 262.652 513183.392 5402555.959 262.654 513183.392 5402555.959 244.64 513183.384 5402555.935 244.64 + + + + + + + + + + + + + + + + + 513183.377 5402555.91 244.64 513183.377 5402555.91 262.65 513183.384 5402555.935 262.652 513183.384 5402555.935 244.64 513183.377 5402555.91 244.64 + + + + + + + + + + + + + + + + + 513183.372 5402555.885 244.64 513183.372 5402555.885 262.648 513183.377 5402555.91 262.65 513183.377 5402555.91 244.64 513183.372 5402555.885 244.64 + + + + + + + + + + + + + + + + + 513183.369 5402555.859 244.64 513183.369 5402555.859 262.647 513183.372 5402555.885 262.648 513183.372 5402555.885 244.64 513183.369 5402555.859 244.64 + + + + + + + + + + + + + + + + + 513183.367 5402555.834 244.64 513183.367 5402555.834 262.645 513183.369 5402555.859 262.647 513183.369 5402555.859 244.64 513183.367 5402555.834 244.64 + + + + + + + + + + + + + + + + + 513183.368 5402555.808 244.64 513183.368 5402555.808 262.643 513183.367 5402555.834 262.645 513183.367 5402555.834 244.64 513183.368 5402555.808 244.64 + + + + + + + + + + + + + + + + + 513183.37 5402555.783 244.64 513183.37 5402555.783 262.642 513183.368 5402555.808 262.643 513183.368 5402555.808 244.64 513183.37 5402555.783 244.64 + + + + + + + + + + + + + + + + + 513183.374 5402555.757 244.64 513183.374 5402555.757 262.64 513183.37 5402555.783 262.642 513183.37 5402555.783 244.64 513183.374 5402555.757 244.64 + + + + + + + + + + + + + + + + + 513183.38 5402555.732 244.64 513183.38 5402555.732 262.639 513183.374 5402555.757 262.64 513183.374 5402555.757 244.64 513183.38 5402555.732 244.64 + + + + + + + + + + + + + + + + + 513183.388 5402555.708 244.64 513183.388 5402555.708 262.637 513183.38 5402555.732 262.639 513183.38 5402555.732 244.64 513183.388 5402555.708 244.64 + + + + + + + + + + + + + + + + + 513183.397 5402555.684 262.636 513183.388 5402555.708 262.637 513183.388 5402555.708 244.64 513183.397 5402555.684 244.64 513183.397 5402555.684 262.636 + + + + + + + + + + + + + + + + + 513183.408 5402555.66 262.635 513183.397 5402555.684 262.636 513183.397 5402555.684 244.64 513183.408 5402555.66 244.64 513183.408 5402555.66 262.635 + + + + + + + + + + + + + + + + + 513183.42 5402555.638 262.634 513183.408 5402555.66 262.635 513183.408 5402555.66 244.64 513183.42 5402555.638 244.64 513183.42 5402555.638 262.634 + + + + + + + + + + + + + + + + + 513183.434 5402555.617 262.633 513183.42 5402555.638 262.634 513183.42 5402555.638 244.64 513183.434 5402555.617 244.64 513183.434 5402555.617 262.633 + + + + + + + + + + + + + + + + + 513183.449 5402555.596 262.632 513183.434 5402555.617 262.633 513183.434 5402555.617 244.64 513183.449 5402555.596 244.64 513183.449 5402555.596 262.632 + + + + + + + + + + + + + + + + + 513183.466 5402555.577 262.631 513183.449 5402555.596 262.632 513183.449 5402555.596 244.64 513183.466 5402555.577 244.64 513183.466 5402555.577 262.631 + + + + + + + + + + + + + + + + + 513183.484 5402555.559 262.63 513183.466 5402555.577 262.631 513183.466 5402555.577 244.64 513183.484 5402555.559 244.64 513183.484 5402555.559 262.63 + + + + + + + + + + + + + + + + + 513183.484 5402555.559 244.64 513183.504 5402555.542 244.64 513183.504 5402555.542 262.63 513183.484 5402555.559 262.63 513183.484 5402555.559 244.64 + + + + + + + + + + + + + + + + + 513183.524 5402555.526 262.629 513183.504 5402555.542 262.63 513183.504 5402555.542 244.64 513183.524 5402555.526 244.64 513183.524 5402555.526 262.629 + + + + + + + + + + + + + + + + + 513183.524 5402555.526 244.64 513183.546 5402555.512 244.64 513183.546 5402555.512 262.629 513183.524 5402555.526 262.629 513183.524 5402555.526 244.64 + + + + + + + + + + + + + + + + + 513183.546 5402555.512 244.64 513183.568 5402555.5 244.64 513183.568 5402555.5 262.629 513183.546 5402555.512 262.629 513183.546 5402555.512 244.64 + + + + + + + + + + + + + + + + + 513183.568 5402555.5 244.64 513183.599 5402555.486 244.64 513183.599 5402555.486 262.629 513183.568 5402555.5 262.629 513183.568 5402555.5 244.64 + + + + + + + + + + + + + + + + + 513183.599 5402555.486 244.64 513183.63 5402555.475 244.64 513183.63 5402555.475 262.629 513183.599 5402555.486 262.629 513183.599 5402555.486 244.64 + + + + + + + + + + + + + + + + + 513183.63 5402555.475 244.64 513183.655 5402555.469 244.64 513183.655 5402555.469 262.629 513183.63 5402555.475 262.629 513183.63 5402555.475 244.64 + + + + + + + + + + + + + + + + + 513183.655 5402555.469 244.64 513183.68 5402555.464 244.64 513183.68 5402555.464 262.63 513183.655 5402555.469 262.629 513183.655 5402555.469 244.64 + + + + + + + + + + + + + + + + + 513183.68 5402555.464 244.64 513183.706 5402555.461 244.64 513183.706 5402555.461 262.63 513183.68 5402555.464 262.63 513183.68 5402555.464 244.64 + + + + + + + + + + + + + + + + + 513183.706 5402555.461 244.64 513183.732 5402555.46 244.64 513183.732 5402555.46 262.631 513183.706 5402555.461 262.63 513183.706 5402555.461 244.64 + + + + + + + + + + + + + + + + + 513183.732 5402555.46 244.64 513183.757 5402555.461 244.64 513183.757 5402555.461 262.632 513183.732 5402555.46 262.631 513183.732 5402555.46 244.64 + + + + + + + + + + + + + + + + + 513183.757 5402555.461 244.64 513183.783 5402555.463 244.64 513183.783 5402555.463 262.632 513183.757 5402555.461 262.632 513183.757 5402555.461 244.64 + + + + + + + + + + + + + + + + + 513183.783 5402555.463 244.64 513183.808 5402555.467 244.64 513183.808 5402555.467 262.633 513183.783 5402555.463 262.632 513183.783 5402555.463 244.64 + + + + + + + + + + + + + + + + + 513183.808 5402555.467 244.64 513183.833 5402555.473 244.64 513183.833 5402555.473 262.634 513183.808 5402555.467 262.633 513183.808 5402555.467 244.64 + + + + + + + + + + + + + + + + + 513183.833 5402555.473 244.64 513183.857 5402555.481 244.64 513183.857 5402555.481 262.636 513183.833 5402555.473 262.634 513183.833 5402555.473 244.64 + + + + + + + + + + + + + + + + + 513183.857 5402555.481 244.64 513183.881 5402555.49 244.64 513183.881 5402555.49 262.637 513183.857 5402555.481 262.636 513183.857 5402555.481 244.64 + + + + + + + + + + + + + + + + + 513183.881 5402555.49 244.64 513183.905 5402555.501 244.64 513183.905 5402555.501 262.638 513183.881 5402555.49 262.637 513183.881 5402555.49 244.64 + + + + + + + + + + + + + + + + + 513183.905 5402555.501 244.64 513183.927 5402555.514 244.64 513183.927 5402555.514 262.64 513183.905 5402555.501 262.638 513183.905 5402555.501 244.64 + + + + + + + + + + + + + + + + + 513183.927 5402555.514 244.64 513183.948 5402555.528 244.64 513183.948 5402555.528 262.641 513183.927 5402555.514 262.64 513183.927 5402555.514 244.64 + + + + + + + + + + + + + + + + + 513183.948 5402555.528 244.64 513183.969 5402555.544 244.64 513183.969 5402555.544 262.643 513183.948 5402555.528 262.641 513183.948 5402555.528 244.64 + + + + + + + + + + + + + + + + + 513183.969 5402555.544 244.64 513183.988 5402555.561 244.64 513183.988 5402555.561 262.644 513183.969 5402555.544 262.643 513183.969 5402555.544 244.64 + + + + + + + + + + + + + + + + + 513183.988 5402555.561 244.64 513184.006 5402555.579 244.64 513184.006 5402555.579 262.646 513183.988 5402555.561 262.644 513183.988 5402555.561 244.64 + + + + + + + + + + + + + + + + + 513184.006 5402555.579 244.64 513184.022 5402555.599 244.64 513184.022 5402555.599 262.648 513184.006 5402555.579 262.646 513184.006 5402555.579 244.64 + + + + + + + + + + + + + + + + + 513184.022 5402555.599 244.64 513184.038 5402555.619 244.64 513184.038 5402555.619 262.65 513184.022 5402555.599 262.648 513184.022 5402555.599 244.64 + + + + + + + + + + + + + + + + + 513184.038 5402555.619 244.64 513184.052 5402555.641 244.64 513184.052 5402555.641 262.651 513184.038 5402555.619 262.65 513184.038 5402555.619 244.64 + + + + + + + + + + + + + + + + + 513184.052 5402555.641 244.64 513184.064 5402555.663 244.64 513184.064 5402555.663 262.653 513184.052 5402555.641 262.651 513184.052 5402555.641 244.64 + + + + + + + + + + + + + + + + + 513184.064 5402555.663 244.64 513184.074 5402555.687 244.64 513184.074 5402555.687 262.655 513184.064 5402555.663 262.653 513184.064 5402555.663 244.64 + + + + + + + + + + + + + + + + + 513184.074 5402555.687 244.64 513184.083 5402555.711 244.64 513184.083 5402555.711 262.657 513184.074 5402555.687 262.655 513184.074 5402555.687 244.64 + + + + + + + + + + + + + + + + + 513184.083 5402555.711 262.657 513184.083 5402555.711 244.64 513184.091 5402555.735 244.64 513184.091 5402555.735 262.659 513184.083 5402555.711 262.657 + + + + + + + + + + + + + + + + + 513184.091 5402555.735 262.659 513184.091 5402555.735 244.64 513184.096 5402555.76 244.64 513184.096 5402555.76 262.66 513184.091 5402555.735 262.659 + + + + + + + + + + + + + + + + + 513184.096 5402555.76 262.66 513184.096 5402555.76 244.64 513184.1 5402555.786 244.64 513184.1 5402555.786 262.662 513184.096 5402555.76 262.66 + + + + + + + + + + + + + + + + + 513184.1 5402555.786 262.662 513184.1 5402555.786 244.64 513184.102 5402555.811 244.64 513184.102 5402555.811 262.664 513184.1 5402555.786 262.662 + + + + + + + + + + + + + + + + + 513184.102 5402555.811 262.664 513184.102 5402555.811 244.64 513184.102 5402555.837 244.64 513184.102 5402555.837 262.666 513184.102 5402555.811 262.664 + + + + + + + + + + + + + + + + + 513184.102 5402555.837 262.666 513184.102 5402555.837 244.64 513184.1 5402555.87 244.64 513184.1 5402555.87 262.668 513184.102 5402555.837 262.666 + + + + + + + + + + + + + + + + + 513188.09 5402554.11 262.665 513184.1 5402555.87 262.668 513184.1 5402555.87 244.64 513188.09 5402554.11 244.64 513188.09 5402554.11 262.665 + + + + + + + + + + + + + + + + + 513188.09 5402554.11 244.64 513188.07 5402554.089 244.64 513188.07 5402554.089 262.663 513188.09 5402554.11 262.665 513188.09 5402554.11 244.64 + + + + + + + + + + + + + + + + + 513188.07 5402554.089 244.64 513188.053 5402554.069 244.64 513188.053 5402554.069 262.661 513188.07 5402554.089 262.663 513188.07 5402554.089 244.64 + + + + + + + + + + + + + + + + + 513188.053 5402554.069 244.64 513188.038 5402554.047 244.64 513188.038 5402554.047 262.66 513188.053 5402554.069 262.661 513188.053 5402554.069 244.64 + + + + + + + + + + + + + + + + + 513188.038 5402554.047 244.64 513188.024 5402554.025 244.64 513188.024 5402554.025 262.658 513188.038 5402554.047 262.66 513188.038 5402554.047 244.64 + + + + + + + + + + + + + + + + + 513188.024 5402554.025 244.64 513188.012 5402554.002 244.64 513188.012 5402554.002 262.656 513188.024 5402554.025 262.658 513188.024 5402554.025 244.64 + + + + + + + + + + + + + + + + + 513188.012 5402554.002 244.64 513188.002 5402553.979 244.64 513188.002 5402553.979 262.654 513188.012 5402554.002 262.656 513188.012 5402554.002 244.64 + + + + + + + + + + + + + + + + + 513188.002 5402553.979 244.64 513187.993 5402553.954 244.64 513187.993 5402553.954 262.652 513188.002 5402553.979 262.654 513188.002 5402553.979 244.64 + + + + + + + + + + + + + + + + + 513187.986 5402553.929 244.64 513187.986 5402553.929 262.65 513187.993 5402553.954 262.652 513187.993 5402553.954 244.64 513187.986 5402553.929 244.64 + + + + + + + + + + + + + + + + + 513187.981 5402553.904 244.64 513187.981 5402553.904 262.649 513187.986 5402553.929 262.65 513187.986 5402553.929 244.64 513187.981 5402553.904 244.64 + + + + + + + + + + + + + + + + + 513187.977 5402553.878 244.64 513187.977 5402553.878 262.647 513187.981 5402553.904 262.649 513187.981 5402553.904 244.64 513187.977 5402553.878 244.64 + + + + + + + + + + + + + + + + + 513187.976 5402553.852 244.64 513187.976 5402553.852 262.645 513187.977 5402553.878 262.647 513187.977 5402553.878 244.64 513187.976 5402553.852 244.64 + + + + + + + + + + + + + + + + + 513187.976 5402553.826 244.64 513187.976 5402553.826 262.643 513187.976 5402553.852 262.645 513187.976 5402553.852 244.64 513187.976 5402553.826 244.64 + + + + + + + + + + + + + + + + + 513187.978 5402553.8 244.64 513187.978 5402553.8 262.642 513187.976 5402553.826 262.643 513187.976 5402553.826 244.64 513187.978 5402553.8 244.64 + + + + + + + + + + + + + + + + + 513187.982 5402553.774 244.64 513187.982 5402553.774 262.64 513187.978 5402553.8 262.642 513187.978 5402553.8 244.64 513187.982 5402553.774 244.64 + + + + + + + + + + + + + + + + + 513187.987 5402553.749 244.64 513187.987 5402553.749 262.639 513187.982 5402553.774 262.64 513187.982 5402553.774 244.64 513187.987 5402553.749 244.64 + + + + + + + + + + + + + + + + + 513187.995 5402553.724 244.64 513187.995 5402553.724 262.637 513187.987 5402553.749 262.639 513187.987 5402553.749 244.64 513187.995 5402553.724 244.64 + + + + + + + + + + + + + + + + + 513188.004 5402553.7 262.636 513187.995 5402553.724 262.637 513187.995 5402553.724 244.64 513188.004 5402553.7 244.64 513188.004 5402553.7 262.636 + + + + + + + + + + + + + + + + + 513188.014 5402553.676 262.635 513188.004 5402553.7 262.636 513188.004 5402553.7 244.64 513188.014 5402553.676 244.64 513188.014 5402553.676 262.635 + + + + + + + + + + + + + + + + + 513188.027 5402553.653 262.634 513188.014 5402553.676 262.635 513188.014 5402553.676 244.64 513188.027 5402553.653 244.64 513188.027 5402553.653 262.634 + + + + + + + + + + + + + + + + + 513188.041 5402553.631 262.633 513188.027 5402553.653 262.634 513188.027 5402553.653 244.64 513188.041 5402553.631 244.64 513188.041 5402553.631 262.633 + + + + + + + + + + + + + + + + + 513188.056 5402553.61 262.632 513188.041 5402553.631 262.633 513188.041 5402553.631 244.64 513188.056 5402553.61 244.64 513188.056 5402553.61 262.632 + + + + + + + + + + + + + + + + + 513188.073 5402553.591 262.631 513188.056 5402553.61 262.632 513188.056 5402553.61 244.64 513188.073 5402553.591 244.64 513188.073 5402553.591 262.631 + + + + + + + + + + + + + + + + + 513188.091 5402553.572 262.63 513188.073 5402553.591 262.631 513188.073 5402553.591 244.64 513188.091 5402553.572 244.64 513188.091 5402553.572 262.63 + + + + + + + + + + + + + + + + + 513188.091 5402553.572 244.64 513188.111 5402553.555 244.64 513188.111 5402553.555 262.63 513188.091 5402553.572 262.63 513188.091 5402553.572 244.64 + + + + + + + + + + + + + + + + + 513188.131 5402553.539 262.629 513188.111 5402553.555 262.63 513188.111 5402553.555 244.64 513188.131 5402553.539 244.64 513188.131 5402553.539 262.629 + + + + + + + + + + + + + + + + + 513188.131 5402553.539 244.64 513188.153 5402553.524 244.64 513188.153 5402553.524 262.629 513188.131 5402553.539 262.629 513188.131 5402553.539 244.64 + + + + + + + + + + + + + + + + + 513188.153 5402553.524 244.64 513188.175 5402553.512 244.64 513188.175 5402553.512 262.629 513188.153 5402553.524 262.629 513188.153 5402553.524 244.64 + + + + + + + + + + + + + + + + + 513188.175 5402553.512 244.64 513188.202 5402553.499 244.64 513188.202 5402553.499 262.629 513188.175 5402553.512 262.629 513188.175 5402553.512 244.64 + + + + + + + + + + + + + + + + + 513188.202 5402553.499 244.64 513188.229 5402553.489 244.64 513188.229 5402553.489 262.629 513188.202 5402553.499 262.629 513188.202 5402553.499 244.64 + + + + + + + + + + + + + + + + + 513188.229 5402553.489 244.64 513188.254 5402553.481 244.64 513188.254 5402553.481 262.629 513188.229 5402553.489 262.629 513188.229 5402553.489 244.64 + + + + + + + + + + + + + + + + + 513188.254 5402553.481 244.64 513188.279 5402553.476 244.64 513188.279 5402553.476 262.629 513188.254 5402553.481 262.629 513188.254 5402553.481 244.64 + + + + + + + + + + + + + + + + + 513188.279 5402553.476 244.64 513188.305 5402553.472 244.64 513188.305 5402553.472 262.63 513188.279 5402553.476 262.629 513188.279 5402553.476 244.64 + + + + + + + + + + + + + + + + + 513188.305 5402553.472 244.64 513188.331 5402553.47 244.64 513188.331 5402553.47 262.63 513188.305 5402553.472 262.63 513188.305 5402553.472 244.64 + + + + + + + + + + + + + + + + + 513188.331 5402553.47 244.64 513188.357 5402553.469 244.64 513188.357 5402553.469 262.631 513188.331 5402553.47 262.63 513188.331 5402553.47 244.64 + + + + + + + + + + + + + + + + + 513188.357 5402553.469 244.64 513188.383 5402553.471 244.64 513188.383 5402553.471 262.632 513188.357 5402553.469 262.631 513188.357 5402553.469 244.64 + + + + + + + + + + + + + + + + + 513188.383 5402553.471 244.64 513188.408 5402553.474 244.64 513188.408 5402553.474 262.633 513188.383 5402553.471 262.632 513188.383 5402553.471 244.64 + + + + + + + + + + + + + + + + + 513188.408 5402553.474 244.64 513188.434 5402553.479 244.64 513188.434 5402553.479 262.634 513188.408 5402553.474 262.633 513188.408 5402553.474 244.64 + + + + + + + + + + + + + + + + + 513188.434 5402553.479 244.64 513188.459 5402553.486 244.64 513188.459 5402553.486 262.635 513188.434 5402553.479 262.634 513188.434 5402553.479 244.64 + + + + + + + + + + + + + + + + + 513188.459 5402553.486 244.64 513188.483 5402553.495 244.64 513188.483 5402553.495 262.636 513188.459 5402553.486 262.635 513188.459 5402553.486 244.64 + + + + + + + + + + + + + + + + + 513188.483 5402553.495 244.64 513188.507 5402553.505 244.64 513188.507 5402553.505 262.638 513188.483 5402553.495 262.636 513188.483 5402553.495 244.64 + + + + + + + + + + + + + + + + + 513188.507 5402553.505 244.64 513188.53 5402553.517 244.64 513188.53 5402553.517 262.639 513188.507 5402553.505 262.638 513188.507 5402553.505 244.64 + + + + + + + + + + + + + + + + + 513188.53 5402553.517 244.64 513188.552 5402553.531 244.64 513188.552 5402553.531 262.64 513188.53 5402553.517 262.639 513188.53 5402553.517 244.64 + + + + + + + + + + + + + + + + + 513188.552 5402553.531 244.64 513188.574 5402553.546 244.64 513188.574 5402553.546 262.642 513188.552 5402553.531 262.64 513188.552 5402553.531 244.64 + + + + + + + + + + + + + + + + + 513188.574 5402553.546 244.64 513188.594 5402553.562 244.64 513188.594 5402553.562 262.644 513188.574 5402553.546 262.642 513188.574 5402553.546 244.64 + + + + + + + + + + + + + + + + + 513188.594 5402553.562 244.64 513188.613 5402553.58 244.64 513188.613 5402553.58 262.645 513188.594 5402553.562 262.644 513188.594 5402553.562 244.64 + + + + + + + + + + + + + + + + + 513188.613 5402553.58 244.64 513188.63 5402553.599 244.64 513188.63 5402553.599 262.647 513188.613 5402553.58 262.645 513188.613 5402553.58 244.64 + + + + + + + + + + + + + + + + + 513188.63 5402553.599 244.64 513188.646 5402553.619 244.64 513188.646 5402553.619 262.649 513188.63 5402553.599 262.647 513188.63 5402553.599 244.64 + + + + + + + + + + + + + + + + + 513188.646 5402553.619 244.64 513188.661 5402553.641 244.64 513188.661 5402553.641 262.651 513188.646 5402553.619 262.649 513188.646 5402553.619 244.64 + + + + + + + + + + + + + + + + + 513188.661 5402553.641 244.64 513188.674 5402553.663 244.64 513188.674 5402553.663 262.652 513188.661 5402553.641 262.651 513188.661 5402553.641 244.64 + + + + + + + + + + + + + + + + + 513188.674 5402553.663 244.64 513188.686 5402553.686 244.64 513188.686 5402553.686 262.654 513188.674 5402553.663 262.652 513188.674 5402553.663 244.64 + + + + + + + + + + + + + + + + + 513188.686 5402553.686 244.64 513188.696 5402553.71 244.64 513188.696 5402553.71 262.656 513188.686 5402553.686 262.654 513188.686 5402553.686 244.64 + + + + + + + + + + + + + + + + + 513188.696 5402553.71 262.656 513188.696 5402553.71 244.64 513188.704 5402553.735 244.64 513188.704 5402553.735 262.658 513188.696 5402553.71 262.656 + + + + + + + + + + + + + + + + + 513188.704 5402553.735 262.658 513188.704 5402553.735 244.64 513188.711 5402553.76 244.64 513188.711 5402553.76 262.66 513188.704 5402553.735 262.658 + + + + + + + + + + + + + + + + + 513188.711 5402553.76 262.66 513188.711 5402553.76 244.64 513188.716 5402553.786 244.64 513188.716 5402553.786 262.662 513188.711 5402553.76 262.66 + + + + + + + + + + + + + + + + + 513188.716 5402553.786 262.662 513188.716 5402553.786 244.64 513188.719 5402553.811 244.64 513188.719 5402553.811 262.663 513188.716 5402553.786 262.662 + + + + + + + + + + + + + + + + + 513188.719 5402553.811 262.663 513188.719 5402553.811 244.64 513188.72 5402553.84 244.64 513188.72 5402553.84 262.665 513188.719 5402553.811 262.663 + + + + + + + + + + + + + + + + + 513192.72 5402552.07 262.662 513188.72 5402553.84 262.665 513188.72 5402553.84 244.64 513192.72 5402552.07 244.64 513192.72 5402552.07 262.662 + + + + + + + + + + + + + + + + + 513192.72 5402552.07 244.64 513192.65 5402551.91 244.64 513192.65 5402551.91 262.65 513192.72 5402552.07 262.662 513192.72 5402552.07 244.64 + + + + + + + + + + + + + + + + + 513192.65 5402551.91 244.64 513192.64 5402551.886 244.64 513192.64 5402551.886 262.648 513192.65 5402551.91 262.65 513192.65 5402551.91 244.64 + + + + + + + + + + + + + + + + + 513192.633 5402551.862 244.64 513192.633 5402551.862 262.646 513192.64 5402551.886 262.648 513192.64 5402551.886 244.64 513192.633 5402551.862 244.64 + + + + + + + + + + + + + + + + + 513192.628 5402551.839 244.64 513192.628 5402551.839 262.645 513192.633 5402551.862 262.646 513192.633 5402551.862 244.64 513192.628 5402551.839 244.64 + + + + + + + + + + + + + + + + + 513192.624 5402551.815 244.64 513192.624 5402551.815 262.643 513192.628 5402551.839 262.645 513192.628 5402551.839 244.64 513192.624 5402551.815 244.64 + + + + + + + + + + + + + + + + + 513192.622 5402551.79 244.64 513192.622 5402551.79 262.641 513192.624 5402551.815 262.643 513192.624 5402551.815 244.64 513192.622 5402551.79 244.64 + + + + + + + + + + + + + + + + + 513192.621 5402551.766 244.64 513192.621 5402551.766 262.64 513192.622 5402551.79 262.641 513192.622 5402551.79 244.64 513192.621 5402551.766 244.64 + + + + + + + + + + + + + + + + + 513192.622 5402551.742 244.64 513192.622 5402551.742 262.638 513192.621 5402551.766 262.64 513192.621 5402551.766 244.64 513192.622 5402551.742 244.64 + + + + + + + + + + + + + + + + + 513192.625 5402551.717 244.64 513192.625 5402551.717 262.637 513192.622 5402551.742 262.638 513192.622 5402551.742 244.64 513192.625 5402551.717 244.64 + + + + + + + + + + + + + + + + + 513192.629 5402551.694 244.64 513192.629 5402551.694 262.635 513192.625 5402551.717 262.637 513192.625 5402551.717 244.64 513192.629 5402551.694 244.64 + + + + + + + + + + + + + + + + + 513192.636 5402551.67 244.64 513192.636 5402551.67 262.634 513192.629 5402551.694 262.635 513192.629 5402551.694 244.64 513192.636 5402551.67 244.64 + + + + + + + + + + + + + + + + + 513192.644 5402551.647 244.64 513192.644 5402551.647 262.633 513192.636 5402551.67 262.634 513192.636 5402551.67 244.64 513192.644 5402551.647 244.64 + + + + + + + + + + + + + + + + + 513192.653 5402551.625 262.632 513192.644 5402551.647 262.633 513192.644 5402551.647 244.64 513192.653 5402551.625 244.64 513192.653 5402551.625 262.632 + + + + + + + + + + + + + + + + + 513192.664 5402551.603 262.63 513192.653 5402551.625 262.632 513192.653 5402551.625 244.64 513192.664 5402551.603 244.64 513192.664 5402551.603 262.63 + + + + + + + + + + + + + + + + + 513192.676 5402551.582 262.629 513192.664 5402551.603 262.63 513192.664 5402551.603 244.64 513192.676 5402551.582 244.64 513192.676 5402551.582 262.629 + + + + + + + + + + + + + + + + + 513192.676 5402551.582 244.64 513192.69 5402551.562 244.64 513192.69 5402551.562 262.629 513192.676 5402551.582 262.629 513192.676 5402551.582 244.64 + + + + + + + + + + + + + + + + + 513192.705 5402551.543 262.628 513192.69 5402551.562 262.629 513192.69 5402551.562 244.64 513192.705 5402551.543 244.64 513192.705 5402551.543 262.628 + + + + + + + + + + + + + + + + + 513192.722 5402551.525 262.627 513192.705 5402551.543 262.628 513192.705 5402551.543 244.64 513192.722 5402551.525 244.64 513192.722 5402551.525 262.627 + + + + + + + + + + + + + + + + + 513192.74 5402551.509 262.626 513192.722 5402551.525 262.627 513192.722 5402551.525 244.64 513192.74 5402551.509 244.64 513192.74 5402551.509 262.626 + + + + + + + + + + + + + + + + + 513192.74 5402551.509 244.64 513192.759 5402551.493 244.64 513192.759 5402551.493 262.626 513192.74 5402551.509 262.626 513192.74 5402551.509 244.64 + + + + + + + + + + + + + + + + + 513192.759 5402551.493 244.64 513192.778 5402551.479 244.64 513192.778 5402551.479 262.626 513192.759 5402551.493 262.626 513192.759 5402551.493 244.64 + + + + + + + + + + + + + + + + + 513192.799 5402551.466 262.625 513192.778 5402551.479 262.626 513192.778 5402551.479 244.64 513192.799 5402551.466 244.64 513192.799 5402551.466 262.625 + + + + + + + + + + + + + + + + + 513192.799 5402551.466 244.64 513192.821 5402551.455 244.64 513192.821 5402551.455 262.625 513192.799 5402551.466 262.625 513192.799 5402551.466 244.64 + + + + + + + + + + + + + + + + + 513192.821 5402551.455 244.64 513192.845 5402551.445 244.64 513192.845 5402551.445 262.625 513192.821 5402551.455 262.625 513192.821 5402551.455 244.64 + + + + + + + + + + + + + + + + + 513192.845 5402551.445 244.64 513192.869 5402551.437 244.64 513192.869 5402551.437 262.625 513192.845 5402551.445 262.625 513192.845 5402551.445 244.64 + + + + + + + + + + + + + + + + + 513192.869 5402551.437 244.64 513192.893 5402551.431 244.64 513192.893 5402551.431 262.626 513192.869 5402551.437 262.625 513192.869 5402551.437 244.64 + + + + + + + + + + + + + + + + + 513192.893 5402551.431 244.64 513192.917 5402551.426 244.64 513192.917 5402551.426 262.626 513192.893 5402551.431 262.626 513192.893 5402551.431 244.64 + + + + + + + + + + + + + + + + + 513192.917 5402551.426 244.64 513192.941 5402551.423 244.64 513192.941 5402551.423 262.627 513192.917 5402551.426 262.626 513192.917 5402551.426 244.64 + + + + + + + + + + + + + + + + + 513192.941 5402551.423 244.64 513192.965 5402551.422 244.64 513192.965 5402551.422 262.627 513192.941 5402551.423 262.627 513192.941 5402551.423 244.64 + + + + + + + + + + + + + + + + + 513192.965 5402551.422 244.64 513192.99 5402551.423 244.64 513192.99 5402551.423 262.628 513192.965 5402551.422 262.627 513192.965 5402551.422 244.64 + + + + + + + + + + + + + + + + + 513192.99 5402551.423 244.64 513193.014 5402551.425 244.64 513193.014 5402551.425 262.629 513192.99 5402551.423 262.628 513192.99 5402551.423 244.64 + + + + + + + + + + + + + + + + + 513193.014 5402551.425 244.64 513193.038 5402551.429 244.64 513193.038 5402551.429 262.63 513193.014 5402551.425 262.629 513193.014 5402551.425 244.64 + + + + + + + + + + + + + + + + + 513193.038 5402551.429 244.64 513193.061 5402551.434 244.64 513193.061 5402551.434 262.631 513193.038 5402551.429 262.63 513193.038 5402551.429 244.64 + + + + + + + + + + + + + + + + + 513193.061 5402551.434 244.64 513193.085 5402551.442 244.64 513193.085 5402551.442 262.632 513193.061 5402551.434 262.631 513193.061 5402551.434 244.64 + + + + + + + + + + + + + + + + + 513193.085 5402551.442 244.64 513193.107 5402551.45 244.64 513193.107 5402551.45 262.633 513193.085 5402551.442 262.632 513193.085 5402551.442 244.64 + + + + + + + + + + + + + + + + + 513193.107 5402551.45 244.64 513193.129 5402551.461 244.64 513193.129 5402551.461 262.634 513193.107 5402551.45 262.633 513193.107 5402551.45 244.64 + + + + + + + + + + + + + + + + + 513193.129 5402551.461 244.64 513193.151 5402551.473 244.64 513193.151 5402551.473 262.636 513193.129 5402551.461 262.634 513193.129 5402551.461 244.64 + + + + + + + + + + + + + + + + + 513193.151 5402551.473 244.64 513193.171 5402551.486 244.64 513193.171 5402551.486 262.637 513193.151 5402551.473 262.636 513193.151 5402551.473 244.64 + + + + + + + + + + + + + + + + + 513193.171 5402551.486 244.64 513193.19 5402551.501 244.64 513193.19 5402551.501 262.639 513193.171 5402551.486 262.637 513193.171 5402551.486 244.64 + + + + + + + + + + + + + + + + + 513193.19 5402551.501 244.64 513193.208 5402551.517 244.64 513193.208 5402551.517 262.64 513193.19 5402551.501 262.639 513193.19 5402551.501 244.64 + + + + + + + + + + + + + + + + + 513193.208 5402551.517 244.64 513193.226 5402551.534 244.64 513193.226 5402551.534 262.642 513193.208 5402551.517 262.64 513193.208 5402551.517 244.64 + + + + + + + + + + + + + + + + + 513193.226 5402551.534 244.64 513193.241 5402551.553 244.64 513193.241 5402551.553 262.643 513193.226 5402551.534 262.642 513193.226 5402551.534 244.64 + + + + + + + + + + + + + + + + + 513193.241 5402551.553 244.64 513193.256 5402551.572 244.64 513193.256 5402551.572 262.645 513193.241 5402551.553 262.643 513193.241 5402551.553 244.64 + + + + + + + + + + + + + + + + + 513193.256 5402551.572 244.64 513193.269 5402551.593 244.64 513193.269 5402551.593 262.647 513193.256 5402551.572 262.645 513193.256 5402551.572 244.64 + + + + + + + + + + + + + + + + + 513193.269 5402551.593 244.64 513193.281 5402551.614 244.64 513193.281 5402551.614 262.648 513193.269 5402551.593 262.647 513193.269 5402551.593 244.64 + + + + + + + + + + + + + + + + + 513193.281 5402551.614 244.64 513193.291 5402551.636 244.64 513193.291 5402551.636 262.65 513193.281 5402551.614 262.648 513193.281 5402551.614 244.64 + + + + + + + + + + + + + + + + + 513193.291 5402551.636 244.64 513193.3 5402551.66 244.64 513193.3 5402551.66 262.652 513193.291 5402551.636 262.65 513193.291 5402551.636 244.64 + + + + + + + + + + + + + + + + + 513193.3 5402551.66 244.64 513193.35 5402551.78 244.64 513193.35 5402551.78 262.661 513193.3 5402551.66 262.652 513193.3 5402551.66 244.64 + + + + + + + + + + + + + + + + + 513193.35 5402551.78 244.64 513196.66 5402550.5 244.64 513196.66 5402550.5 262.671 513193.35 5402551.78 262.661 513193.35 5402551.78 244.64 + + + + + + + + + + + + + + + + + 513149.05 5402569.737 244.64 513149.037 5402569.754 244.64 513149.026 5402569.772 244.64 513149.015 5402569.79 244.64 513149.006 5402569.809 244.64 513148.998 5402569.829 244.64 513148.992 5402569.849 244.64 513148.987 5402569.869 244.64 513148.983 5402569.89 244.64 513148.981 5402569.911 244.64 513148.98 5402569.932 244.64 513148.981 5402569.953 244.64 513148.984 5402569.974 244.64 513148.987 5402569.995 244.64 513148.993 5402570.015 244.64 513148.999 5402570.035 244.64 513149.007 5402570.055 244.64 513149.02 5402570.08 244.64 513149.3 5402570.36 244.64 513146.39 5402572.95 244.64 513146.11 5402572.6 244.64 513146.09 5402572.578 244.64 513146.073 5402572.562 244.64 513146.055 5402572.547 244.64 513146.036 5402572.534 244.64 513146.016 5402572.522 244.64 513145.996 5402572.512 244.64 513145.975 5402572.503 244.64 513145.953 5402572.495 244.64 513145.931 5402572.489 244.64 513145.908 5402572.485 244.64 513145.885 5402572.482 244.64 513145.862 5402572.481 244.64 513145.839 5402572.481 244.64 513145.816 5402572.483 244.64 513145.793 5402572.487 244.64 513145.771 5402572.492 244.64 513145.749 5402572.499 244.64 513145.728 5402572.507 244.64 513145.707 5402572.516 244.64 513145.686 5402572.527 244.64 513145.667 5402572.54 244.64 513145.649 5402572.554 244.64 513145.626 5402572.574 244.64 513145.605 5402572.597 244.64 513145.59 5402572.615 244.64 513145.577 5402572.634 244.64 513145.566 5402572.654 244.64 513145.555 5402572.674 244.64 513145.547 5402572.696 244.64 513145.539 5402572.718 244.64 513145.534 5402572.74 244.64 513145.53 5402572.763 244.64 513145.527 5402572.786 244.64 513145.526 5402572.809 244.64 513145.527 5402572.832 244.64 513145.529 5402572.854 244.64 513145.533 5402572.877 244.64 513145.538 5402572.9 244.64 513145.545 5402572.921 244.64 513145.554 5402572.943 244.64 513145.564 5402572.964 244.64 513145.575 5402572.984 244.64 513145.588 5402573.003 244.64 513145.602 5402573.021 244.64 513145.617 5402573.038 244.64 513145.64 5402573.06 244.64 513145.9 5402573.38 244.64 513142.65 5402576.17 244.64 513142.51 5402575.93 244.64 513142.502 5402575.908 244.64 513142.494 5402575.886 244.64 513142.483 5402575.866 244.64 513142.472 5402575.847 244.64 513142.459 5402575.828 244.64 513142.445 5402575.81 244.64 513142.429 5402575.794 244.64 513142.413 5402575.778 244.64 513142.395 5402575.764 244.64 513142.377 5402575.751 244.64 513142.357 5402575.739 244.64 513142.337 5402575.729 244.64 513142.316 5402575.72 244.64 513142.295 5402575.712 244.64 513142.273 5402575.706 244.64 513142.251 5402575.702 244.64 513142.228 5402575.699 244.64 513142.205 5402575.698 244.64 513142.183 5402575.698 244.64 513142.16 5402575.7 244.64 513142.138 5402575.703 244.64 513142.116 5402575.708 244.64 513142.094 5402575.715 244.64 513142.073 5402575.723 244.64 513142.051 5402575.733 244.64 513142.03 5402575.745 244.64 513142.011 5402575.757 244.64 513141.993 5402575.771 244.64 513141.976 5402575.786 244.64 513141.96 5402575.802 244.64 513141.945 5402575.819 244.64 513141.932 5402575.837 244.64 513141.919 5402575.856 244.64 513141.908 5402575.876 244.64 513141.899 5402575.897 244.64 513141.891 5402575.918 244.64 513141.884 5402575.94 244.64 513141.879 5402575.962 244.64 513141.876 5402575.984 244.64 513141.874 5402576.007 244.64 513141.873 5402576.029 244.64 513141.875 5402576.052 244.64 513141.878 5402576.075 244.64 513141.882 5402576.097 244.64 513141.888 5402576.119 244.64 513141.895 5402576.14 244.64 513141.904 5402576.161 244.64 513141.914 5402576.181 244.64 513141.926 5402576.201 244.64 513141.94 5402576.22 244.64 513142.24 5402576.58 244.64 513138.96 5402579.53 244.64 513138.68 5402579.24 244.64 513138.678 5402579.214 244.64 513138.675 5402579.196 244.64 513138.671 5402579.178 244.64 513138.666 5402579.16 244.64 513138.659 5402579.143 244.64 513138.651 5402579.126 244.64 513138.642 5402579.11 244.64 513138.632 5402579.095 244.64 513138.621 5402579.08 244.64 513138.609 5402579.066 244.64 513138.596 5402579.053 244.64 513138.582 5402579.041 244.64 513138.567 5402579.03 244.64 513138.552 5402579.02 244.64 513138.536 5402579.011 244.64 513138.519 5402579.003 244.64 513138.502 5402578.997 244.64 513138.484 5402578.991 244.64 513138.466 5402578.987 244.64 513138.448 5402578.984 244.64 513138.429 5402578.982 244.64 513138.411 5402578.982 244.64 513138.392 5402578.983 244.64 513138.374 5402578.985 244.64 513138.356 5402578.989 244.64 513138.331 5402578.996 244.64 513138.308 5402579.005 244.64 513138.291 5402579.013 244.64 513138.275 5402579.022 244.64 513138.26 5402579.033 244.64 513138.245 5402579.044 244.64 513138.232 5402579.057 244.64 513138.219 5402579.07 244.64 513138.207 5402579.084 244.64 513138.196 5402579.099 244.64 513138.186 5402579.114 244.64 513138.178 5402579.131 244.64 513138.17 5402579.148 244.64 513138.164 5402579.165 244.64 513138.159 5402579.183 244.64 513138.155 5402579.201 244.64 513138.152 5402579.219 244.64 513138.151 5402579.238 244.64 513138.151 5402579.256 244.64 513138.152 5402579.274 244.64 513138.155 5402579.293 244.64 513138.159 5402579.311 244.64 513138.164 5402579.329 244.64 513138.17 5402579.346 244.64 513138.178 5402579.363 244.64 513138.186 5402579.379 244.64 513138.2 5402579.4 244.64 513138.34 5402579.78 244.64 513133.81 5402581.86 244.64 513133.68 5402581.46 244.64 513133.673 5402581.431 244.64 513133.664 5402581.406 244.64 513133.654 5402581.382 244.64 513133.643 5402581.359 244.64 513133.629 5402581.337 244.64 513133.614 5402581.315 244.64 513133.598 5402581.295 244.64 513133.581 5402581.276 244.64 513133.562 5402581.258 244.64 513133.542 5402581.242 244.64 513133.52 5402581.227 244.64 513133.498 5402581.213 244.64 513133.475 5402581.201 244.64 513133.451 5402581.191 244.64 513133.427 5402581.182 244.64 513133.402 5402581.175 244.64 513133.376 5402581.17 244.64 513133.35 5402581.167 244.64 513133.324 5402581.166 244.64 513133.298 5402581.166 244.64 513133.273 5402581.168 244.64 513133.247 5402581.172 244.64 513133.222 5402581.178 244.64 513133.197 5402581.185 244.64 513133.172 5402581.194 244.64 513133.149 5402581.205 244.64 513133.126 5402581.218 244.64 513133.104 5402581.232 244.64 513133.08 5402581.25 244.64 513133.057 5402581.271 244.64 513133.039 5402581.289 244.64 513133.022 5402581.309 244.64 513133.007 5402581.33 244.64 513132.993 5402581.352 244.64 513132.981 5402581.375 244.64 513132.971 5402581.399 244.64 513132.962 5402581.423 244.64 513132.955 5402581.448 244.64 513132.949 5402581.474 244.64 513132.946 5402581.5 244.64 513132.944 5402581.526 244.64 513132.944 5402581.552 244.64 513132.946 5402581.577 244.64 513132.95 5402581.603 244.64 513132.955 5402581.629 244.64 513132.962 5402581.654 244.64 513132.971 5402581.678 244.64 513132.982 5402581.702 244.64 513132.994 5402581.725 244.64 513133.008 5402581.747 244.64 513133.023 5402581.768 244.64 513133.04 5402581.787 244.64 513133.058 5402581.806 244.64 513133.077 5402581.823 244.64 513133.098 5402581.839 244.64 513133.12 5402581.854 244.64 513133.142 5402581.867 244.64 513133.17 5402581.88 244.64 513133.2 5402581.88 244.64 513134.65 5402585.22 244.64 513129.38 5402587.67 244.64 513130.81 5402590.95 244.64 513130.34 5402591.16 244.64 513130.69 5402591.95 244.64 513131.22 5402591.75 244.64 513132.29 5402594.24 244.64 513131.78 5402594.38 244.64 513132.17 5402595.27 244.64 513132.69 5402595.04 244.64 513133.71 5402597.44 244.64 513133.25 5402597.56 244.64 513133.61 5402598.41 244.64 513134.08 5402598.16 244.64 513135.2 5402600.67 244.64 513134.68 5402600.84 244.64 513135.06 5402601.66 244.64 513135.53 5402601.45 244.64 513136.6 5402603.87 244.64 513136.12 5402604.09 244.64 513136.47 5402604.9 244.64 513136.98 5402604.66 244.64 513138.05 5402607.09 244.64 513137.55 5402607.27 244.64 513137.86 5402608.06 244.64 513138.39 5402607.83 244.64 513139.58 5402610.52 244.64 513139.11 5402610.8 244.64 513139.46 5402611.6 244.64 513139.98 5402611.44 244.64 513141.6 5402614.96 244.64 513139.92 5402616.3 244.64 513138.41 5402617.33 244.64 513136.33 5402618.75 244.64 513137.221 5402619.876 244.64 513140.57 5402624.11 244.64 513144.69 5402622.22 244.64 513150.45 5402619.52 244.64 513152.04 5402622.99 244.64 513161.89 5402618.59 244.64 513161.79 5402618.38 244.64 513160.27 5402615.0 244.64 513210.73 5402592.46 244.64 513212.22 5402595.95 244.64 513212.29 5402596.13 244.64 513222.26 5402591.7 244.64 513220.44 5402587.66 244.64 513220.84 5402587.54 244.64 513219.026 5402583.413 244.64 513207.72 5402557.69 244.64 513204.69 5402559.04 244.64 513201.51 5402552.03 244.64 513201.36 5402551.76 244.64 513201.224 5402551.554 244.64 513201.074 5402551.358 244.64 513200.911 5402551.173 244.64 513200.735 5402551.0 244.64 513200.547 5402550.84 244.64 513200.349 5402550.693 244.64 513200.141 5402550.561 244.64 513199.924 5402550.443 244.64 513199.7 5402550.341 244.64 513199.409 5402550.235 244.64 513199.111 5402550.155 244.64 513198.869 5402550.11 244.64 513198.623 5402550.082 244.64 513198.377 5402550.072 244.64 513198.13 5402550.078 244.64 513197.885 5402550.102 244.64 513197.642 5402550.143 244.64 513197.402 5402550.2 244.64 513197.167 5402550.274 244.64 513196.937 5402550.365 244.64 513196.66 5402550.5 244.64 513193.35 5402551.78 244.64 513193.3 5402551.66 244.64 513193.291 5402551.636 244.64 513193.281 5402551.614 244.64 513193.269 5402551.593 244.64 513193.256 5402551.572 244.64 513193.241 5402551.553 244.64 513193.226 5402551.534 244.64 513193.208 5402551.517 244.64 513193.19 5402551.501 244.64 513193.171 5402551.486 244.64 513193.151 5402551.473 244.64 513193.129 5402551.461 244.64 513193.107 5402551.45 244.64 513193.085 5402551.442 244.64 513193.061 5402551.434 244.64 513193.038 5402551.429 244.64 513193.014 5402551.425 244.64 513192.99 5402551.423 244.64 513192.965 5402551.422 244.64 513192.941 5402551.423 244.64 513192.917 5402551.426 244.64 513192.893 5402551.431 244.64 513192.869 5402551.437 244.64 513192.845 5402551.445 244.64 513192.821 5402551.455 244.64 513192.799 5402551.466 244.64 513192.778 5402551.479 244.64 513192.759 5402551.493 244.64 513192.74 5402551.509 244.64 513192.722 5402551.525 244.64 513192.705 5402551.543 244.64 513192.69 5402551.562 244.64 513192.676 5402551.582 244.64 513192.664 5402551.603 244.64 513192.653 5402551.625 244.64 513192.644 5402551.647 244.64 513192.636 5402551.67 244.64 513192.629 5402551.694 244.64 513192.625 5402551.717 244.64 513192.622 5402551.742 244.64 513192.621 5402551.766 244.64 513192.622 5402551.79 244.64 513192.624 5402551.815 244.64 513192.628 5402551.839 244.64 513192.633 5402551.862 244.64 513192.64 5402551.886 244.64 513192.65 5402551.91 244.64 513192.72 5402552.07 244.64 513188.72 5402553.84 244.64 513188.719 5402553.811 244.64 513188.716 5402553.786 244.64 513188.711 5402553.76 244.64 513188.704 5402553.735 244.64 513188.696 5402553.71 244.64 513188.686 5402553.686 244.64 513188.674 5402553.663 244.64 513188.661 5402553.641 244.64 513188.646 5402553.619 244.64 513188.63 5402553.599 244.64 513188.613 5402553.58 244.64 513188.594 5402553.562 244.64 513188.574 5402553.546 244.64 513188.552 5402553.531 244.64 513188.53 5402553.517 244.64 513188.507 5402553.505 244.64 513188.483 5402553.495 244.64 513188.459 5402553.486 244.64 513188.434 5402553.479 244.64 513188.408 5402553.474 244.64 513188.383 5402553.471 244.64 513188.357 5402553.469 244.64 513188.331 5402553.47 244.64 513188.305 5402553.472 244.64 513188.279 5402553.476 244.64 513188.254 5402553.481 244.64 513188.229 5402553.489 244.64 513188.202 5402553.499 244.64 513188.175 5402553.512 244.64 513188.153 5402553.524 244.64 513188.131 5402553.539 244.64 513188.111 5402553.555 244.64 513188.091 5402553.572 244.64 513188.073 5402553.591 244.64 513188.056 5402553.61 244.64 513188.041 5402553.631 244.64 513188.027 5402553.653 244.64 513188.014 5402553.676 244.64 513188.004 5402553.7 244.64 513187.995 5402553.724 244.64 513187.987 5402553.749 244.64 513187.982 5402553.774 244.64 513187.978 5402553.8 244.64 513187.976 5402553.826 244.64 513187.976 5402553.852 244.64 513187.977 5402553.878 244.64 513187.981 5402553.904 244.64 513187.986 5402553.929 244.64 513187.993 5402553.954 244.64 513188.002 5402553.979 244.64 513188.012 5402554.002 244.64 513188.024 5402554.025 244.64 513188.038 5402554.047 244.64 513188.053 5402554.069 244.64 513188.07 5402554.089 244.64 513188.09 5402554.11 244.64 513184.1 5402555.87 244.64 513184.102 5402555.837 244.64 513184.102 5402555.811 244.64 513184.1 5402555.786 244.64 513184.096 5402555.76 244.64 513184.091 5402555.735 244.64 513184.083 5402555.711 244.64 513184.074 5402555.687 244.64 513184.064 5402555.663 244.64 513184.052 5402555.641 244.64 513184.038 5402555.619 244.64 513184.022 5402555.599 244.64 513184.006 5402555.579 244.64 513183.988 5402555.561 244.64 513183.969 5402555.544 244.64 513183.948 5402555.528 244.64 513183.927 5402555.514 244.64 513183.905 5402555.501 244.64 513183.881 5402555.49 244.64 513183.857 5402555.481 244.64 513183.833 5402555.473 244.64 513183.808 5402555.467 244.64 513183.783 5402555.463 244.64 513183.757 5402555.461 244.64 513183.732 5402555.46 244.64 513183.706 5402555.461 244.64 513183.68 5402555.464 244.64 513183.655 5402555.469 244.64 513183.63 5402555.475 244.64 513183.599 5402555.486 244.64 513183.568 5402555.5 244.64 513183.546 5402555.512 244.64 513183.524 5402555.526 244.64 513183.504 5402555.542 244.64 513183.484 5402555.559 244.64 513183.466 5402555.577 244.64 513183.449 5402555.596 244.64 513183.434 5402555.617 244.64 513183.42 5402555.638 244.64 513183.408 5402555.66 244.64 513183.397 5402555.684 244.64 513183.388 5402555.708 244.64 513183.38 5402555.732 244.64 513183.374 5402555.757 244.64 513183.37 5402555.783 244.64 513183.368 5402555.808 244.64 513183.367 5402555.834 244.64 513183.369 5402555.859 244.64 513183.372 5402555.885 244.64 513183.377 5402555.91 244.64 513183.384 5402555.935 244.64 513183.392 5402555.959 244.64 513183.402 5402555.983 244.64 513183.413 5402556.006 244.64 513183.427 5402556.027 244.64 513183.441 5402556.048 244.64 513183.457 5402556.068 244.64 513183.475 5402556.087 244.64 513183.5 5402556.11 244.64 513179.46 5402557.9 244.64 513179.464 5402557.875 244.64 513179.465 5402557.85 244.64 513179.465 5402557.825 244.64 513179.464 5402557.8 244.64 513179.461 5402557.775 244.64 513179.455 5402557.751 244.64 513179.449 5402557.727 244.64 513179.44 5402557.704 244.64 513179.43 5402557.681 244.64 513179.418 5402557.659 244.64 513179.405 5402557.638 244.64 513179.391 5402557.617 244.64 513179.375 5402557.598 244.64 513179.357 5402557.58 244.64 513179.339 5402557.564 244.64 513179.319 5402557.548 244.64 513179.299 5402557.534 244.64 513179.277 5402557.522 244.64 513179.255 5402557.511 244.64 513179.232 5402557.501 244.64 513179.208 5402557.494 244.64 513179.184 5402557.488 244.64 513179.16 5402557.483 244.64 513179.135 5402557.48 244.64 513179.11 5402557.479 244.64 513179.085 5402557.48 244.64 513179.06 5402557.483 244.64 513179.036 5402557.487 244.64 513179.012 5402557.493 244.64 513178.987 5402557.501 244.64 513178.964 5402557.511 244.64 513178.941 5402557.521 244.64 513178.92 5402557.534 244.64 513178.899 5402557.548 244.64 513178.879 5402557.563 244.64 513178.861 5402557.58 244.64 513178.844 5402557.598 244.64 513178.828 5402557.617 244.64 513178.813 5402557.637 244.64 513178.8 5402557.658 244.64 513178.788 5402557.68 244.64 513178.778 5402557.703 244.64 513178.77 5402557.726 244.64 513178.763 5402557.75 244.64 513178.758 5402557.775 244.64 513178.754 5402557.799 244.64 513178.752 5402557.824 244.64 513178.752 5402557.849 244.64 513178.754 5402557.874 244.64 513178.758 5402557.898 244.64 513178.763 5402557.923 244.64 513178.77 5402557.947 244.64 513178.778 5402557.97 244.64 513178.788 5402557.993 244.64 513178.8 5402558.015 244.64 513178.813 5402558.036 244.64 513178.828 5402558.056 244.64 513178.844 5402558.075 244.64 513178.861 5402558.093 244.64 513178.88 5402558.11 244.64 513174.76 5402559.97 244.64 513174.765 5402559.944 244.64 513174.768 5402559.921 244.64 513174.769 5402559.897 244.64 513174.768 5402559.873 244.64 513174.766 5402559.849 244.64 513174.762 5402559.826 244.64 513174.757 5402559.803 244.64 513174.75 5402559.78 244.64 513174.741 5402559.758 244.64 513174.731 5402559.736 244.64 513174.719 5402559.715 244.64 513174.706 5402559.695 244.64 513174.692 5402559.677 244.64 513174.676 5402559.659 244.64 513174.659 5402559.642 244.64 513174.641 5402559.626 244.64 513174.622 5402559.612 244.64 513174.602 5402559.599 244.64 513174.581 5402559.588 244.64 513174.56 5402559.578 244.64 513174.537 5402559.569 244.64 513174.514 5402559.563 244.64 513174.491 5402559.557 244.64 513174.468 5402559.554 244.64 513174.444 5402559.552 244.64 513174.42 5402559.551 244.64 513174.396 5402559.553 244.64 513174.373 5402559.556 244.64 513174.349 5402559.56 244.64 513174.327 5402559.567 244.64 513174.304 5402559.575 244.64 513174.28 5402559.585 244.64 513174.257 5402559.597 244.64 513174.237 5402559.61 244.64 513174.218 5402559.624 244.64 513174.2 5402559.639 244.64 513174.182 5402559.656 244.64 513174.166 5402559.673 244.64 513174.152 5402559.692 244.64 513174.138 5402559.712 244.64 513174.127 5402559.732 244.64 513174.116 5402559.754 244.64 513174.107 5402559.776 244.64 513174.1 5402559.798 244.64 513174.094 5402559.822 244.64 513174.09 5402559.845 244.64 513174.087 5402559.869 244.64 513174.087 5402559.893 244.64 513174.087 5402559.916 244.64 513174.09 5402559.94 244.64 513174.094 5402559.963 244.64 513174.1 5402559.987 244.64 513174.107 5402560.009 244.64 513174.116 5402560.031 244.64 513174.127 5402560.053 244.64 513174.138 5402560.073 244.64 513174.152 5402560.093 244.64 513174.166 5402560.112 244.64 513174.182 5402560.129 244.64 513174.2 5402560.146 244.64 513174.218 5402560.161 244.64 513174.237 5402560.175 244.64 513174.257 5402560.188 244.64 513174.28 5402560.2 244.64 513170.15 5402562.02 244.64 513170.154 5402561.988 244.64 513170.154 5402561.963 244.64 513170.153 5402561.939 244.64 513170.15 5402561.914 244.64 513170.146 5402561.89 244.64 513170.14 5402561.866 244.64 513170.132 5402561.843 244.64 513170.122 5402561.821 244.64 513170.111 5402561.799 244.64 513170.099 5402561.777 244.64 513170.085 5402561.757 244.64 513170.07 5402561.738 244.64 513170.053 5402561.72 244.64 513170.036 5402561.703 244.64 513170.017 5402561.688 244.64 513169.997 5402561.673 244.64 513169.976 5402561.661 244.64 513169.954 5402561.649 244.64 513169.931 5402561.639 244.64 513169.908 5402561.631 244.64 513169.885 5402561.625 244.64 513169.861 5402561.62 244.64 513169.836 5402561.617 244.64 513169.812 5402561.615 244.64 513169.787 5402561.615 244.64 513169.763 5402561.617 244.64 513169.739 5402561.621 244.64 513169.715 5402561.626 244.64 513169.691 5402561.633 244.64 513169.661 5402561.645 244.64 513169.631 5402561.66 244.64 513169.61 5402561.673 244.64 513169.59 5402561.687 244.64 513169.571 5402561.702 244.64 513169.553 5402561.719 244.64 513169.537 5402561.737 244.64 513169.521 5402561.756 244.64 513169.507 5402561.776 244.64 513169.495 5402561.797 244.64 513169.484 5402561.819 244.64 513169.474 5402561.842 244.64 513169.466 5402561.865 244.64 513169.46 5402561.889 244.64 513169.456 5402561.913 244.64 513169.453 5402561.937 244.64 513169.452 5402561.962 244.64 513169.452 5402561.986 244.64 513169.454 5402562.011 244.64 513169.458 5402562.035 244.64 513169.464 5402562.059 244.64 513169.471 5402562.082 244.64 513169.48 5402562.105 244.64 513169.491 5402562.127 244.64 513169.503 5402562.149 244.64 513169.516 5402562.169 244.64 513169.531 5402562.189 244.64 513169.547 5402562.207 244.64 513169.564 5402562.224 244.64 513169.583 5402562.24 244.64 513169.61 5402562.26 244.64 513165.11 5402564.25 244.64 513162.77 5402561.57 244.64 513160.97 5402559.54 244.64 513160.962 5402559.523 244.64 513160.955 5402559.51 244.64 513160.946 5402559.496 244.64 513160.936 5402559.484 244.64 513160.926 5402559.472 244.64 513160.914 5402559.46 244.64 513160.902 5402559.45 244.64 513160.89 5402559.44 244.64 513160.876 5402559.432 244.64 513160.862 5402559.424 244.64 513160.848 5402559.417 244.64 513160.833 5402559.412 244.64 513160.818 5402559.407 244.64 513160.803 5402559.404 244.64 513160.787 5402559.401 244.64 513160.771 5402559.4 244.64 513160.755 5402559.4 244.64 513160.739 5402559.4 244.64 513160.723 5402559.402 244.64 513160.708 5402559.406 244.64 513160.692 5402559.41 244.64 513160.677 5402559.415 244.64 513160.663 5402559.421 244.64 513160.649 5402559.429 244.64 513160.633 5402559.438 244.64 513160.617 5402559.45 244.64 513160.605 5402559.46 244.64 513160.594 5402559.471 244.64 513160.583 5402559.483 244.64 513160.574 5402559.496 244.64 513160.565 5402559.509 244.64 513160.557 5402559.523 244.64 513160.55 5402559.537 244.64 513160.545 5402559.552 244.64 513160.54 5402559.567 244.64 513160.536 5402559.583 244.64 513160.534 5402559.598 244.64 513160.532 5402559.614 244.64 513160.532 5402559.63 244.64 513160.532 5402559.646 244.64 513160.534 5402559.662 244.64 513160.537 5402559.677 244.64 513160.541 5402559.693 244.64 513160.546 5402559.708 244.64 513160.553 5402559.722 244.64 513160.56 5402559.737 244.64 513160.568 5402559.75 244.64 513160.577 5402559.763 244.64 513160.587 5402559.776 244.64 513160.6 5402559.79 244.64 513160.8 5402560.07 244.64 513157.53 5402562.98 244.64 513157.27 5402562.76 244.64 513157.245 5402562.742 244.64 513157.226 5402562.731 244.64 513157.206 5402562.721 244.64 513157.185 5402562.712 244.64 513157.164 5402562.705 244.64 513157.142 5402562.699 244.64 513157.12 5402562.695 244.64 513157.098 5402562.692 244.64 513157.075 5402562.691 244.64 513157.053 5402562.692 244.64 513157.03 5402562.694 244.64 513157.008 5402562.697 244.64 513156.986 5402562.702 244.64 513156.965 5402562.709 244.64 513156.944 5402562.717 244.64 513156.923 5402562.727 244.64 513156.904 5402562.738 244.64 513156.885 5402562.75 244.64 513156.861 5402562.769 244.64 513156.84 5402562.789 244.64 513156.825 5402562.806 244.64 513156.811 5402562.824 244.64 513156.798 5402562.842 244.64 513156.787 5402562.862 244.64 513156.777 5402562.882 244.64 513156.769 5402562.903 244.64 513156.762 5402562.924 244.64 513156.756 5402562.946 244.64 513156.752 5402562.968 244.64 513156.75 5402562.99 244.64 513156.749 5402563.013 244.64 513156.75 5402563.035 244.64 513156.752 5402563.057 244.64 513156.756 5402563.08 244.64 513156.762 5402563.102 244.64 513156.768 5402563.123 244.64 513156.777 5402563.144 244.64 513156.79 5402563.17 244.64 513157.03 5402563.45 244.64 513153.75 5402566.38 244.64 513153.49 5402566.16 244.64 513153.469 5402566.14 244.64 513153.453 5402566.127 244.64 513153.435 5402566.115 244.64 513153.417 5402566.105 244.64 513153.398 5402566.095 244.64 513153.379 5402566.087 244.64 513153.359 5402566.08 244.64 513153.338 5402566.075 244.64 513153.317 5402566.071 244.64 513153.296 5402566.069 244.64 513153.275 5402566.068 244.64 513153.254 5402566.069 244.64 513153.233 5402566.071 244.64 513153.212 5402566.074 244.64 513153.192 5402566.079 244.64 513153.172 5402566.086 244.64 513153.152 5402566.093 244.64 513153.133 5402566.102 244.64 513153.115 5402566.113 244.64 513153.091 5402566.129 244.64 513153.069 5402566.147 244.64 513153.054 5402566.162 244.64 513153.04 5402566.177 244.64 513153.027 5402566.194 244.64 513153.016 5402566.212 244.64 513153.005 5402566.23 244.64 513152.996 5402566.249 244.64 513152.988 5402566.269 244.64 513152.982 5402566.289 244.64 513152.977 5402566.309 244.64 513152.973 5402566.33 244.64 513152.971 5402566.351 244.64 513152.97 5402566.372 244.64 513152.971 5402566.393 244.64 513152.974 5402566.414 244.64 513152.977 5402566.435 244.64 513152.983 5402566.455 244.64 513152.989 5402566.476 244.64 513152.997 5402566.495 244.64 513153.01 5402566.52 244.64 513153.29 5402566.8 244.64 513149.76 5402569.94 244.64 513149.5 5402569.72 244.64 513149.479 5402569.7 244.64 513149.463 5402569.687 244.64 513149.445 5402569.675 244.64 513149.427 5402569.665 244.64 513149.408 5402569.655 244.64 513149.389 5402569.647 244.64 513149.368 5402569.64 244.64 513149.348 5402569.635 244.64 513149.327 5402569.631 244.64 513149.306 5402569.629 244.64 513149.285 5402569.628 244.64 513149.264 5402569.629 244.64 513149.243 5402569.631 244.64 513149.222 5402569.634 244.64 513149.202 5402569.639 244.64 513149.182 5402569.646 244.64 513149.162 5402569.653 244.64 513149.143 5402569.662 244.64 513149.125 5402569.673 244.64 513149.101 5402569.689 244.64 513149.079 5402569.707 244.64 513149.064 5402569.722 244.64 513149.05 5402569.737 244.64 + + + + + + + + + + + + + + + + + 513133.12 5402581.854 244.64 513133.098 5402581.839 244.64 513133.098 5402581.839 262.925 513133.12 5402581.854 262.927 513133.12 5402581.854 244.64 + + + + + + + + + + + + + + + + + 513133.098 5402581.839 244.64 513133.077 5402581.823 244.64 513133.077 5402581.823 262.924 513133.098 5402581.839 262.925 513133.098 5402581.839 244.64 + + + + + + + + + + + + + + + + + 513133.077 5402581.823 244.64 513133.058 5402581.806 244.64 513133.058 5402581.806 262.922 513133.077 5402581.823 262.924 513133.077 5402581.823 244.64 + + + + + + + + + + + + + + + + + 513133.058 5402581.806 244.64 513133.04 5402581.787 244.64 513133.04 5402581.787 262.92 513133.058 5402581.806 262.922 513133.058 5402581.806 244.64 + + + + + + + + + + + + + + + + + 513133.04 5402581.787 244.64 513133.023 5402581.768 244.64 513133.023 5402581.768 262.918 513133.04 5402581.787 262.92 513133.04 5402581.787 244.64 + + + + + + + + + + + + + + + + + 513133.023 5402581.768 244.64 513133.008 5402581.747 244.64 513133.008 5402581.747 262.917 513133.023 5402581.768 262.918 513133.023 5402581.768 244.64 + + + + + + + + + + + + + + + + + 513133.008 5402581.747 244.64 513132.994 5402581.725 244.64 513132.994 5402581.725 262.915 513133.008 5402581.747 262.917 513133.008 5402581.747 244.64 + + + + + + + + + + + + + + + + + 513132.994 5402581.725 244.64 513132.982 5402581.702 244.64 513132.982 5402581.702 262.913 513132.994 5402581.725 262.915 513132.994 5402581.725 244.64 + + + + + + + + + + + + + + + + + 513132.982 5402581.702 244.64 513132.971 5402581.678 244.64 513132.971 5402581.678 262.911 513132.982 5402581.702 262.913 513132.982 5402581.702 244.64 + + + + + + + + + + + + + + + + + 513132.971 5402581.678 244.64 513132.962 5402581.654 244.64 513132.962 5402581.654 262.909 513132.971 5402581.678 262.911 513132.971 5402581.678 244.64 + + + + + + + + + + + + + + + + + 513132.955 5402581.629 244.64 513132.955 5402581.629 262.908 513132.962 5402581.654 262.909 513132.962 5402581.654 244.64 513132.955 5402581.629 244.64 + + + + + + + + + + + + + + + + + 513132.95 5402581.603 244.64 513132.95 5402581.603 262.906 513132.955 5402581.629 262.908 513132.955 5402581.629 244.64 513132.95 5402581.603 244.64 + + + + + + + + + + + + + + + + + 513132.946 5402581.577 244.64 513132.946 5402581.577 262.904 513132.95 5402581.603 262.906 513132.95 5402581.603 244.64 513132.946 5402581.577 244.64 + + + + + + + + + + + + + + + + + 513132.944 5402581.552 244.64 513132.944 5402581.552 262.902 513132.946 5402581.577 262.904 513132.946 5402581.577 244.64 513132.944 5402581.552 244.64 + + + + + + + + + + + + + + + + + 513132.944 5402581.526 244.64 513132.944 5402581.526 262.901 513132.944 5402581.552 262.902 513132.944 5402581.552 244.64 513132.944 5402581.526 244.64 + + + + + + + + + + + + + + + + + 513132.946 5402581.5 244.64 513132.946 5402581.5 262.899 513132.944 5402581.526 262.901 513132.944 5402581.526 244.64 513132.946 5402581.5 244.64 + + + + + + + + + + + + + + + + + 513132.949 5402581.474 244.64 513132.949 5402581.474 262.897 513132.946 5402581.5 262.899 513132.946 5402581.5 244.64 513132.949 5402581.474 244.64 + + + + + + + + + + + + + + + + + 513132.955 5402581.448 244.64 513132.955 5402581.448 262.896 513132.949 5402581.474 262.897 513132.949 5402581.474 244.64 513132.955 5402581.448 244.64 + + + + + + + + + + + + + + + + + 513132.962 5402581.423 244.64 513132.962 5402581.423 262.894 513132.955 5402581.448 262.896 513132.955 5402581.448 244.64 513132.962 5402581.423 244.64 + + + + + + + + + + + + + + + + + 513132.971 5402581.399 262.893 513132.962 5402581.423 262.894 513132.962 5402581.423 244.64 513132.971 5402581.399 244.64 513132.971 5402581.399 262.893 + + + + + + + + + + + + + + + + + 513132.981 5402581.375 262.892 513132.971 5402581.399 262.893 513132.971 5402581.399 244.64 513132.981 5402581.375 244.64 513132.981 5402581.375 262.892 + + + + + + + + + + + + + + + + + 513132.993 5402581.352 262.891 513132.981 5402581.375 262.892 513132.981 5402581.375 244.64 513132.993 5402581.352 244.64 513132.993 5402581.352 262.891 + + + + + + + + + + + + + + + + + 513133.007 5402581.33 262.89 513132.993 5402581.352 262.891 513132.993 5402581.352 244.64 513133.007 5402581.33 244.64 513133.007 5402581.33 262.89 + + + + + + + + + + + + + + + + + 513133.022 5402581.309 262.889 513133.007 5402581.33 262.89 513133.007 5402581.33 244.64 513133.022 5402581.309 244.64 513133.022 5402581.309 262.889 + + + + + + + + + + + + + + + + + 513133.039 5402581.289 262.888 513133.022 5402581.309 262.889 513133.022 5402581.309 244.64 513133.039 5402581.289 244.64 513133.039 5402581.289 262.888 + + + + + + + + + + + + + + + + + 513133.057 5402581.271 262.887 513133.039 5402581.289 262.888 513133.039 5402581.289 244.64 513133.057 5402581.271 244.64 513133.057 5402581.271 262.887 + + + + + + + + + + + + + + + + + 513133.08 5402581.25 262.886 513133.057 5402581.271 262.887 513133.057 5402581.271 244.64 513133.08 5402581.25 244.64 513133.08 5402581.25 262.886 + + + + + + + + + + + + + + + + + 513133.08 5402581.25 244.64 513133.104 5402581.232 244.64 513133.104 5402581.232 262.886 513133.08 5402581.25 262.886 513133.08 5402581.25 244.64 + + + + + + + + + + + + + + + + + 513133.104 5402581.232 244.64 513133.126 5402581.218 244.64 513133.126 5402581.218 262.886 513133.104 5402581.232 262.886 513133.104 5402581.232 244.64 + + + + + + + + + + + + + + + + + 513133.149 5402581.205 262.885 513133.126 5402581.218 262.886 513133.126 5402581.218 244.64 513133.149 5402581.205 244.64 513133.149 5402581.205 262.885 + + + + + + + + + + + + + + + + + 513133.149 5402581.205 244.64 513133.172 5402581.194 244.64 513133.172 5402581.194 262.885 513133.149 5402581.205 262.885 513133.149 5402581.205 244.64 + + + + + + + + + + + + + + + + + 513133.172 5402581.194 244.64 513133.197 5402581.185 244.64 513133.197 5402581.185 262.886 513133.172 5402581.194 262.885 513133.172 5402581.194 244.64 + + + + + + + + + + + + + + + + + 513133.197 5402581.185 244.64 513133.222 5402581.178 244.64 513133.222 5402581.178 262.886 513133.197 5402581.185 262.886 513133.197 5402581.185 244.64 + + + + + + + + + + + + + + + + + 513133.222 5402581.178 244.64 513133.247 5402581.172 244.64 513133.247 5402581.172 262.886 513133.222 5402581.178 262.886 513133.222 5402581.178 244.64 + + + + + + + + + + + + + + + + + 513133.247 5402581.172 244.64 513133.273 5402581.168 244.64 513133.273 5402581.168 262.887 513133.247 5402581.172 262.886 513133.247 5402581.172 244.64 + + + + + + + + + + + + + + + + + 513133.273 5402581.168 244.64 513133.298 5402581.166 244.64 513133.298 5402581.166 262.887 513133.273 5402581.168 262.887 513133.273 5402581.168 244.64 + + + + + + + + + + + + + + + + + 513133.298 5402581.166 244.64 513133.324 5402581.166 244.64 513133.324 5402581.166 262.888 513133.298 5402581.166 262.887 513133.298 5402581.166 244.64 + + + + + + + + + + + + + + + + + 513133.324 5402581.166 244.64 513133.35 5402581.167 244.64 513133.35 5402581.167 262.889 513133.324 5402581.166 262.888 513133.324 5402581.166 244.64 + + + + + + + + + + + + + + + + + 513133.35 5402581.167 244.64 513133.376 5402581.17 244.64 513133.376 5402581.17 262.89 513133.35 5402581.167 262.889 513133.35 5402581.167 244.64 + + + + + + + + + + + + + + + + + 513133.376 5402581.17 244.64 513133.402 5402581.175 244.64 513133.402 5402581.175 262.891 513133.376 5402581.17 262.89 513133.376 5402581.17 244.64 + + + + + + + + + + + + + + + + + 513133.402 5402581.175 244.64 513133.427 5402581.182 244.64 513133.427 5402581.182 262.892 513133.402 5402581.175 262.891 513133.402 5402581.175 244.64 + + + + + + + + + + + + + + + + + 513133.427 5402581.182 244.64 513133.451 5402581.191 244.64 513133.451 5402581.191 262.893 513133.427 5402581.182 262.892 513133.427 5402581.182 244.64 + + + + + + + + + + + + + + + + + 513133.451 5402581.191 244.64 513133.475 5402581.201 244.64 513133.475 5402581.201 262.894 513133.451 5402581.191 262.893 513133.451 5402581.191 244.64 + + + + + + + + + + + + + + + + + 513133.475 5402581.201 244.64 513133.498 5402581.213 244.64 513133.498 5402581.213 262.896 513133.475 5402581.201 262.894 513133.475 5402581.201 244.64 + + + + + + + + + + + + + + + + + 513133.498 5402581.213 244.64 513133.52 5402581.227 244.64 513133.52 5402581.227 262.897 513133.498 5402581.213 262.896 513133.498 5402581.213 244.64 + + + + + + + + + + + + + + + + + 513133.52 5402581.227 244.64 513133.542 5402581.242 244.64 513133.542 5402581.242 262.899 513133.52 5402581.227 262.897 513133.52 5402581.227 244.64 + + + + + + + + + + + + + + + + + 513133.542 5402581.242 244.64 513133.562 5402581.258 244.64 513133.562 5402581.258 262.9 513133.542 5402581.242 262.899 513133.542 5402581.242 244.64 + + + + + + + + + + + + + + + + + 513133.562 5402581.258 244.64 513133.581 5402581.276 244.64 513133.581 5402581.276 262.902 513133.562 5402581.258 262.9 513133.562 5402581.258 244.64 + + + + + + + + + + + + + + + + + 513133.581 5402581.276 244.64 513133.598 5402581.295 244.64 513133.598 5402581.295 262.904 513133.581 5402581.276 262.902 513133.581 5402581.276 244.64 + + + + + + + + + + + + + + + + + 513133.598 5402581.295 244.64 513133.614 5402581.315 244.64 513133.614 5402581.315 262.906 513133.598 5402581.295 262.904 513133.598 5402581.295 244.64 + + + + + + + + + + + + + + + + + 513133.614 5402581.315 244.64 513133.629 5402581.337 244.64 513133.629 5402581.337 262.907 513133.614 5402581.315 262.906 513133.614 5402581.315 244.64 + + + + + + + + + + + + + + + + + 513133.629 5402581.337 244.64 513133.643 5402581.359 244.64 513133.643 5402581.359 262.909 513133.629 5402581.337 262.907 513133.629 5402581.337 244.64 + + + + + + + + + + + + + + + + + 513133.643 5402581.359 244.64 513133.654 5402581.382 244.64 513133.654 5402581.382 262.911 513133.643 5402581.359 262.909 513133.643 5402581.359 244.64 + + + + + + + + + + + + + + + + + 513133.654 5402581.382 244.64 513133.664 5402581.406 244.64 513133.664 5402581.406 262.913 513133.654 5402581.382 262.911 513133.654 5402581.382 244.64 + + + + + + + + + + + + + + + + + 513133.664 5402581.406 244.64 513133.673 5402581.431 244.64 513133.673 5402581.431 262.915 513133.664 5402581.406 262.913 513133.664 5402581.406 244.64 + + + + + + + + + + + + + + + + + 513133.673 5402581.431 262.915 513133.673 5402581.431 244.64 513133.68 5402581.46 244.64 513133.68 5402581.46 262.917 513133.673 5402581.431 262.915 + + + + + + + + + + + + + + + + + 513133.68 5402581.46 244.64 513133.81 5402581.86 244.64 513133.81 5402581.86 262.946 513133.68 5402581.46 262.917 513133.68 5402581.46 244.64 + + + + + + + + + + + + + + + + + 513138.34 5402579.78 262.938 513133.81 5402581.86 262.946 513133.81 5402581.86 244.64 513138.34 5402579.78 244.64 513138.34 5402579.78 262.938 + + + + + + + + + + + + + + + + + 513138.34 5402579.78 244.64 513138.2 5402579.4 244.64 513138.2 5402579.4 262.91 513138.34 5402579.78 262.938 513138.34 5402579.78 244.64 + + + + + + + + + + + + + + + + + 513138.2 5402579.4 244.64 513138.186 5402579.379 244.64 513138.186 5402579.379 262.908 513138.2 5402579.4 262.91 513138.2 5402579.4 244.64 + + + + + + + + + + + + + + + + + 513138.178 5402579.363 244.64 513138.178 5402579.363 262.907 513138.186 5402579.379 262.908 513138.186 5402579.379 244.64 513138.178 5402579.363 244.64 + + + + + + + + + + + + + + + + + 513138.17 5402579.346 244.64 513138.17 5402579.346 262.905 513138.178 5402579.363 262.907 513138.178 5402579.363 244.64 513138.17 5402579.346 244.64 + + + + + + + + + + + + + + + + + 513138.164 5402579.329 244.64 513138.164 5402579.329 262.904 513138.17 5402579.346 262.905 513138.17 5402579.346 244.64 513138.164 5402579.329 244.64 + + + + + + + + + + + + + + + + + 513138.159 5402579.311 244.64 513138.159 5402579.311 262.903 513138.164 5402579.329 262.904 513138.164 5402579.329 244.64 513138.159 5402579.311 244.64 + + + + + + + + + + + + + + + + + 513138.155 5402579.293 244.64 513138.155 5402579.293 262.901 513138.159 5402579.311 262.903 513138.159 5402579.311 244.64 513138.155 5402579.293 244.64 + + + + + + + + + + + + + + + + + 513138.152 5402579.274 244.64 513138.152 5402579.274 262.9 513138.155 5402579.293 262.901 513138.155 5402579.293 244.64 513138.152 5402579.274 244.64 + + + + + + + + + + + + + + + + + 513138.151 5402579.256 244.64 513138.151 5402579.256 262.899 513138.152 5402579.274 262.9 513138.152 5402579.274 244.64 513138.151 5402579.256 244.64 + + + + + + + + + + + + + + + + + 513138.151 5402579.238 244.64 513138.151 5402579.238 262.898 513138.151 5402579.256 262.899 513138.151 5402579.256 244.64 513138.151 5402579.238 244.64 + + + + + + + + + + + + + + + + + 513138.152 5402579.219 244.64 513138.152 5402579.219 262.897 513138.151 5402579.238 262.898 513138.151 5402579.238 244.64 513138.152 5402579.219 244.64 + + + + + + + + + + + + + + + + + 513138.155 5402579.201 244.64 513138.155 5402579.201 262.896 513138.152 5402579.219 262.897 513138.152 5402579.219 244.64 513138.155 5402579.201 244.64 + + + + + + + + + + + + + + + + + 513138.159 5402579.183 244.64 513138.159 5402579.183 262.894 513138.155 5402579.201 262.896 513138.155 5402579.201 244.64 513138.159 5402579.183 244.64 + + + + + + + + + + + + + + + + + 513138.164 5402579.165 244.64 513138.164 5402579.165 262.893 513138.159 5402579.183 262.894 513138.159 5402579.183 244.64 513138.164 5402579.165 244.64 + + + + + + + + + + + + + + + + + 513138.17 5402579.148 244.64 513138.17 5402579.148 262.892 513138.164 5402579.165 262.893 513138.164 5402579.165 244.64 513138.17 5402579.148 244.64 + + + + + + + + + + + + + + + + + 513138.178 5402579.131 244.64 513138.178 5402579.131 262.892 513138.17 5402579.148 262.892 513138.17 5402579.148 244.64 513138.178 5402579.131 244.64 + + + + + + + + + + + + + + + + + 513138.186 5402579.114 244.64 513138.186 5402579.114 262.891 513138.178 5402579.131 262.892 513138.178 5402579.131 244.64 513138.186 5402579.114 244.64 + + + + + + + + + + + + + + + + + 513138.196 5402579.099 262.89 513138.186 5402579.114 262.891 513138.186 5402579.114 244.64 513138.196 5402579.099 244.64 513138.196 5402579.099 262.89 + + + + + + + + + + + + + + + + + 513138.207 5402579.084 262.889 513138.196 5402579.099 262.89 513138.196 5402579.099 244.64 513138.207 5402579.084 244.64 513138.207 5402579.084 262.889 + + + + + + + + + + + + + + + + + 513138.207 5402579.084 244.64 513138.219 5402579.07 244.64 513138.219 5402579.07 262.889 513138.207 5402579.084 262.889 513138.207 5402579.084 244.64 + + + + + + + + + + + + + + + + + 513138.232 5402579.057 262.888 513138.219 5402579.07 262.889 513138.219 5402579.07 244.64 513138.232 5402579.057 244.64 513138.232 5402579.057 262.888 + + + + + + + + + + + + + + + + + 513138.232 5402579.057 244.64 513138.245 5402579.044 244.64 513138.245 5402579.044 262.888 513138.232 5402579.057 262.888 513138.232 5402579.057 244.64 + + + + + + + + + + + + + + + + + 513138.245 5402579.044 244.64 513138.26 5402579.033 244.64 513138.26 5402579.033 262.888 513138.245 5402579.044 262.888 513138.245 5402579.044 244.64 + + + + + + + + + + + + + + + + + 513138.275 5402579.022 262.887 513138.26 5402579.033 262.888 513138.26 5402579.033 244.64 513138.275 5402579.022 244.64 513138.275 5402579.022 262.887 + + + + + + + + + + + + + + + + + 513138.275 5402579.022 244.64 513138.291 5402579.013 244.64 513138.291 5402579.013 262.887 513138.275 5402579.022 262.887 513138.275 5402579.022 244.64 + + + + + + + + + + + + + + + + + 513138.291 5402579.013 244.64 513138.308 5402579.005 244.64 513138.308 5402579.005 262.887 513138.291 5402579.013 262.887 513138.291 5402579.013 244.64 + + + + + + + + + + + + + + + + + 513138.308 5402579.005 244.64 513138.331 5402578.996 244.64 513138.331 5402578.996 262.887 513138.308 5402579.005 262.887 513138.308 5402579.005 244.64 + + + + + + + + + + + + + + + + + 513138.331 5402578.996 244.64 513138.356 5402578.989 244.64 513138.356 5402578.989 262.887 513138.331 5402578.996 262.887 513138.331 5402578.996 244.64 + + + + + + + + + + + + + + + + + 513138.356 5402578.989 244.64 513138.374 5402578.985 244.64 513138.374 5402578.985 262.888 513138.356 5402578.989 262.887 513138.356 5402578.989 244.64 + + + + + + + + + + + + + + + + + 513138.374 5402578.985 244.64 513138.392 5402578.983 244.64 513138.392 5402578.983 262.888 513138.374 5402578.985 262.888 513138.374 5402578.985 244.64 + + + + + + + + + + + + + + + + + 513138.392 5402578.983 244.64 513138.411 5402578.982 244.64 513138.411 5402578.982 262.888 513138.392 5402578.983 262.888 513138.392 5402578.983 244.64 + + + + + + + + + + + + + + + + + 513138.411 5402578.982 244.64 513138.429 5402578.982 244.64 513138.429 5402578.982 262.889 513138.411 5402578.982 262.888 513138.411 5402578.982 244.64 + + + + + + + + + + + + + + + + + 513138.429 5402578.982 244.64 513138.448 5402578.984 244.64 513138.448 5402578.984 262.89 513138.429 5402578.982 262.889 513138.429 5402578.982 244.64 + + + + + + + + + + + + + + + + + 513138.448 5402578.984 244.64 513138.466 5402578.987 244.64 513138.466 5402578.987 262.89 513138.448 5402578.984 262.89 513138.448 5402578.984 244.64 + + + + + + + + + + + + + + + + + 513138.466 5402578.987 244.64 513138.484 5402578.991 244.64 513138.484 5402578.991 262.891 513138.466 5402578.987 262.89 513138.466 5402578.987 244.64 + + + + + + + + + + + + + + + + + 513138.484 5402578.991 244.64 513138.502 5402578.997 244.64 513138.502 5402578.997 262.892 513138.484 5402578.991 262.891 513138.484 5402578.991 244.64 + + + + + + + + + + + + + + + + + 513138.502 5402578.997 244.64 513138.519 5402579.003 244.64 513138.519 5402579.003 262.893 513138.502 5402578.997 262.892 513138.502 5402578.997 244.64 + + + + + + + + + + + + + + + + + 513138.519 5402579.003 244.64 513138.536 5402579.011 244.64 513138.536 5402579.011 262.894 513138.519 5402579.003 262.893 513138.519 5402579.003 244.64 + + + + + + + + + + + + + + + + + 513138.536 5402579.011 244.64 513138.552 5402579.02 244.64 513138.552 5402579.02 262.895 513138.536 5402579.011 262.894 513138.536 5402579.011 244.64 + + + + + + + + + + + + + + + + + 513138.552 5402579.02 244.64 513138.567 5402579.03 244.64 513138.567 5402579.03 262.896 513138.552 5402579.02 262.895 513138.552 5402579.02 244.64 + + + + + + + + + + + + + + + + + 513138.567 5402579.03 244.64 513138.582 5402579.041 244.64 513138.582 5402579.041 262.897 513138.567 5402579.03 262.896 513138.567 5402579.03 244.64 + + + + + + + + + + + + + + + + + 513138.582 5402579.041 244.64 513138.596 5402579.053 244.64 513138.596 5402579.053 262.898 513138.582 5402579.041 262.897 513138.582 5402579.041 244.64 + + + + + + + + + + + + + + + + + 513138.596 5402579.053 244.64 513138.609 5402579.066 244.64 513138.609 5402579.066 262.899 513138.596 5402579.053 262.898 513138.596 5402579.053 244.64 + + + + + + + + + + + + + + + + + 513138.609 5402579.066 244.64 513138.621 5402579.08 244.64 513138.621 5402579.08 262.901 513138.609 5402579.066 262.899 513138.609 5402579.066 244.64 + + + + + + + + + + + + + + + + + 513138.621 5402579.08 244.64 513138.632 5402579.095 244.64 513138.632 5402579.095 262.902 513138.621 5402579.08 262.901 513138.621 5402579.08 244.64 + + + + + + + + + + + + + + + + + 513138.632 5402579.095 244.64 513138.642 5402579.11 244.64 513138.642 5402579.11 262.903 513138.632 5402579.095 262.902 513138.632 5402579.095 244.64 + + + + + + + + + + + + + + + + + 513138.642 5402579.11 244.64 513138.651 5402579.126 244.64 513138.651 5402579.126 262.905 513138.642 5402579.11 262.903 513138.642 5402579.11 244.64 + + + + + + + + + + + + + + + + + 513138.651 5402579.126 262.905 513138.651 5402579.126 244.64 513138.659 5402579.143 244.64 513138.659 5402579.143 262.906 513138.651 5402579.126 262.905 + + + + + + + + + + + + + + + + + 513138.659 5402579.143 262.906 513138.659 5402579.143 244.64 513138.666 5402579.16 244.64 513138.666 5402579.16 262.907 513138.659 5402579.143 262.906 + + + + + + + + + + + + + + + + + 513138.666 5402579.16 262.907 513138.666 5402579.16 244.64 513138.671 5402579.178 244.64 513138.671 5402579.178 262.908 513138.666 5402579.16 262.907 + + + + + + + + + + + + + + + + + 513138.671 5402579.178 262.908 513138.671 5402579.178 244.64 513138.675 5402579.196 244.64 513138.675 5402579.196 262.91 513138.671 5402579.178 262.908 + + + + + + + + + + + + + + + + + 513138.675 5402579.196 262.91 513138.675 5402579.196 244.64 513138.678 5402579.214 244.64 513138.678 5402579.214 262.911 513138.675 5402579.196 262.91 + + + + + + + + + + + + + + + + + 513138.678 5402579.214 262.911 513138.678 5402579.214 244.64 513138.68 5402579.24 244.64 513138.68 5402579.24 262.913 513138.678 5402579.214 262.911 + + + + + + + + + + + + + + + + + 513138.68 5402579.24 244.64 513138.96 5402579.53 244.64 513138.96 5402579.53 262.939 513138.68 5402579.24 262.913 513138.68 5402579.24 244.64 + + + + + + + + + + + + + + + + + 513142.24 5402576.58 262.84 513138.96 5402579.53 262.939 513138.96 5402579.53 244.64 513142.24 5402576.58 244.64 513142.24 5402576.58 262.84 + + + + + + + + + + + + + + + + + 513142.24 5402576.58 244.64 513141.94 5402576.22 244.64 513141.94 5402576.22 262.808 513142.24 5402576.58 262.84 513142.24 5402576.58 244.64 + + + + + + + + + + + + + + + + + 513141.94 5402576.22 244.64 513141.926 5402576.201 244.64 513141.926 5402576.201 262.806 513141.94 5402576.22 262.808 513141.94 5402576.22 244.64 + + + + + + + + + + + + + + + + + 513141.926 5402576.201 244.64 513141.914 5402576.181 244.64 513141.914 5402576.181 262.805 513141.926 5402576.201 262.806 513141.926 5402576.201 244.64 + + + + + + + + + + + + + + + + + 513141.914 5402576.181 244.64 513141.904 5402576.161 244.64 513141.904 5402576.161 262.803 513141.914 5402576.181 262.805 513141.914 5402576.181 244.64 + + + + + + + + + + + + + + + + + 513141.904 5402576.161 244.64 513141.895 5402576.14 244.64 513141.895 5402576.14 262.802 513141.904 5402576.161 262.803 513141.904 5402576.161 244.64 + + + + + + + + + + + + + + + + + 513141.888 5402576.119 244.64 513141.888 5402576.119 262.8 513141.895 5402576.14 262.802 513141.895 5402576.14 244.64 513141.888 5402576.119 244.64 + + + + + + + + + + + + + + + + + 513141.882 5402576.097 244.64 513141.882 5402576.097 262.799 513141.888 5402576.119 262.8 513141.888 5402576.119 244.64 513141.882 5402576.097 244.64 + + + + + + + + + + + + + + + + + 513141.878 5402576.075 244.64 513141.878 5402576.075 262.797 513141.882 5402576.097 262.799 513141.882 5402576.097 244.64 513141.878 5402576.075 244.64 + + + + + + + + + + + + + + + + + 513141.875 5402576.052 244.64 513141.875 5402576.052 262.795 513141.878 5402576.075 262.797 513141.878 5402576.075 244.64 513141.875 5402576.052 244.64 + + + + + + + + + + + + + + + + + 513141.873 5402576.029 244.64 513141.873 5402576.029 262.794 513141.875 5402576.052 262.795 513141.875 5402576.052 244.64 513141.873 5402576.029 244.64 + + + + + + + + + + + + + + + + + 513141.874 5402576.007 244.64 513141.874 5402576.007 262.792 513141.873 5402576.029 262.794 513141.873 5402576.029 244.64 513141.874 5402576.007 244.64 + + + + + + + + + + + + + + + + + 513141.876 5402575.984 244.64 513141.876 5402575.984 262.791 513141.874 5402576.007 262.792 513141.874 5402576.007 244.64 513141.876 5402575.984 244.64 + + + + + + + + + + + + + + + + + 513141.879 5402575.962 244.64 513141.879 5402575.962 262.79 513141.876 5402575.984 262.791 513141.876 5402575.984 244.64 513141.879 5402575.962 244.64 + + + + + + + + + + + + + + + + + 513141.884 5402575.94 244.64 513141.884 5402575.94 262.788 513141.879 5402575.962 262.79 513141.879 5402575.962 244.64 513141.884 5402575.94 244.64 + + + + + + + + + + + + + + + + + 513141.891 5402575.918 244.64 513141.891 5402575.918 262.787 513141.884 5402575.94 262.788 513141.884 5402575.94 244.64 513141.891 5402575.918 244.64 + + + + + + + + + + + + + + + + + 513141.899 5402575.897 244.64 513141.899 5402575.897 262.786 513141.891 5402575.918 262.787 513141.891 5402575.918 244.64 513141.899 5402575.897 244.64 + + + + + + + + + + + + + + + + + 513141.908 5402575.876 262.785 513141.899 5402575.897 262.786 513141.899 5402575.897 244.64 513141.908 5402575.876 244.64 513141.908 5402575.876 262.785 + + + + + + + + + + + + + + + + + 513141.919 5402575.856 262.784 513141.908 5402575.876 262.785 513141.908 5402575.876 244.64 513141.919 5402575.856 244.64 513141.919 5402575.856 262.784 + + + + + + + + + + + + + + + + + 513141.932 5402575.837 262.783 513141.919 5402575.856 262.784 513141.919 5402575.856 244.64 513141.932 5402575.837 244.64 513141.932 5402575.837 262.783 + + + + + + + + + + + + + + + + + 513141.945 5402575.819 262.782 513141.932 5402575.837 262.783 513141.932 5402575.837 244.64 513141.945 5402575.819 244.64 513141.945 5402575.819 262.782 + + + + + + + + + + + + + + + + + 513141.945 5402575.819 244.64 513141.96 5402575.802 244.64 513141.96 5402575.802 262.782 513141.945 5402575.819 262.782 513141.945 5402575.819 244.64 + + + + + + + + + + + + + + + + + 513141.976 5402575.786 262.781 513141.96 5402575.802 262.782 513141.96 5402575.802 244.64 513141.976 5402575.786 244.64 513141.976 5402575.786 262.781 + + + + + + + + + + + + + + + + + 513141.976 5402575.786 244.64 513141.993 5402575.771 244.64 513141.993 5402575.771 262.781 513141.976 5402575.786 262.781 513141.976 5402575.786 244.64 + + + + + + + + + + + + + + + + + 513142.011 5402575.757 262.78 513141.993 5402575.771 262.781 513141.993 5402575.771 244.64 513142.011 5402575.757 244.64 513142.011 5402575.757 262.78 + + + + + + + + + + + + + + + + + 513142.011 5402575.757 244.64 513142.03 5402575.745 244.64 513142.03 5402575.745 262.78 513142.011 5402575.757 262.78 513142.011 5402575.757 244.64 + + + + + + + + + + + + + + + + + 513142.03 5402575.745 244.64 513142.051 5402575.733 244.64 513142.051 5402575.733 262.78 513142.03 5402575.745 262.78 513142.03 5402575.745 244.64 + + + + + + + + + + + + + + + + + 513142.051 5402575.733 244.64 513142.073 5402575.723 244.64 513142.073 5402575.723 262.78 513142.051 5402575.733 262.78 513142.051 5402575.733 244.64 + + + + + + + + + + + + + + + + + 513142.073 5402575.723 244.64 513142.094 5402575.715 244.64 513142.094 5402575.715 262.78 513142.073 5402575.723 262.78 513142.073 5402575.723 244.64 + + + + + + + + + + + + + + + + + 513142.094 5402575.715 244.64 513142.116 5402575.708 244.64 513142.116 5402575.708 262.78 513142.094 5402575.715 262.78 513142.094 5402575.715 244.64 + + + + + + + + + + + + + + + + + 513142.116 5402575.708 244.64 513142.138 5402575.703 244.64 513142.138 5402575.703 262.78 513142.116 5402575.708 262.78 513142.116 5402575.708 244.64 + + + + + + + + + + + + + + + + + 513142.138 5402575.703 244.64 513142.16 5402575.7 244.64 513142.16 5402575.7 262.781 513142.138 5402575.703 262.78 513142.138 5402575.703 244.64 + + + + + + + + + + + + + + + + + 513142.16 5402575.7 244.64 513142.183 5402575.698 244.64 513142.183 5402575.698 262.781 513142.16 5402575.7 262.781 513142.16 5402575.7 244.64 + + + + + + + + + + + + + + + + + 513142.183 5402575.698 244.64 513142.205 5402575.698 244.64 513142.205 5402575.698 262.782 513142.183 5402575.698 262.781 513142.183 5402575.698 244.64 + + + + + + + + + + + + + + + + + 513142.205 5402575.698 244.64 513142.228 5402575.699 244.64 513142.228 5402575.699 262.782 513142.205 5402575.698 262.782 513142.205 5402575.698 244.64 + + + + + + + + + + + + + + + + + 513142.228 5402575.699 244.64 513142.251 5402575.702 244.64 513142.251 5402575.702 262.783 513142.228 5402575.699 262.782 513142.228 5402575.699 244.64 + + + + + + + + + + + + + + + + + 513142.251 5402575.702 244.64 513142.273 5402575.706 244.64 513142.273 5402575.706 262.784 513142.251 5402575.702 262.783 513142.251 5402575.702 244.64 + + + + + + + + + + + + + + + + + 513142.273 5402575.706 244.64 513142.295 5402575.712 244.64 513142.295 5402575.712 262.785 513142.273 5402575.706 262.784 513142.273 5402575.706 244.64 + + + + + + + + + + + + + + + + + 513142.295 5402575.712 244.64 513142.316 5402575.72 244.64 513142.316 5402575.72 262.786 513142.295 5402575.712 262.785 513142.295 5402575.712 244.64 + + + + + + + + + + + + + + + + + 513142.316 5402575.72 244.64 513142.337 5402575.729 244.64 513142.337 5402575.729 262.787 513142.316 5402575.72 262.786 513142.316 5402575.72 244.64 + + + + + + + + + + + + + + + + + 513142.337 5402575.729 244.64 513142.357 5402575.739 244.64 513142.357 5402575.739 262.789 513142.337 5402575.729 262.787 513142.337 5402575.729 244.64 + + + + + + + + + + + + + + + + + 513142.357 5402575.739 244.64 513142.377 5402575.751 244.64 513142.377 5402575.751 262.79 513142.357 5402575.739 262.789 513142.357 5402575.739 244.64 + + + + + + + + + + + + + + + + + 513142.377 5402575.751 244.64 513142.395 5402575.764 244.64 513142.395 5402575.764 262.791 513142.377 5402575.751 262.79 513142.377 5402575.751 244.64 + + + + + + + + + + + + + + + + + 513142.395 5402575.764 244.64 513142.413 5402575.778 244.64 513142.413 5402575.778 262.793 513142.395 5402575.764 262.791 513142.395 5402575.764 244.64 + + + + + + + + + + + + + + + + + 513142.413 5402575.778 244.64 513142.429 5402575.794 244.64 513142.429 5402575.794 262.794 513142.413 5402575.778 262.793 513142.413 5402575.778 244.64 + + + + + + + + + + + + + + + + + 513142.429 5402575.794 244.64 513142.445 5402575.81 244.64 513142.445 5402575.81 262.796 513142.429 5402575.794 262.794 513142.429 5402575.794 244.64 + + + + + + + + + + + + + + + + + 513142.445 5402575.81 244.64 513142.459 5402575.828 244.64 513142.459 5402575.828 262.797 513142.445 5402575.81 262.796 513142.445 5402575.81 244.64 + + + + + + + + + + + + + + + + + 513142.459 5402575.828 244.64 513142.472 5402575.847 244.64 513142.472 5402575.847 262.799 513142.459 5402575.828 262.797 513142.459 5402575.828 244.64 + + + + + + + + + + + + + + + + + 513142.472 5402575.847 244.64 513142.483 5402575.866 244.64 513142.483 5402575.866 262.8 513142.472 5402575.847 262.799 513142.472 5402575.847 244.64 + + + + + + + + + + + + + + + + + 513142.483 5402575.866 244.64 513142.494 5402575.886 244.64 513142.494 5402575.886 262.802 513142.483 5402575.866 262.8 513142.483 5402575.866 244.64 + + + + + + + + + + + + + + + + + 513142.494 5402575.886 262.802 513142.494 5402575.886 244.64 513142.502 5402575.908 244.64 513142.502 5402575.908 262.804 513142.494 5402575.886 262.802 + + + + + + + + + + + + + + + + + 513142.502 5402575.908 262.804 513142.502 5402575.908 244.64 513142.51 5402575.93 244.64 513142.51 5402575.93 262.805 513142.502 5402575.908 262.804 + + + + + + + + + + + + + + + + + 513142.51 5402575.93 244.64 513142.65 5402576.17 244.64 513142.65 5402576.17 262.825 513142.51 5402575.93 262.805 513142.51 5402575.93 244.64 + + + + + + + + + + + + + + + + + 513145.9 5402573.38 262.735 513142.65 5402576.17 262.825 513142.65 5402576.17 244.64 513145.9 5402573.38 244.64 513145.9 5402573.38 262.735 + + + + + + + + + + + + + + + + + 513145.9 5402573.38 244.64 513145.64 5402573.06 244.64 513145.64 5402573.06 262.707 513145.9 5402573.38 262.735 513145.9 5402573.38 244.64 + + + + + + + + + + + + + + + + + 513145.64 5402573.06 244.64 513145.617 5402573.038 244.64 513145.617 5402573.038 262.705 513145.64 5402573.06 262.707 513145.64 5402573.06 244.64 + + + + + + + + + + + + + + + + + 513145.617 5402573.038 244.64 513145.602 5402573.021 244.64 513145.602 5402573.021 262.703 513145.617 5402573.038 262.705 513145.617 5402573.038 244.64 + + + + + + + + + + + + + + + + + 513145.602 5402573.021 244.64 513145.588 5402573.003 244.64 513145.588 5402573.003 262.702 513145.602 5402573.021 262.703 513145.602 5402573.021 244.64 + + + + + + + + + + + + + + + + + 513145.588 5402573.003 244.64 513145.575 5402572.984 244.64 513145.575 5402572.984 262.7 513145.588 5402573.003 262.702 513145.588 5402573.003 244.64 + + + + + + + + + + + + + + + + + 513145.575 5402572.984 244.64 513145.564 5402572.964 244.64 513145.564 5402572.964 262.698 513145.575 5402572.984 262.7 513145.575 5402572.984 244.64 + + + + + + + + + + + + + + + + + 513145.564 5402572.964 244.64 513145.554 5402572.943 244.64 513145.554 5402572.943 262.697 513145.564 5402572.964 262.698 513145.564 5402572.964 244.64 + + + + + + + + + + + + + + + + + 513145.554 5402572.943 244.64 513145.545 5402572.921 244.64 513145.545 5402572.921 262.695 513145.554 5402572.943 262.697 513145.554 5402572.943 244.64 + + + + + + + + + + + + + + + + + 513145.538 5402572.9 244.64 513145.538 5402572.9 262.694 513145.545 5402572.921 262.695 513145.545 5402572.921 244.64 513145.538 5402572.9 244.64 + + + + + + + + + + + + + + + + + 513145.533 5402572.877 244.64 513145.533 5402572.877 262.692 513145.538 5402572.9 262.694 513145.538 5402572.9 244.64 513145.533 5402572.877 244.64 + + + + + + + + + + + + + + + + + 513145.529 5402572.854 244.64 513145.529 5402572.854 262.69 513145.533 5402572.877 262.692 513145.533 5402572.877 244.64 513145.529 5402572.854 244.64 + + + + + + + + + + + + + + + + + 513145.527 5402572.832 244.64 513145.527 5402572.832 262.689 513145.529 5402572.854 262.69 513145.529 5402572.854 244.64 513145.527 5402572.832 244.64 + + + + + + + + + + + + + + + + + 513145.526 5402572.809 244.64 513145.526 5402572.809 262.687 513145.527 5402572.832 262.689 513145.527 5402572.832 244.64 513145.526 5402572.809 244.64 + + + + + + + + + + + + + + + + + 513145.527 5402572.786 244.64 513145.527 5402572.786 262.686 513145.526 5402572.809 262.687 513145.526 5402572.809 244.64 513145.527 5402572.786 244.64 + + + + + + + + + + + + + + + + + 513145.53 5402572.763 244.64 513145.53 5402572.763 262.684 513145.527 5402572.786 262.686 513145.527 5402572.786 244.64 513145.53 5402572.763 244.64 + + + + + + + + + + + + + + + + + 513145.534 5402572.74 244.64 513145.534 5402572.74 262.683 513145.53 5402572.763 262.684 513145.53 5402572.763 244.64 513145.534 5402572.74 244.64 + + + + + + + + + + + + + + + + + 513145.539 5402572.718 244.64 513145.539 5402572.718 262.682 513145.534 5402572.74 262.683 513145.534 5402572.74 244.64 513145.539 5402572.718 244.64 + + + + + + + + + + + + + + + + + 513145.547 5402572.696 244.64 513145.547 5402572.696 262.681 513145.539 5402572.718 262.682 513145.539 5402572.718 244.64 513145.547 5402572.696 244.64 + + + + + + + + + + + + + + + + + 513145.555 5402572.674 244.64 513145.555 5402572.674 262.679 513145.547 5402572.696 262.681 513145.547 5402572.696 244.64 513145.555 5402572.674 244.64 + + + + + + + + + + + + + + + + + 513145.566 5402572.654 262.678 513145.555 5402572.674 262.679 513145.555 5402572.674 244.64 513145.566 5402572.654 244.64 513145.566 5402572.654 262.678 + + + + + + + + + + + + + + + + + 513145.577 5402572.634 262.677 513145.566 5402572.654 262.678 513145.566 5402572.654 244.64 513145.577 5402572.634 244.64 513145.577 5402572.634 262.677 + + + + + + + + + + + + + + + + + 513145.577 5402572.634 244.64 513145.59 5402572.615 244.64 513145.59 5402572.615 262.677 513145.577 5402572.634 262.677 513145.577 5402572.634 244.64 + + + + + + + + + + + + + + + + + 513145.605 5402572.597 262.676 513145.59 5402572.615 262.677 513145.59 5402572.615 244.64 513145.605 5402572.597 244.64 513145.605 5402572.597 262.676 + + + + + + + + + + + + + + + + + 513145.626 5402572.574 262.675 513145.605 5402572.597 262.676 513145.605 5402572.597 244.64 513145.626 5402572.574 244.64 513145.626 5402572.574 262.675 + + + + + + + + + + + + + + + + + 513145.649 5402572.554 262.674 513145.626 5402572.574 262.675 513145.626 5402572.574 244.64 513145.649 5402572.554 244.64 513145.649 5402572.554 262.674 + + + + + + + + + + + + + + + + + 513145.649 5402572.554 244.64 513145.667 5402572.54 244.64 513145.667 5402572.54 262.674 513145.649 5402572.554 262.674 513145.649 5402572.554 244.64 + + + + + + + + + + + + + + + + + 513145.667 5402572.54 244.64 513145.686 5402572.527 244.64 513145.686 5402572.527 262.674 513145.667 5402572.54 262.674 513145.667 5402572.54 244.64 + + + + + + + + + + + + + + + + + 513145.707 5402572.516 262.673 513145.686 5402572.527 262.674 513145.686 5402572.527 244.64 513145.707 5402572.516 244.64 513145.707 5402572.516 262.673 + + + + + + + + + + + + + + + + + 513145.707 5402572.516 244.64 513145.728 5402572.507 244.64 513145.728 5402572.507 262.673 513145.707 5402572.516 262.673 513145.707 5402572.516 244.64 + + + + + + + + + + + + + + + + + 513145.728 5402572.507 244.64 513145.749 5402572.499 244.64 513145.749 5402572.499 262.673 513145.728 5402572.507 262.673 513145.728 5402572.507 244.64 + + + + + + + + + + + + + + + + + 513145.749 5402572.499 244.64 513145.771 5402572.492 244.64 513145.771 5402572.492 262.674 513145.749 5402572.499 262.673 513145.749 5402572.499 244.64 + + + + + + + + + + + + + + + + + 513145.771 5402572.492 244.64 513145.793 5402572.487 244.64 513145.793 5402572.487 262.674 513145.771 5402572.492 262.674 513145.771 5402572.492 244.64 + + + + + + + + + + + + + + + + + 513145.793 5402572.487 244.64 513145.816 5402572.483 244.64 513145.816 5402572.483 262.674 513145.793 5402572.487 262.674 513145.793 5402572.487 244.64 + + + + + + + + + + + + + + + + + 513145.816 5402572.483 244.64 513145.839 5402572.481 244.64 513145.839 5402572.481 262.675 513145.816 5402572.483 262.674 513145.816 5402572.483 244.64 + + + + + + + + + + + + + + + + + 513145.839 5402572.481 244.64 513145.862 5402572.481 244.64 513145.862 5402572.481 262.675 513145.839 5402572.481 262.675 513145.839 5402572.481 244.64 + + + + + + + + + + + + + + + + + 513145.862 5402572.481 244.64 513145.885 5402572.482 244.64 513145.885 5402572.482 262.676 513145.862 5402572.481 262.675 513145.862 5402572.481 244.64 + + + + + + + + + + + + + + + + + 513145.885 5402572.482 244.64 513145.908 5402572.485 244.64 513145.908 5402572.485 262.677 513145.885 5402572.482 262.676 513145.885 5402572.482 244.64 + + + + + + + + + + + + + + + + + 513145.908 5402572.485 244.64 513145.931 5402572.489 244.64 513145.931 5402572.489 262.678 513145.908 5402572.485 262.677 513145.908 5402572.485 244.64 + + + + + + + + + + + + + + + + + 513145.931 5402572.489 244.64 513145.953 5402572.495 244.64 513145.953 5402572.495 262.679 513145.931 5402572.489 262.678 513145.931 5402572.489 244.64 + + + + + + + + + + + + + + + + + 513145.953 5402572.495 244.64 513145.975 5402572.503 244.64 513145.975 5402572.503 262.68 513145.953 5402572.495 262.679 513145.953 5402572.495 244.64 + + + + + + + + + + + + + + + + + 513145.975 5402572.503 244.64 513145.996 5402572.512 244.64 513145.996 5402572.512 262.681 513145.975 5402572.503 262.68 513145.975 5402572.503 244.64 + + + + + + + + + + + + + + + + + 513145.996 5402572.512 244.64 513146.016 5402572.522 244.64 513146.016 5402572.522 262.682 513145.996 5402572.512 262.681 513145.996 5402572.512 244.64 + + + + + + + + + + + + + + + + + 513146.016 5402572.522 244.64 513146.036 5402572.534 244.64 513146.036 5402572.534 262.684 513146.016 5402572.522 262.682 513146.016 5402572.522 244.64 + + + + + + + + + + + + + + + + + 513146.036 5402572.534 244.64 513146.055 5402572.547 244.64 513146.055 5402572.547 262.685 513146.036 5402572.534 262.684 513146.036 5402572.534 244.64 + + + + + + + + + + + + + + + + + 513146.055 5402572.547 244.64 513146.073 5402572.562 244.64 513146.073 5402572.562 262.687 513146.055 5402572.547 262.685 513146.055 5402572.547 244.64 + + + + + + + + + + + + + + + + + 513146.073 5402572.562 244.64 513146.09 5402572.578 244.64 513146.09 5402572.578 262.688 513146.073 5402572.562 262.687 513146.073 5402572.562 244.64 + + + + + + + + + + + + + + + + + 513146.09 5402572.578 244.64 513146.11 5402572.6 244.64 513146.11 5402572.6 262.69 513146.09 5402572.578 262.688 513146.09 5402572.578 244.64 + + + + + + + + + + + + + + + + + 513146.11 5402572.6 244.64 513146.39 5402572.95 244.64 513146.39 5402572.95 262.721 513146.11 5402572.6 262.69 513146.11 5402572.6 244.64 + + + + + + + + + + + + + + + + + 513149.3 5402570.36 262.634 513146.39 5402572.95 262.721 513146.39 5402572.95 244.64 513149.3 5402570.36 244.64 513149.3 5402570.36 262.634 + + + + + + + + + + + + + + + + + 513149.3 5402570.36 244.64 513149.02 5402570.08 244.64 513149.02 5402570.08 262.608 513149.3 5402570.36 262.634 513149.3 5402570.36 244.64 + + + + + + + + + + + + + + + + + 513149.02 5402570.08 244.64 513149.007 5402570.055 244.64 513149.007 5402570.055 262.606 513149.02 5402570.08 262.608 513149.02 5402570.08 244.64 + + + + + + + + + + + + + + + + + 513148.999 5402570.035 244.64 513148.999 5402570.035 262.605 513149.007 5402570.055 262.606 513149.007 5402570.055 244.64 513148.999 5402570.035 244.64 + + + + + + + + + + + + + + + + + 513148.993 5402570.015 244.64 513148.993 5402570.015 262.603 513148.999 5402570.035 262.605 513148.999 5402570.035 244.64 513148.993 5402570.015 244.64 + + + + + + + + + + + + + + + + + 513148.987 5402569.995 244.64 513148.987 5402569.995 262.602 513148.993 5402570.015 262.603 513148.993 5402570.015 244.64 513148.987 5402569.995 244.64 + + + + + + + + + + + + + + + + + 513148.984 5402569.974 244.64 513148.984 5402569.974 262.6 513148.987 5402569.995 262.602 513148.987 5402569.995 244.64 513148.984 5402569.974 244.64 + + + + + + + + + + + + + + + + + 513148.981 5402569.953 244.64 513148.981 5402569.953 262.599 513148.984 5402569.974 262.6 513148.984 5402569.974 244.64 513148.981 5402569.953 244.64 + + + + + + + + + + + + + + + + + 513148.98 5402569.932 244.64 513148.98 5402569.932 262.597 513148.981 5402569.953 262.599 513148.981 5402569.953 244.64 513148.98 5402569.932 244.64 + + + + + + + + + + + + + + + + + 513148.981 5402569.911 244.64 513148.981 5402569.911 262.596 513148.98 5402569.932 262.597 513148.98 5402569.932 244.64 513148.981 5402569.911 244.64 + + + + + + + + + + + + + + + + + 513148.983 5402569.89 244.64 513148.983 5402569.89 262.595 513148.981 5402569.911 262.596 513148.981 5402569.911 244.64 513148.983 5402569.89 244.64 + + + + + + + + + + + + + + + + + 513148.987 5402569.869 244.64 513148.987 5402569.869 262.594 513148.983 5402569.89 262.595 513148.983 5402569.89 244.64 513148.987 5402569.869 244.64 + + + + + + + + + + + + + + + + + 513148.992 5402569.849 244.64 513148.992 5402569.849 262.592 513148.987 5402569.869 262.594 513148.987 5402569.869 244.64 513148.992 5402569.849 244.64 + + + + + + + + + + + + + + + + + 513148.998 5402569.829 244.64 513148.999 5402569.83 262.591 513148.992 5402569.849 262.592 513148.992 5402569.849 244.64 513148.998 5402569.829 244.64 + + + + + + + + + + + + + + + + + 513149.006 5402569.809 244.64 513149.008 5402569.81 262.59 513148.999 5402569.83 262.591 513148.998 5402569.829 244.64 513149.006 5402569.809 244.64 + + + + + + + + + + + + + + + + + 513149.016 5402569.791 262.589 513149.008 5402569.81 262.59 513149.006 5402569.809 244.64 513149.015 5402569.79 244.64 513149.016 5402569.791 262.589 + + + + + + + + + + + + + + + + + 513149.026 5402569.772 262.588 513149.016 5402569.791 262.589 513149.015 5402569.79 244.64 513149.026 5402569.772 244.64 513149.026 5402569.772 262.588 + + + + + + + + + + + + + + + + + 513149.026 5402569.772 244.64 513149.037 5402569.754 244.64 513149.039 5402569.757 262.588 513149.026 5402569.772 262.588 513149.026 5402569.772 244.64 + + + + + + + + + + + + + + + + + 513149.05 5402569.737 262.587 513149.039 5402569.757 262.588 513149.037 5402569.754 244.64 513149.05 5402569.737 244.64 513149.05 5402569.737 262.587 + + + + + + + + + + + + + + + + + 513149.064 5402569.722 262.586 513149.05 5402569.737 262.587 513149.05 5402569.737 244.64 513149.064 5402569.722 244.64 513149.064 5402569.722 262.586 + + + + + + + + + + + + + + + + + 513149.064 5402569.722 244.64 513149.079 5402569.707 244.64 513149.079 5402569.707 262.586 513149.064 5402569.722 262.586 513149.064 5402569.722 244.64 + + + + + + + + + + + + + + + + + 513149.101 5402569.689 262.585 513149.079 5402569.707 262.586 513149.079 5402569.707 244.64 513149.101 5402569.689 244.64 513149.101 5402569.689 262.585 + + + + + + + + + + + + + + + + + 513149.101 5402569.689 244.64 513149.125 5402569.673 244.64 513149.125 5402569.673 262.585 513149.101 5402569.689 262.585 513149.101 5402569.689 244.64 + + + + + + + + + + + + + + + + + 513149.125 5402569.673 244.64 513149.143 5402569.662 244.64 513149.143 5402569.662 262.585 513149.125 5402569.673 262.585 513149.125 5402569.673 244.64 + + + + + + + + + + + + + + + + + 513149.164 5402569.656 262.585 513149.143 5402569.662 262.585 513149.143 5402569.662 244.64 513149.162 5402569.653 244.64 513149.164 5402569.656 262.585 + + + + + + + + + + + + + + + + + 513149.162 5402569.653 244.64 513149.182 5402569.646 244.64 513149.182 5402569.646 262.585 513149.164 5402569.656 262.585 513149.162 5402569.653 244.64 + + + + + + + + + + + + + + + + + 513149.182 5402569.646 244.64 513149.202 5402569.639 244.64 513149.202 5402569.639 262.585 513149.182 5402569.646 262.585 513149.182 5402569.646 244.64 + + + + + + + + + + + + + + + + + 513149.202 5402569.639 244.64 513149.222 5402569.634 244.64 513149.222 5402569.634 262.585 513149.202 5402569.639 262.585 513149.202 5402569.639 244.64 + + + + + + + + + + + + + + + + + 513149.222 5402569.634 244.64 513149.243 5402569.631 244.64 513149.243 5402569.631 262.585 513149.222 5402569.634 262.585 513149.222 5402569.634 244.64 + + + + + + + + + + + + + + + + + 513149.243 5402569.631 244.64 513149.264 5402569.629 244.64 513149.264 5402569.629 262.586 513149.243 5402569.631 262.585 513149.243 5402569.631 244.64 + + + + + + + + + + + + + + + + + 513149.264 5402569.629 244.64 513149.285 5402569.628 244.64 513149.285 5402569.628 262.586 513149.264 5402569.629 262.586 513149.264 5402569.629 244.64 + + + + + + + + + + + + + + + + + 513149.285 5402569.628 244.64 513149.306 5402569.629 244.64 513149.306 5402569.629 262.587 513149.285 5402569.628 262.586 513149.285 5402569.628 244.64 + + + + + + + + + + + + + + + + + 513149.306 5402569.629 244.64 513149.327 5402569.631 244.64 513149.327 5402569.631 262.588 513149.306 5402569.629 262.587 513149.306 5402569.629 244.64 + + + + + + + + + + + + + + + + + 513149.327 5402569.631 244.64 513149.348 5402569.635 244.64 513149.348 5402569.635 262.589 513149.327 5402569.631 262.588 513149.327 5402569.631 244.64 + + + + + + + + + + + + + + + + + 513149.348 5402569.635 244.64 513149.368 5402569.64 244.64 513149.368 5402569.64 262.589 513149.348 5402569.635 262.589 513149.348 5402569.635 244.64 + + + + + + + + + + + + + + + + + 513149.368 5402569.64 244.64 513149.389 5402569.647 244.64 513149.389 5402569.647 262.59 513149.368 5402569.64 262.589 513149.368 5402569.64 244.64 + + + + + + + + + + + + + + + + + 513149.389 5402569.647 244.64 513149.408 5402569.655 244.64 513149.408 5402569.655 262.591 513149.389 5402569.647 262.59 513149.389 5402569.647 244.64 + + + + + + + + + + + + + + + + + 513149.408 5402569.655 244.64 513149.427 5402569.665 244.64 513149.427 5402569.665 262.593 513149.408 5402569.655 262.591 513149.408 5402569.655 244.64 + + + + + + + + + + + + + + + + + 513149.427 5402569.665 244.64 513149.445 5402569.675 244.64 513149.445 5402569.675 262.594 513149.427 5402569.665 262.593 513149.427 5402569.665 244.64 + + + + + + + + + + + + + + + + + 513149.445 5402569.675 244.64 513149.463 5402569.687 244.64 513149.463 5402569.687 262.595 513149.445 5402569.675 262.594 513149.445 5402569.675 244.64 + + + + + + + + + + + + + + + + + 513149.463 5402569.687 244.64 513149.479 5402569.7 244.64 513149.479 5402569.7 262.596 513149.463 5402569.687 262.595 513149.463 5402569.687 244.64 + + + + + + + + + + + + + + + + + 513149.479 5402569.7 244.64 513149.5 5402569.72 244.64 513149.5 5402569.72 262.598 513149.479 5402569.7 262.596 513149.479 5402569.7 244.64 + + + + + + + + + + + + + + + + + 513149.5 5402569.72 244.64 513149.76 5402569.94 244.64 513149.76 5402569.94 262.62 513149.5 5402569.72 262.598 513149.5 5402569.72 244.64 + + + + + + + + + + + + + + + + + 513153.29 5402566.8 262.515 513149.76 5402569.94 262.62 513149.76 5402569.94 244.64 513153.29 5402566.8 244.64 513153.29 5402566.8 262.515 + + + + + + + + + + + + + + + + + 513153.29 5402566.8 244.64 513153.01 5402566.52 244.64 513153.01 5402566.52 262.489 513153.29 5402566.8 262.515 513153.29 5402566.8 244.64 + + + + + + + + + + + + + + + + + 513153.01 5402566.52 244.64 513152.997 5402566.495 244.64 513152.997 5402566.495 262.487 513153.01 5402566.52 262.489 513153.01 5402566.52 244.64 + + + + + + + + + + + + + + + + + 513152.989 5402566.476 244.64 513152.989 5402566.476 262.486 513152.997 5402566.495 262.487 513152.997 5402566.495 244.64 513152.989 5402566.476 244.64 + + + + + + + + + + + + + + + + + 513152.983 5402566.455 244.64 513152.983 5402566.455 262.484 513152.989 5402566.476 262.486 513152.989 5402566.476 244.64 513152.983 5402566.455 244.64 + + + + + + + + + + + + + + + + + 513152.977 5402566.435 244.64 513152.981 5402566.436 262.483 513152.983 5402566.455 262.484 513152.983 5402566.455 244.64 513152.977 5402566.435 244.64 + + + + + + + + + + + + + + + + + 513152.974 5402566.414 244.64 513152.974 5402566.414 262.481 513152.981 5402566.436 262.483 513152.977 5402566.435 244.64 513152.974 5402566.414 244.64 + + + + + + + + + + + + + + + + + 513152.971 5402566.393 244.64 513152.971 5402566.393 262.48 513152.974 5402566.414 262.481 513152.974 5402566.414 244.64 513152.971 5402566.393 244.64 + + + + + + + + + + + + + + + + + 513152.97 5402566.372 244.64 513152.97 5402566.372 262.478 513152.971 5402566.393 262.48 513152.971 5402566.393 244.64 513152.97 5402566.372 244.64 + + + + + + + + + + + + + + + + + 513152.971 5402566.351 244.64 513152.971 5402566.351 262.477 513152.97 5402566.372 262.478 513152.97 5402566.372 244.64 513152.971 5402566.351 244.64 + + + + + + + + + + + + + + + + + 513152.973 5402566.33 244.64 513152.973 5402566.33 262.476 513152.971 5402566.351 262.477 513152.971 5402566.351 244.64 513152.973 5402566.33 244.64 + + + + + + + + + + + + + + + + + 513152.977 5402566.309 244.64 513152.977 5402566.309 262.474 513152.973 5402566.33 262.476 513152.973 5402566.33 244.64 513152.977 5402566.309 244.64 + + + + + + + + + + + + + + + + + 513152.982 5402566.289 244.64 513152.982 5402566.289 262.473 513152.977 5402566.309 262.474 513152.977 5402566.309 244.64 513152.982 5402566.289 244.64 + + + + + + + + + + + + + + + + + 513152.988 5402566.269 244.64 513152.988 5402566.269 262.472 513152.982 5402566.289 262.473 513152.982 5402566.289 244.64 513152.988 5402566.269 244.64 + + + + + + + + + + + + + + + + + 513152.996 5402566.249 244.64 513152.996 5402566.249 262.471 513152.988 5402566.269 262.472 513152.988 5402566.269 244.64 513152.996 5402566.249 244.64 + + + + + + + + + + + + + + + + + 513153.009 5402566.231 262.47 513152.996 5402566.249 262.471 513152.996 5402566.249 244.64 513153.005 5402566.23 244.64 513153.009 5402566.231 262.47 + + + + + + + + + + + + + + + + + 513153.016 5402566.212 262.469 513153.009 5402566.231 262.47 513153.005 5402566.23 244.64 513153.016 5402566.212 244.64 513153.016 5402566.212 262.469 + + + + + + + + + + + + + + + + + 513153.027 5402566.194 262.468 513153.016 5402566.212 262.469 513153.016 5402566.212 244.64 513153.027 5402566.194 244.64 513153.027 5402566.194 262.468 + + + + + + + + + + + + + + + + + 513153.027 5402566.194 244.64 513153.04 5402566.177 244.64 513153.04 5402566.177 262.468 513153.027 5402566.194 262.468 513153.027 5402566.194 244.64 + + + + + + + + + + + + + + + + + 513153.054 5402566.162 262.467 513153.04 5402566.177 262.468 513153.04 5402566.177 244.64 513153.054 5402566.162 244.64 513153.054 5402566.162 262.467 + + + + + + + + + + + + + + + + + 513153.069 5402566.147 262.466 513153.054 5402566.162 262.467 513153.054 5402566.162 244.64 513153.069 5402566.147 244.64 513153.069 5402566.147 262.466 + + + + + + + + + + + + + + + + + 513153.069 5402566.147 244.64 513153.091 5402566.129 244.64 513153.091 5402566.129 262.466 513153.069 5402566.147 262.466 513153.069 5402566.147 244.64 + + + + + + + + + + + + + + + + + 513153.091 5402566.129 244.64 513153.115 5402566.113 244.64 513153.115 5402566.113 262.466 513153.091 5402566.129 262.466 513153.091 5402566.129 244.64 + + + + + + + + + + + + + + + + + 513153.133 5402566.102 262.465 513153.115 5402566.113 262.466 513153.115 5402566.113 244.64 513153.133 5402566.102 244.64 513153.133 5402566.102 262.465 + + + + + + + + + + + + + + + + + 513153.133 5402566.102 244.64 513153.152 5402566.093 244.64 513153.152 5402566.093 262.465 513153.133 5402566.102 262.465 513153.133 5402566.102 244.64 + + + + + + + + + + + + + + + + + 513153.152 5402566.093 244.64 513153.172 5402566.086 244.64 513153.172 5402566.086 262.465 513153.152 5402566.093 262.465 513153.152 5402566.093 244.64 + + + + + + + + + + + + + + + + + 513153.172 5402566.086 244.64 513153.192 5402566.079 244.64 513153.192 5402566.079 262.466 513153.172 5402566.086 262.465 513153.172 5402566.086 244.64 + + + + + + + + + + + + + + + + + 513153.192 5402566.079 244.64 513153.212 5402566.074 244.64 513153.212 5402566.074 262.466 513153.192 5402566.079 262.466 513153.192 5402566.079 244.64 + + + + + + + + + + + + + + + + + 513153.212 5402566.074 244.64 513153.233 5402566.071 244.64 513153.233 5402566.071 262.466 513153.212 5402566.074 262.466 513153.212 5402566.074 244.64 + + + + + + + + + + + + + + + + + 513153.233 5402566.071 244.64 513153.254 5402566.069 244.64 513153.254 5402566.069 262.467 513153.233 5402566.071 262.466 513153.233 5402566.071 244.64 + + + + + + + + + + + + + + + + + 513153.254 5402566.069 244.64 513153.275 5402566.068 244.64 513153.275 5402566.068 262.467 513153.254 5402566.069 262.467 513153.254 5402566.069 244.64 + + + + + + + + + + + + + + + + + 513153.275 5402566.068 244.64 513153.296 5402566.069 244.64 513153.296 5402566.069 262.468 513153.275 5402566.068 262.467 513153.275 5402566.068 244.64 + + + + + + + + + + + + + + + + + 513153.296 5402566.069 244.64 513153.317 5402566.071 244.64 513153.317 5402566.071 262.469 513153.296 5402566.069 262.468 513153.296 5402566.069 244.64 + + + + + + + + + + + + + + + + + 513153.317 5402566.071 244.64 513153.338 5402566.075 244.64 513153.338 5402566.075 262.469 513153.317 5402566.071 262.469 513153.317 5402566.071 244.64 + + + + + + + + + + + + + + + + + 513153.338 5402566.075 244.64 513153.359 5402566.08 244.64 513153.359 5402566.08 262.47 513153.338 5402566.075 262.469 513153.338 5402566.075 244.64 + + + + + + + + + + + + + + + + + 513153.359 5402566.08 244.64 513153.379 5402566.087 244.64 513153.379 5402566.087 262.471 513153.359 5402566.08 262.47 513153.359 5402566.08 244.64 + + + + + + + + + + + + + + + + + 513153.379 5402566.087 244.64 513153.398 5402566.095 244.64 513153.398 5402566.095 262.472 513153.379 5402566.087 262.471 513153.379 5402566.087 244.64 + + + + + + + + + + + + + + + + + 513153.398 5402566.095 244.64 513153.417 5402566.105 244.64 513153.417 5402566.105 262.473 513153.398 5402566.095 262.472 513153.398 5402566.095 244.64 + + + + + + + + + + + + + + + + + 513153.417 5402566.105 244.64 513153.435 5402566.115 244.64 513153.435 5402566.115 262.475 513153.417 5402566.105 262.473 513153.417 5402566.105 244.64 + + + + + + + + + + + + + + + + + 513153.435 5402566.115 244.64 513153.453 5402566.127 244.64 513153.453 5402566.127 262.476 513153.435 5402566.115 262.475 513153.435 5402566.115 244.64 + + + + + + + + + + + + + + + + + 513153.453 5402566.127 244.64 513153.469 5402566.14 244.64 513153.469 5402566.14 262.477 513153.453 5402566.127 262.476 513153.453 5402566.127 244.64 + + + + + + + + + + + + + + + + + 513153.469 5402566.14 244.64 513153.49 5402566.16 244.64 513153.49 5402566.16 262.479 513153.469 5402566.14 262.477 513153.469 5402566.14 244.64 + + + + + + + + + + + + + + + + + 513153.49 5402566.16 244.64 513153.75 5402566.38 244.64 513153.75 5402566.38 262.501 513153.49 5402566.16 262.479 513153.49 5402566.16 244.64 + + + + + + + + + + + + + + + + + 513157.03 5402563.45 262.402 513153.75 5402566.38 262.501 513153.75 5402566.38 244.64 513157.03 5402563.45 244.64 513157.03 5402563.45 262.402 + + + + + + + + + + + + + + + + + 513157.03 5402563.45 244.64 513156.79 5402563.17 244.64 513156.79 5402563.17 262.378 513157.03 5402563.45 262.402 513157.03 5402563.45 244.64 + + + + + + + + + + + + + + + + + 513156.79 5402563.17 244.64 513156.777 5402563.144 244.64 513156.777 5402563.144 262.376 513156.79 5402563.17 262.378 513156.79 5402563.17 244.64 + + + + + + + + + + + + + + + + + 513156.777 5402563.144 244.64 513156.768 5402563.123 244.64 513156.768 5402563.123 262.374 513156.777 5402563.144 262.376 513156.777 5402563.144 244.64 + + + + + + + + + + + + + + + + + 513156.762 5402563.102 244.64 513156.762 5402563.102 262.372 513156.768 5402563.123 262.374 513156.768 5402563.123 244.64 513156.762 5402563.102 244.64 + + + + + + + + + + + + + + + + + 513156.756 5402563.08 244.64 513156.756 5402563.08 262.371 513156.762 5402563.102 262.372 513156.762 5402563.102 244.64 513156.756 5402563.08 244.64 + + + + + + + + + + + + + + + + + 513156.752 5402563.057 244.64 513156.752 5402563.057 262.369 513156.756 5402563.08 262.371 513156.756 5402563.08 244.64 513156.752 5402563.057 244.64 + + + + + + + + + + + + + + + + + 513156.75 5402563.035 244.64 513156.75 5402563.035 262.368 513156.752 5402563.057 262.369 513156.752 5402563.057 244.64 513156.75 5402563.035 244.64 + + + + + + + + + + + + + + + + + 513156.749 5402563.013 244.64 513156.749 5402563.013 262.366 513156.75 5402563.035 262.368 513156.75 5402563.035 244.64 513156.749 5402563.013 244.64 + + + + + + + + + + + + + + + + + 513156.75 5402562.99 244.64 513156.75 5402562.99 262.365 513156.749 5402563.013 262.366 513156.749 5402563.013 244.64 513156.75 5402562.99 244.64 + + + + + + + + + + + + + + + + + 513156.752 5402562.968 244.64 513156.752 5402562.968 262.363 513156.75 5402562.99 262.365 513156.75 5402562.99 244.64 513156.752 5402562.968 244.64 + + + + + + + + + + + + + + + + + 513156.756 5402562.946 244.64 513156.756 5402562.946 262.362 513156.752 5402562.968 262.363 513156.752 5402562.968 244.64 513156.756 5402562.946 244.64 + + + + + + + + + + + + + + + + + 513156.762 5402562.924 244.64 513156.762 5402562.924 262.361 513156.756 5402562.946 262.362 513156.756 5402562.946 244.64 513156.762 5402562.924 244.64 + + + + + + + + + + + + + + + + + 513156.769 5402562.903 244.64 513156.769 5402562.903 262.36 513156.762 5402562.924 262.361 513156.762 5402562.924 244.64 513156.769 5402562.903 244.64 + + + + + + + + + + + + + + + + + 513156.777 5402562.882 244.64 513156.777 5402562.882 262.359 513156.769 5402562.903 262.36 513156.769 5402562.903 244.64 513156.777 5402562.882 244.64 + + + + + + + + + + + + + + + + + 513156.787 5402562.862 262.358 513156.777 5402562.882 262.359 513156.777 5402562.882 244.64 513156.787 5402562.862 244.64 513156.787 5402562.862 262.358 + + + + + + + + + + + + + + + + + 513156.798 5402562.842 262.357 513156.787 5402562.862 262.358 513156.787 5402562.862 244.64 513156.798 5402562.842 244.64 513156.798 5402562.842 262.357 + + + + + + + + + + + + + + + + + 513156.811 5402562.824 262.356 513156.798 5402562.842 262.357 513156.798 5402562.842 244.64 513156.811 5402562.824 244.64 513156.811 5402562.824 262.356 + + + + + + + + + + + + + + + + + 513156.825 5402562.806 262.355 513156.811 5402562.824 262.356 513156.811 5402562.824 244.64 513156.825 5402562.806 244.64 513156.825 5402562.806 262.355 + + + + + + + + + + + + + + + + + 513156.84 5402562.789 262.354 513156.825 5402562.806 262.355 513156.825 5402562.806 244.64 513156.84 5402562.789 244.64 513156.84 5402562.789 262.354 + + + + + + + + + + + + + + + + + 513156.84 5402562.789 244.64 513156.861 5402562.769 244.64 513156.861 5402562.769 262.354 513156.84 5402562.789 262.354 513156.84 5402562.789 244.64 + + + + + + + + + + + + + + + + + 513156.885 5402562.75 262.353 513156.861 5402562.769 262.354 513156.861 5402562.769 244.64 513156.885 5402562.75 244.64 513156.885 5402562.75 262.353 + + + + + + + + + + + + + + + + + 513156.885 5402562.75 244.64 513156.904 5402562.738 244.64 513156.904 5402562.738 262.353 513156.885 5402562.75 262.353 513156.885 5402562.75 244.64 + + + + + + + + + + + + + + + + + 513156.904 5402562.738 244.64 513156.923 5402562.727 244.64 513156.923 5402562.727 262.353 513156.904 5402562.738 262.353 513156.904 5402562.738 244.64 + + + + + + + + + + + + + + + + + 513156.923 5402562.727 244.64 513156.944 5402562.717 244.64 513156.944 5402562.717 262.353 513156.923 5402562.727 262.353 513156.923 5402562.727 244.64 + + + + + + + + + + + + + + + + + 513156.944 5402562.717 244.64 513156.965 5402562.709 244.64 513156.965 5402562.709 262.353 513156.944 5402562.717 262.353 513156.944 5402562.717 244.64 + + + + + + + + + + + + + + + + + 513156.965 5402562.709 244.64 513156.986 5402562.702 244.64 513156.986 5402562.702 262.353 513156.965 5402562.709 262.353 513156.965 5402562.709 244.64 + + + + + + + + + + + + + + + + + 513156.986 5402562.702 244.64 513157.008 5402562.697 244.64 513157.008 5402562.697 262.353 513156.986 5402562.702 262.353 513156.986 5402562.702 244.64 + + + + + + + + + + + + + + + + + 513157.008 5402562.697 244.64 513157.03 5402562.694 244.64 513157.03 5402562.694 262.353 513157.008 5402562.697 262.353 513157.008 5402562.697 244.64 + + + + + + + + + + + + + + + + + 513157.03 5402562.694 244.64 513157.053 5402562.692 244.64 513157.053 5402562.692 262.354 513157.03 5402562.694 262.353 513157.03 5402562.694 244.64 + + + + + + + + + + + + + + + + + 513157.053 5402562.692 244.64 513157.075 5402562.691 244.64 513157.075 5402562.691 262.355 513157.053 5402562.692 262.354 513157.053 5402562.692 244.64 + + + + + + + + + + + + + + + + + 513157.075 5402562.691 244.64 513157.098 5402562.692 244.64 513157.098 5402562.692 262.355 513157.075 5402562.691 262.355 513157.075 5402562.691 244.64 + + + + + + + + + + + + + + + + + 513157.098 5402562.692 244.64 513157.12 5402562.695 244.64 513157.12 5402562.695 262.356 513157.098 5402562.692 262.355 513157.098 5402562.692 244.64 + + + + + + + + + + + + + + + + + 513157.12 5402562.695 244.64 513157.142 5402562.699 244.64 513157.142 5402562.699 262.357 513157.12 5402562.695 262.356 513157.12 5402562.695 244.64 + + + + + + + + + + + + + + + + + 513157.142 5402562.699 244.64 513157.164 5402562.705 244.64 513157.164 5402562.705 262.358 513157.142 5402562.699 262.357 513157.142 5402562.699 244.64 + + + + + + + + + + + + + + + + + 513157.164 5402562.705 244.64 513157.185 5402562.712 244.64 513157.185 5402562.712 262.359 513157.164 5402562.705 262.358 513157.164 5402562.705 244.64 + + + + + + + + + + + + + + + + + 513157.185 5402562.712 244.64 513157.206 5402562.721 244.64 513157.206 5402562.721 262.36 513157.185 5402562.712 262.359 513157.185 5402562.712 244.64 + + + + + + + + + + + + + + + + + 513157.206 5402562.721 244.64 513157.226 5402562.731 244.64 513157.226 5402562.731 262.361 513157.206 5402562.721 262.36 513157.206 5402562.721 244.64 + + + + + + + + + + + + + + + + + 513157.226 5402562.731 244.64 513157.245 5402562.742 244.64 513157.245 5402562.742 262.363 513157.226 5402562.731 262.361 513157.226 5402562.731 244.64 + + + + + + + + + + + + + + + + + 513157.245 5402562.742 244.64 513157.27 5402562.76 244.64 513157.27 5402562.76 262.364 513157.245 5402562.742 262.363 513157.245 5402562.742 244.64 + + + + + + + + + + + + + + + + + 513157.27 5402562.76 244.64 513157.53 5402562.98 244.64 513157.53 5402562.98 262.386 513157.27 5402562.76 262.364 513157.27 5402562.76 244.64 + + + + + + + + + + + + + + + + + 513160.8 5402560.07 262.289 513157.53 5402562.98 262.386 513157.53 5402562.98 244.64 513160.8 5402560.07 244.64 513160.8 5402560.07 262.289 + + + + + + + + + + + + + + + + + 513160.8 5402560.07 244.64 513160.6 5402559.79 244.64 513160.6 5402559.79 262.265 513160.8 5402560.07 262.289 513160.8 5402560.07 244.64 + + + + + + + + + + + + + + + + + 513160.6 5402559.79 244.64 513160.587 5402559.776 244.64 513160.587 5402559.776 262.264 513160.6 5402559.79 262.265 513160.6 5402559.79 244.64 + + + + + + + + + + + + + + + + + 513160.587 5402559.776 244.64 513160.577 5402559.763 244.64 513160.577 5402559.763 262.263 513160.587 5402559.776 262.264 513160.587 5402559.776 244.64 + + + + + + + + + + + + + + + + + 513160.577 5402559.763 244.64 513160.568 5402559.75 244.64 513160.568 5402559.75 262.262 513160.577 5402559.763 262.263 513160.577 5402559.763 244.64 + + + + + + + + + + + + + + + + + 513160.56 5402559.737 244.64 513160.56 5402559.737 262.26 513160.568 5402559.75 262.262 513160.568 5402559.75 244.64 513160.56 5402559.737 244.64 + + + + + + + + + + + + + + + + + 513160.553 5402559.722 244.64 513160.553 5402559.722 262.259 513160.56 5402559.737 262.26 513160.56 5402559.737 244.64 513160.553 5402559.722 244.64 + + + + + + + + + + + + + + + + + 513160.546 5402559.708 244.64 513160.546 5402559.708 262.258 513160.553 5402559.722 262.259 513160.553 5402559.722 244.64 513160.546 5402559.708 244.64 + + + + + + + + + + + + + + + + + 513160.541 5402559.693 244.64 513160.541 5402559.693 262.257 513160.546 5402559.708 262.258 513160.546 5402559.708 244.64 513160.541 5402559.693 244.64 + + + + + + + + + + + + + + + + + 513160.537 5402559.677 244.64 513160.537 5402559.677 262.256 513160.541 5402559.693 262.257 513160.541 5402559.693 244.64 513160.537 5402559.677 244.64 + + + + + + + + + + + + + + + + + 513160.534 5402559.662 244.64 513160.534 5402559.662 262.255 513160.537 5402559.677 262.256 513160.537 5402559.677 244.64 513160.534 5402559.662 244.64 + + + + + + + + + + + + + + + + + 513160.532 5402559.646 244.64 513160.532 5402559.646 262.254 513160.534 5402559.662 262.255 513160.534 5402559.662 244.64 513160.532 5402559.646 244.64 + + + + + + + + + + + + + + + + + 513160.532 5402559.63 244.64 513160.532 5402559.63 262.253 513160.532 5402559.646 262.254 513160.532 5402559.646 244.64 513160.532 5402559.63 244.64 + + + + + + + + + + + + + + + + + 513160.532 5402559.614 244.64 513160.532 5402559.614 262.252 513160.532 5402559.63 262.253 513160.532 5402559.63 244.64 513160.532 5402559.614 244.64 + + + + + + + + + + + + + + + + + 513160.534 5402559.598 244.64 513160.534 5402559.598 262.251 513160.532 5402559.614 262.252 513160.532 5402559.614 244.64 513160.534 5402559.598 244.64 + + + + + + + + + + + + + + + + + 513160.536 5402559.583 244.64 513160.536 5402559.583 262.25 513160.534 5402559.598 262.251 513160.534 5402559.598 244.64 513160.536 5402559.583 244.64 + + + + + + + + + + + + + + + + + 513160.54 5402559.567 244.64 513160.54 5402559.567 262.249 513160.536 5402559.583 262.25 513160.536 5402559.583 244.64 513160.54 5402559.567 244.64 + + + + + + + + + + + + + + + + + 513160.545 5402559.552 244.64 513160.545 5402559.552 262.248 513160.54 5402559.567 262.249 513160.54 5402559.567 244.64 513160.545 5402559.552 244.64 + + + + + + + + + + + + + + + + + 513160.55 5402559.537 244.64 513160.55 5402559.537 262.247 513160.545 5402559.552 262.248 513160.545 5402559.552 244.64 513160.55 5402559.537 244.64 + + + + + + + + + + + + + + + + + 513160.557 5402559.523 244.64 513160.557 5402559.523 262.247 513160.55 5402559.537 262.247 513160.55 5402559.537 244.64 513160.557 5402559.523 244.64 + + + + + + + + + + + + + + + + + 513160.565 5402559.509 244.64 513160.565 5402559.509 262.246 513160.557 5402559.523 262.247 513160.557 5402559.523 244.64 513160.565 5402559.509 244.64 + + + + + + + + + + + + + + + + + 513160.574 5402559.496 262.245 513160.565 5402559.509 262.246 513160.565 5402559.509 244.64 513160.574 5402559.496 244.64 513160.574 5402559.496 262.245 + + + + + + + + + + + + + + + + + 513160.574 5402559.496 244.64 513160.583 5402559.483 244.64 513160.583 5402559.483 262.245 513160.574 5402559.496 262.245 513160.574 5402559.496 244.64 + + + + + + + + + + + + + + + + + 513160.594 5402559.471 262.244 513160.583 5402559.483 262.245 513160.583 5402559.483 244.64 513160.594 5402559.471 244.64 513160.594 5402559.471 262.244 + + + + + + + + + + + + + + + + + 513160.594 5402559.471 244.64 513160.605 5402559.46 244.64 513160.605 5402559.46 262.244 513160.594 5402559.471 262.244 513160.594 5402559.471 244.64 + + + + + + + + + + + + + + + + + 513160.617 5402559.45 262.243 513160.605 5402559.46 262.244 513160.605 5402559.46 244.64 513160.617 5402559.45 244.64 513160.617 5402559.45 262.243 + + + + + + + + + + + + + + + + + 513160.617 5402559.45 244.64 513160.633 5402559.438 244.64 513160.633 5402559.438 262.243 513160.617 5402559.45 262.243 513160.617 5402559.45 244.64 + + + + + + + + + + + + + + + + + 513160.633 5402559.438 244.64 513160.649 5402559.429 244.64 513160.649 5402559.429 262.243 513160.633 5402559.438 262.243 513160.633 5402559.438 244.64 + + + + + + + + + + + + + + + + + 513160.649 5402559.429 244.64 513160.663 5402559.421 244.64 513160.663 5402559.421 262.243 513160.649 5402559.429 262.243 513160.649 5402559.429 244.64 + + + + + + + + + + + + + + + + + 513160.663 5402559.421 244.64 513160.677 5402559.415 244.64 513160.677 5402559.415 262.243 513160.663 5402559.421 262.243 513160.663 5402559.421 244.64 + + + + + + + + + + + + + + + + + 513160.677 5402559.415 244.64 513160.692 5402559.41 244.64 513160.692 5402559.41 262.243 513160.677 5402559.415 262.243 513160.677 5402559.415 244.64 + + + + + + + + + + + + + + + + + 513160.692 5402559.41 244.64 513160.708 5402559.406 244.64 513160.708 5402559.406 262.243 513160.692 5402559.41 262.243 513160.692 5402559.41 244.64 + + + + + + + + + + + + + + + + + 513160.708 5402559.406 244.64 513160.723 5402559.402 244.64 513160.723 5402559.402 262.243 513160.708 5402559.406 262.243 513160.708 5402559.406 244.64 + + + + + + + + + + + + + + + + + 513160.723 5402559.402 244.64 513160.739 5402559.4 244.64 513160.739 5402559.4 262.244 513160.723 5402559.402 262.243 513160.723 5402559.402 244.64 + + + + + + + + + + + + + + + + + 513160.739 5402559.4 244.64 513160.755 5402559.4 244.64 513160.755 5402559.4 262.244 513160.739 5402559.4 262.244 513160.739 5402559.4 244.64 + + + + + + + + + + + + + + + + + 513160.755 5402559.4 244.64 513160.771 5402559.4 244.64 513160.771 5402559.4 262.245 513160.755 5402559.4 262.244 513160.755 5402559.4 244.64 + + + + + + + + + + + + + + + + + 513160.771 5402559.4 244.64 513160.787 5402559.401 244.64 513160.787 5402559.401 262.245 513160.771 5402559.4 262.245 513160.771 5402559.4 244.64 + + + + + + + + + + + + + + + + + 513160.787 5402559.401 244.64 513160.803 5402559.404 244.64 513160.803 5402559.404 262.246 513160.787 5402559.401 262.245 513160.787 5402559.401 244.64 + + + + + + + + + + + + + + + + + 513160.803 5402559.404 244.64 513160.818 5402559.407 244.64 513160.818 5402559.407 262.246 513160.803 5402559.404 262.246 513160.803 5402559.404 244.64 + + + + + + + + + + + + + + + + + 513160.818 5402559.407 244.64 513160.833 5402559.412 244.64 513160.833 5402559.412 262.247 513160.818 5402559.407 262.246 513160.818 5402559.407 244.64 + + + + + + + + + + + + + + + + + 513160.833 5402559.412 244.64 513160.848 5402559.417 244.64 513160.848 5402559.417 262.248 513160.833 5402559.412 262.247 513160.833 5402559.412 244.64 + + + + + + + + + + + + + + + + + 513160.848 5402559.417 244.64 513160.862 5402559.424 244.64 513160.862 5402559.424 262.249 513160.848 5402559.417 262.248 513160.848 5402559.417 244.64 + + + + + + + + + + + + + + + + + 513160.862 5402559.424 244.64 513160.876 5402559.432 244.64 513160.876 5402559.432 262.25 513160.862 5402559.424 262.249 513160.862 5402559.424 244.64 + + + + + + + + + + + + + + + + + 513160.876 5402559.432 244.64 513160.89 5402559.44 244.64 513160.89 5402559.44 262.251 513160.876 5402559.432 262.25 513160.876 5402559.432 244.64 + + + + + + + + + + + + + + + + + 513160.89 5402559.44 244.64 513160.902 5402559.45 244.64 513160.902 5402559.45 262.251 513160.89 5402559.44 262.251 513160.89 5402559.44 244.64 + + + + + + + + + + + + + + + + + 513160.902 5402559.45 244.64 513160.914 5402559.46 244.64 513160.914 5402559.46 262.253 513160.902 5402559.45 262.251 513160.902 5402559.45 244.64 + + + + + + + + + + + + + + + + + 513160.914 5402559.46 244.64 513160.926 5402559.472 244.64 513160.926 5402559.472 262.254 513160.914 5402559.46 262.253 513160.914 5402559.46 244.64 + + + + + + + + + + + + + + + + + 513160.926 5402559.472 244.64 513160.936 5402559.484 244.64 513160.936 5402559.484 262.255 513160.926 5402559.472 262.254 513160.926 5402559.472 244.64 + + + + + + + + + + + + + + + + + 513160.936 5402559.484 244.64 513160.946 5402559.496 244.64 513160.946 5402559.496 262.256 513160.936 5402559.484 262.255 513160.936 5402559.484 244.64 + + + + + + + + + + + + + + + + + 513160.946 5402559.496 244.64 513160.955 5402559.51 244.64 513160.955 5402559.51 262.257 513160.946 5402559.496 262.256 513160.946 5402559.496 244.64 + + + + + + + + + + + + + + + + + 513160.955 5402559.51 262.257 513160.955 5402559.51 244.64 513160.962 5402559.523 244.64 513160.962 5402559.523 262.258 513160.955 5402559.51 262.257 + + + + + + + + + + + + + + + + + 513160.962 5402559.523 262.258 513160.962 5402559.523 244.64 513160.97 5402559.54 244.64 513160.97 5402559.54 262.259 513160.962 5402559.523 262.258 + + + + + + + + + + + + + + + + + 513160.97 5402559.54 244.64 513162.77 5402561.57 244.64 513162.77 5402561.57 262.441 513160.97 5402559.54 262.259 513160.97 5402559.54 244.64 + + + + + + + + + + + + + + + + + 513162.77 5402561.57 244.64 513165.11 5402564.25 244.64 513165.11 5402564.25 262.68 513162.77 5402561.57 262.441 513162.77 5402561.57 244.64 + + + + + + + + + + + + + + + + + 513169.61 5402562.26 262.677 513165.11 5402564.25 262.68 513165.11 5402564.25 244.64 513169.61 5402562.26 244.64 513169.61 5402562.26 262.677 + + + + + + + + + + + + + + + + + 513169.61 5402562.26 244.64 513169.583 5402562.24 244.64 513169.583 5402562.24 262.675 513169.61 5402562.26 262.677 513169.61 5402562.26 244.64 + + + + + + + + + + + + + + + + + 513169.583 5402562.24 244.64 513169.564 5402562.224 244.64 513169.564 5402562.224 262.673 513169.583 5402562.24 262.675 513169.583 5402562.24 244.64 + + + + + + + + + + + + + + + + + 513169.564 5402562.224 244.64 513169.547 5402562.207 244.64 513169.547 5402562.207 262.672 513169.564 5402562.224 262.673 513169.564 5402562.224 244.64 + + + + + + + + + + + + + + + + + 513169.547 5402562.207 244.64 513169.531 5402562.189 244.64 513169.531 5402562.189 262.67 513169.547 5402562.207 262.672 513169.547 5402562.207 244.64 + + + + + + + + + + + + + + + + + 513169.531 5402562.189 244.64 513169.516 5402562.169 244.64 513169.516 5402562.169 262.668 513169.531 5402562.189 262.67 513169.531 5402562.189 244.64 + + + + + + + + + + + + + + + + + 513169.516 5402562.169 244.64 513169.503 5402562.149 244.64 513169.503 5402562.149 262.667 513169.516 5402562.169 262.668 513169.516 5402562.169 244.64 + + + + + + + + + + + + + + + + + 513169.503 5402562.149 244.64 513169.491 5402562.127 244.64 513169.491 5402562.127 262.665 513169.503 5402562.149 262.667 513169.503 5402562.149 244.64 + + + + + + + + + + + + + + + + + 513169.491 5402562.127 244.64 513169.48 5402562.105 244.64 513169.48 5402562.105 262.663 513169.491 5402562.127 262.665 513169.491 5402562.127 244.64 + + + + + + + + + + + + + + + + + 513169.48 5402562.105 244.64 513169.471 5402562.082 244.64 513169.471 5402562.082 262.661 513169.48 5402562.105 262.663 513169.48 5402562.105 244.64 + + + + + + + + + + + + + + + + + 513169.464 5402562.059 244.64 513169.464 5402562.059 262.66 513169.471 5402562.082 262.661 513169.471 5402562.082 244.64 513169.464 5402562.059 244.64 + + + + + + + + + + + + + + + + + 513169.458 5402562.035 244.64 513169.458 5402562.035 262.658 513169.464 5402562.059 262.66 513169.464 5402562.059 244.64 513169.458 5402562.035 244.64 + + + + + + + + + + + + + + + + + 513169.454 5402562.011 244.64 513169.454 5402562.011 262.656 513169.458 5402562.035 262.658 513169.458 5402562.035 244.64 513169.454 5402562.011 244.64 + + + + + + + + + + + + + + + + + 513169.452 5402561.986 244.64 513169.452 5402561.986 262.655 513169.454 5402562.011 262.656 513169.454 5402562.011 244.64 513169.452 5402561.986 244.64 + + + + + + + + + + + + + + + + + 513169.452 5402561.962 244.64 513169.452 5402561.962 262.653 513169.452 5402561.986 262.655 513169.452 5402561.986 244.64 513169.452 5402561.962 244.64 + + + + + + + + + + + + + + + + + 513169.453 5402561.937 244.64 513169.453 5402561.937 262.651 513169.452 5402561.962 262.653 513169.452 5402561.962 244.64 513169.453 5402561.937 244.64 + + + + + + + + + + + + + + + + + 513169.456 5402561.913 244.64 513169.456 5402561.913 262.65 513169.453 5402561.937 262.651 513169.453 5402561.937 244.64 513169.456 5402561.913 244.64 + + + + + + + + + + + + + + + + + 513169.46 5402561.889 244.64 513169.46 5402561.889 262.649 513169.456 5402561.913 262.65 513169.456 5402561.913 244.64 513169.46 5402561.889 244.64 + + + + + + + + + + + + + + + + + 513169.466 5402561.865 244.64 513169.466 5402561.865 262.647 513169.46 5402561.889 262.649 513169.46 5402561.889 244.64 513169.466 5402561.865 244.64 + + + + + + + + + + + + + + + + + 513169.474 5402561.842 244.64 513169.474 5402561.842 262.646 513169.466 5402561.865 262.647 513169.466 5402561.865 244.64 513169.474 5402561.842 244.64 + + + + + + + + + + + + + + + + + 513169.484 5402561.819 262.645 513169.474 5402561.842 262.646 513169.474 5402561.842 244.64 513169.484 5402561.819 244.64 513169.484 5402561.819 262.645 + + + + + + + + + + + + + + + + + 513169.495 5402561.797 262.644 513169.484 5402561.819 262.645 513169.484 5402561.819 244.64 513169.495 5402561.797 244.64 513169.495 5402561.797 262.644 + + + + + + + + + + + + + + + + + 513169.507 5402561.776 262.643 513169.495 5402561.797 262.644 513169.495 5402561.797 244.64 513169.507 5402561.776 244.64 513169.507 5402561.776 262.643 + + + + + + + + + + + + + + + + + 513169.521 5402561.756 262.642 513169.507 5402561.776 262.643 513169.507 5402561.776 244.64 513169.521 5402561.756 244.64 513169.521 5402561.756 262.642 + + + + + + + + + + + + + + + + + 513169.537 5402561.737 262.641 513169.521 5402561.756 262.642 513169.521 5402561.756 244.64 513169.537 5402561.737 244.64 513169.537 5402561.737 262.641 + + + + + + + + + + + + + + + + + 513169.553 5402561.719 262.64 513169.537 5402561.737 262.641 513169.537 5402561.737 244.64 513169.553 5402561.719 244.64 513169.553 5402561.719 262.64 + + + + + + + + + + + + + + + + + 513169.553 5402561.719 244.64 513169.571 5402561.702 244.64 513169.571 5402561.702 262.64 513169.553 5402561.719 262.64 513169.553 5402561.719 244.64 + + + + + + + + + + + + + + + + + 513169.59 5402561.687 262.639 513169.571 5402561.702 262.64 513169.571 5402561.702 244.64 513169.59 5402561.687 244.64 513169.59 5402561.687 262.639 + + + + + + + + + + + + + + + + + 513169.59 5402561.687 244.64 513169.61 5402561.673 244.64 513169.61 5402561.673 262.639 513169.59 5402561.687 262.639 513169.59 5402561.687 244.64 + + + + + + + + + + + + + + + + + 513169.61 5402561.673 244.64 513169.631 5402561.66 244.64 513169.631 5402561.66 262.639 513169.61 5402561.673 262.639 513169.61 5402561.673 244.64 + + + + + + + + + + + + + + + + + 513169.661 5402561.645 262.638 513169.631 5402561.66 262.639 513169.631 5402561.66 244.64 513169.661 5402561.645 244.64 513169.661 5402561.645 262.638 + + + + + + + + + + + + + + + + + 513169.661 5402561.645 244.64 513169.691 5402561.633 244.64 513169.691 5402561.633 262.638 513169.661 5402561.645 262.638 513169.661 5402561.645 244.64 + + + + + + + + + + + + + + + + + 513169.691 5402561.633 244.64 513169.715 5402561.626 244.64 513169.715 5402561.626 262.639 513169.691 5402561.633 262.638 513169.691 5402561.633 244.64 + + + + + + + + + + + + + + + + + 513169.715 5402561.626 244.64 513169.739 5402561.621 244.64 513169.739 5402561.621 262.639 513169.715 5402561.626 262.639 513169.715 5402561.626 244.64 + + + + + + + + + + + + + + + + + 513169.739 5402561.621 244.64 513169.763 5402561.617 244.64 513169.763 5402561.617 262.639 513169.739 5402561.621 262.639 513169.739 5402561.621 244.64 + + + + + + + + + + + + + + + + + 513169.763 5402561.617 244.64 513169.787 5402561.615 244.64 513169.787 5402561.615 262.64 513169.763 5402561.617 262.639 513169.763 5402561.617 244.64 + + + + + + + + + + + + + + + + + 513169.787 5402561.615 244.64 513169.812 5402561.615 244.64 513169.812 5402561.615 262.641 513169.787 5402561.615 262.64 513169.787 5402561.615 244.64 + + + + + + + + + + + + + + + + + 513169.812 5402561.615 244.64 513169.836 5402561.617 244.64 513169.836 5402561.617 262.641 513169.812 5402561.615 262.641 513169.812 5402561.615 244.64 + + + + + + + + + + + + + + + + + 513169.836 5402561.617 244.64 513169.861 5402561.62 244.64 513169.861 5402561.62 262.642 513169.836 5402561.617 262.641 513169.836 5402561.617 244.64 + + + + + + + + + + + + + + + + + 513169.861 5402561.62 244.64 513169.885 5402561.625 244.64 513169.885 5402561.625 262.643 513169.861 5402561.62 262.642 513169.861 5402561.62 244.64 + + + + + + + + + + + + + + + + + 513169.885 5402561.625 244.64 513169.908 5402561.631 244.64 513169.908 5402561.631 262.644 513169.885 5402561.625 262.643 513169.885 5402561.625 244.64 + + + + + + + + + + + + + + + + + 513169.908 5402561.631 244.64 513169.931 5402561.639 244.64 513169.931 5402561.639 262.646 513169.908 5402561.631 262.644 513169.908 5402561.631 244.64 + + + + + + + + + + + + + + + + + 513169.931 5402561.639 244.64 513169.954 5402561.649 244.64 513169.954 5402561.649 262.647 513169.931 5402561.639 262.646 513169.931 5402561.639 244.64 + + + + + + + + + + + + + + + + + 513169.954 5402561.649 244.64 513169.976 5402561.661 244.64 513169.976 5402561.661 262.648 513169.954 5402561.649 262.647 513169.954 5402561.649 244.64 + + + + + + + + + + + + + + + + + 513169.976 5402561.661 244.64 513169.997 5402561.673 244.64 513169.997 5402561.673 262.65 513169.976 5402561.661 262.648 513169.976 5402561.661 244.64 + + + + + + + + + + + + + + + + + 513169.997 5402561.673 244.64 513170.017 5402561.688 244.64 513170.017 5402561.688 262.651 513169.997 5402561.673 262.65 513169.997 5402561.673 244.64 + + + + + + + + + + + + + + + + + 513170.017 5402561.688 244.64 513170.036 5402561.703 244.64 513170.036 5402561.703 262.653 513170.017 5402561.688 262.651 513170.017 5402561.688 244.64 + + + + + + + + + + + + + + + + + 513170.036 5402561.703 244.64 513170.053 5402561.72 244.64 513170.053 5402561.72 262.654 513170.036 5402561.703 262.653 513170.036 5402561.703 244.64 + + + + + + + + + + + + + + + + + 513170.053 5402561.72 244.64 513170.07 5402561.738 244.64 513170.07 5402561.738 262.656 513170.053 5402561.72 262.654 513170.053 5402561.72 244.64 + + + + + + + + + + + + + + + + + 513170.07 5402561.738 244.64 513170.085 5402561.757 244.64 513170.085 5402561.757 262.657 513170.07 5402561.738 262.656 513170.07 5402561.738 244.64 + + + + + + + + + + + + + + + + + 513170.085 5402561.757 244.64 513170.099 5402561.777 244.64 513170.099 5402561.777 262.659 513170.085 5402561.757 262.657 513170.085 5402561.757 244.64 + + + + + + + + + + + + + + + + + 513170.099 5402561.777 244.64 513170.111 5402561.799 244.64 513170.111 5402561.799 262.661 513170.099 5402561.777 262.659 513170.099 5402561.777 244.64 + + + + + + + + + + + + + + + + + 513170.111 5402561.799 244.64 513170.122 5402561.821 244.64 513170.122 5402561.821 262.663 513170.111 5402561.799 262.661 513170.111 5402561.799 244.64 + + + + + + + + + + + + + + + + + 513170.122 5402561.821 244.64 513170.132 5402561.843 244.64 513170.132 5402561.843 262.664 513170.122 5402561.821 262.663 513170.122 5402561.821 244.64 + + + + + + + + + + + + + + + + + 513170.132 5402561.843 262.664 513170.132 5402561.843 244.64 513170.14 5402561.866 244.64 513170.14 5402561.866 262.666 513170.132 5402561.843 262.664 + + + + + + + + + + + + + + + + + 513170.14 5402561.866 262.666 513170.14 5402561.866 244.64 513170.146 5402561.89 244.64 513170.146 5402561.89 262.668 513170.14 5402561.866 262.666 + + + + + + + + + + + + + + + + + 513170.146 5402561.89 262.668 513170.146 5402561.89 244.64 513170.15 5402561.914 244.64 513170.15 5402561.914 262.669 513170.146 5402561.89 262.668 + + + + + + + + + + + + + + + + + 513170.15 5402561.914 262.669 513170.15 5402561.914 244.64 513170.153 5402561.939 244.64 513170.153 5402561.939 262.671 513170.15 5402561.914 262.669 + + + + + + + + + + + + + + + + + 513170.153 5402561.939 262.671 513170.153 5402561.939 244.64 513170.154 5402561.963 244.64 513170.154 5402561.963 262.673 513170.153 5402561.939 262.671 + + + + + + + + + + + + + + + + + 513170.154 5402561.963 262.673 513170.154 5402561.963 244.64 513170.154 5402561.988 244.64 513170.154 5402561.988 262.674 513170.154 5402561.963 262.673 + + + + + + + + + + + + + + + + + 513170.154 5402561.988 262.674 513170.154 5402561.988 244.64 513170.15 5402562.02 244.64 513170.15 5402562.02 262.676 513170.154 5402561.988 262.674 + + + + + + + + + + + + + + + + + 513174.28 5402560.2 262.674 513170.15 5402562.02 262.676 513170.15 5402562.02 244.64 513174.28 5402560.2 244.64 513174.28 5402560.2 262.674 + + + + + + + + + + + + + + + + + 513174.28 5402560.2 244.64 513174.257 5402560.188 244.64 513174.257 5402560.188 262.672 513174.28 5402560.2 262.674 513174.28 5402560.2 244.64 + + + + + + + + + + + + + + + + + 513174.257 5402560.188 244.64 513174.237 5402560.175 244.64 513174.237 5402560.175 262.671 513174.257 5402560.188 262.672 513174.257 5402560.188 244.64 + + + + + + + + + + + + + + + + + 513174.237 5402560.175 244.64 513174.218 5402560.161 244.64 513174.218 5402560.161 262.67 513174.237 5402560.175 262.671 513174.237 5402560.175 244.64 + + + + + + + + + + + + + + + + + 513174.218 5402560.161 244.64 513174.2 5402560.146 244.64 513174.2 5402560.146 262.668 513174.218 5402560.161 262.67 513174.218 5402560.161 244.64 + + + + + + + + + + + + + + + + + 513174.2 5402560.146 244.64 513174.182 5402560.129 244.64 513174.182 5402560.129 262.667 513174.2 5402560.146 262.668 513174.2 5402560.146 244.64 + + + + + + + + + + + + + + + + + 513174.182 5402560.129 244.64 513174.166 5402560.112 244.64 513174.166 5402560.112 262.665 513174.182 5402560.129 262.667 513174.182 5402560.129 244.64 + + + + + + + + + + + + + + + + + 513174.166 5402560.112 244.64 513174.152 5402560.093 244.64 513174.152 5402560.093 262.663 513174.166 5402560.112 262.665 513174.166 5402560.112 244.64 + + + + + + + + + + + + + + + + + 513174.152 5402560.093 244.64 513174.138 5402560.073 244.64 513174.138 5402560.073 262.662 513174.152 5402560.093 262.663 513174.152 5402560.093 244.64 + + + + + + + + + + + + + + + + + 513174.138 5402560.073 244.64 513174.127 5402560.053 244.64 513174.127 5402560.053 262.66 513174.138 5402560.073 262.662 513174.138 5402560.073 244.64 + + + + + + + + + + + + + + + + + 513174.127 5402560.053 244.64 513174.116 5402560.031 244.64 513174.116 5402560.031 262.658 513174.127 5402560.053 262.66 513174.127 5402560.053 244.64 + + + + + + + + + + + + + + + + + 513174.116 5402560.031 244.64 513174.107 5402560.009 244.64 513174.107 5402560.009 262.657 513174.116 5402560.031 262.658 513174.116 5402560.031 244.64 + + + + + + + + + + + + + + + + + 513174.1 5402559.987 244.64 513174.1 5402559.987 262.655 513174.107 5402560.009 262.657 513174.107 5402560.009 244.64 513174.1 5402559.987 244.64 + + + + + + + + + + + + + + + + + 513174.094 5402559.963 244.64 513174.094 5402559.963 262.653 513174.1 5402559.987 262.655 513174.1 5402559.987 244.64 513174.094 5402559.963 244.64 + + + + + + + + + + + + + + + + + 513174.09 5402559.94 244.64 513174.09 5402559.94 262.652 513174.094 5402559.963 262.653 513174.094 5402559.963 244.64 513174.09 5402559.94 244.64 + + + + + + + + + + + + + + + + + 513174.087 5402559.916 244.64 513174.087 5402559.916 262.65 513174.09 5402559.94 262.652 513174.09 5402559.94 244.64 513174.087 5402559.916 244.64 + + + + + + + + + + + + + + + + + 513174.087 5402559.893 244.64 513174.087 5402559.893 262.648 513174.087 5402559.916 262.65 513174.087 5402559.916 244.64 513174.087 5402559.893 244.64 + + + + + + + + + + + + + + + + + 513174.087 5402559.869 244.64 513174.087 5402559.869 262.647 513174.087 5402559.893 262.648 513174.087 5402559.893 244.64 513174.087 5402559.869 244.64 + + + + + + + + + + + + + + + + + 513174.09 5402559.845 244.64 513174.09 5402559.845 262.645 513174.087 5402559.869 262.647 513174.087 5402559.869 244.64 513174.09 5402559.845 244.64 + + + + + + + + + + + + + + + + + 513174.094 5402559.822 244.64 513174.094 5402559.822 262.644 513174.09 5402559.845 262.645 513174.09 5402559.845 244.64 513174.094 5402559.822 244.64 + + + + + + + + + + + + + + + + + 513174.1 5402559.798 244.64 513174.1 5402559.798 262.643 513174.094 5402559.822 262.644 513174.094 5402559.822 244.64 513174.1 5402559.798 244.64 + + + + + + + + + + + + + + + + + 513174.107 5402559.776 244.64 513174.107 5402559.776 262.641 513174.1 5402559.798 262.643 513174.1 5402559.798 244.64 513174.107 5402559.776 244.64 + + + + + + + + + + + + + + + + + 513174.116 5402559.754 262.64 513174.107 5402559.776 262.641 513174.107 5402559.776 244.64 513174.116 5402559.754 244.64 513174.116 5402559.754 262.64 + + + + + + + + + + + + + + + + + 513174.127 5402559.732 262.639 513174.116 5402559.754 262.64 513174.116 5402559.754 244.64 513174.127 5402559.732 244.64 513174.127 5402559.732 262.639 + + + + + + + + + + + + + + + + + 513174.138 5402559.712 262.638 513174.127 5402559.732 262.639 513174.127 5402559.732 244.64 513174.138 5402559.712 244.64 513174.138 5402559.712 262.638 + + + + + + + + + + + + + + + + + 513174.152 5402559.692 262.637 513174.138 5402559.712 262.638 513174.138 5402559.712 244.64 513174.152 5402559.692 244.64 513174.152 5402559.692 262.637 + + + + + + + + + + + + + + + + + 513174.166 5402559.673 262.636 513174.152 5402559.692 262.637 513174.152 5402559.692 244.64 513174.166 5402559.673 244.64 513174.166 5402559.673 262.636 + + + + + + + + + + + + + + + + + 513174.166 5402559.673 244.64 513174.182 5402559.656 244.64 513174.182 5402559.656 262.636 513174.166 5402559.673 262.636 513174.166 5402559.673 244.64 + + + + + + + + + + + + + + + + + 513174.2 5402559.639 262.635 513174.182 5402559.656 262.636 513174.182 5402559.656 244.64 513174.2 5402559.639 244.64 513174.2 5402559.639 262.635 + + + + + + + + + + + + + + + + + 513174.2 5402559.639 244.64 513174.218 5402559.624 244.64 513174.218 5402559.624 262.635 513174.2 5402559.639 262.635 513174.2 5402559.639 244.64 + + + + + + + + + + + + + + + + + 513174.237 5402559.61 262.634 513174.218 5402559.624 262.635 513174.218 5402559.624 244.64 513174.237 5402559.61 244.64 513174.237 5402559.61 262.634 + + + + + + + + + + + + + + + + + 513174.237 5402559.61 244.64 513174.257 5402559.597 244.64 513174.257 5402559.597 262.634 513174.237 5402559.61 262.634 513174.237 5402559.61 244.64 + + + + + + + + + + + + + + + + + 513174.257 5402559.597 244.64 513174.28 5402559.585 244.64 513174.28 5402559.585 262.634 513174.257 5402559.597 262.634 513174.257 5402559.597 244.64 + + + + + + + + + + + + + + + + + 513174.28 5402559.585 244.64 513174.304 5402559.575 244.64 513174.304 5402559.575 262.634 513174.28 5402559.585 262.634 513174.28 5402559.585 244.64 + + + + + + + + + + + + + + + + + 513174.304 5402559.575 244.64 513174.327 5402559.567 244.64 513174.327 5402559.567 262.634 513174.304 5402559.575 262.634 513174.304 5402559.575 244.64 + + + + + + + + + + + + + + + + + 513174.327 5402559.567 244.64 513174.349 5402559.56 244.64 513174.349 5402559.56 262.634 513174.327 5402559.567 262.634 513174.327 5402559.567 244.64 + + + + + + + + + + + + + + + + + 513174.349 5402559.56 244.64 513174.373 5402559.556 244.64 513174.373 5402559.556 262.635 513174.349 5402559.56 262.634 513174.349 5402559.56 244.64 + + + + + + + + + + + + + + + + + 513174.373 5402559.556 244.64 513174.396 5402559.553 244.64 513174.396 5402559.553 262.635 513174.373 5402559.556 262.635 513174.373 5402559.556 244.64 + + + + + + + + + + + + + + + + + 513174.396 5402559.553 244.64 513174.42 5402559.551 244.64 513174.42 5402559.551 262.636 513174.396 5402559.553 262.635 513174.396 5402559.553 244.64 + + + + + + + + + + + + + + + + + 513174.42 5402559.551 244.64 513174.444 5402559.552 244.64 513174.444 5402559.552 262.636 513174.42 5402559.551 262.636 513174.42 5402559.551 244.64 + + + + + + + + + + + + + + + + + 513174.444 5402559.552 244.64 513174.468 5402559.554 244.64 513174.468 5402559.554 262.637 513174.444 5402559.552 262.636 513174.444 5402559.552 244.64 + + + + + + + + + + + + + + + + + 513174.468 5402559.554 244.64 513174.491 5402559.557 244.64 513174.491 5402559.557 262.638 513174.468 5402559.554 262.637 513174.468 5402559.554 244.64 + + + + + + + + + + + + + + + + + 513174.491 5402559.557 244.64 513174.514 5402559.563 244.64 513174.514 5402559.563 262.639 513174.491 5402559.557 262.638 513174.491 5402559.557 244.64 + + + + + + + + + + + + + + + + + 513174.514 5402559.563 244.64 513174.537 5402559.569 244.64 513174.537 5402559.569 262.64 513174.514 5402559.563 262.639 513174.514 5402559.563 244.64 + + + + + + + + + + + + + + + + + 513174.537 5402559.569 244.64 513174.56 5402559.578 244.64 513174.56 5402559.578 262.641 513174.537 5402559.569 262.64 513174.537 5402559.569 244.64 + + + + + + + + + + + + + + + + + 513174.56 5402559.578 244.64 513174.581 5402559.588 244.64 513174.581 5402559.588 262.643 513174.56 5402559.578 262.641 513174.56 5402559.578 244.64 + + + + + + + + + + + + + + + + + 513174.581 5402559.588 244.64 513174.602 5402559.599 244.64 513174.602 5402559.599 262.644 513174.581 5402559.588 262.643 513174.581 5402559.588 244.64 + + + + + + + + + + + + + + + + + 513174.602 5402559.599 244.64 513174.622 5402559.612 244.64 513174.622 5402559.612 262.645 513174.602 5402559.599 262.644 513174.602 5402559.599 244.64 + + + + + + + + + + + + + + + + + 513174.622 5402559.612 244.64 513174.641 5402559.626 244.64 513174.641 5402559.626 262.647 513174.622 5402559.612 262.645 513174.622 5402559.612 244.64 + + + + + + + + + + + + + + + + + 513174.641 5402559.626 244.64 513174.659 5402559.642 244.64 513174.659 5402559.642 262.648 513174.641 5402559.626 262.647 513174.641 5402559.626 244.64 + + + + + + + + + + + + + + + + + 513174.659 5402559.642 244.64 513174.676 5402559.659 244.64 513174.676 5402559.659 262.65 513174.659 5402559.642 262.648 513174.659 5402559.642 244.64 + + + + + + + + + + + + + + + + + 513174.676 5402559.659 244.64 513174.692 5402559.677 244.64 513174.692 5402559.677 262.651 513174.676 5402559.659 262.65 513174.676 5402559.659 244.64 + + + + + + + + + + + + + + + + + 513174.692 5402559.677 244.64 513174.706 5402559.695 244.64 513174.706 5402559.695 262.653 513174.692 5402559.677 262.651 513174.692 5402559.677 244.64 + + + + + + + + + + + + + + + + + 513174.706 5402559.695 244.64 513174.719 5402559.715 244.64 513174.719 5402559.715 262.655 513174.706 5402559.695 262.653 513174.706 5402559.695 244.64 + + + + + + + + + + + + + + + + + 513174.719 5402559.715 244.64 513174.731 5402559.736 244.64 513174.731 5402559.736 262.656 513174.719 5402559.715 262.655 513174.719 5402559.715 244.64 + + + + + + + + + + + + + + + + + 513174.731 5402559.736 244.64 513174.741 5402559.758 244.64 513174.741 5402559.758 262.658 513174.731 5402559.736 262.656 513174.731 5402559.736 244.64 + + + + + + + + + + + + + + + + + 513174.741 5402559.758 244.64 513174.75 5402559.78 244.64 513174.75 5402559.78 262.66 513174.741 5402559.758 262.658 513174.741 5402559.758 244.64 + + + + + + + + + + + + + + + + + 513174.75 5402559.78 262.66 513174.75 5402559.78 244.64 513174.757 5402559.803 244.64 513174.757 5402559.803 262.661 513174.75 5402559.78 262.66 + + + + + + + + + + + + + + + + + 513174.757 5402559.803 262.661 513174.757 5402559.803 244.64 513174.762 5402559.826 244.64 513174.762 5402559.826 262.663 513174.757 5402559.803 262.661 + + + + + + + + + + + + + + + + + 513174.762 5402559.826 262.663 513174.762 5402559.826 244.64 513174.766 5402559.849 244.64 513174.766 5402559.849 262.665 513174.762 5402559.826 262.663 + + + + + + + + + + + + + + + + + 513174.766 5402559.849 262.665 513174.766 5402559.849 244.64 513174.768 5402559.873 244.64 513174.768 5402559.873 262.666 513174.766 5402559.849 262.665 + + + + + + + + + + + + + + + + + 513174.768 5402559.873 262.666 513174.768 5402559.873 244.64 513174.769 5402559.897 244.64 513174.769 5402559.897 262.668 513174.768 5402559.873 262.666 + + + + + + + + + + + + + + + + + 513174.769 5402559.897 262.668 513174.769 5402559.897 244.64 513174.768 5402559.921 244.64 513174.768 5402559.921 262.669 513174.769 5402559.897 262.668 + + + + + + + + + + + + + + + + + 513174.768 5402559.921 262.669 513174.768 5402559.921 244.64 513174.765 5402559.944 244.64 513174.765 5402559.944 262.671 513174.768 5402559.921 262.669 + + + + + + + + + + + + + + + + + 513174.765 5402559.944 262.671 513174.765 5402559.944 244.64 513174.76 5402559.97 244.64 513174.76 5402559.97 262.672 513174.765 5402559.944 262.671 + + + + + + + + + + + + + + + + + 513178.88 5402558.11 262.667 513174.76 5402559.97 262.672 513174.76 5402559.97 244.64 513178.88 5402558.11 244.64 513178.88 5402558.11 262.667 + + + + + + + + + + + + + + + + + 513178.88 5402558.11 244.64 513178.861 5402558.093 244.64 513178.861 5402558.093 262.665 513178.88 5402558.11 262.667 513178.88 5402558.11 244.64 + + + + + + + + + + + + + + + + + 513178.861 5402558.093 244.64 513178.844 5402558.075 244.64 513178.844 5402558.075 262.664 513178.861 5402558.093 262.665 513178.861 5402558.093 244.64 + + + + + + + + + + + + + + + + + 513178.844 5402558.075 244.64 513178.828 5402558.056 244.64 513178.828 5402558.056 262.662 513178.844 5402558.075 262.664 513178.844 5402558.075 244.64 + + + + + + + + + + + + + + + + + 513178.828 5402558.056 244.64 513178.813 5402558.036 244.64 513178.813 5402558.036 262.66 513178.828 5402558.056 262.662 513178.828 5402558.056 244.64 + + + + + + + + + + + + + + + + + 513178.813 5402558.036 244.64 513178.8 5402558.015 244.64 513178.8 5402558.015 262.659 513178.813 5402558.036 262.66 513178.813 5402558.036 244.64 + + + + + + + + + + + + + + + + + 513178.8 5402558.015 244.64 513178.788 5402557.993 244.64 513178.788 5402557.993 262.657 513178.8 5402558.015 262.659 513178.8 5402558.015 244.64 + + + + + + + + + + + + + + + + + 513178.788 5402557.993 244.64 513178.778 5402557.97 244.64 513178.778 5402557.97 262.655 513178.788 5402557.993 262.657 513178.788 5402557.993 244.64 + + + + + + + + + + + + + + + + + 513178.77 5402557.947 244.64 513178.77 5402557.947 262.653 513178.778 5402557.97 262.655 513178.778 5402557.97 244.64 513178.77 5402557.947 244.64 + + + + + + + + + + + + + + + + + 513178.763 5402557.923 244.64 513178.763 5402557.923 262.652 513178.77 5402557.947 262.653 513178.77 5402557.947 244.64 513178.763 5402557.923 244.64 + + + + + + + + + + + + + + + + + 513178.758 5402557.898 244.64 513178.758 5402557.898 262.65 513178.763 5402557.923 262.652 513178.763 5402557.923 244.64 513178.758 5402557.898 244.64 + + + + + + + + + + + + + + + + + 513178.754 5402557.874 244.64 513178.754 5402557.874 262.648 513178.758 5402557.898 262.65 513178.758 5402557.898 244.64 513178.754 5402557.874 244.64 + + + + + + + + + + + + + + + + + 513178.752 5402557.849 244.64 513178.752 5402557.849 262.646 513178.754 5402557.874 262.648 513178.754 5402557.874 244.64 513178.752 5402557.849 244.64 + + + + + + + + + + + + + + + + + 513178.752 5402557.824 244.64 513178.752 5402557.824 262.645 513178.752 5402557.849 262.646 513178.752 5402557.849 244.64 513178.752 5402557.824 244.64 + + + + + + + + + + + + + + + + + 513178.754 5402557.799 244.64 513178.754 5402557.799 262.643 513178.752 5402557.824 262.645 513178.752 5402557.824 244.64 513178.754 5402557.799 244.64 + + + + + + + + + + + + + + + + + 513178.758 5402557.775 244.64 513178.758 5402557.775 262.642 513178.754 5402557.799 262.643 513178.754 5402557.799 244.64 513178.758 5402557.775 244.64 + + + + + + + + + + + + + + + + + 513178.763 5402557.75 244.64 513178.763 5402557.75 262.64 513178.758 5402557.775 262.642 513178.758 5402557.775 244.64 513178.763 5402557.75 244.64 + + + + + + + + + + + + + + + + + 513178.77 5402557.726 244.64 513178.77 5402557.726 262.639 513178.763 5402557.75 262.64 513178.763 5402557.75 244.64 513178.77 5402557.726 244.64 + + + + + + + + + + + + + + + + + 513178.778 5402557.703 244.64 513178.778 5402557.703 262.638 513178.77 5402557.726 262.639 513178.77 5402557.726 244.64 513178.778 5402557.703 244.64 + + + + + + + + + + + + + + + + + 513178.788 5402557.68 262.636 513178.778 5402557.703 262.638 513178.778 5402557.703 244.64 513178.788 5402557.68 244.64 513178.788 5402557.68 262.636 + + + + + + + + + + + + + + + + + 513178.8 5402557.658 262.635 513178.788 5402557.68 262.636 513178.788 5402557.68 244.64 513178.8 5402557.658 244.64 513178.8 5402557.658 262.635 + + + + + + + + + + + + + + + + + 513178.813 5402557.637 262.634 513178.8 5402557.658 262.635 513178.8 5402557.658 244.64 513178.813 5402557.637 244.64 513178.813 5402557.637 262.634 + + + + + + + + + + + + + + + + + 513178.813 5402557.637 244.64 513178.828 5402557.617 244.64 513178.828 5402557.617 262.634 513178.813 5402557.637 262.634 513178.813 5402557.637 244.64 + + + + + + + + + + + + + + + + + 513178.844 5402557.598 262.633 513178.828 5402557.617 262.634 513178.828 5402557.617 244.64 513178.844 5402557.598 244.64 513178.844 5402557.598 262.633 + + + + + + + + + + + + + + + + + 513178.861 5402557.58 262.632 513178.844 5402557.598 262.633 513178.844 5402557.598 244.64 513178.861 5402557.58 244.64 513178.861 5402557.58 262.632 + + + + + + + + + + + + + + + + + 513178.879 5402557.563 262.631 513178.861 5402557.58 262.632 513178.861 5402557.58 244.64 513178.879 5402557.563 244.64 513178.879 5402557.563 262.631 + + + + + + + + + + + + + + + + + 513178.879 5402557.563 244.64 513178.899 5402557.548 244.64 513178.899 5402557.548 262.631 513178.879 5402557.563 262.631 513178.879 5402557.563 244.64 + + + + + + + + + + + + + + + + + 513178.899 5402557.548 244.64 513178.92 5402557.534 244.64 513178.92 5402557.534 262.631 513178.899 5402557.548 262.631 513178.899 5402557.548 244.64 + + + + + + + + + + + + + + + + + 513178.941 5402557.521 262.63 513178.92 5402557.534 262.631 513178.92 5402557.534 244.64 513178.941 5402557.521 244.64 513178.941 5402557.521 262.63 + + + + + + + + + + + + + + + + + 513178.941 5402557.521 244.64 513178.964 5402557.511 244.64 513178.964 5402557.511 262.63 513178.941 5402557.521 262.63 513178.941 5402557.521 244.64 + + + + + + + + + + + + + + + + + 513178.964 5402557.511 244.64 513178.987 5402557.501 244.64 513178.987 5402557.501 262.63 513178.964 5402557.511 262.63 513178.964 5402557.511 244.64 + + + + + + + + + + + + + + + + + 513178.987 5402557.501 244.64 513179.012 5402557.493 244.64 513179.012 5402557.493 262.631 513178.987 5402557.501 262.63 513178.987 5402557.501 244.64 + + + + + + + + + + + + + + + + + 513179.012 5402557.493 244.64 513179.036 5402557.487 244.64 513179.036 5402557.487 262.631 513179.012 5402557.493 262.631 513179.012 5402557.493 244.64 + + + + + + + + + + + + + + + + + 513179.036 5402557.487 244.64 513179.06 5402557.483 244.64 513179.06 5402557.483 262.631 513179.036 5402557.487 262.631 513179.036 5402557.487 244.64 + + + + + + + + + + + + + + + + + 513179.06 5402557.483 244.64 513179.085 5402557.48 244.64 513179.085 5402557.48 262.632 513179.06 5402557.483 262.631 513179.06 5402557.483 244.64 + + + + + + + + + + + + + + + + + 513179.085 5402557.48 244.64 513179.11 5402557.479 244.64 513179.11 5402557.479 262.632 513179.085 5402557.48 262.632 513179.085 5402557.48 244.64 + + + + + + + + + + + + + + + + + 513179.11 5402557.479 244.64 513179.135 5402557.48 244.64 513179.135 5402557.48 262.633 513179.11 5402557.479 262.632 513179.11 5402557.479 244.64 + + + + + + + + + + + + + + + + + 513179.135 5402557.48 244.64 513179.16 5402557.483 244.64 513179.16 5402557.483 262.634 513179.135 5402557.48 262.633 513179.135 5402557.48 244.64 + + + + + + + + + + + + + + + + + 513179.16 5402557.483 244.64 513179.184 5402557.488 244.64 513179.184 5402557.488 262.635 513179.16 5402557.483 262.634 513179.16 5402557.483 244.64 + + + + + + + + + + + + + + + + + 513179.184 5402557.488 244.64 513179.208 5402557.494 244.64 513179.208 5402557.494 262.636 513179.184 5402557.488 262.635 513179.184 5402557.488 244.64 + + + + + + + + + + + + + + + + + 513179.208 5402557.494 244.64 513179.232 5402557.501 244.64 513179.232 5402557.501 262.637 513179.208 5402557.494 262.636 513179.208 5402557.494 244.64 + + + + + + + + + + + + + + + + + 513179.232 5402557.501 244.64 513179.255 5402557.511 244.64 513179.255 5402557.511 262.639 513179.232 5402557.501 262.637 513179.232 5402557.501 244.64 + + + + + + + + + + + + + + + + + 513179.255 5402557.511 244.64 513179.277 5402557.522 244.64 513179.277 5402557.522 262.64 513179.255 5402557.511 262.639 513179.255 5402557.511 244.64 + + + + + + + + + + + + + + + + + 513179.277 5402557.522 244.64 513179.299 5402557.534 244.64 513179.299 5402557.534 262.641 513179.277 5402557.522 262.64 513179.277 5402557.522 244.64 + + + + + + + + + + + + + + + + + 513179.299 5402557.534 244.64 513179.319 5402557.548 244.64 513179.319 5402557.548 262.643 513179.299 5402557.534 262.641 513179.299 5402557.534 244.64 + + + + + + + + + + + + + + + + + 513179.319 5402557.548 244.64 513179.339 5402557.564 244.64 513179.339 5402557.564 262.644 513179.319 5402557.548 262.643 513179.319 5402557.548 244.64 + + + + + + + + + + + + + + + + + 513179.339 5402557.564 244.64 513179.357 5402557.58 244.64 513179.357 5402557.58 262.646 513179.339 5402557.564 262.644 513179.339 5402557.564 244.64 + + + + + + + + + + + + + + + + + 513179.357 5402557.58 244.64 513179.375 5402557.598 244.64 513179.375 5402557.598 262.648 513179.357 5402557.58 262.646 513179.357 5402557.58 244.64 + + + + + + + + + + + + + + + + + 513179.375 5402557.598 244.64 513179.391 5402557.617 244.64 513179.391 5402557.617 262.649 513179.375 5402557.598 262.648 513179.375 5402557.598 244.64 + + + + + + + + + + + + + + + + + 513179.391 5402557.617 244.64 513179.405 5402557.638 244.64 513179.405 5402557.638 262.651 513179.391 5402557.617 262.649 513179.391 5402557.617 244.64 + + + + + + + + + + + + + + + + + 513179.405 5402557.638 244.64 513179.418 5402557.659 244.64 513179.418 5402557.659 262.653 513179.405 5402557.638 262.651 513179.405 5402557.638 244.64 + + + + + + + + + + + + + + + + + 513179.418 5402557.659 244.64 513179.43 5402557.681 244.64 513179.43 5402557.681 262.654 513179.418 5402557.659 262.653 513179.418 5402557.659 244.64 + + + + + + + + + + + + + + + + + 513179.43 5402557.681 244.64 513179.44 5402557.704 244.64 513179.44 5402557.704 262.656 513179.43 5402557.681 262.654 513179.43 5402557.681 244.64 + + + + + + + + + + + + + + + + + 513179.44 5402557.704 244.64 513179.449 5402557.727 244.64 513179.449 5402557.727 262.658 513179.44 5402557.704 262.656 513179.44 5402557.704 244.64 + + + + + + + + + + + + + + + + + 513179.449 5402557.727 262.658 513179.449 5402557.727 244.64 513179.455 5402557.751 244.64 513179.455 5402557.751 262.66 513179.449 5402557.727 262.658 + + + + + + + + + + + + + + + + + 513179.455 5402557.751 262.66 513179.455 5402557.751 244.64 513179.461 5402557.775 244.64 513179.461 5402557.775 262.661 513179.455 5402557.751 262.66 + + + + + + + + + + + + + + + + + 513179.461 5402557.775 262.661 513179.461 5402557.775 244.64 513179.464 5402557.8 244.64 513179.464 5402557.8 262.663 513179.461 5402557.775 262.661 + + + + + + + + + + + + + + + + + 513179.464 5402557.8 262.663 513179.464 5402557.8 244.64 513179.465 5402557.825 244.64 513179.465 5402557.825 262.665 513179.464 5402557.8 262.663 + + + + + + + + + + + + + + + + + 513179.465 5402557.825 262.665 513179.465 5402557.825 244.64 513179.465 5402557.85 244.64 513179.465 5402557.85 262.666 513179.465 5402557.825 262.665 + + + + + + + + + + + + + + + + + 513179.465 5402557.85 262.666 513179.465 5402557.85 244.64 513179.464 5402557.875 244.64 513179.464 5402557.875 262.668 513179.465 5402557.85 262.666 + + + + + + + + + + + + + + + + + 513179.464 5402557.875 262.668 513179.464 5402557.875 244.64 513179.46 5402557.9 244.64 513179.46 5402557.9 262.67 513179.464 5402557.875 262.668 + + + + + + + + + + + + + + + + + 513183.5 5402556.11 262.666 513179.46 5402557.9 262.67 513179.46 5402557.9 244.64 513183.5 5402556.11 244.64 513183.5 5402556.11 262.666 + + + + + + + + + + + + + + + + + 513183.5 5402556.11 244.64 513183.475 5402556.087 244.64 513183.475 5402556.087 262.664 513183.5 5402556.11 262.666 513183.5 5402556.11 244.64 + + + + + + + + + + + + + + + + + 513183.475 5402556.087 244.64 513183.457 5402556.068 244.64 513183.457 5402556.068 262.663 513183.475 5402556.087 262.664 513183.475 5402556.087 244.64 + + + + + + + + + + + + + + + + + 513183.457 5402556.068 244.64 513183.441 5402556.048 244.64 513183.441 5402556.048 262.661 513183.457 5402556.068 262.663 513183.457 5402556.068 244.64 + + + + + + + + + + + + + + + + + 513183.441 5402556.048 244.64 513183.427 5402556.027 244.64 513183.427 5402556.027 262.659 513183.441 5402556.048 262.661 513183.441 5402556.048 244.64 + + + + + + + + + + + + + + Deutschland + + Stuttgart + + 4 + Dorotheenstraße + + + + + + + + + + \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive3.gml b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive3.gml new file mode 100644 index 0000000..9d72d49 --- /dev/null +++ b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive3.gml @@ -0,0 +1,9569 @@ + + + + + Württ.LandesmuseumAltes Schloss + 2022-11-17 + + http://repository.gdi-de.org/schemas/adv/citygml/fdv/art.htm#_9100 + + DEBWL52210004qkF + + + + 08111000 + + + 1000 + + + 2000 + + + 3000 + + + 1000 + + + 1100 + + + 2023-03-12 + + 31001_3034 + 9999 + 28.7 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 513135.832 5402669.387 274.65 513137.775 5402667.813 274.65 513138.17 5402667.659 274.65 513135.832 5402669.387 274.65 + + + + + + + + + + + + + + + + + 513138.17 5402667.659 274.65 513138.577 5402667.538 274.65 513135.1 5402670.89 274.65 513138.17 5402667.659 274.65 + + + + + + + + + + + + + + + + + 513136.093 5402669.057 274.65 513137.775 5402667.813 274.65 513135.832 5402669.387 274.65 513136.093 5402669.057 274.65 + + + + + + + + + + + + + + + + + 513138.577 5402667.538 274.65 513138.993 5402667.453 274.65 513135.1 5402670.89 274.65 513138.577 5402667.538 274.65 + + + + + + + + + + + + + + + + + 513135.1 5402670.89 274.65 513138.993 5402667.453 274.65 513139.415 5402667.403 274.65 513135.1 5402670.89 274.65 + + + + + + + + + + + + + + + + + 513134.997 5402671.304 274.65 513139.415 5402667.403 274.65 513140.263 5402667.412 274.65 513134.997 5402671.304 274.65 + + + + + + + + + + + + + + + + + 513141.318 5402676.948 274.65 513140.263 5402667.412 274.65 513140.684 5402667.47 274.65 513141.318 5402676.948 274.65 + + + + + + + + + + + + + + + + + 513139.415 5402667.403 274.65 513139.839 5402667.389 274.65 513140.263 5402667.412 274.65 513139.415 5402667.403 274.65 + + + + + + + + + + + + + + + + + 513141.098 5402667.564 274.65 513141.503 5402667.692 274.65 513141.895 5402667.855 274.65 513141.098 5402667.564 274.65 + + + + + + + + + + + + + + + + + 513137.394 5402668.001 274.65 513136.694 5402668.472 274.65 513137.03 5402668.22 274.65 513137.394 5402668.001 274.65 + + + + + + + + + + + + + + + + + 513136.694 5402668.472 274.65 513137.394 5402668.001 274.65 513136.38 5402668.752 274.65 513136.694 5402668.472 274.65 + + + + + + + + + + + + + + + + + 513137.775 5402667.813 274.65 513136.38 5402668.752 274.65 513137.394 5402668.001 274.65 513137.775 5402667.813 274.65 + + + + + + + + + + + + + + + + + 513136.38 5402668.752 274.65 513137.775 5402667.813 274.65 513136.093 5402669.057 274.65 513136.38 5402668.752 274.65 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 274.65 513141.895 5402667.855 274.65 513142.273 5402668.05 274.65 513142.47 5402676.4 274.65 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 274.65 513142.273 5402668.05 274.65 513142.632 5402668.276 274.65 513142.47 5402676.4 274.65 + + + + + + + + + + + + + + + + + 513142.971 5402668.533 274.65 513143.286 5402668.817 274.65 513142.47 5402676.4 274.65 513142.971 5402668.533 274.65 + + + + + + + + + + + + + + + + + 513142.632 5402668.276 274.65 513142.971 5402668.533 274.65 513142.47 5402676.4 274.65 513142.632 5402668.276 274.65 + + + + + + + + + + + + + + + + + 513141.895 5402667.855 274.65 513142.47 5402676.4 274.65 513141.098 5402667.564 274.65 513141.895 5402667.855 274.65 + + + + + + + + + + + + + + + + + 513141.318 5402676.948 274.65 513140.684 5402667.47 274.65 513141.098 5402667.564 274.65 513141.318 5402676.948 274.65 + + + + + + + + + + + + + + + + + 513143.286 5402668.817 274.65 513143.577 5402669.127 274.65 513142.47 5402676.4 274.65 513143.286 5402668.817 274.65 + + + + + + + + + + + + + + + + + 513188.208 5402640.196 274.65 513188.213 5402639.506 274.65 513188.399 5402638.138 274.65 513188.208 5402640.196 274.65 + + + + + + + + + + + + + + + + + 513188.543 5402642.236 274.65 513188.373 5402641.567 274.65 513188.261 5402640.885 274.65 513188.543 5402642.236 274.65 + + + + + + + + + + + + + + + + + 513188.543 5402642.236 274.65 513188.261 5402640.885 274.65 513188.208 5402640.196 274.65 513188.543 5402642.236 274.65 + + + + + + + + + + + + + + + + + 513188.276 5402638.818 274.65 513188.399 5402638.138 274.65 513188.213 5402639.506 274.65 513188.276 5402638.818 274.65 + + + + + + + + + + + + + + + + + 513188.578 5402637.471 274.65 513188.814 5402636.822 274.65 513188.399 5402638.138 274.65 513188.578 5402637.471 274.65 + + + + + + + + + + + + + + + + + 513204.41 5402640.368 274.65 513189.05 5402643.52 274.65 513188.208 5402640.196 274.65 513204.41 5402640.368 274.65 + + + + + + + + + + + + + + + + + 513189.05 5402643.52 274.65 513188.769 5402642.889 274.65 513188.543 5402642.236 274.65 513189.05 5402643.52 274.65 + + + + + + + + + + + + + + + + + 513188.208 5402640.196 274.65 513189.05 5402643.52 274.65 513188.543 5402642.236 274.65 513188.208 5402640.196 274.65 + + + + + + + + + + + + + + + + + 513188.399 5402638.138 274.65 513188.814 5402636.822 274.65 513204.264 5402638.313 274.65 513188.399 5402638.138 274.65 + + + + + + + + + + + + + + + + + 513188.208 5402640.196 274.65 513188.399 5402638.138 274.65 513204.264 5402638.313 274.65 513188.208 5402640.196 274.65 + + + + + + + + + + + + + + + + + 513163.34 5402653.23 274.65 513164.41 5402654.77 274.65 513159.81 5402652.48 274.65 513163.34 5402653.23 274.65 + + + + + + + + + + + + + + + + + 513157.74 5402659.61 274.65 513156.85 5402654.58 274.65 513159.81 5402652.48 274.65 513157.74 5402659.61 274.65 + + + + + + + + + + + + + + + + + 513159.81 5402652.48 274.65 513164.41 5402654.77 274.65 513157.74 5402659.61 274.65 513159.81 5402652.48 274.65 + + + + + + + + + + + + + + + + + 513157.74 5402659.61 274.65 513164.41 5402654.77 274.65 513161.07 5402674.0 274.65 513157.74 5402659.61 274.65 + + + + + + + + + + + + + + + + + 513157.74 5402659.61 274.65 513156.46 5402657.9 274.65 513156.85 5402654.58 274.65 513157.74 5402659.61 274.65 + + + + + + + + + + + + + + + + + 513179.6 5402650.03 274.65 513180.19 5402660.49 274.65 513177.3 5402651.61 274.65 513179.6 5402650.03 274.65 + + + + + + + + + + + + + + + + + 513180.19 5402660.49 274.65 513164.41 5402654.77 274.65 513177.3 5402651.61 274.65 513180.19 5402660.49 274.65 + + + + + + + + + + + + + + + + + 513179.6 5402650.03 274.65 513189.05 5402643.52 274.65 513180.19 5402660.49 274.65 513179.6 5402650.03 274.65 + + + + + + + + + + + + + + + + + 513184.01 5402667.19 274.65 513188.31 5402675.89 274.65 513183.59 5402667.4 274.65 513184.01 5402667.19 274.65 + + + + + + + + + + + + + + + + + 513164.41 5402654.77 274.65 513180.19 5402660.49 274.65 513161.07 5402674.0 274.65 513164.41 5402654.77 274.65 + + + + + + + + + + + + + + + + + 513199.55 5402647.35 274.65 513184.01 5402667.19 274.65 513180.19 5402660.49 274.65 513199.55 5402647.35 274.65 + + + + + + + + + + + + + + + + + 513164.41 5402654.77 274.65 513174.48 5402647.59 274.65 513177.3 5402651.61 274.65 513164.41 5402654.77 274.65 + + + + + + + + + + + + + + + + + 513210.18 5402667.66 274.65 513188.59 5402675.8 274.65 513184.01 5402667.19 274.65 513210.18 5402667.66 274.65 + + + + + + + + + + + + + + + + + 513134.997 5402671.304 274.65 513134.9 5402672.149 274.65 513134.93 5402671.724 274.65 513134.997 5402671.304 274.65 + + + + + + + + + + + + + + + + + 513134.951 5402672.999 274.65 513134.907 5402672.576 274.65 513134.9 5402672.149 274.65 513134.951 5402672.999 274.65 + + + + + + + + + + + + + + + + + 513134.9 5402672.149 274.65 513134.997 5402671.304 274.65 513134.951 5402672.999 274.65 513134.9 5402672.149 274.65 + + + + + + + + + + + + + + + + + 513140.263 5402667.412 274.65 513134.951 5402672.999 274.65 513134.997 5402671.304 274.65 513140.263 5402667.412 274.65 + + + + + + + + + + + + + + + + + 513135.401 5402670.107 274.65 513135.601 5402669.738 274.65 513135.234 5402670.492 274.65 513135.401 5402670.107 274.65 + + + + + + + + + + + + + + + + + 513135.832 5402669.387 274.65 513138.17 5402667.659 274.65 513135.601 5402669.738 274.65 513135.832 5402669.387 274.65 + + + + + + + + + + + + + + + + + 513135.234 5402670.492 274.65 513138.17 5402667.659 274.65 513135.1 5402670.89 274.65 513135.234 5402670.492 274.65 + + + + + + + + + + + + + + + + + 513135.148 5402673.828 274.65 513135.031 5402673.418 274.65 513134.951 5402672.999 274.65 513135.148 5402673.828 274.65 + + + + + + + + + + + + + + + + + 513134.951 5402672.999 274.65 513140.263 5402667.412 274.65 513135.3 5402674.226 274.65 513134.951 5402672.999 274.65 + + + + + + + + + + + + + + + + + 513134.997 5402671.304 274.65 513135.1 5402670.89 274.65 513139.415 5402667.403 274.65 513134.997 5402671.304 274.65 + + + + + + + + + + + + + + + + + 513140.263 5402667.412 274.65 513135.953 5402675.321 274.65 513135.3 5402674.226 274.65 513140.263 5402667.412 274.65 + + + + + + + + + + + + + + + + + 513135.953 5402675.321 274.65 513135.703 5402674.975 274.65 513135.485 5402674.609 274.65 513135.953 5402675.321 274.65 + + + + + + + + + + + + + + + + + 513135.485 5402674.609 274.65 513135.3 5402674.226 274.65 513135.953 5402675.321 274.65 513135.485 5402674.609 274.65 + + + + + + + + + + + + + + + + + 513134.951 5402672.999 274.65 513135.3 5402674.226 274.65 513135.148 5402673.828 274.65 513134.951 5402672.999 274.65 + + + + + + + + + + + + + + + + + 513137.218 5402676.451 274.65 513136.866 5402676.211 274.65 513136.536 5402675.941 274.65 513137.218 5402676.451 274.65 + + + + + + + + + + + + + + + + + 513136.231 5402675.644 274.65 513135.953 5402675.321 274.65 513136.536 5402675.941 274.65 513136.231 5402675.644 274.65 + + + + + + + + + + + + + + + + + 513137.218 5402676.451 274.65 513136.536 5402675.941 274.65 513135.953 5402675.321 274.65 513137.218 5402676.451 274.65 + + + + + + + + + + + + + + + + + 513135.953 5402675.321 274.65 513140.263 5402667.412 274.65 513137.218 5402676.451 274.65 513135.953 5402675.321 274.65 + + + + + + + + + + + + + + + + + 513137.59 5402676.66 274.65 513137.218 5402676.451 274.65 513140.263 5402667.412 274.65 513137.59 5402676.66 274.65 + + + + + + + + + + + + + + + + + 513138.38 5402676.977 274.65 513137.978 5402676.836 274.65 513137.59 5402676.66 274.65 513138.38 5402676.977 274.65 + + + + + + + + + + + + + + + + + 513138.17 5402667.659 274.65 513135.234 5402670.492 274.65 513135.601 5402669.738 274.65 513138.17 5402667.659 274.65 + + + + + + + + + + + + + + + + + 513142.103 5402676.616 274.65 513141.718 5402676.799 274.65 513142.47 5402676.4 274.65 513142.103 5402676.616 274.65 + + + + + + + + + + + + + + + + + 513137.59 5402676.66 274.65 513140.263 5402667.412 274.65 513139.213 5402677.152 274.65 513137.59 5402676.66 274.65 + + + + + + + + + + + + + + + + + 513141.718 5402676.799 274.65 513141.318 5402676.948 274.65 513142.47 5402676.4 274.65 513141.718 5402676.799 274.65 + + + + + + + + + + + + + + + + + 513141.318 5402676.948 274.65 513140.908 5402677.062 274.65 513140.065 5402677.181 274.65 513141.318 5402676.948 274.65 + + + + + + + + + + + + + + + + + 513139.213 5402677.152 274.65 513138.38 5402676.977 274.65 513137.59 5402676.66 274.65 513139.213 5402677.152 274.65 + + + + + + + + + + + + + + + + + 513161.07 5402674.0 274.65 513143.84 5402669.46 274.65 513157.74 5402659.61 274.65 513161.07 5402674.0 274.65 + + + + + + + + + + + + + + + + + 513188.59 5402675.8 274.65 513188.31 5402675.89 274.65 513184.01 5402667.19 274.65 513188.59 5402675.8 274.65 + + + + + + + + + + + + + + + + + 513161.07 5402674.0 274.65 513142.47 5402676.4 274.65 513143.84 5402669.46 274.65 513161.07 5402674.0 274.65 + + + + + + + + + + + + + + + + + 513161.07 5402674.0 274.65 513160.87 5402678.6 274.65 513142.47 5402676.4 274.65 513161.07 5402674.0 274.65 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 274.65 513160.87 5402678.6 274.65 513180.85 5402710.97 274.65 513142.47 5402676.4 274.65 + + + + + + + + + + + + + + + + + 513188.59 5402675.8 274.65 513210.18 5402667.66 274.65 513188.77 5402676.13 274.65 513188.59 5402675.8 274.65 + + + + + + + + + + + + + + + + + 513141.318 5402676.948 274.65 513139.213 5402677.152 274.65 513140.263 5402667.412 274.65 513141.318 5402676.948 274.65 + + + + + + + + + + + + + + + + + 513141.098 5402667.564 274.65 513142.47 5402676.4 274.65 513141.318 5402676.948 274.65 513141.098 5402667.564 274.65 + + + + + + + + + + + + + + + + + 513139.213 5402677.152 274.65 513138.793 5402677.083 274.65 513138.38 5402676.977 274.65 513139.213 5402677.152 274.65 + + + + + + + + + + + + + + + + + 513140.065 5402677.181 274.65 513140.908 5402677.062 274.65 513140.489 5402677.14 274.65 513140.065 5402677.181 274.65 + + + + + + + + + + + + + + + + + 513139.213 5402677.152 274.65 513141.318 5402676.948 274.65 513139.638 5402677.185 274.65 513139.213 5402677.152 274.65 + + + + + + + + + + + + + + + + + 513140.065 5402677.181 274.65 513139.638 5402677.185 274.65 513141.318 5402676.948 274.65 513140.065 5402677.181 274.65 + + + + + + + + + + + + + + + + + 513180.85 5402710.97 274.65 513179.24 5402735.08 274.65 513142.47 5402676.4 274.65 513180.85 5402710.97 274.65 + + + + + + + + + + + + + + + + + 513180.85 5402710.97 274.65 513186.27 5402711.99 274.65 513179.24 5402735.08 274.65 513180.85 5402710.97 274.65 + + + + + + + + + + + + + + + + + 513186.27 5402711.99 274.65 513210.28 5402712.13 274.65 513179.24 5402735.08 274.65 513186.27 5402711.99 274.65 + + + + + + + + + + + + + + + + + 513183.2 5402679.26 274.65 513188.77 5402676.13 274.65 513189.91 5402691.67 274.65 513183.2 5402679.26 274.65 + + + + + + + + + + + + + + + + + 513143.577 5402669.127 274.65 513143.84 5402669.46 274.65 513142.47 5402676.4 274.65 513143.577 5402669.127 274.65 + + + + + + + + + + + + + + + + + 513199.55 5402647.35 274.65 513180.19 5402660.49 274.65 513189.05 5402643.52 274.65 513199.55 5402647.35 274.65 + + + + + + + + + + + + + + + + + 513195.725 5402631.821 274.65 513194.361 5402632.038 274.65 513195.038 5402631.9 274.65 513195.725 5402631.821 274.65 + + + + + + + + + + + + + + + + + 513193.699 5402632.232 274.65 513194.361 5402632.038 274.65 513193.055 5402632.483 274.65 513193.699 5402632.232 274.65 + + + + + + + + + + + + + + + + + 513194.361 5402632.038 274.65 513195.725 5402631.821 274.65 513193.055 5402632.483 274.65 513194.361 5402632.038 274.65 + + + + + + + + + + + + + + + + + 513193.055 5402632.483 274.65 513195.725 5402631.821 274.65 513202.005 5402634.133 274.65 513193.055 5402632.483 274.65 + + + + + + + + + + + + + + + + + 513197.105 5402631.838 274.65 513199.755 5402632.566 274.65 513195.725 5402631.821 274.65 513197.105 5402631.838 274.65 + + + + + + + + + + + + + + + + + 513197.105 5402631.838 274.65 513197.789 5402631.934 274.65 513198.462 5402632.089 274.65 513197.105 5402631.838 274.65 + + + + + + + + + + + + + + + + + 513199.12 5402632.3 274.65 513199.755 5402632.566 274.65 513198.462 5402632.089 274.65 513199.12 5402632.3 274.65 + + + + + + + + + + + + + + + + + 513199.755 5402632.566 274.65 513197.105 5402631.838 274.65 513198.462 5402632.089 274.65 513199.755 5402632.566 274.65 + + + + + + + + + + + + + + + + + 513195.725 5402631.821 274.65 513196.415 5402631.8 274.65 513197.105 5402631.838 274.65 513195.725 5402631.821 274.65 + + + + + + + + + + + + + + + + + 513195.725 5402631.821 274.65 513199.755 5402632.566 274.65 513200.947 5402633.254 274.65 513195.725 5402631.821 274.65 + + + + + + + + + + + + + + + + + 513190.76 5402633.999 274.65 513189.104 5402636.195 274.65 513190.277 5402634.493 274.65 513190.76 5402633.999 274.65 + + + + + + + + + + + + + + + + + 513189.838 5402635.026 274.65 513190.277 5402634.493 274.65 513189.446 5402635.595 274.65 513189.838 5402635.026 274.65 + + + + + + + + + + + + + + + + + 513190.277 5402634.493 274.65 513189.104 5402636.195 274.65 513189.446 5402635.595 274.65 513190.277 5402634.493 274.65 + + + + + + + + + + + + + + + + + 513191.843 5402633.143 274.65 513189.104 5402636.195 274.65 513190.76 5402633.999 274.65 513191.843 5402633.143 274.65 + + + + + + + + + + + + + + + + + 513192.435 5402632.787 274.65 513193.055 5402632.483 274.65 513191.843 5402633.143 274.65 513192.435 5402632.787 274.65 + + + + + + + + + + + + + + + + + 513199.755 5402632.566 274.65 513200.366 5402632.884 274.65 513200.947 5402633.254 274.65 513199.755 5402632.566 274.65 + + + + + + + + + + + + + + + + + 513193.055 5402632.483 274.65 513202.005 5402634.133 274.65 513191.843 5402633.143 274.65 513193.055 5402632.483 274.65 + + + + + + + + + + + + + + + + + 513189.104 5402636.195 274.65 513191.843 5402633.143 274.65 513203.277 5402635.754 274.65 513189.104 5402636.195 274.65 + + + + + + + + + + + + + + + + + 513203.503 5402643.664 274.65 513200.76 5402646.695 274.65 513189.05 5402643.52 274.65 513203.503 5402643.664 274.65 + + + + + + + + + + + + + + + + + 513195.725 5402631.821 274.65 513200.947 5402633.254 274.65 513202.005 5402634.133 274.65 513195.725 5402631.821 274.65 + + + + + + + + + + + + + + + + + 513190.76 5402633.999 274.65 513191.283 5402633.548 274.65 513191.843 5402633.143 274.65 513190.76 5402633.999 274.65 + + + + + + + + + + + + + + + + + 513200.169 5402647.048 274.65 513189.05 5402643.52 274.65 513200.76 5402646.695 274.65 513200.169 5402647.048 274.65 + + + + + + + + + + + + + + + + + 513202.005 5402634.133 274.65 513203.277 5402635.754 274.65 513191.843 5402633.143 274.65 513202.005 5402634.133 274.65 + + + + + + + + + + + + + + + + + 513203.277 5402635.754 274.65 513202.005 5402634.133 274.65 513202.9 5402635.179 274.65 513203.277 5402635.754 274.65 + + + + + + + + + + + + + + + + + 513202.005 5402634.133 274.65 513202.475 5402634.637 274.65 513202.9 5402635.179 274.65 513202.005 5402634.133 274.65 + + + + + + + + + + + + + + + + + 513204.264 5402638.313 274.65 513188.814 5402636.822 274.65 513203.277 5402635.754 274.65 513204.264 5402638.313 274.65 + + + + + + + + + + + + + + + + + 513204.1 5402637.644 274.65 513203.277 5402635.754 274.65 513203.88 5402636.992 274.65 513204.1 5402637.644 274.65 + + + + + + + + + + + + + + + + + 513204.1 5402637.644 274.65 513204.264 5402638.313 274.65 513203.277 5402635.754 274.65 513204.1 5402637.644 274.65 + + + + + + + + + + + + + + + + + 513204.264 5402638.313 274.65 513204.371 5402638.993 274.65 513204.41 5402640.368 274.65 513204.264 5402638.313 274.65 + + + + + + + + + + + + + + + + + 513204.264 5402638.313 274.65 513204.41 5402640.368 274.65 513188.208 5402640.196 274.65 513204.264 5402638.313 274.65 + + + + + + + + + + + + + + + + + 513203.605 5402636.36 274.65 513203.88 5402636.992 274.65 513203.277 5402635.754 274.65 513203.605 5402636.36 274.65 + + + + + + + + + + + + + + + + + 513204.42 5402639.68 274.65 513204.41 5402640.368 274.65 513204.371 5402638.993 274.65 513204.42 5402639.68 274.65 + + + + + + + + + + + + + + + + + 513202.766 5402644.826 274.65 513202.326 5402645.355 274.65 513203.159 5402644.261 274.65 513202.766 5402644.826 274.65 + + + + + + + + + + + + + + + + + 513201.843 5402645.846 274.65 513201.32 5402646.294 274.65 513200.76 5402646.695 274.65 513201.843 5402645.846 274.65 + + + + + + + + + + + + + + + + + 513202.326 5402645.355 274.65 513203.503 5402643.664 274.65 513203.159 5402644.261 274.65 513202.326 5402645.355 274.65 + + + + + + + + + + + + + + + + + 513202.326 5402645.355 274.65 513201.843 5402645.846 274.65 513200.76 5402646.695 274.65 513202.326 5402645.355 274.65 + + + + + + + + + + + + + + + + + 513204.41 5402640.368 274.65 513204.343 5402641.054 274.65 513204.217 5402641.731 274.65 513204.41 5402640.368 274.65 + + + + + + + + + + + + + + + + + 513204.217 5402641.731 274.65 513204.034 5402642.395 274.65 513204.41 5402640.368 274.65 513204.217 5402641.731 274.65 + + + + + + + + + + + + + + + + + 513204.034 5402642.395 274.65 513203.796 5402643.041 274.65 513203.503 5402643.664 274.65 513204.034 5402642.395 274.65 + + + + + + + + + + + + + + + + + 513203.503 5402643.664 274.65 513204.41 5402640.368 274.65 513204.034 5402642.395 274.65 513203.503 5402643.664 274.65 + + + + + + + + + + + + + + + + + 513200.76 5402646.695 274.65 513203.503 5402643.664 274.65 513202.326 5402645.355 274.65 513200.76 5402646.695 274.65 + + + + + + + + + + + + + + + + + 513204.41 5402640.368 274.65 513203.503 5402643.664 274.65 513189.05 5402643.52 274.65 513204.41 5402640.368 274.65 + + + + + + + + + + + + + + + + + 513201.495 5402633.671 274.65 513202.005 5402634.133 274.65 513200.947 5402633.254 274.65 513201.495 5402633.671 274.65 + + + + + + + + + + + + + + + + + 513189.05 5402643.52 274.65 513200.169 5402647.048 274.65 513199.55 5402647.35 274.65 513189.05 5402643.52 274.65 + + + + + + + + + + + + + + + + + 513210.18 5402667.66 274.65 513218.36 5402696.35 274.65 513189.91 5402691.67 274.65 513210.18 5402667.66 274.65 + + + + + + + + + + + + + + + + + 513188.77 5402676.13 274.65 513210.18 5402667.66 274.65 513189.91 5402691.67 274.65 513188.77 5402676.13 274.65 + + + + + + + + + + + + + + + + + 513218.36 5402696.35 274.65 513210.18 5402667.66 274.65 513227.58 5402685.17 274.65 513218.36 5402696.35 274.65 + + + + + + + + + + + + + + + + + 513189.91 5402691.67 274.65 513218.36 5402696.35 274.65 513206.2 5402706.46 274.65 513189.91 5402691.67 274.65 + + + + + + + + + + + + + + + + + 513199.55 5402647.35 274.65 513210.18 5402667.66 274.65 513184.01 5402667.19 274.65 513199.55 5402647.35 274.65 + + + + + + + + + + + + + + + + + 513218.89 5402696.704 274.65 513227.58 5402685.17 274.65 513221.886 5402697.716 274.65 513218.89 5402696.704 274.65 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 274.65 513218.89 5402696.704 274.65 513218.36 5402696.35 274.65 513227.58 5402685.17 274.65 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 274.65 513210.18 5402667.66 274.65 513219.38 5402662.49 274.65 513227.58 5402685.17 274.65 + + + + + + + + + + + + + + + + + 513218.89 5402696.704 274.65 513221.256 5402697.621 274.65 513220.032 5402697.267 274.65 513218.89 5402696.704 274.65 + + + + + + + + + + + + + + + + + 513220.032 5402697.267 274.65 513219.449 5402697.011 274.65 513218.89 5402696.704 274.65 513220.032 5402697.267 274.65 + + + + + + + + + + + + + + + + + 513226.19 5402696.839 274.65 513221.886 5402697.716 274.65 513227.58 5402685.17 274.65 513226.19 5402696.839 274.65 + + + + + + + + + + + + + + + + + 513226.19 5402696.839 274.65 513225.621 5402697.125 274.65 513225.028 5402697.359 274.65 513226.19 5402696.839 274.65 + + + + + + + + + + + + + + + + + 513220.032 5402697.267 274.65 513221.256 5402697.621 274.65 513220.636 5402697.471 274.65 513220.032 5402697.267 274.65 + + + + + + + + + + + + + + + + + 513206.2 5402706.46 274.65 513210.28 5402712.13 274.65 513195.15 5402704.19 274.65 513206.2 5402706.46 274.65 + + + + + + + + + + + + + + + + + 513189.91 5402691.67 274.65 513206.2 5402706.46 274.65 513195.15 5402704.19 274.65 513189.91 5402691.67 274.65 + + + + + + + + + + + + + + + + + 513210.28 5402712.13 274.65 513186.27 5402711.99 274.65 513195.15 5402704.19 274.65 513210.28 5402712.13 274.65 + + + + + + + + + + + + + + + + + 513225.028 5402697.359 274.65 513224.417 5402697.541 274.65 513223.792 5402697.668 274.65 513225.028 5402697.359 274.65 + + + + + + + + + + + + + + + + + 513223.792 5402697.668 274.65 513221.886 5402697.716 274.65 513225.028 5402697.359 274.65 513223.792 5402697.668 274.65 + + + + + + + + + + + + + + + + + 513222.522 5402697.756 274.65 513221.886 5402697.716 274.65 513223.792 5402697.668 274.65 513222.522 5402697.756 274.65 + + + + + + + + + + + + + + + + + 513223.792 5402697.668 274.65 513223.159 5402697.74 274.65 513222.522 5402697.756 274.65 513223.792 5402697.668 274.65 + + + + + + + + + + + + + + + + + 513218.89 5402696.704 274.65 513221.886 5402697.716 274.65 513221.256 5402697.621 274.65 513218.89 5402696.704 274.65 + + + + + + + + + + + + + + + + + 513225.028 5402697.359 274.65 513221.886 5402697.716 274.65 513226.19 5402696.839 274.65 513225.028 5402697.359 274.65 + + + + + + + + + + + + + + + + + 513195.15 5402704.19 274.65 513187.07 5402693.3 274.65 513189.91 5402691.67 274.65 513195.15 5402704.19 274.65 + + + + + + + + + + + + + + + + + 513228.042 5402685.635 274.65 513228.459 5402686.139 274.65 513227.58 5402685.17 274.65 513228.042 5402685.635 274.65 + + + + + + + + + + + + + + + + + 513228.83 5402686.679 274.65 513229.15 5402687.25 274.65 513228.459 5402686.139 274.65 513228.83 5402686.679 274.65 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 274.65 513228.459 5402686.139 274.65 513228.169 5402695.223 274.65 513227.58 5402685.17 274.65 + + + + + + + + + + + + + + + + + 513228.459 5402686.139 274.65 513229.15 5402687.25 274.65 513229.417 5402687.848 274.65 513228.459 5402686.139 274.65 + + + + + + + + + + + + + + + + + 513229.629 5402688.467 274.65 513229.819 5402691.709 274.65 513228.459 5402686.139 274.65 513229.629 5402688.467 274.65 + + + + + + + + + + + + + + + + + 513229.92 5402690.405 274.65 513229.629 5402688.467 274.65 513229.882 5402689.751 274.65 513229.92 5402690.405 274.65 + + + + + + + + + + + + + + + + + 513229.629 5402688.467 274.65 513229.785 5402689.104 274.65 513229.882 5402689.751 274.65 513229.629 5402688.467 274.65 + + + + + + + + + + + + + + + + + 513228.459 5402686.139 274.65 513229.417 5402687.848 274.65 513229.629 5402688.467 274.65 513228.459 5402686.139 274.65 + + + + + + + + + + + + + + + + + 513219.38 5402662.49 274.65 513230.75 5402683.35 274.65 513227.58 5402685.17 274.65 513219.38 5402662.49 274.65 + + + + + + + + + + + + + + + + + 513229.899 5402691.059 274.65 513229.629 5402688.467 274.65 513229.92 5402690.405 274.65 513229.899 5402691.059 274.65 + + + + + + + + + + + + + + + + + 513228.573 5402694.708 274.65 513228.169 5402695.223 274.65 513229.485 5402692.974 274.65 513228.573 5402694.708 274.65 + + + + + + + + + + + + + + + + + 513227.72 5402695.7 274.65 513227.244 5402696.124 274.65 513227.58 5402685.17 274.65 513227.72 5402695.7 274.65 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 274.65 513228.169 5402695.223 274.65 513227.72 5402695.7 274.65 513227.58 5402685.17 274.65 + + + + + + + + + + + + + + + + + 513226.19 5402696.839 274.65 513227.244 5402696.124 274.65 513226.733 5402696.505 274.65 513226.19 5402696.839 274.65 + + + + + + + + + + + + + + + + + 513228.459 5402686.139 274.65 513229.819 5402691.709 274.65 513229.485 5402692.974 274.65 513228.459 5402686.139 274.65 + + + + + + + + + + + + + + + + + 513229.819 5402691.709 274.65 513229.681 5402692.349 274.65 513229.485 5402692.974 274.65 513229.819 5402691.709 274.65 + + + + + + + + + + + + + + + + + 513229.234 5402693.579 274.65 513228.929 5402694.159 274.65 513228.573 5402694.708 274.65 513229.234 5402693.579 274.65 + + + + + + + + + + + + + + + + + 513229.485 5402692.974 274.65 513229.234 5402693.579 274.65 513228.573 5402694.708 274.65 513229.485 5402692.974 274.65 + + + + + + + + + + + + + + + + + 513228.459 5402686.139 274.65 513229.485 5402692.974 274.65 513228.169 5402695.223 274.65 513228.459 5402686.139 274.65 + + + + + + + + + + + + + + + + + 513229.819 5402691.709 274.65 513229.629 5402688.467 274.65 513229.899 5402691.059 274.65 513229.819 5402691.709 274.65 + + + + + + + + + + + + + + + + + 513226.19 5402696.839 274.65 513227.58 5402685.17 274.65 513227.244 5402696.124 274.65 513226.19 5402696.839 274.65 + + + + + + + + + + + + + + + + + 513188.814 5402636.822 274.65 513189.104 5402636.195 274.65 513203.277 5402635.754 274.65 513188.814 5402636.822 274.65 + + + + + + + + + + + + + + + + + 513200.947 5402633.254 245.954 513201.495 5402633.671 245.954 513201.495 5402633.671 274.65 513200.947 5402633.254 274.65 513200.947 5402633.254 245.954 + + + + + + + + + + + + + + + + + 513201.495 5402633.671 245.954 513202.005 5402634.133 245.954 513202.005 5402634.133 274.65 513201.495 5402633.671 274.65 513201.495 5402633.671 245.954 + + + + + + + + + + + + + + + + + 513202.005 5402634.133 245.954 513202.475 5402634.637 245.954 513202.475 5402634.637 274.65 513202.005 5402634.133 274.65 513202.005 5402634.133 245.954 + + + + + + + + + + + + + + + + + 513202.475 5402634.637 245.954 513202.9 5402635.179 245.954 513202.9 5402635.179 274.65 513202.475 5402634.637 274.65 513202.475 5402634.637 245.954 + + + + + + + + + + + + + + + + + 513202.9 5402635.179 245.954 513203.277 5402635.754 245.954 513203.277 5402635.754 274.65 513202.9 5402635.179 274.65 513202.9 5402635.179 245.954 + + + + + + + + + + + + + + + + + 513203.277 5402635.754 245.954 513203.605 5402636.36 245.954 513203.605 5402636.36 274.65 513203.277 5402635.754 274.65 513203.277 5402635.754 245.954 + + + + + + + + + + + + + + + + + 513203.605 5402636.36 245.954 513203.88 5402636.992 245.954 513203.88 5402636.992 274.65 513203.605 5402636.36 274.65 513203.605 5402636.36 245.954 + + + + + + + + + + + + + + + + + 513203.88 5402636.992 245.954 513204.1 5402637.644 245.954 513204.1 5402637.644 274.65 513203.88 5402636.992 274.65 513203.88 5402636.992 245.954 + + + + + + + + + + + + + + + + + 513204.1 5402637.644 245.954 513204.264 5402638.313 245.954 513204.264 5402638.313 274.65 513204.1 5402637.644 274.65 513204.1 5402637.644 245.954 + + + + + + + + + + + + + + + + + 513204.264 5402638.313 245.954 513204.371 5402638.993 245.954 513204.371 5402638.993 274.65 513204.264 5402638.313 274.65 513204.264 5402638.313 245.954 + + + + + + + + + + + + + + + + + 513204.371 5402638.993 245.954 513204.42 5402639.68 245.954 513204.42 5402639.68 274.65 513204.371 5402638.993 274.65 513204.371 5402638.993 245.954 + + + + + + + + + + + + + + + + + 513204.42 5402639.68 245.954 513204.41 5402640.368 245.954 513204.41 5402640.368 274.65 513204.42 5402639.68 274.65 513204.42 5402639.68 245.954 + + + + + + + + + + + + + + + + + 513204.41 5402640.368 245.954 513204.343 5402641.054 245.954 513204.343 5402641.054 274.65 513204.41 5402640.368 274.65 513204.41 5402640.368 245.954 + + + + + + + + + + + + + + + + + 513204.343 5402641.054 245.954 513204.217 5402641.731 245.954 513204.217 5402641.731 274.65 513204.343 5402641.054 274.65 513204.343 5402641.054 245.954 + + + + + + + + + + + + + + + + + 513204.217 5402641.731 245.954 513204.034 5402642.395 245.954 513204.034 5402642.395 274.65 513204.217 5402641.731 274.65 513204.217 5402641.731 245.954 + + + + + + + + + + + + + + + + + 513204.034 5402642.395 245.954 513203.796 5402643.041 245.954 513203.796 5402643.041 274.65 513204.034 5402642.395 274.65 513204.034 5402642.395 245.954 + + + + + + + + + + + + + + + + + 513203.796 5402643.041 245.954 513203.503 5402643.664 245.954 513203.503 5402643.664 274.65 513203.796 5402643.041 274.65 513203.796 5402643.041 245.954 + + + + + + + + + + + + + + + + + 513203.503 5402643.664 245.954 513203.159 5402644.261 245.954 513203.159 5402644.261 274.65 513203.503 5402643.664 274.65 513203.503 5402643.664 245.954 + + + + + + + + + + + + + + + + + 513203.159 5402644.261 245.954 513202.766 5402644.826 245.954 513202.766 5402644.826 274.65 513203.159 5402644.261 274.65 513203.159 5402644.261 245.954 + + + + + + + + + + + + + + + + + 513202.766 5402644.826 245.954 513202.326 5402645.355 245.954 513202.326 5402645.355 274.65 513202.766 5402644.826 274.65 513202.766 5402644.826 245.954 + + + + + + + + + + + + + + + + + 513229.417 5402687.848 245.954 513229.629 5402688.467 245.954 513229.629 5402688.467 274.65 513229.417 5402687.848 274.65 513229.417 5402687.848 245.954 + + + + + + + + + + + + + + + + + 513229.629 5402688.467 245.954 513229.785 5402689.104 245.954 513229.785 5402689.104 274.65 513229.629 5402688.467 274.65 513229.629 5402688.467 245.954 + + + + + + + + + + + + + + + + + 513202.326 5402645.355 245.954 513201.843 5402645.846 245.954 513201.843 5402645.846 274.65 513202.326 5402645.355 274.65 513202.326 5402645.355 245.954 + + + + + + + + + + + + + + + + + 513201.843 5402645.846 245.954 513201.32 5402646.294 245.954 513201.32 5402646.294 274.65 513201.843 5402645.846 274.65 513201.843 5402645.846 245.954 + + + + + + + + + + + + + + + + + 513201.32 5402646.294 245.954 513200.76 5402646.695 245.954 513200.76 5402646.695 274.65 513201.32 5402646.294 274.65 513201.32 5402646.294 245.954 + + + + + + + + + + + + + + + + + 513200.76 5402646.695 245.954 513200.169 5402647.048 245.954 513200.169 5402647.048 274.65 513200.76 5402646.695 274.65 513200.76 5402646.695 245.954 + + + + + + + + + + + + + + + + + 513200.169 5402647.048 245.954 513199.55 5402647.35 245.954 513199.55 5402647.35 274.65 513200.169 5402647.048 274.65 513200.169 5402647.048 245.954 + + + + + + + + + + + + + + + + + 513199.55 5402647.35 245.954 513210.18 5402667.66 245.954 513210.18 5402667.66 274.65 513199.55 5402647.35 274.65 513199.55 5402647.35 245.954 + + + + + + + + + + + + + + + + + 513229.785 5402689.104 245.954 513229.882 5402689.751 245.954 513229.882 5402689.751 274.65 513229.785 5402689.104 274.65 513229.785 5402689.104 245.954 + + + + + + + + + + + + + + + + + 513229.882 5402689.751 245.954 513229.92 5402690.405 245.954 513229.92 5402690.405 274.65 513229.882 5402689.751 274.65 513229.882 5402689.751 245.954 + + + + + + + + + + + + + + + + + 513229.92 5402690.405 245.954 513229.899 5402691.059 245.954 513229.899 5402691.059 274.65 513229.92 5402690.405 274.65 513229.92 5402690.405 245.954 + + + + + + + + + + + + + + + + + 513229.899 5402691.059 245.954 513229.819 5402691.709 245.954 513229.819 5402691.709 274.65 513229.899 5402691.059 274.65 513229.899 5402691.059 245.954 + + + + + + + + + + + + + + + + + 513229.819 5402691.709 245.954 513229.681 5402692.349 245.954 513229.681 5402692.349 274.65 513229.819 5402691.709 274.65 513229.819 5402691.709 245.954 + + + + + + + + + + + + + + + + + 513229.681 5402692.349 245.954 513229.485 5402692.974 245.954 513229.485 5402692.974 274.65 513229.681 5402692.349 274.65 513229.681 5402692.349 245.954 + + + + + + + + + + + + + + + + + 513229.485 5402692.974 245.954 513229.234 5402693.579 245.954 513229.234 5402693.579 274.65 513229.485 5402692.974 274.65 513229.485 5402692.974 245.954 + + + + + + + + + + + + + + + + + 513229.234 5402693.579 245.954 513228.929 5402694.159 245.954 513228.929 5402694.159 274.65 513229.234 5402693.579 274.65 513229.234 5402693.579 245.954 + + + + + + + + + + + + + + + + + 513228.929 5402694.159 245.954 513228.573 5402694.708 245.954 513228.573 5402694.708 274.65 513228.929 5402694.159 274.65 513228.929 5402694.159 245.954 + + + + + + + + + + + + + + + + + 513228.573 5402694.708 245.954 513228.169 5402695.223 245.954 513228.169 5402695.223 274.65 513228.573 5402694.708 274.65 513228.573 5402694.708 245.954 + + + + + + + + + + + + + + + + + 513228.169 5402695.223 245.954 513227.72 5402695.7 245.954 513227.72 5402695.7 274.65 513228.169 5402695.223 274.65 513228.169 5402695.223 245.954 + + + + + + + + + + + + + + + + + 513227.72 5402695.7 245.954 513227.244 5402696.124 245.954 513227.244 5402696.124 274.65 513227.72 5402695.7 274.65 513227.72 5402695.7 245.954 + + + + + + + + + + + + + + + + + 513227.244 5402696.124 245.954 513226.733 5402696.505 245.954 513226.733 5402696.505 274.65 513227.244 5402696.124 274.65 513227.244 5402696.124 245.954 + + + + + + + + + + + + + + + + + 513226.733 5402696.505 245.954 513226.19 5402696.839 245.954 513226.19 5402696.839 274.65 513226.733 5402696.505 274.65 513226.733 5402696.505 245.954 + + + + + + + + + + + + + + + + + 513226.19 5402696.839 245.954 513225.621 5402697.125 245.954 513225.621 5402697.125 274.65 513226.19 5402696.839 274.65 513226.19 5402696.839 245.954 + + + + + + + + + + + + + + + + + 513225.621 5402697.125 245.954 513225.028 5402697.359 245.954 513225.028 5402697.359 274.65 513225.621 5402697.125 274.65 513225.621 5402697.125 245.954 + + + + + + + + + + + + + + + + + 513225.028 5402697.359 245.954 513224.417 5402697.541 245.954 513224.417 5402697.541 274.65 513225.028 5402697.359 274.65 513225.028 5402697.359 245.954 + + + + + + + + + + + + + + + + + 513224.417 5402697.541 245.954 513223.792 5402697.668 245.954 513223.792 5402697.668 274.65 513224.417 5402697.541 274.65 513224.417 5402697.541 245.954 + + + + + + + + + + + + + + + + + 513223.792 5402697.668 245.954 513223.159 5402697.74 245.954 513223.159 5402697.74 274.65 513223.792 5402697.668 274.65 513223.792 5402697.668 245.954 + + + + + + + + + + + + + + + + + 513223.159 5402697.74 245.954 513222.522 5402697.756 245.954 513222.522 5402697.756 274.65 513223.159 5402697.74 274.65 513223.159 5402697.74 245.954 + + + + + + + + + + + + + + + + + 513222.522 5402697.756 245.954 513221.886 5402697.716 245.954 513221.886 5402697.716 274.65 513222.522 5402697.756 274.65 513222.522 5402697.756 245.954 + + + + + + + + + + + + + + + + + 513221.886 5402697.716 245.954 513221.256 5402697.621 245.954 513221.256 5402697.621 274.65 513221.886 5402697.716 274.65 513221.886 5402697.716 245.954 + + + + + + + + + + + + + + + + + 513221.256 5402697.621 245.954 513220.636 5402697.471 245.954 513220.636 5402697.471 274.65 513221.256 5402697.621 274.65 513221.256 5402697.621 245.954 + + + + + + + + + + + + + + + + + 513220.636 5402697.471 245.954 513220.032 5402697.267 245.954 513220.032 5402697.267 274.65 513220.636 5402697.471 274.65 513220.636 5402697.471 245.954 + + + + + + + + + + + + + + + + + 513220.032 5402697.267 245.954 513219.449 5402697.011 245.954 513219.449 5402697.011 274.65 513220.032 5402697.267 274.65 513220.032 5402697.267 245.954 + + + + + + + + + + + + + + + + + 513219.449 5402697.011 245.954 513218.89 5402696.704 245.954 513218.89 5402696.704 274.65 513219.449 5402697.011 274.65 513219.449 5402697.011 245.954 + + + + + + + + + + + + + + + + + 513218.89 5402696.704 245.954 513218.36 5402696.35 245.954 513218.36 5402696.35 274.65 513218.89 5402696.704 274.65 513218.89 5402696.704 245.954 + + + + + + + + + + + + + + + + + 513218.36 5402696.35 245.954 513206.2 5402706.46 245.954 513206.2 5402706.46 274.65 513218.36 5402696.35 274.65 513218.36 5402696.35 245.954 + + + + + + + + + + + + + + + + + 513206.2 5402706.46 245.954 513210.28 5402712.13 245.954 513210.28 5402712.13 274.65 513206.2 5402706.46 274.65 513206.2 5402706.46 245.954 + + + + + + + + + + + + + + + + + 513210.28 5402712.13 245.954 513179.24 5402735.08 245.954 513179.24 5402735.08 274.65 513210.28 5402712.13 274.65 513210.28 5402712.13 245.954 + + + + + + + + + + + + + + + + + 513179.24 5402735.08 245.954 513142.47 5402676.4 245.954 513142.47 5402676.4 274.65 513179.24 5402735.08 274.65 513179.24 5402735.08 245.954 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 245.954 513142.103 5402676.616 245.954 513142.103 5402676.616 274.65 513142.47 5402676.4 274.65 513142.47 5402676.4 245.954 + + + + + + + + + + + + + + + + + 513142.103 5402676.616 245.954 513141.718 5402676.799 245.954 513141.718 5402676.799 274.65 513142.103 5402676.616 274.65 513142.103 5402676.616 245.954 + + + + + + + + + + + + + + + + + 513141.718 5402676.799 245.954 513141.318 5402676.948 245.954 513141.318 5402676.948 274.65 513141.718 5402676.799 274.65 513141.718 5402676.799 245.954 + + + + + + + + + + + + + + + + + 513141.318 5402676.948 245.954 513140.908 5402677.062 245.954 513140.908 5402677.062 274.65 513141.318 5402676.948 274.65 513141.318 5402676.948 245.954 + + + + + + + + + + + + + + + + + 513140.908 5402677.062 245.954 513140.489 5402677.14 245.954 513140.489 5402677.14 274.65 513140.908 5402677.062 274.65 513140.908 5402677.062 245.954 + + + + + + + + + + + + + + + + + 513140.489 5402677.14 245.954 513140.065 5402677.181 245.954 513140.065 5402677.181 274.65 513140.489 5402677.14 274.65 513140.489 5402677.14 245.954 + + + + + + + + + + + + + + + + + 513140.065 5402677.181 245.954 513139.638 5402677.185 245.954 513139.638 5402677.185 274.65 513140.065 5402677.181 274.65 513140.065 5402677.181 245.954 + + + + + + + + + + + + + + + + + 513139.638 5402677.185 245.954 513139.213 5402677.152 245.954 513139.213 5402677.152 274.65 513139.638 5402677.185 274.65 513139.638 5402677.185 245.954 + + + + + + + + + + + + + + + + + 513139.213 5402677.152 245.954 513138.793 5402677.083 245.954 513138.793 5402677.083 274.65 513139.213 5402677.152 274.65 513139.213 5402677.152 245.954 + + + + + + + + + + + + + + + + + 513138.793 5402677.083 245.954 513138.38 5402676.977 245.954 513138.38 5402676.977 274.65 513138.793 5402677.083 274.65 513138.793 5402677.083 245.954 + + + + + + + + + + + + + + + + + 513138.38 5402676.977 245.954 513137.978 5402676.836 245.954 513137.978 5402676.836 274.65 513138.38 5402676.977 274.65 513138.38 5402676.977 245.954 + + + + + + + + + + + + + + + + + 513137.978 5402676.836 245.954 513137.59 5402676.66 245.954 513137.59 5402676.66 274.65 513137.978 5402676.836 274.65 513137.978 5402676.836 245.954 + + + + + + + + + + + + + + + + + 513137.59 5402676.66 245.954 513137.218 5402676.451 245.954 513137.218 5402676.451 274.65 513137.59 5402676.66 274.65 513137.59 5402676.66 245.954 + + + + + + + + + + + + + + + + + 513137.218 5402676.451 245.954 513136.866 5402676.211 245.954 513136.866 5402676.211 274.65 513137.218 5402676.451 274.65 513137.218 5402676.451 245.954 + + + + + + + + + + + + + + + + + 513136.866 5402676.211 245.954 513136.536 5402675.941 245.954 513136.536 5402675.941 274.65 513136.866 5402676.211 274.65 513136.866 5402676.211 245.954 + + + + + + + + + + + + + + + + + 513136.536 5402675.941 245.954 513136.231 5402675.644 245.954 513136.231 5402675.644 274.65 513136.536 5402675.941 274.65 513136.536 5402675.941 245.954 + + + + + + + + + + + + + + + + + 513136.231 5402675.644 245.954 513135.953 5402675.321 245.954 513135.953 5402675.321 274.65 513136.231 5402675.644 274.65 513136.231 5402675.644 245.954 + + + + + + + + + + + + + + + + + 513135.953 5402675.321 245.954 513135.703 5402674.975 245.954 513135.703 5402674.975 274.65 513135.953 5402675.321 274.65 513135.953 5402675.321 245.954 + + + + + + + + + + + + + + + + + 513135.703 5402674.975 245.954 513135.485 5402674.609 245.954 513135.485 5402674.609 274.65 513135.703 5402674.975 274.65 513135.703 5402674.975 245.954 + + + + + + + + + + + + + + + + + 513135.485 5402674.609 245.954 513135.3 5402674.226 245.954 513135.3 5402674.226 274.65 513135.485 5402674.609 274.65 513135.485 5402674.609 245.954 + + + + + + + + + + + + + + + + + 513135.3 5402674.226 245.954 513135.148 5402673.828 245.954 513135.148 5402673.828 274.65 513135.3 5402674.226 274.65 513135.3 5402674.226 245.954 + + + + + + + + + + + + + + + + + 513135.148 5402673.828 245.954 513135.031 5402673.418 245.954 513135.031 5402673.418 274.65 513135.148 5402673.828 274.65 513135.148 5402673.828 245.954 + + + + + + + + + + + + + + + + + 513135.031 5402673.418 245.954 513134.951 5402672.999 245.954 513134.951 5402672.999 274.65 513135.031 5402673.418 274.65 513135.031 5402673.418 245.954 + + + + + + + + + + + + + + + + + 513134.951 5402672.999 245.954 513134.907 5402672.576 245.954 513134.907 5402672.576 274.65 513134.951 5402672.999 274.65 513134.951 5402672.999 245.954 + + + + + + + + + + + + + + + + + 513134.907 5402672.576 245.954 513134.9 5402672.149 245.954 513134.9 5402672.149 274.65 513134.907 5402672.576 274.65 513134.907 5402672.576 245.954 + + + + + + + + + + + + + + + + + 513134.9 5402672.149 245.954 513134.93 5402671.724 245.954 513134.93 5402671.724 274.65 513134.9 5402672.149 274.65 513134.9 5402672.149 245.954 + + + + + + + + + + + + + + + + + 513134.93 5402671.724 245.954 513134.997 5402671.304 245.954 513134.997 5402671.304 274.65 513134.93 5402671.724 274.65 513134.93 5402671.724 245.954 + + + + + + + + + + + + + + + + + 513134.997 5402671.304 245.954 513135.1 5402670.89 245.954 513135.1 5402670.89 274.65 513134.997 5402671.304 274.65 513134.997 5402671.304 245.954 + + + + + + + + + + + + + + + + + 513135.1 5402670.89 245.954 513135.234 5402670.492 245.954 513135.234 5402670.492 274.65 513135.1 5402670.89 274.65 513135.1 5402670.89 245.954 + + + + + + + + + + + + + + + + + 513135.234 5402670.492 245.954 513135.401 5402670.107 245.954 513135.401 5402670.107 274.65 513135.234 5402670.492 274.65 513135.234 5402670.492 245.954 + + + + + + + + + + + + + + + + + 513135.401 5402670.107 245.954 513135.601 5402669.738 245.954 513135.601 5402669.738 274.65 513135.401 5402670.107 274.65 513135.401 5402670.107 245.954 + + + + + + + + + + + + + + + + + 513135.601 5402669.738 245.954 513135.832 5402669.387 245.954 513135.832 5402669.387 274.65 513135.601 5402669.738 274.65 513135.601 5402669.738 245.954 + + + + + + + + + + + + + + + + + 513135.832 5402669.387 245.954 513136.093 5402669.057 245.954 513136.093 5402669.057 274.65 513135.832 5402669.387 274.65 513135.832 5402669.387 245.954 + + + + + + + + + + + + + + + + + 513136.093 5402669.057 245.954 513136.38 5402668.752 245.954 513136.38 5402668.752 274.65 513136.093 5402669.057 274.65 513136.093 5402669.057 245.954 + + + + + + + + + + + + + + + + + 513136.38 5402668.752 245.954 513136.694 5402668.472 245.954 513136.694 5402668.472 274.65 513136.38 5402668.752 274.65 513136.38 5402668.752 245.954 + + + + + + + + + + + + + + + + + 513136.694 5402668.472 245.954 513137.03 5402668.22 245.954 513137.03 5402668.22 274.65 513136.694 5402668.472 274.65 513136.694 5402668.472 245.954 + + + + + + + + + + + + + + + + + 513137.03 5402668.22 245.954 513137.394 5402668.001 245.954 513137.394 5402668.001 274.65 513137.03 5402668.22 274.65 513137.03 5402668.22 245.954 + + + + + + + + + + + + + + + + + 513137.394 5402668.001 245.954 513137.775 5402667.813 245.954 513137.775 5402667.813 274.65 513137.394 5402668.001 274.65 513137.394 5402668.001 245.954 + + + + + + + + + + + + + + + + + 513137.775 5402667.813 245.954 513138.17 5402667.659 245.954 513138.17 5402667.659 274.65 513137.775 5402667.813 274.65 513137.775 5402667.813 245.954 + + + + + + + + + + + + + + + + + 513138.17 5402667.659 245.954 513138.577 5402667.538 245.954 513138.577 5402667.538 274.65 513138.17 5402667.659 274.65 513138.17 5402667.659 245.954 + + + + + + + + + + + + + + + + + 513138.577 5402667.538 245.954 513138.993 5402667.453 245.954 513138.993 5402667.453 274.65 513138.577 5402667.538 274.65 513138.577 5402667.538 245.954 + + + + + + + + + + + + + + + + + 513138.993 5402667.453 245.954 513139.415 5402667.403 245.954 513139.415 5402667.403 274.65 513138.993 5402667.453 274.65 513138.993 5402667.453 245.954 + + + + + + + + + + + + + + + + + 513139.415 5402667.403 245.954 513139.839 5402667.389 245.954 513139.839 5402667.389 274.65 513139.415 5402667.403 274.65 513139.415 5402667.403 245.954 + + + + + + + + + + + + + + + + + 513139.839 5402667.389 245.954 513140.263 5402667.412 245.954 513140.263 5402667.412 274.65 513139.839 5402667.389 274.65 513139.839 5402667.389 245.954 + + + + + + + + + + + + + + + + + 513140.263 5402667.412 245.954 513140.684 5402667.47 245.954 513140.684 5402667.47 274.65 513140.263 5402667.412 274.65 513140.263 5402667.412 245.954 + + + + + + + + + + + + + + + + + 513140.684 5402667.47 245.954 513141.098 5402667.564 245.954 513141.098 5402667.564 274.65 513140.684 5402667.47 274.65 513140.684 5402667.47 245.954 + + + + + + + + + + + + + + + + + 513141.098 5402667.564 245.954 513141.503 5402667.692 245.954 513141.503 5402667.692 274.65 513141.098 5402667.564 274.65 513141.098 5402667.564 245.954 + + + + + + + + + + + + + + + + + 513141.503 5402667.692 245.954 513141.895 5402667.855 245.954 513141.895 5402667.855 274.65 513141.503 5402667.692 274.65 513141.503 5402667.692 245.954 + + + + + + + + + + + + + + + + + 513141.895 5402667.855 245.954 513142.273 5402668.05 245.954 513142.273 5402668.05 274.65 513141.895 5402667.855 274.65 513141.895 5402667.855 245.954 + + + + + + + + + + + + + + + + + 513142.273 5402668.05 245.954 513142.632 5402668.276 245.954 513142.632 5402668.276 274.65 513142.273 5402668.05 274.65 513142.273 5402668.05 245.954 + + + + + + + + + + + + + + + + + 513142.632 5402668.276 245.954 513142.971 5402668.533 245.954 513142.971 5402668.533 274.65 513142.632 5402668.276 274.65 513142.632 5402668.276 245.954 + + + + + + + + + + + + + + + + + 513142.971 5402668.533 245.954 513143.286 5402668.817 245.954 513143.286 5402668.817 274.65 513142.971 5402668.533 274.65 513142.971 5402668.533 245.954 + + + + + + + + + + + + + + + + + 513143.286 5402668.817 245.954 513143.577 5402669.127 245.954 513143.577 5402669.127 274.65 513143.286 5402668.817 274.65 513143.286 5402668.817 245.954 + + + + + + + + + + + + + + + + + 513143.577 5402669.127 245.954 513143.84 5402669.46 245.954 513143.84 5402669.46 274.65 513143.577 5402669.127 274.65 513143.577 5402669.127 245.954 + + + + + + + + + + + + + + + + + 513143.84 5402669.46 245.954 513157.74 5402659.61 245.954 513157.74 5402659.61 274.65 513143.84 5402669.46 274.65 513143.84 5402669.46 245.954 + + + + + + + + + + + + + + + + + 513157.74 5402659.61 245.954 513156.46 5402657.9 245.954 513156.46 5402657.9 274.65 513157.74 5402659.61 274.65 513157.74 5402659.61 245.954 + + + + + + + + + + + + + + + + + 513156.46 5402657.9 245.954 513156.85 5402654.58 245.954 513156.85 5402654.58 274.65 513156.46 5402657.9 274.65 513156.46 5402657.9 245.954 + + + + + + + + + + + + + + + + + 513156.85 5402654.58 245.954 513159.81 5402652.48 245.954 513159.81 5402652.48 274.65 513156.85 5402654.58 274.65 513156.85 5402654.58 245.954 + + + + + + + + + + + + + + + + + 513159.81 5402652.48 245.954 513163.34 5402653.23 245.954 513163.34 5402653.23 274.65 513159.81 5402652.48 274.65 513159.81 5402652.48 245.954 + + + + + + + + + + + + + + + + + 513163.34 5402653.23 245.954 513164.41 5402654.77 245.954 513164.41 5402654.77 274.65 513163.34 5402653.23 274.65 513163.34 5402653.23 245.954 + + + + + + + + + + + + + + + + + 513161.07 5402674.0 245.954 513160.87 5402678.6 245.954 513160.87 5402678.6 274.65 513161.07 5402674.0 274.65 513161.07 5402674.0 245.954 + + + + + + + + + + + + + + + + + 513160.87 5402678.6 245.954 513180.85 5402710.97 245.954 513180.85 5402710.97 274.65 513160.87 5402678.6 274.65 513160.87 5402678.6 245.954 + + + + + + + + + + + + + + + + + 513180.85 5402710.97 245.954 513186.27 5402711.99 245.954 513186.27 5402711.99 274.65 513180.85 5402710.97 274.65 513180.85 5402710.97 245.954 + + + + + + + + + + + + + + + + + 513186.27 5402711.99 245.954 513195.15 5402704.19 245.954 513195.15 5402704.19 274.65 513186.27 5402711.99 274.65 513186.27 5402711.99 245.954 + + + + + + + + + + + + + + + + + 513195.15 5402704.19 245.954 513187.07 5402693.3 245.954 513187.07 5402693.3 274.65 513195.15 5402704.19 274.65 513195.15 5402704.19 245.954 + + + + + + + + + + + + + + + + + 513187.07 5402693.3 245.954 513189.91 5402691.67 245.954 513189.91 5402691.67 274.65 513187.07 5402693.3 274.65 513187.07 5402693.3 245.954 + + + + + + + + + + + + + + + + + 513189.91 5402691.67 245.954 513183.2 5402679.26 245.954 513183.2 5402679.26 274.65 513189.91 5402691.67 274.65 513189.91 5402691.67 245.954 + + + + + + + + + + + + + + + + + 513183.2 5402679.26 245.954 513188.77 5402676.13 245.954 513188.77 5402676.13 274.65 513183.2 5402679.26 274.65 513183.2 5402679.26 245.954 + + + + + + + + + + + + + + + + + 513188.77 5402676.13 245.954 513188.59 5402675.8 245.954 513188.59 5402675.8 274.65 513188.77 5402676.13 274.65 513188.77 5402676.13 245.954 + + + + + + + + + + + + + + + + + 513188.59 5402675.8 245.954 513188.31 5402675.89 245.954 513188.31 5402675.89 274.65 513188.59 5402675.8 274.65 513188.59 5402675.8 245.954 + + + + + + + + + + + + + + + + + 513188.31 5402675.89 245.954 513183.59 5402667.4 245.954 513183.59 5402667.4 274.65 513188.31 5402675.89 274.65 513188.31 5402675.89 245.954 + + + + + + + + + + + + + + + + + 513183.59 5402667.4 245.954 513184.01 5402667.19 245.954 513184.01 5402667.19 274.65 513183.59 5402667.4 274.65 513183.59 5402667.4 245.954 + + + + + + + + + + + + + + + + + 513184.01 5402667.19 245.954 513180.19 5402660.49 245.954 513180.19 5402660.49 274.65 513184.01 5402667.19 274.65 513184.01 5402667.19 245.954 + + + + + + + + + + + + + + + + + 513180.19 5402660.49 245.954 513161.07 5402674.0 245.954 513161.07 5402674.0 274.65 513180.19 5402660.49 274.65 513180.19 5402660.49 245.954 + + + + + + + + + + + + + + + + + 513210.18 5402667.66 245.954 513219.38 5402662.49 245.954 513219.38 5402662.49 274.65 513210.18 5402667.66 274.65 513210.18 5402667.66 245.954 + + + + + + + + + + + + + + + + + 513219.38 5402662.49 245.954 513230.75 5402683.35 245.954 513230.75 5402683.35 274.65 513219.38 5402662.49 274.65 513219.38 5402662.49 245.954 + + + + + + + + + + + + + + + + + 513230.75 5402683.35 245.954 513227.58 5402685.17 245.954 513227.58 5402685.17 274.65 513230.75 5402683.35 274.65 513230.75 5402683.35 245.954 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 245.954 513228.042 5402685.635 245.954 513228.042 5402685.635 274.65 513227.58 5402685.17 274.65 513227.58 5402685.17 245.954 + + + + + + + + + + + + + + + + + 513228.042 5402685.635 245.954 513228.459 5402686.139 245.954 513228.459 5402686.139 274.65 513228.042 5402685.635 274.65 513228.042 5402685.635 245.954 + + + + + + + + + + + + + + + + + 513228.459 5402686.139 245.954 513228.83 5402686.679 245.954 513228.83 5402686.679 274.65 513228.459 5402686.139 274.65 513228.459 5402686.139 245.954 + + + + + + + + + + + + + + + + + 513228.83 5402686.679 245.954 513229.15 5402687.25 245.954 513229.15 5402687.25 274.65 513228.83 5402686.679 274.65 513228.83 5402686.679 245.954 + + + + + + + + + + + + + + + + + 513229.15 5402687.25 245.954 513229.417 5402687.848 245.954 513229.417 5402687.848 274.65 513229.15 5402687.25 274.65 513229.15 5402687.25 245.954 + + + + + + + + + + + + + + + + + 513164.41 5402654.77 245.954 513174.48 5402647.59 245.954 513174.48 5402647.59 274.65 513164.41 5402654.77 274.65 513164.41 5402654.77 245.954 + + + + + + + + + + + + + + + + + 513174.48 5402647.59 245.954 513177.3 5402651.61 245.954 513177.3 5402651.61 274.65 513174.48 5402647.59 274.65 513174.48 5402647.59 245.954 + + + + + + + + + + + + + + + + + 513177.3 5402651.61 245.954 513179.6 5402650.03 245.954 513179.6 5402650.03 274.65 513177.3 5402651.61 274.65 513177.3 5402651.61 245.954 + + + + + + + + + + + + + + + + + 513179.6 5402650.03 245.954 513189.05 5402643.52 245.954 513189.05 5402643.52 274.65 513179.6 5402650.03 274.65 513179.6 5402650.03 245.954 + + + + + + + + + + + + + + + + + 513189.05 5402643.52 245.954 513188.769 5402642.889 245.954 513188.769 5402642.889 274.65 513189.05 5402643.52 274.65 513189.05 5402643.52 245.954 + + + + + + + + + + + + + + + + + 513188.769 5402642.889 245.954 513188.543 5402642.236 245.954 513188.543 5402642.236 274.65 513188.769 5402642.889 274.65 513188.769 5402642.889 245.954 + + + + + + + + + + + + + + + + + 513188.543 5402642.236 245.954 513188.373 5402641.567 245.954 513188.373 5402641.567 274.65 513188.543 5402642.236 274.65 513188.543 5402642.236 245.954 + + + + + + + + + + + + + + + + + 513188.373 5402641.567 245.954 513188.261 5402640.885 245.954 513188.261 5402640.885 274.65 513188.373 5402641.567 274.65 513188.373 5402641.567 245.954 + + + + + + + + + + + + + + + + + 513188.261 5402640.885 245.954 513188.208 5402640.196 245.954 513188.208 5402640.196 274.65 513188.261 5402640.885 274.65 513188.261 5402640.885 245.954 + + + + + + + + + + + + + + + + + 513188.213 5402639.506 245.954 513188.213 5402639.506 274.65 513188.208 5402640.196 274.65 513188.208 5402640.196 245.954 513188.213 5402639.506 245.954 + + + + + + + + + + + + + + + + + 513188.213 5402639.506 245.954 513188.276 5402638.818 245.954 513188.276 5402638.818 274.65 513188.213 5402639.506 274.65 513188.213 5402639.506 245.954 + + + + + + + + + + + + + + + + + 513188.276 5402638.818 245.954 513188.399 5402638.138 245.954 513188.399 5402638.138 274.65 513188.276 5402638.818 274.65 513188.276 5402638.818 245.954 + + + + + + + + + + + + + + + + + 513188.399 5402638.138 245.954 513188.578 5402637.471 245.954 513188.578 5402637.471 274.65 513188.399 5402638.138 274.65 513188.399 5402638.138 245.954 + + + + + + + + + + + + + + + + + 513188.578 5402637.471 245.954 513188.814 5402636.822 245.954 513188.814 5402636.822 274.65 513188.578 5402637.471 274.65 513188.578 5402637.471 245.954 + + + + + + + + + + + + + + + + + 513188.814 5402636.822 245.954 513189.104 5402636.195 245.954 513189.104 5402636.195 274.65 513188.814 5402636.822 274.65 513188.814 5402636.822 245.954 + + + + + + + + + + + + + + + + + 513189.104 5402636.195 245.954 513189.446 5402635.595 245.954 513189.446 5402635.595 274.65 513189.104 5402636.195 274.65 513189.104 5402636.195 245.954 + + + + + + + + + + + + + + + + + 513189.446 5402635.595 245.954 513189.838 5402635.026 245.954 513189.838 5402635.026 274.65 513189.446 5402635.595 274.65 513189.446 5402635.595 245.954 + + + + + + + + + + + + + + + + + 513189.838 5402635.026 245.954 513190.277 5402634.493 245.954 513190.277 5402634.493 274.65 513189.838 5402635.026 274.65 513189.838 5402635.026 245.954 + + + + + + + + + + + + + + + + + 513190.277 5402634.493 245.954 513190.76 5402633.999 245.954 513190.76 5402633.999 274.65 513190.277 5402634.493 274.65 513190.277 5402634.493 245.954 + + + + + + + + + + + + + + + + + 513190.76 5402633.999 245.954 513191.283 5402633.548 245.954 513191.283 5402633.548 274.65 513190.76 5402633.999 274.65 513190.76 5402633.999 245.954 + + + + + + + + + + + + + + + + + 513191.283 5402633.548 245.954 513191.843 5402633.143 245.954 513191.843 5402633.143 274.65 513191.283 5402633.548 274.65 513191.283 5402633.548 245.954 + + + + + + + + + + + + + + + + + 513191.843 5402633.143 245.954 513192.435 5402632.787 245.954 513192.435 5402632.787 274.65 513191.843 5402633.143 274.65 513191.843 5402633.143 245.954 + + + + + + + + + + + + + + + + + 513192.435 5402632.787 245.954 513193.055 5402632.483 245.954 513193.055 5402632.483 274.65 513192.435 5402632.787 274.65 513192.435 5402632.787 245.954 + + + + + + + + + + + + + + + + + 513193.055 5402632.483 245.954 513193.699 5402632.232 245.954 513193.699 5402632.232 274.65 513193.055 5402632.483 274.65 513193.055 5402632.483 245.954 + + + + + + + + + + + + + + + + + 513193.699 5402632.232 245.954 513194.361 5402632.038 245.954 513194.361 5402632.038 274.65 513193.699 5402632.232 274.65 513193.699 5402632.232 245.954 + + + + + + + + + + + + + + + + + 513194.361 5402632.038 245.954 513195.038 5402631.9 245.954 513195.038 5402631.9 274.65 513194.361 5402632.038 274.65 513194.361 5402632.038 245.954 + + + + + + + + + + + + + + + + + 513195.038 5402631.9 245.954 513195.725 5402631.821 245.954 513195.725 5402631.821 274.65 513195.038 5402631.9 274.65 513195.038 5402631.9 245.954 + + + + + + + + + + + + + + + + + 513195.725 5402631.821 245.954 513196.415 5402631.8 245.954 513196.415 5402631.8 274.65 513195.725 5402631.821 274.65 513195.725 5402631.821 245.954 + + + + + + + + + + + + + + + + + 513196.415 5402631.8 245.954 513197.105 5402631.838 245.954 513197.105 5402631.838 274.65 513196.415 5402631.8 274.65 513196.415 5402631.8 245.954 + + + + + + + + + + + + + + + + + 513197.105 5402631.838 245.954 513197.789 5402631.934 245.954 513197.789 5402631.934 274.65 513197.105 5402631.838 274.65 513197.105 5402631.838 245.954 + + + + + + + + + + + + + + + + + 513197.789 5402631.934 245.954 513198.462 5402632.089 245.954 513198.462 5402632.089 274.65 513197.789 5402631.934 274.65 513197.789 5402631.934 245.954 + + + + + + + + + + + + + + + + + 513198.462 5402632.089 245.954 513199.12 5402632.3 245.954 513199.12 5402632.3 274.65 513198.462 5402632.089 274.65 513198.462 5402632.089 245.954 + + + + + + + + + + + + + + + + + 513199.12 5402632.3 245.954 513199.755 5402632.566 245.954 513199.755 5402632.566 274.65 513199.12 5402632.3 274.65 513199.12 5402632.3 245.954 + + + + + + + + + + + + + + + + + 513199.755 5402632.566 245.954 513200.366 5402632.884 245.954 513200.366 5402632.884 274.65 513199.755 5402632.566 274.65 513199.755 5402632.566 245.954 + + + + + + + + + + + + + + + + + 513200.366 5402632.884 245.954 513200.947 5402633.254 245.954 513200.947 5402633.254 274.65 513200.366 5402632.884 274.65 513200.366 5402632.884 245.954 + + + + + + + + + + + + + + + + + 513138.17 5402667.659 245.954 513137.775 5402667.813 245.954 513135.832 5402669.387 245.954 513138.17 5402667.659 245.954 + + + + + + + + + + + + + + + + + 513135.1 5402670.89 245.954 513138.577 5402667.538 245.954 513138.17 5402667.659 245.954 513135.1 5402670.89 245.954 + + + + + + + + + + + + + + + + + 513135.832 5402669.387 245.954 513137.775 5402667.813 245.954 513136.093 5402669.057 245.954 513135.832 5402669.387 245.954 + + + + + + + + + + + + + + + + + 513135.1 5402670.89 245.954 513138.993 5402667.453 245.954 513138.577 5402667.538 245.954 513135.1 5402670.89 245.954 + + + + + + + + + + + + + + + + + 513139.415 5402667.403 245.954 513138.993 5402667.453 245.954 513135.1 5402670.89 245.954 513139.415 5402667.403 245.954 + + + + + + + + + + + + + + + + + 513140.263 5402667.412 245.954 513139.415 5402667.403 245.954 513134.997 5402671.304 245.954 513140.263 5402667.412 245.954 + + + + + + + + + + + + + + + + + 513140.684 5402667.47 245.954 513140.263 5402667.412 245.954 513141.318 5402676.948 245.954 513140.684 5402667.47 245.954 + + + + + + + + + + + + + + + + + 513140.263 5402667.412 245.954 513139.839 5402667.389 245.954 513139.415 5402667.403 245.954 513140.263 5402667.412 245.954 + + + + + + + + + + + + + + + + + 513141.895 5402667.855 245.954 513141.503 5402667.692 245.954 513141.098 5402667.564 245.954 513141.895 5402667.855 245.954 + + + + + + + + + + + + + + + + + 513137.03 5402668.22 245.954 513136.694 5402668.472 245.954 513137.394 5402668.001 245.954 513137.03 5402668.22 245.954 + + + + + + + + + + + + + + + + + 513136.38 5402668.752 245.954 513137.394 5402668.001 245.954 513136.694 5402668.472 245.954 513136.38 5402668.752 245.954 + + + + + + + + + + + + + + + + + 513137.394 5402668.001 245.954 513136.38 5402668.752 245.954 513137.775 5402667.813 245.954 513137.394 5402668.001 245.954 + + + + + + + + + + + + + + + + + 513136.093 5402669.057 245.954 513137.775 5402667.813 245.954 513136.38 5402668.752 245.954 513136.093 5402669.057 245.954 + + + + + + + + + + + + + + + + + 513142.273 5402668.05 245.954 513141.895 5402667.855 245.954 513142.47 5402676.4 245.954 513142.273 5402668.05 245.954 + + + + + + + + + + + + + + + + + 513142.632 5402668.276 245.954 513142.273 5402668.05 245.954 513142.47 5402676.4 245.954 513142.632 5402668.276 245.954 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 245.954 513143.286 5402668.817 245.954 513142.971 5402668.533 245.954 513142.47 5402676.4 245.954 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 245.954 513142.971 5402668.533 245.954 513142.632 5402668.276 245.954 513142.47 5402676.4 245.954 + + + + + + + + + + + + + + + + + 513141.098 5402667.564 245.954 513142.47 5402676.4 245.954 513141.895 5402667.855 245.954 513141.098 5402667.564 245.954 + + + + + + + + + + + + + + + + + 513141.098 5402667.564 245.954 513140.684 5402667.47 245.954 513141.318 5402676.948 245.954 513141.098 5402667.564 245.954 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 245.954 513143.577 5402669.127 245.954 513143.286 5402668.817 245.954 513142.47 5402676.4 245.954 + + + + + + + + + + + + + + + + + 513188.399 5402638.138 245.954 513188.213 5402639.506 245.954 513188.208 5402640.196 245.954 513188.399 5402638.138 245.954 + + + + + + + + + + + + + + + + + 513188.261 5402640.885 245.954 513188.373 5402641.567 245.954 513188.543 5402642.236 245.954 513188.261 5402640.885 245.954 + + + + + + + + + + + + + + + + + 513188.208 5402640.196 245.954 513188.261 5402640.885 245.954 513188.543 5402642.236 245.954 513188.208 5402640.196 245.954 + + + + + + + + + + + + + + + + + 513188.213 5402639.506 245.954 513188.399 5402638.138 245.954 513188.276 5402638.818 245.954 513188.213 5402639.506 245.954 + + + + + + + + + + + + + + + + + 513188.399 5402638.138 245.954 513188.814 5402636.822 245.954 513188.578 5402637.471 245.954 513188.399 5402638.138 245.954 + + + + + + + + + + + + + + + + + 513188.208 5402640.196 245.954 513189.05 5402643.52 245.954 513204.41 5402640.368 245.954 513188.208 5402640.196 245.954 + + + + + + + + + + + + + + + + + 513188.543 5402642.236 245.954 513188.769 5402642.889 245.954 513189.05 5402643.52 245.954 513188.543 5402642.236 245.954 + + + + + + + + + + + + + + + + + 513188.543 5402642.236 245.954 513189.05 5402643.52 245.954 513188.208 5402640.196 245.954 513188.543 5402642.236 245.954 + + + + + + + + + + + + + + + + + 513204.264 5402638.313 245.954 513188.814 5402636.822 245.954 513188.399 5402638.138 245.954 513204.264 5402638.313 245.954 + + + + + + + + + + + + + + + + + 513204.264 5402638.313 245.954 513188.399 5402638.138 245.954 513188.208 5402640.196 245.954 513204.264 5402638.313 245.954 + + + + + + + + + + + + + + + + + 513159.81 5402652.48 245.954 513164.41 5402654.77 245.954 513163.34 5402653.23 245.954 513159.81 5402652.48 245.954 + + + + + + + + + + + + + + + + + 513159.81 5402652.48 245.954 513156.85 5402654.58 245.954 513157.74 5402659.61 245.954 513159.81 5402652.48 245.954 + + + + + + + + + + + + + + + + + 513157.74 5402659.61 245.954 513164.41 5402654.77 245.954 513159.81 5402652.48 245.954 513157.74 5402659.61 245.954 + + + + + + + + + + + + + + + + + 513161.07 5402674.0 245.954 513164.41 5402654.77 245.954 513157.74 5402659.61 245.954 513161.07 5402674.0 245.954 + + + + + + + + + + + + + + + + + 513156.85 5402654.58 245.954 513156.46 5402657.9 245.954 513157.74 5402659.61 245.954 513156.85 5402654.58 245.954 + + + + + + + + + + + + + + + + + 513177.3 5402651.61 245.954 513180.19 5402660.49 245.954 513179.6 5402650.03 245.954 513177.3 5402651.61 245.954 + + + + + + + + + + + + + + + + + 513177.3 5402651.61 245.954 513164.41 5402654.77 245.954 513180.19 5402660.49 245.954 513177.3 5402651.61 245.954 + + + + + + + + + + + + + + + + + 513180.19 5402660.49 245.954 513189.05 5402643.52 245.954 513179.6 5402650.03 245.954 513180.19 5402660.49 245.954 + + + + + + + + + + + + + + + + + 513183.59 5402667.4 245.954 513188.31 5402675.89 245.954 513184.01 5402667.19 245.954 513183.59 5402667.4 245.954 + + + + + + + + + + + + + + + + + 513161.07 5402674.0 245.954 513180.19 5402660.49 245.954 513164.41 5402654.77 245.954 513161.07 5402674.0 245.954 + + + + + + + + + + + + + + + + + 513180.19 5402660.49 245.954 513184.01 5402667.19 245.954 513199.55 5402647.35 245.954 513180.19 5402660.49 245.954 + + + + + + + + + + + + + + + + + 513177.3 5402651.61 245.954 513174.48 5402647.59 245.954 513164.41 5402654.77 245.954 513177.3 5402651.61 245.954 + + + + + + + + + + + + + + + + + 513184.01 5402667.19 245.954 513188.59 5402675.8 245.954 513210.18 5402667.66 245.954 513184.01 5402667.19 245.954 + + + + + + + + + + + + + + + + + 513134.93 5402671.724 245.954 513134.9 5402672.149 245.954 513134.997 5402671.304 245.954 513134.93 5402671.724 245.954 + + + + + + + + + + + + + + + + + 513134.9 5402672.149 245.954 513134.907 5402672.576 245.954 513134.951 5402672.999 245.954 513134.9 5402672.149 245.954 + + + + + + + + + + + + + + + + + 513134.951 5402672.999 245.954 513134.997 5402671.304 245.954 513134.9 5402672.149 245.954 513134.951 5402672.999 245.954 + + + + + + + + + + + + + + + + + 513134.997 5402671.304 245.954 513134.951 5402672.999 245.954 513140.263 5402667.412 245.954 513134.997 5402671.304 245.954 + + + + + + + + + + + + + + + + + 513135.234 5402670.492 245.954 513135.601 5402669.738 245.954 513135.401 5402670.107 245.954 513135.234 5402670.492 245.954 + + + + + + + + + + + + + + + + + 513135.601 5402669.738 245.954 513138.17 5402667.659 245.954 513135.832 5402669.387 245.954 513135.601 5402669.738 245.954 + + + + + + + + + + + + + + + + + 513135.1 5402670.89 245.954 513138.17 5402667.659 245.954 513135.234 5402670.492 245.954 513135.1 5402670.89 245.954 + + + + + + + + + + + + + + + + + 513134.951 5402672.999 245.954 513135.031 5402673.418 245.954 513135.148 5402673.828 245.954 513134.951 5402672.999 245.954 + + + + + + + + + + + + + + + + + 513135.3 5402674.226 245.954 513140.263 5402667.412 245.954 513134.951 5402672.999 245.954 513135.3 5402674.226 245.954 + + + + + + + + + + + + + + + + + 513139.415 5402667.403 245.954 513135.1 5402670.89 245.954 513134.997 5402671.304 245.954 513139.415 5402667.403 245.954 + + + + + + + + + + + + + + + + + 513135.3 5402674.226 245.954 513135.953 5402675.321 245.954 513140.263 5402667.412 245.954 513135.3 5402674.226 245.954 + + + + + + + + + + + + + + + + + 513135.485 5402674.609 245.954 513135.703 5402674.975 245.954 513135.953 5402675.321 245.954 513135.485 5402674.609 245.954 + + + + + + + + + + + + + + + + + 513135.953 5402675.321 245.954 513135.3 5402674.226 245.954 513135.485 5402674.609 245.954 513135.953 5402675.321 245.954 + + + + + + + + + + + + + + + + + 513135.148 5402673.828 245.954 513135.3 5402674.226 245.954 513134.951 5402672.999 245.954 513135.148 5402673.828 245.954 + + + + + + + + + + + + + + + + + 513136.536 5402675.941 245.954 513136.866 5402676.211 245.954 513137.218 5402676.451 245.954 513136.536 5402675.941 245.954 + + + + + + + + + + + + + + + + + 513136.536 5402675.941 245.954 513135.953 5402675.321 245.954 513136.231 5402675.644 245.954 513136.536 5402675.941 245.954 + + + + + + + + + + + + + + + + + 513135.953 5402675.321 245.954 513136.536 5402675.941 245.954 513137.218 5402676.451 245.954 513135.953 5402675.321 245.954 + + + + + + + + + + + + + + + + + 513137.218 5402676.451 245.954 513140.263 5402667.412 245.954 513135.953 5402675.321 245.954 513137.218 5402676.451 245.954 + + + + + + + + + + + + + + + + + 513140.263 5402667.412 245.954 513137.218 5402676.451 245.954 513137.59 5402676.66 245.954 513140.263 5402667.412 245.954 + + + + + + + + + + + + + + + + + 513137.59 5402676.66 245.954 513137.978 5402676.836 245.954 513138.38 5402676.977 245.954 513137.59 5402676.66 245.954 + + + + + + + + + + + + + + + + + 513135.601 5402669.738 245.954 513135.234 5402670.492 245.954 513138.17 5402667.659 245.954 513135.601 5402669.738 245.954 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 245.954 513141.718 5402676.799 245.954 513142.103 5402676.616 245.954 513142.47 5402676.4 245.954 + + + + + + + + + + + + + + + + + 513139.213 5402677.152 245.954 513140.263 5402667.412 245.954 513137.59 5402676.66 245.954 513139.213 5402677.152 245.954 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 245.954 513141.318 5402676.948 245.954 513141.718 5402676.799 245.954 513142.47 5402676.4 245.954 + + + + + + + + + + + + + + + + + 513140.065 5402677.181 245.954 513140.908 5402677.062 245.954 513141.318 5402676.948 245.954 513140.065 5402677.181 245.954 + + + + + + + + + + + + + + + + + 513137.59 5402676.66 245.954 513138.38 5402676.977 245.954 513139.213 5402677.152 245.954 513137.59 5402676.66 245.954 + + + + + + + + + + + + + + + + + 513157.74 5402659.61 245.954 513143.84 5402669.46 245.954 513161.07 5402674.0 245.954 513157.74 5402659.61 245.954 + + + + + + + + + + + + + + + + + 513184.01 5402667.19 245.954 513188.31 5402675.89 245.954 513188.59 5402675.8 245.954 513184.01 5402667.19 245.954 + + + + + + + + + + + + + + + + + 513143.84 5402669.46 245.954 513142.47 5402676.4 245.954 513161.07 5402674.0 245.954 513143.84 5402669.46 245.954 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 245.954 513160.87 5402678.6 245.954 513161.07 5402674.0 245.954 513142.47 5402676.4 245.954 + + + + + + + + + + + + + + + + + 513180.85 5402710.97 245.954 513160.87 5402678.6 245.954 513142.47 5402676.4 245.954 513180.85 5402710.97 245.954 + + + + + + + + + + + + + + + + + 513188.77 5402676.13 245.954 513210.18 5402667.66 245.954 513188.59 5402675.8 245.954 513188.77 5402676.13 245.954 + + + + + + + + + + + + + + + + + 513140.263 5402667.412 245.954 513139.213 5402677.152 245.954 513141.318 5402676.948 245.954 513140.263 5402667.412 245.954 + + + + + + + + + + + + + + + + + 513141.318 5402676.948 245.954 513142.47 5402676.4 245.954 513141.098 5402667.564 245.954 513141.318 5402676.948 245.954 + + + + + + + + + + + + + + + + + 513138.38 5402676.977 245.954 513138.793 5402677.083 245.954 513139.213 5402677.152 245.954 513138.38 5402676.977 245.954 + + + + + + + + + + + + + + + + + 513140.489 5402677.14 245.954 513140.908 5402677.062 245.954 513140.065 5402677.181 245.954 513140.489 5402677.14 245.954 + + + + + + + + + + + + + + + + + 513139.638 5402677.185 245.954 513141.318 5402676.948 245.954 513139.213 5402677.152 245.954 513139.638 5402677.185 245.954 + + + + + + + + + + + + + + + + + 513141.318 5402676.948 245.954 513139.638 5402677.185 245.954 513140.065 5402677.181 245.954 513141.318 5402676.948 245.954 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 245.954 513179.24 5402735.08 245.954 513180.85 5402710.97 245.954 513142.47 5402676.4 245.954 + + + + + + + + + + + + + + + + + 513179.24 5402735.08 245.954 513186.27 5402711.99 245.954 513180.85 5402710.97 245.954 513179.24 5402735.08 245.954 + + + + + + + + + + + + + + + + + 513179.24 5402735.08 245.954 513210.28 5402712.13 245.954 513186.27 5402711.99 245.954 513179.24 5402735.08 245.954 + + + + + + + + + + + + + + + + + 513189.91 5402691.67 245.954 513188.77 5402676.13 245.954 513183.2 5402679.26 245.954 513189.91 5402691.67 245.954 + + + + + + + + + + + + + + + + + 513142.47 5402676.4 245.954 513143.84 5402669.46 245.954 513143.577 5402669.127 245.954 513142.47 5402676.4 245.954 + + + + + + + + + + + + + + + + + 513189.05 5402643.52 245.954 513180.19 5402660.49 245.954 513199.55 5402647.35 245.954 513189.05 5402643.52 245.954 + + + + + + + + + + + + + + + + + 513195.038 5402631.9 245.954 513194.361 5402632.038 245.954 513195.725 5402631.821 245.954 513195.038 5402631.9 245.954 + + + + + + + + + + + + + + + + + 513193.055 5402632.483 245.954 513194.361 5402632.038 245.954 513193.699 5402632.232 245.954 513193.055 5402632.483 245.954 + + + + + + + + + + + + + + + + + 513193.055 5402632.483 245.954 513195.725 5402631.821 245.954 513194.361 5402632.038 245.954 513193.055 5402632.483 245.954 + + + + + + + + + + + + + + + + + 513202.005 5402634.133 245.954 513195.725 5402631.821 245.954 513193.055 5402632.483 245.954 513202.005 5402634.133 245.954 + + + + + + + + + + + + + + + + + 513195.725 5402631.821 245.954 513199.755 5402632.566 245.954 513197.105 5402631.838 245.954 513195.725 5402631.821 245.954 + + + + + + + + + + + + + + + + + 513198.462 5402632.089 245.954 513197.789 5402631.934 245.954 513197.105 5402631.838 245.954 513198.462 5402632.089 245.954 + + + + + + + + + + + + + + + + + 513198.462 5402632.089 245.954 513199.755 5402632.566 245.954 513199.12 5402632.3 245.954 513198.462 5402632.089 245.954 + + + + + + + + + + + + + + + + + 513198.462 5402632.089 245.954 513197.105 5402631.838 245.954 513199.755 5402632.566 245.954 513198.462 5402632.089 245.954 + + + + + + + + + + + + + + + + + 513197.105 5402631.838 245.954 513196.415 5402631.8 245.954 513195.725 5402631.821 245.954 513197.105 5402631.838 245.954 + + + + + + + + + + + + + + + + + 513200.947 5402633.254 245.954 513199.755 5402632.566 245.954 513195.725 5402631.821 245.954 513200.947 5402633.254 245.954 + + + + + + + + + + + + + + + + + 513190.277 5402634.493 245.954 513189.104 5402636.195 245.954 513190.76 5402633.999 245.954 513190.277 5402634.493 245.954 + + + + + + + + + + + + + + + + + 513189.446 5402635.595 245.954 513190.277 5402634.493 245.954 513189.838 5402635.026 245.954 513189.446 5402635.595 245.954 + + + + + + + + + + + + + + + + + 513189.446 5402635.595 245.954 513189.104 5402636.195 245.954 513190.277 5402634.493 245.954 513189.446 5402635.595 245.954 + + + + + + + + + + + + + + + + + 513190.76 5402633.999 245.954 513189.104 5402636.195 245.954 513191.843 5402633.143 245.954 513190.76 5402633.999 245.954 + + + + + + + + + + + + + + + + + 513191.843 5402633.143 245.954 513193.055 5402632.483 245.954 513192.435 5402632.787 245.954 513191.843 5402633.143 245.954 + + + + + + + + + + + + + + + + + 513200.947 5402633.254 245.954 513200.366 5402632.884 245.954 513199.755 5402632.566 245.954 513200.947 5402633.254 245.954 + + + + + + + + + + + + + + + + + 513191.843 5402633.143 245.954 513202.005 5402634.133 245.954 513193.055 5402632.483 245.954 513191.843 5402633.143 245.954 + + + + + + + + + + + + + + + + + 513203.277 5402635.754 245.954 513191.843 5402633.143 245.954 513189.104 5402636.195 245.954 513203.277 5402635.754 245.954 + + + + + + + + + + + + + + + + + 513189.05 5402643.52 245.954 513200.76 5402646.695 245.954 513203.503 5402643.664 245.954 513189.05 5402643.52 245.954 + + + + + + + + + + + + + + + + + 513202.005 5402634.133 245.954 513200.947 5402633.254 245.954 513195.725 5402631.821 245.954 513202.005 5402634.133 245.954 + + + + + + + + + + + + + + + + + 513191.843 5402633.143 245.954 513191.283 5402633.548 245.954 513190.76 5402633.999 245.954 513191.843 5402633.143 245.954 + + + + + + + + + + + + + + + + + 513200.76 5402646.695 245.954 513189.05 5402643.52 245.954 513200.169 5402647.048 245.954 513200.76 5402646.695 245.954 + + + + + + + + + + + + + + + + + 513191.843 5402633.143 245.954 513203.277 5402635.754 245.954 513202.005 5402634.133 245.954 513191.843 5402633.143 245.954 + + + + + + + + + + + + + + + + + 513202.9 5402635.179 245.954 513202.005 5402634.133 245.954 513203.277 5402635.754 245.954 513202.9 5402635.179 245.954 + + + + + + + + + + + + + + + + + 513202.9 5402635.179 245.954 513202.475 5402634.637 245.954 513202.005 5402634.133 245.954 513202.9 5402635.179 245.954 + + + + + + + + + + + + + + + + + 513203.277 5402635.754 245.954 513188.814 5402636.822 245.954 513204.264 5402638.313 245.954 513203.277 5402635.754 245.954 + + + + + + + + + + + + + + + + + 513203.88 5402636.992 245.954 513203.277 5402635.754 245.954 513204.1 5402637.644 245.954 513203.88 5402636.992 245.954 + + + + + + + + + + + + + + + + + 513203.277 5402635.754 245.954 513204.264 5402638.313 245.954 513204.1 5402637.644 245.954 513203.277 5402635.754 245.954 + + + + + + + + + + + + + + + + + 513204.41 5402640.368 245.954 513204.371 5402638.993 245.954 513204.264 5402638.313 245.954 513204.41 5402640.368 245.954 + + + + + + + + + + + + + + + + + 513188.208 5402640.196 245.954 513204.41 5402640.368 245.954 513204.264 5402638.313 245.954 513188.208 5402640.196 245.954 + + + + + + + + + + + + + + + + + 513203.277 5402635.754 245.954 513203.88 5402636.992 245.954 513203.605 5402636.36 245.954 513203.277 5402635.754 245.954 + + + + + + + + + + + + + + + + + 513204.371 5402638.993 245.954 513204.41 5402640.368 245.954 513204.42 5402639.68 245.954 513204.371 5402638.993 245.954 + + + + + + + + + + + + + + + + + 513203.159 5402644.261 245.954 513202.326 5402645.355 245.954 513202.766 5402644.826 245.954 513203.159 5402644.261 245.954 + + + + + + + + + + + + + + + + + 513200.76 5402646.695 245.954 513201.32 5402646.294 245.954 513201.843 5402645.846 245.954 513200.76 5402646.695 245.954 + + + + + + + + + + + + + + + + + 513203.159 5402644.261 245.954 513203.503 5402643.664 245.954 513202.326 5402645.355 245.954 513203.159 5402644.261 245.954 + + + + + + + + + + + + + + + + + 513200.76 5402646.695 245.954 513201.843 5402645.846 245.954 513202.326 5402645.355 245.954 513200.76 5402646.695 245.954 + + + + + + + + + + + + + + + + + 513204.217 5402641.731 245.954 513204.343 5402641.054 245.954 513204.41 5402640.368 245.954 513204.217 5402641.731 245.954 + + + + + + + + + + + + + + + + + 513204.41 5402640.368 245.954 513204.034 5402642.395 245.954 513204.217 5402641.731 245.954 513204.41 5402640.368 245.954 + + + + + + + + + + + + + + + + + 513203.503 5402643.664 245.954 513203.796 5402643.041 245.954 513204.034 5402642.395 245.954 513203.503 5402643.664 245.954 + + + + + + + + + + + + + + + + + 513204.034 5402642.395 245.954 513204.41 5402640.368 245.954 513203.503 5402643.664 245.954 513204.034 5402642.395 245.954 + + + + + + + + + + + + + + + + + 513202.326 5402645.355 245.954 513203.503 5402643.664 245.954 513200.76 5402646.695 245.954 513202.326 5402645.355 245.954 + + + + + + + + + + + + + + + + + 513189.05 5402643.52 245.954 513203.503 5402643.664 245.954 513204.41 5402640.368 245.954 513189.05 5402643.52 245.954 + + + + + + + + + + + + + + + + + 513200.947 5402633.254 245.954 513202.005 5402634.133 245.954 513201.495 5402633.671 245.954 513200.947 5402633.254 245.954 + + + + + + + + + + + + + + + + + 513199.55 5402647.35 245.954 513200.169 5402647.048 245.954 513189.05 5402643.52 245.954 513199.55 5402647.35 245.954 + + + + + + + + + + + + + + + + + 513189.91 5402691.67 245.954 513218.36 5402696.35 245.954 513210.18 5402667.66 245.954 513189.91 5402691.67 245.954 + + + + + + + + + + + + + + + + + 513189.91 5402691.67 245.954 513210.18 5402667.66 245.954 513188.77 5402676.13 245.954 513189.91 5402691.67 245.954 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 245.954 513210.18 5402667.66 245.954 513218.36 5402696.35 245.954 513227.58 5402685.17 245.954 + + + + + + + + + + + + + + + + + 513206.2 5402706.46 245.954 513218.36 5402696.35 245.954 513189.91 5402691.67 245.954 513206.2 5402706.46 245.954 + + + + + + + + + + + + + + + + + 513184.01 5402667.19 245.954 513210.18 5402667.66 245.954 513199.55 5402647.35 245.954 513184.01 5402667.19 245.954 + + + + + + + + + + + + + + + + + 513221.886 5402697.716 245.954 513227.58 5402685.17 245.954 513218.89 5402696.704 245.954 513221.886 5402697.716 245.954 + + + + + + + + + + + + + + + + + 513218.36 5402696.35 245.954 513218.89 5402696.704 245.954 513227.58 5402685.17 245.954 513218.36 5402696.35 245.954 + + + + + + + + + + + + + + + + + 513219.38 5402662.49 245.954 513210.18 5402667.66 245.954 513227.58 5402685.17 245.954 513219.38 5402662.49 245.954 + + + + + + + + + + + + + + + + + 513220.032 5402697.267 245.954 513221.256 5402697.621 245.954 513218.89 5402696.704 245.954 513220.032 5402697.267 245.954 + + + + + + + + + + + + + + + + + 513218.89 5402696.704 245.954 513219.449 5402697.011 245.954 513220.032 5402697.267 245.954 513218.89 5402696.704 245.954 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 245.954 513221.886 5402697.716 245.954 513226.19 5402696.839 245.954 513227.58 5402685.17 245.954 + + + + + + + + + + + + + + + + + 513225.028 5402697.359 245.954 513225.621 5402697.125 245.954 513226.19 5402696.839 245.954 513225.028 5402697.359 245.954 + + + + + + + + + + + + + + + + + 513220.636 5402697.471 245.954 513221.256 5402697.621 245.954 513220.032 5402697.267 245.954 513220.636 5402697.471 245.954 + + + + + + + + + + + + + + + + + 513195.15 5402704.19 245.954 513210.28 5402712.13 245.954 513206.2 5402706.46 245.954 513195.15 5402704.19 245.954 + + + + + + + + + + + + + + + + + 513195.15 5402704.19 245.954 513206.2 5402706.46 245.954 513189.91 5402691.67 245.954 513195.15 5402704.19 245.954 + + + + + + + + + + + + + + + + + 513195.15 5402704.19 245.954 513186.27 5402711.99 245.954 513210.28 5402712.13 245.954 513195.15 5402704.19 245.954 + + + + + + + + + + + + + + + + + 513223.792 5402697.668 245.954 513224.417 5402697.541 245.954 513225.028 5402697.359 245.954 513223.792 5402697.668 245.954 + + + + + + + + + + + + + + + + + 513225.028 5402697.359 245.954 513221.886 5402697.716 245.954 513223.792 5402697.668 245.954 513225.028 5402697.359 245.954 + + + + + + + + + + + + + + + + + 513223.792 5402697.668 245.954 513221.886 5402697.716 245.954 513222.522 5402697.756 245.954 513223.792 5402697.668 245.954 + + + + + + + + + + + + + + + + + 513222.522 5402697.756 245.954 513223.159 5402697.74 245.954 513223.792 5402697.668 245.954 513222.522 5402697.756 245.954 + + + + + + + + + + + + + + + + + 513221.256 5402697.621 245.954 513221.886 5402697.716 245.954 513218.89 5402696.704 245.954 513221.256 5402697.621 245.954 + + + + + + + + + + + + + + + + + 513226.19 5402696.839 245.954 513221.886 5402697.716 245.954 513225.028 5402697.359 245.954 513226.19 5402696.839 245.954 + + + + + + + + + + + + + + + + + 513189.91 5402691.67 245.954 513187.07 5402693.3 245.954 513195.15 5402704.19 245.954 513189.91 5402691.67 245.954 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 245.954 513228.459 5402686.139 245.954 513228.042 5402685.635 245.954 513227.58 5402685.17 245.954 + + + + + + + + + + + + + + + + + 513228.459 5402686.139 245.954 513229.15 5402687.25 245.954 513228.83 5402686.679 245.954 513228.459 5402686.139 245.954 + + + + + + + + + + + + + + + + + 513228.169 5402695.223 245.954 513228.459 5402686.139 245.954 513227.58 5402685.17 245.954 513228.169 5402695.223 245.954 + + + + + + + + + + + + + + + + + 513229.417 5402687.848 245.954 513229.15 5402687.25 245.954 513228.459 5402686.139 245.954 513229.417 5402687.848 245.954 + + + + + + + + + + + + + + + + + 513228.459 5402686.139 245.954 513229.819 5402691.709 245.954 513229.629 5402688.467 245.954 513228.459 5402686.139 245.954 + + + + + + + + + + + + + + + + + 513229.882 5402689.751 245.954 513229.629 5402688.467 245.954 513229.92 5402690.405 245.954 513229.882 5402689.751 245.954 + + + + + + + + + + + + + + + + + 513229.882 5402689.751 245.954 513229.785 5402689.104 245.954 513229.629 5402688.467 245.954 513229.882 5402689.751 245.954 + + + + + + + + + + + + + + + + + 513229.629 5402688.467 245.954 513229.417 5402687.848 245.954 513228.459 5402686.139 245.954 513229.629 5402688.467 245.954 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 245.954 513230.75 5402683.35 245.954 513219.38 5402662.49 245.954 513227.58 5402685.17 245.954 + + + + + + + + + + + + + + + + + 513229.92 5402690.405 245.954 513229.629 5402688.467 245.954 513229.899 5402691.059 245.954 513229.92 5402690.405 245.954 + + + + + + + + + + + + + + + + + 513229.485 5402692.974 245.954 513228.169 5402695.223 245.954 513228.573 5402694.708 245.954 513229.485 5402692.974 245.954 + + + + + + + + + + + + + + + + + 513227.58 5402685.17 245.954 513227.244 5402696.124 245.954 513227.72 5402695.7 245.954 513227.58 5402685.17 245.954 + + + + + + + + + + + + + + + + + 513227.72 5402695.7 245.954 513228.169 5402695.223 245.954 513227.58 5402685.17 245.954 513227.72 5402695.7 245.954 + + + + + + + + + + + + + + + + + 513226.733 5402696.505 245.954 513227.244 5402696.124 245.954 513226.19 5402696.839 245.954 513226.733 5402696.505 245.954 + + + + + + + + + + + + + + + + + 513229.485 5402692.974 245.954 513229.819 5402691.709 245.954 513228.459 5402686.139 245.954 513229.485 5402692.974 245.954 + + + + + + + + + + + + + + + + + 513229.485 5402692.974 245.954 513229.681 5402692.349 245.954 513229.819 5402691.709 245.954 513229.485 5402692.974 245.954 + + + + + + + + + + + + + + + + + 513228.573 5402694.708 245.954 513228.929 5402694.159 245.954 513229.234 5402693.579 245.954 513228.573 5402694.708 245.954 + + + + + + + + + + + + + + + + + 513228.573 5402694.708 245.954 513229.234 5402693.579 245.954 513229.485 5402692.974 245.954 513228.573 5402694.708 245.954 + + + + + + + + + + + + + + + + + 513228.169 5402695.223 245.954 513229.485 5402692.974 245.954 513228.459 5402686.139 245.954 513228.169 5402695.223 245.954 + + + + + + + + + + + + + + + + + 513229.899 5402691.059 245.954 513229.629 5402688.467 245.954 513229.819 5402691.709 245.954 513229.899 5402691.059 245.954 + + + + + + + + + + + + + + + + + 513227.244 5402696.124 245.954 513227.58 5402685.17 245.954 513226.19 5402696.839 245.954 513227.244 5402696.124 245.954 + + + + + + + + + + + + + + + + + 513203.277 5402635.754 245.954 513189.104 5402636.195 245.954 513188.814 5402636.822 245.954 513203.277 5402635.754 245.954 + + + + + + + + + + + + + + Deutschland + + Stuttgart + + Schillerplatz + + + + + + + + + + \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive4.gml b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive4.gml new file mode 100644 index 0000000..0519804 --- /dev/null +++ b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive4.gml @@ -0,0 +1,2170 @@ + + + + + 2022-11-17 + + http://repository.gdi-de.org/schemas/adv/citygml/fdv/art.htm#_9100 + + DEBWL52210003wz8 + + + + 08111000 + + + 1000 + + + 2000 + + + 3000 + + + 1000 + + + 1100 + + + 2023-03-12 + + 31001_3012 + 9999 + 24.46 + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 513000.38 5402430.08 269.3 513021.1 5402428.79 269.3 513017.31 5402431.67 269.3 513000.38 5402430.08 269.3 + + + + + + + + + + + + + + + + + 513000.38 5402430.08 269.3 513036.15 5402417.28 269.3 513021.1 5402428.79 269.3 513000.38 5402430.08 269.3 + + + + + + + + + + + + + + + + + 513023.62 5402430.31 269.3 513023.22 5402430.6 269.3 513022.53 5402430.32 269.3 513023.62 5402430.31 269.3 + + + + + + + + + + + + + + + + + 513022.53 5402430.32 269.3 513021.1 5402428.79 269.3 513023.62 5402430.31 269.3 513022.53 5402430.32 269.3 + + + + + + + + + + + + + + + + + 513025.87 5402427.53 269.3 513023.62 5402430.31 269.3 513021.1 5402428.79 269.3 513025.87 5402427.53 269.3 + + + + + + + + + + + + + + + + + 513021.1 5402428.79 269.3 513022.53 5402430.32 269.3 513022.15 5402430.49 269.3 513021.1 5402428.79 269.3 + + + + + + + + + + + + + + + + + 513036.15 5402417.28 269.3 513034.63 5402421.88 269.3 513033.58 5402421.69 269.3 513036.15 5402417.28 269.3 + + + + + + + + + + + + + + + + + 513033.58 5402421.69 269.3 513025.87 5402427.53 269.3 513036.15 5402417.28 269.3 513033.58 5402421.69 269.3 + + + + + + + + + + + + + + + + + 513025.91 5402428.65 269.3 513023.62 5402430.31 269.3 513025.87 5402427.53 269.3 513025.91 5402428.65 269.3 + + + + + + + + + + + + + + + + + 513025.87 5402427.53 269.3 513021.1 5402428.79 269.3 513036.15 5402417.28 269.3 513025.87 5402427.53 269.3 + + + + + + + + + + + + + + + + + 513043.05 5402397.8 269.3 513036.15 5402417.28 269.3 513000.38 5402430.08 269.3 513043.05 5402397.8 269.3 + + + + + + + + + + + + + + + + + 513017.31 5402431.67 269.3 513017.24 5402433.17 269.3 513007.27 5402439.2 269.3 513017.31 5402431.67 269.3 + + + + + + + + + + + + + + + + + 513007.27 5402439.2 269.3 513000.38 5402430.08 269.3 513017.31 5402431.67 269.3 513007.27 5402439.2 269.3 + + + + + + + + + + + + + + + + + 513007.27 5402439.2 269.3 513017.24 5402433.17 269.3 513025.34 5402440.66 269.3 513007.27 5402439.2 269.3 + + + + + + + + + + + + + + + + + 513028.33 5402440.49 269.3 513035.2 5402450.0 269.3 513025.34 5402440.66 269.3 513028.33 5402440.49 269.3 + + + + + + + + + + + + + + + + + 513025.34 5402440.66 269.3 513026.8 5402439.07 269.3 513028.33 5402440.49 269.3 513025.34 5402440.66 269.3 + + + + + + + + + + + + + + + + + 513028.33 5402440.49 269.3 513031.22 5402437.41 269.3 513035.2 5402450.0 269.3 513028.33 5402440.49 269.3 + + + + + + + + + + + + + + + + + 513035.2 5402450.0 269.3 513007.27 5402439.2 269.3 513025.34 5402440.66 269.3 513035.2 5402450.0 269.3 + + + + + + + + + + + + + + + + + 513031.22 5402437.41 269.3 513055.79 5402427.84 269.3 513035.2 5402450.0 269.3 513031.22 5402437.41 269.3 + + + + + + + + + + + + + + + + + 513035.2 5402450.0 269.3 513041.48 5402471.56 269.3 513007.27 5402439.2 269.3 513035.2 5402450.0 269.3 + + + + + + + + + + + + + + + + + 513036.15 5402417.28 269.3 513037.15 5402419.07 269.3 513034.63 5402421.88 269.3 513036.15 5402417.28 269.3 + + + + + + + + + + + + + + + + + 513043.05 5402397.8 269.3 513049.15 5402405.85 269.3 513040.78 5402413.76 269.3 513043.05 5402397.8 269.3 + + + + + + + + + + + + + + + + + 513036.15 5402417.28 269.3 513037.44 5402418.92 269.3 513037.15 5402419.07 269.3 513036.15 5402417.28 269.3 + + + + + + + + + + + + + + + + + 513036.15 5402417.28 269.3 513043.05 5402397.8 269.3 513040.78 5402413.76 269.3 513036.15 5402417.28 269.3 + + + + + + + + + + + + + + + + + 513049.15 5402405.85 269.3 513055.79 5402427.84 269.3 513047.4 5402420.11 269.3 513049.15 5402405.85 269.3 + + + + + + + + + + + + + + + + + 513047.4 5402420.11 269.3 513040.78 5402413.76 269.3 513049.15 5402405.85 269.3 513047.4 5402420.11 269.3 + + + + + + + + + + + + + + + + + 513078.66 5402433.75 269.3 513065.57 5402437.14 269.3 513055.79 5402427.84 269.3 513078.66 5402433.75 269.3 + + + + + + + + + + + + + + + + + 513055.79 5402427.84 269.3 513049.15 5402405.85 269.3 513078.66 5402433.75 269.3 513055.79 5402427.84 269.3 + + + + + + + + + + + + + + + + + 513078.66 5402433.75 269.3 513073.17 5402438.72 269.3 513065.57 5402437.14 269.3 513078.66 5402433.75 269.3 + + + + + + + + + + + + + + + + + 513047.4 5402420.11 269.3 513055.79 5402427.84 269.3 513031.22 5402437.41 269.3 513047.4 5402420.11 269.3 + + + + + + + + + + + + + + + + + 513041.69 5402471.35 269.3 513049.66 5402463.63 269.3 513041.92 5402471.49 269.3 513041.69 5402471.35 269.3 + + + + + + + + + + + + + + + + + 513041.92 5402471.49 269.3 513041.94 5402472.08 269.3 513041.6 5402471.79 269.3 513041.92 5402471.49 269.3 + + + + + + + + + + + + + + + + + 513049.66 5402463.63 269.3 513041.94 5402472.08 269.3 513041.92 5402471.49 269.3 513049.66 5402463.63 269.3 + + + + + + + + + + + + + + + + + 513035.2 5402450.0 269.3 513041.69 5402471.35 269.3 513041.48 5402471.56 269.3 513035.2 5402450.0 269.3 + + + + + + + + + + + + + + + + + 513073.17 5402438.72 269.3 513078.66 5402433.75 269.3 513073.6 5402439.16 269.3 513073.17 5402438.72 269.3 + + + + + + + + + + + + + + + + + 513049.66 5402463.63 269.3 513041.69 5402471.35 269.3 513045.08 5402459.26 269.3 513049.66 5402463.63 269.3 + + + + + + + + + + + + + + + + + 513065.57 5402437.14 269.3 513073.17 5402438.72 269.3 513070.4 5402441.75 269.3 513065.57 5402437.14 269.3 + + + + + + + + + + + + + + + + + 513041.69 5402471.35 269.3 513035.2 5402450.0 269.3 513045.08 5402459.26 269.3 513041.69 5402471.35 269.3 + + + + + + + + + + + + + + + + + 513034.63 5402421.88 269.3 513037.15 5402419.07 269.3 513037.23 5402419.94 269.3 513034.63 5402421.88 269.3 + + + + + + + + + + + + + + + + + 513043.05 5402397.8 244.842 513049.15 5402405.85 244.842 513049.15 5402405.85 269.3 513043.05 5402397.8 269.3 513043.05 5402397.8 244.842 + + + + + + + + + + + + + + + + + 513049.15 5402405.85 244.842 513078.66 5402433.75 244.842 513078.66 5402433.75 269.3 513049.15 5402405.85 269.3 513049.15 5402405.85 244.842 + + + + + + + + + + + + + + + + + 513078.66 5402433.75 244.842 513073.6 5402439.16 244.842 513073.6 5402439.16 269.3 513078.66 5402433.75 269.3 513078.66 5402433.75 244.842 + + + + + + + + + + + + + + + + + 513073.6 5402439.16 244.842 513073.17 5402438.72 244.842 513073.17 5402438.72 269.3 513073.6 5402439.16 269.3 513073.6 5402439.16 244.842 + + + + + + + + + + + + + + + + + 513073.17 5402438.72 244.842 513070.4 5402441.75 244.842 513070.4 5402441.75 269.3 513073.17 5402438.72 269.3 513073.17 5402438.72 244.842 + + + + + + + + + + + + + + + + + 513070.4 5402441.75 244.842 513065.57 5402437.14 244.842 513065.57 5402437.14 269.3 513070.4 5402441.75 269.3 513070.4 5402441.75 244.842 + + + + + + + + + + + + + + + + + 513065.57 5402437.14 244.842 513055.79 5402427.84 244.842 513055.79 5402427.84 269.3 513065.57 5402437.14 269.3 513065.57 5402437.14 244.842 + + + + + + + + + + + + + + + + + 513055.79 5402427.84 244.842 513035.2 5402450.0 244.842 513035.2 5402450.0 269.3 513055.79 5402427.84 269.3 513055.79 5402427.84 244.842 + + + + + + + + + + + + + + + + + 513035.2 5402450.0 244.842 513045.08 5402459.26 244.842 513045.08 5402459.26 269.3 513035.2 5402450.0 269.3 513035.2 5402450.0 244.842 + + + + + + + + + + + + + + + + + 513045.08 5402459.26 244.842 513049.66 5402463.63 244.842 513049.66 5402463.63 269.3 513045.08 5402459.26 269.3 513045.08 5402459.26 244.842 + + + + + + + + + + + + + + + + + 513049.66 5402463.63 244.842 513041.94 5402472.08 244.842 513041.94 5402472.08 269.3 513049.66 5402463.63 269.3 513049.66 5402463.63 244.842 + + + + + + + + + + + + + + + + + 513041.94 5402472.08 244.842 513041.6 5402471.79 244.842 513041.6 5402471.79 269.3 513041.94 5402472.08 269.3 513041.94 5402472.08 244.842 + + + + + + + + + + + + + + + + + 513041.6 5402471.79 244.842 513041.92 5402471.49 244.842 513041.92 5402471.49 269.3 513041.6 5402471.79 269.3 513041.6 5402471.79 244.842 + + + + + + + + + + + + + + + + + 513041.92 5402471.49 244.842 513041.69 5402471.35 244.842 513041.69 5402471.35 269.3 513041.92 5402471.49 269.3 513041.92 5402471.49 244.842 + + + + + + + + + + + + + + + + + 513041.69 5402471.35 244.842 513041.48 5402471.56 244.842 513041.48 5402471.56 269.3 513041.69 5402471.35 269.3 513041.69 5402471.35 244.842 + + + + + + + + + + + + + + + + + 513007.27 5402439.2 269.3 513041.48 5402471.56 269.3 513041.48 5402471.56 244.842 513007.27 5402439.2 244.842 513007.27 5402439.2 269.3 + + + + + + + + + + + + + + + + + 513007.27 5402439.2 244.842 513000.38 5402430.08 244.842 513000.38 5402430.08 269.3 513007.27 5402439.2 269.3 513007.27 5402439.2 244.842 + + + + + + + + + + + + + + + + + 513000.38 5402430.08 244.842 513043.05 5402397.8 244.842 513043.05 5402397.8 269.3 513000.38 5402430.08 269.3 513000.38 5402430.08 244.842 + + + + + + + + + + + + + + + + + 513025.87 5402427.53 244.842 513025.91 5402428.65 244.842 513025.91 5402428.65 269.3 513025.87 5402427.53 269.3 513025.87 5402427.53 244.842 + + + + + + + + + + + + + + + + + 513025.91 5402428.65 244.842 513023.62 5402430.31 244.842 513023.62 5402430.31 269.3 513025.91 5402428.65 269.3 513025.91 5402428.65 244.842 + + + + + + + + + + + + + + + + + 513023.62 5402430.31 244.842 513023.22 5402430.6 244.842 513023.22 5402430.6 269.3 513023.62 5402430.31 269.3 513023.62 5402430.31 244.842 + + + + + + + + + + + + + + + + + 513023.22 5402430.6 244.842 513022.53 5402430.32 244.842 513022.53 5402430.32 269.3 513023.22 5402430.6 269.3 513023.22 5402430.6 244.842 + + + + + + + + + + + + + + + + + 513022.53 5402430.32 244.842 513022.15 5402430.49 244.842 513022.15 5402430.49 269.3 513022.53 5402430.32 269.3 513022.53 5402430.32 244.842 + + + + + + + + + + + + + + + + + 513022.15 5402430.49 244.842 513021.1 5402428.79 244.842 513021.1 5402428.79 269.3 513022.15 5402430.49 269.3 513022.15 5402430.49 244.842 + + + + + + + + + + + + + + + + + 513021.1 5402428.79 244.842 513017.31 5402431.67 244.842 513017.31 5402431.67 269.3 513021.1 5402428.79 269.3 513021.1 5402428.79 244.842 + + + + + + + + + + + + + + + + + 513017.31 5402431.67 244.842 513017.24 5402433.17 244.842 513017.24 5402433.17 269.3 513017.31 5402431.67 269.3 513017.31 5402431.67 244.842 + + + + + + + + + + + + + + + + + 513017.24 5402433.17 244.842 513025.34 5402440.66 244.842 513025.34 5402440.66 269.3 513017.24 5402433.17 269.3 513017.24 5402433.17 244.842 + + + + + + + + + + + + + + + + + 513025.34 5402440.66 244.842 513026.8 5402439.07 244.842 513026.8 5402439.07 269.3 513025.34 5402440.66 269.3 513025.34 5402440.66 244.842 + + + + + + + + + + + + + + + + + 513026.8 5402439.07 244.842 513028.33 5402440.49 244.842 513028.33 5402440.49 269.3 513026.8 5402439.07 269.3 513026.8 5402439.07 244.842 + + + + + + + + + + + + + + + + + 513028.33 5402440.49 244.842 513031.22 5402437.41 244.842 513031.22 5402437.41 269.3 513028.33 5402440.49 269.3 513028.33 5402440.49 244.842 + + + + + + + + + + + + + + + + + 513047.4 5402420.11 269.3 513031.22 5402437.41 269.3 513031.22 5402437.41 244.842 513047.4 5402420.11 244.842 513047.4 5402420.11 269.3 + + + + + + + + + + + + + + + + + 513047.4 5402420.11 244.842 513040.78 5402413.76 244.842 513040.78 5402413.76 269.3 513047.4 5402420.11 269.3 513047.4 5402420.11 244.842 + + + + + + + + + + + + + + + + + 513040.78 5402413.76 244.842 513036.15 5402417.28 244.842 513036.15 5402417.28 269.3 513040.78 5402413.76 269.3 513040.78 5402413.76 244.842 + + + + + + + + + + + + + + + + + 513036.15 5402417.28 244.842 513037.44 5402418.92 244.842 513037.44 5402418.92 269.3 513036.15 5402417.28 269.3 513036.15 5402417.28 244.842 + + + + + + + + + + + + + + + + + 513037.44 5402418.92 244.842 513037.15 5402419.07 244.842 513037.15 5402419.07 269.3 513037.44 5402418.92 269.3 513037.44 5402418.92 244.842 + + + + + + + + + + + + + + + + + 513037.15 5402419.07 244.842 513037.23 5402419.94 244.842 513037.23 5402419.94 269.3 513037.15 5402419.07 269.3 513037.15 5402419.07 244.842 + + + + + + + + + + + + + + + + + 513037.23 5402419.94 244.842 513034.63 5402421.88 244.842 513034.63 5402421.88 269.3 513037.23 5402419.94 269.3 513037.23 5402419.94 244.842 + + + + + + + + + + + + + + + + + 513034.63 5402421.88 244.842 513033.58 5402421.69 244.842 513033.58 5402421.69 269.3 513034.63 5402421.88 269.3 513034.63 5402421.88 244.842 + + + + + + + + + + + + + + + + + 513033.58 5402421.69 244.842 513025.87 5402427.53 244.842 513025.87 5402427.53 269.3 513033.58 5402421.69 269.3 513033.58 5402421.69 244.842 + + + + + + + + + + + + + + + + + 513017.31 5402431.67 244.842 513021.1 5402428.79 244.842 513000.38 5402430.08 244.842 513017.31 5402431.67 244.842 + + + + + + + + + + + + + + + + + 513021.1 5402428.79 244.842 513036.15 5402417.28 244.842 513000.38 5402430.08 244.842 513021.1 5402428.79 244.842 + + + + + + + + + + + + + + + + + 513022.53 5402430.32 244.842 513023.22 5402430.6 244.842 513023.62 5402430.31 244.842 513022.53 5402430.32 244.842 + + + + + + + + + + + + + + + + + 513023.62 5402430.31 244.842 513021.1 5402428.79 244.842 513022.53 5402430.32 244.842 513023.62 5402430.31 244.842 + + + + + + + + + + + + + + + + + 513021.1 5402428.79 244.842 513023.62 5402430.31 244.842 513025.87 5402427.53 244.842 513021.1 5402428.79 244.842 + + + + + + + + + + + + + + + + + 513022.15 5402430.49 244.842 513022.53 5402430.32 244.842 513021.1 5402428.79 244.842 513022.15 5402430.49 244.842 + + + + + + + + + + + + + + + + + 513033.58 5402421.69 244.842 513034.63 5402421.88 244.842 513036.15 5402417.28 244.842 513033.58 5402421.69 244.842 + + + + + + + + + + + + + + + + + 513036.15 5402417.28 244.842 513025.87 5402427.53 244.842 513033.58 5402421.69 244.842 513036.15 5402417.28 244.842 + + + + + + + + + + + + + + + + + 513025.87 5402427.53 244.842 513023.62 5402430.31 244.842 513025.91 5402428.65 244.842 513025.87 5402427.53 244.842 + + + + + + + + + + + + + + + + + 513036.15 5402417.28 244.842 513021.1 5402428.79 244.842 513025.87 5402427.53 244.842 513036.15 5402417.28 244.842 + + + + + + + + + + + + + + + + + 513000.38 5402430.08 244.842 513036.15 5402417.28 244.842 513043.05 5402397.8 244.842 513000.38 5402430.08 244.842 + + + + + + + + + + + + + + + + + 513007.27 5402439.2 244.842 513017.24 5402433.17 244.842 513017.31 5402431.67 244.842 513007.27 5402439.2 244.842 + + + + + + + + + + + + + + + + + 513017.31 5402431.67 244.842 513000.38 5402430.08 244.842 513007.27 5402439.2 244.842 513017.31 5402431.67 244.842 + + + + + + + + + + + + + + + + + 513025.34 5402440.66 244.842 513017.24 5402433.17 244.842 513007.27 5402439.2 244.842 513025.34 5402440.66 244.842 + + + + + + + + + + + + + + + + + 513025.34 5402440.66 244.842 513035.2 5402450.0 244.842 513028.33 5402440.49 244.842 513025.34 5402440.66 244.842 + + + + + + + + + + + + + + + + + 513028.33 5402440.49 244.842 513026.8 5402439.07 244.842 513025.34 5402440.66 244.842 513028.33 5402440.49 244.842 + + + + + + + + + + + + + + + + + 513035.2 5402450.0 244.842 513031.22 5402437.41 244.842 513028.33 5402440.49 244.842 513035.2 5402450.0 244.842 + + + + + + + + + + + + + + + + + 513025.34 5402440.66 244.842 513007.27 5402439.2 244.842 513035.2 5402450.0 244.842 513025.34 5402440.66 244.842 + + + + + + + + + + + + + + + + + 513035.2 5402450.0 244.842 513055.79 5402427.84 244.842 513031.22 5402437.41 244.842 513035.2 5402450.0 244.842 + + + + + + + + + + + + + + + + + 513007.27 5402439.2 244.842 513041.48 5402471.56 244.842 513035.2 5402450.0 244.842 513007.27 5402439.2 244.842 + + + + + + + + + + + + + + + + + 513034.63 5402421.88 244.842 513037.15 5402419.07 244.842 513036.15 5402417.28 244.842 513034.63 5402421.88 244.842 + + + + + + + + + + + + + + + + + 513040.78 5402413.76 244.842 513049.15 5402405.85 244.842 513043.05 5402397.8 244.842 513040.78 5402413.76 244.842 + + + + + + + + + + + + + + + + + 513037.15 5402419.07 244.842 513037.44 5402418.92 244.842 513036.15 5402417.28 244.842 513037.15 5402419.07 244.842 + + + + + + + + + + + + + + + + + 513040.78 5402413.76 244.842 513043.05 5402397.8 244.842 513036.15 5402417.28 244.842 513040.78 5402413.76 244.842 + + + + + + + + + + + + + + + + + 513047.4 5402420.11 244.842 513055.79 5402427.84 244.842 513049.15 5402405.85 244.842 513047.4 5402420.11 244.842 + + + + + + + + + + + + + + + + + 513049.15 5402405.85 244.842 513040.78 5402413.76 244.842 513047.4 5402420.11 244.842 513049.15 5402405.85 244.842 + + + + + + + + + + + + + + + + + 513055.79 5402427.84 244.842 513065.57 5402437.14 244.842 513078.66 5402433.75 244.842 513055.79 5402427.84 244.842 + + + + + + + + + + + + + + + + + 513078.66 5402433.75 244.842 513049.15 5402405.85 244.842 513055.79 5402427.84 244.842 513078.66 5402433.75 244.842 + + + + + + + + + + + + + + + + + 513065.57 5402437.14 244.842 513073.17 5402438.72 244.842 513078.66 5402433.75 244.842 513065.57 5402437.14 244.842 + + + + + + + + + + + + + + + + + 513031.22 5402437.41 244.842 513055.79 5402427.84 244.842 513047.4 5402420.11 244.842 513031.22 5402437.41 244.842 + + + + + + + + + + + + + + + + + 513041.92 5402471.49 244.842 513049.66 5402463.63 244.842 513041.69 5402471.35 244.842 513041.92 5402471.49 244.842 + + + + + + + + + + + + + + + + + 513041.6 5402471.79 244.842 513041.94 5402472.08 244.842 513041.92 5402471.49 244.842 513041.6 5402471.79 244.842 + + + + + + + + + + + + + + + + + 513041.92 5402471.49 244.842 513041.94 5402472.08 244.842 513049.66 5402463.63 244.842 513041.92 5402471.49 244.842 + + + + + + + + + + + + + + + + + 513041.48 5402471.56 244.842 513041.69 5402471.35 244.842 513035.2 5402450.0 244.842 513041.48 5402471.56 244.842 + + + + + + + + + + + + + + + + + 513073.6 5402439.16 244.842 513078.66 5402433.75 244.842 513073.17 5402438.72 244.842 513073.6 5402439.16 244.842 + + + + + + + + + + + + + + + + + 513045.08 5402459.26 244.842 513041.69 5402471.35 244.842 513049.66 5402463.63 244.842 513045.08 5402459.26 244.842 + + + + + + + + + + + + + + + + + 513070.4 5402441.75 244.842 513073.17 5402438.72 244.842 513065.57 5402437.14 244.842 513070.4 5402441.75 244.842 + + + + + + + + + + + + + + + + + 513045.08 5402459.26 244.842 513035.2 5402450.0 244.842 513041.69 5402471.35 244.842 513045.08 5402459.26 244.842 + + + + + + + + + + + + + + + + + 513037.23 5402419.94 244.842 513037.15 5402419.07 244.842 513034.63 5402421.88 244.842 513037.23 5402419.94 244.842 + + + + + + + + + + + + + + Deutschland + + Stuttgart + + Marktplatz (Stgt) + + + + + + + + + + \ No newline at end of file -- GitLab From fbb6d35a7010b11d5bed817e2e32595ccf098f22 Mon Sep 17 00:00:00 2001 From: Alex <22rial1mpg@hft-stuttgart.de> Date: Fri, 26 Jul 2024 09:31:02 +0200 Subject: [PATCH 05/62] Renamed the known False-Positive self-intersection GML files --- ...SolidSelfIntTest-known_false_positive2.gml | 14419 +-------------- ...SolidSelfIntTest-known_false_positive4.gml | 2170 --- ...IntTest-known_false_positive_Big_Mesh1.gml | 15023 ++++++++++++++++ ...ntTest-known_false_positive_Big_Mesh2.gml} | 0 4 files changed, 15806 insertions(+), 15806 deletions(-) delete mode 100644 CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive4.gml create mode 100644 CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh1.gml rename CityDoctorParent/CityDoctorValidation/src/test/resources/{SolidSelfIntTest-known_false_positive3.gml => SolidSelfIntTest-known_false_positive_Big_Mesh2.gml} (100%) diff --git a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive2.gml b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive2.gml index 7f9caf7..0519804 100644 --- a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive2.gml +++ b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive2.gml @@ -1,12 +1,12 @@ - + 2022-11-17 http://repository.gdi-de.org/schemas/adv/citygml/fdv/art.htm#_9100 - DEBWL52210004hX7 + DEBWL52210003wz8 @@ -30,858 +30,144 @@ 2023-03-12 - 31001_2050 - 3100 - 20.86 - 7 + 31001_3012 + 9999 + 24.46 + 8 - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - 513149.039 5402569.757 262.588 513149.05 5402569.737 262.587 513149.064 5402569.722 262.586 513149.079 5402569.707 262.586 513149.101 5402569.689 262.585 513149.125 5402569.673 262.585 513149.143 5402569.662 262.585 513149.164 5402569.656 262.585 513149.039 5402569.757 262.588 + + 513000.38 5402430.08 269.3 513021.1 5402428.79 269.3 513017.31 5402431.67 269.3 513000.38 5402430.08 269.3 @@ -891,14 +177,14 @@ - + - + - + - - 513149.026 5402569.772 262.588 513149.039 5402569.757 262.588 513149.164 5402569.656 262.585 513149.182 5402569.646 262.585 513149.202 5402569.639 262.585 513149.222 5402569.634 262.585 513149.243 5402569.631 262.585 513149.264 5402569.629 262.586 513149.285 5402569.628 262.586 513149.306 5402569.629 262.587 513149.327 5402569.631 262.588 513149.348 5402569.635 262.589 513149.368 5402569.64 262.589 513149.389 5402569.647 262.59 513149.408 5402569.655 262.591 513149.427 5402569.665 262.593 513149.445 5402569.675 262.594 513149.463 5402569.687 262.595 513149.479 5402569.7 262.596 513149.5 5402569.72 262.598 513149.76 5402569.94 262.62 513149.3 5402570.36 262.634 513149.02 5402570.08 262.608 513149.007 5402570.055 262.606 513148.999 5402570.035 262.605 513148.993 5402570.015 262.603 513148.987 5402569.995 262.602 513148.984 5402569.974 262.6 513148.981 5402569.953 262.599 513148.98 5402569.932 262.597 513148.981 5402569.911 262.596 513148.983 5402569.89 262.595 513148.987 5402569.869 262.594 513148.992 5402569.849 262.592 513148.999 5402569.83 262.591 513149.008 5402569.81 262.59 513149.016 5402569.791 262.589 513149.026 5402569.772 262.588 + + 513000.38 5402430.08 269.3 513036.15 5402417.28 269.3 513021.1 5402428.79 269.3 513000.38 5402430.08 269.3 @@ -908,14 +194,14 @@ - + - + - + - - 513152.973 5402566.33 262.476 513152.977 5402566.309 262.474 513152.982 5402566.289 262.473 513152.988 5402566.269 262.472 513152.996 5402566.249 262.471 513153.009 5402566.231 262.47 513152.981 5402566.436 262.483 513152.974 5402566.414 262.481 513152.971 5402566.393 262.48 513152.97 5402566.372 262.478 513152.971 5402566.351 262.477 513152.973 5402566.33 262.476 + + 513023.62 5402430.31 269.3 513023.22 5402430.6 269.3 513022.53 5402430.32 269.3 513023.62 5402430.31 269.3 @@ -925,14 +211,14 @@ - + - + - + - - 513165.11 5402564.25 262.68 513169.61 5402562.26 262.677 513169.583 5402562.24 262.675 513169.564 5402562.224 262.673 513169.547 5402562.207 262.672 513169.531 5402562.189 262.67 513169.516 5402562.169 262.668 513169.503 5402562.149 262.667 513169.491 5402562.127 262.665 513169.48 5402562.105 262.663 513169.471 5402562.082 262.661 513169.464 5402562.059 262.66 513169.458 5402562.035 262.658 513169.454 5402562.011 262.656 513169.452 5402561.986 262.655 513169.452 5402561.962 262.653 513169.453 5402561.937 262.651 513169.456 5402561.913 262.65 513169.46 5402561.889 262.649 513169.466 5402561.865 262.647 513169.474 5402561.842 262.646 513169.484 5402561.819 262.645 513169.495 5402561.797 262.644 513169.507 5402561.776 262.643 513169.521 5402561.756 262.642 513169.537 5402561.737 262.641 513169.553 5402561.719 262.64 513169.571 5402561.702 262.64 513169.59 5402561.687 262.639 513169.61 5402561.673 262.639 513169.631 5402561.66 262.639 513169.661 5402561.645 262.638 513169.691 5402561.633 262.638 513169.715 5402561.626 262.639 513169.739 5402561.621 262.639 513169.763 5402561.617 262.639 513169.787 5402561.615 262.64 513169.812 5402561.615 262.641 513169.836 5402561.617 262.641 513169.861 5402561.62 262.642 513169.885 5402561.625 262.643 513169.908 5402561.631 262.644 513169.931 5402561.639 262.646 513169.954 5402561.649 262.647 513169.976 5402561.661 262.648 513169.997 5402561.673 262.65 513170.017 5402561.688 262.651 513170.036 5402561.703 262.653 513170.053 5402561.72 262.654 513170.07 5402561.738 262.656 513170.085 5402561.757 262.657 513170.099 5402561.777 262.659 513170.111 5402561.799 262.661 513170.122 5402561.821 262.663 513170.132 5402561.843 262.664 513170.14 5402561.866 262.666 513170.146 5402561.89 262.668 513170.15 5402561.914 262.669 513170.153 5402561.939 262.671 513170.154 5402561.963 262.673 513170.154 5402561.988 262.674 513170.15 5402562.02 262.676 513174.28 5402560.2 262.674 513174.257 5402560.188 262.672 513174.237 5402560.175 262.671 513174.218 5402560.161 262.67 513174.2 5402560.146 262.668 513174.182 5402560.129 262.667 513174.166 5402560.112 262.665 513174.152 5402560.093 262.663 513174.138 5402560.073 262.662 513174.127 5402560.053 262.66 513174.116 5402560.031 262.658 513174.107 5402560.009 262.657 513174.1 5402559.987 262.655 513174.094 5402559.963 262.653 513174.09 5402559.94 262.652 513174.087 5402559.916 262.65 513174.087 5402559.893 262.648 513174.087 5402559.869 262.647 513174.09 5402559.845 262.645 513174.094 5402559.822 262.644 513174.1 5402559.798 262.643 513174.107 5402559.776 262.641 513174.116 5402559.754 262.64 513174.127 5402559.732 262.639 513174.138 5402559.712 262.638 513174.152 5402559.692 262.637 513174.166 5402559.673 262.636 513174.182 5402559.656 262.636 513174.2 5402559.639 262.635 513174.218 5402559.624 262.635 513174.237 5402559.61 262.634 513174.257 5402559.597 262.634 513174.28 5402559.585 262.634 513174.304 5402559.575 262.634 513174.327 5402559.567 262.634 513174.349 5402559.56 262.634 513174.373 5402559.556 262.635 513174.396 5402559.553 262.635 513174.42 5402559.551 262.636 513174.444 5402559.552 262.636 513174.468 5402559.554 262.637 513174.491 5402559.557 262.638 513174.514 5402559.563 262.639 513174.537 5402559.569 262.64 513174.56 5402559.578 262.641 513174.581 5402559.588 262.643 513174.602 5402559.599 262.644 513174.622 5402559.612 262.645 513174.641 5402559.626 262.647 513174.659 5402559.642 262.648 513174.676 5402559.659 262.65 513174.692 5402559.677 262.651 513174.706 5402559.695 262.653 513174.719 5402559.715 262.655 513174.731 5402559.736 262.656 513174.741 5402559.758 262.658 513174.75 5402559.78 262.66 513174.757 5402559.803 262.661 513174.762 5402559.826 262.663 513174.766 5402559.849 262.665 513174.768 5402559.873 262.666 513174.769 5402559.897 262.668 513174.768 5402559.921 262.669 513174.765 5402559.944 262.671 513174.76 5402559.97 262.672 513178.88 5402558.11 262.667 513178.861 5402558.093 262.665 513178.844 5402558.075 262.664 513178.828 5402558.056 262.662 513178.813 5402558.036 262.66 513178.8 5402558.015 262.659 513178.788 5402557.993 262.657 513178.778 5402557.97 262.655 513178.77 5402557.947 262.653 513178.763 5402557.923 262.652 513178.758 5402557.898 262.65 513178.754 5402557.874 262.648 513178.752 5402557.849 262.646 513178.752 5402557.824 262.645 513178.754 5402557.799 262.643 513178.758 5402557.775 262.642 513178.763 5402557.75 262.64 513178.77 5402557.726 262.639 513178.778 5402557.703 262.638 513178.788 5402557.68 262.636 513178.8 5402557.658 262.635 513178.813 5402557.637 262.634 513178.828 5402557.617 262.634 513178.844 5402557.598 262.633 513178.861 5402557.58 262.632 513178.879 5402557.563 262.631 513178.899 5402557.548 262.631 513178.92 5402557.534 262.631 513178.941 5402557.521 262.63 513178.964 5402557.511 262.63 513178.987 5402557.501 262.63 513179.012 5402557.493 262.631 513179.036 5402557.487 262.631 513179.06 5402557.483 262.631 513179.085 5402557.48 262.632 513179.11 5402557.479 262.632 513179.135 5402557.48 262.633 513179.16 5402557.483 262.634 513179.184 5402557.488 262.635 513179.208 5402557.494 262.636 513179.232 5402557.501 262.637 513179.255 5402557.511 262.639 513179.277 5402557.522 262.64 513179.299 5402557.534 262.641 513179.319 5402557.548 262.643 513179.339 5402557.564 262.644 513179.357 5402557.58 262.646 513179.375 5402557.598 262.648 513179.391 5402557.617 262.649 513179.405 5402557.638 262.651 513179.418 5402557.659 262.653 513179.43 5402557.681 262.654 513179.44 5402557.704 262.656 513179.449 5402557.727 262.658 513179.455 5402557.751 262.66 513179.461 5402557.775 262.661 513179.464 5402557.8 262.663 513179.465 5402557.825 262.665 513179.465 5402557.85 262.666 513179.464 5402557.875 262.668 513179.46 5402557.9 262.67 513183.5 5402556.11 262.666 513183.475 5402556.087 262.664 513183.457 5402556.068 262.663 513183.441 5402556.048 262.661 513183.427 5402556.027 262.659 513183.413 5402556.006 262.657 513183.402 5402555.983 262.655 513183.392 5402555.959 262.654 513183.384 5402555.935 262.652 513183.377 5402555.91 262.65 513183.372 5402555.885 262.648 513183.369 5402555.859 262.647 513183.367 5402555.834 262.645 513183.368 5402555.808 262.643 513183.37 5402555.783 262.642 513183.374 5402555.757 262.64 513183.38 5402555.732 262.639 513183.388 5402555.708 262.637 513183.397 5402555.684 262.636 513183.408 5402555.66 262.635 513183.42 5402555.638 262.634 513183.434 5402555.617 262.633 513183.449 5402555.596 262.632 513183.466 5402555.577 262.631 513183.484 5402555.559 262.63 513183.504 5402555.542 262.63 513183.524 5402555.526 262.629 513183.546 5402555.512 262.629 513183.568 5402555.5 262.629 513183.599 5402555.486 262.629 513183.63 5402555.475 262.629 513183.655 5402555.469 262.629 513183.68 5402555.464 262.63 513183.706 5402555.461 262.63 513183.732 5402555.46 262.631 513183.757 5402555.461 262.632 513183.783 5402555.463 262.632 513183.808 5402555.467 262.633 513183.833 5402555.473 262.634 513183.857 5402555.481 262.636 513183.881 5402555.49 262.637 513183.905 5402555.501 262.638 513183.927 5402555.514 262.64 513183.948 5402555.528 262.641 513183.969 5402555.544 262.643 513183.988 5402555.561 262.644 513184.006 5402555.579 262.646 513184.022 5402555.599 262.648 513184.038 5402555.619 262.65 513184.052 5402555.641 262.651 513184.064 5402555.663 262.653 513184.074 5402555.687 262.655 513184.083 5402555.711 262.657 513184.091 5402555.735 262.659 513184.096 5402555.76 262.66 513184.1 5402555.786 262.662 513184.102 5402555.811 262.664 513184.102 5402555.837 262.666 513184.1 5402555.87 262.668 513188.09 5402554.11 262.665 513188.07 5402554.089 262.663 513188.053 5402554.069 262.661 513188.038 5402554.047 262.66 513188.024 5402554.025 262.658 513188.012 5402554.002 262.656 513188.002 5402553.979 262.654 513187.993 5402553.954 262.652 513187.986 5402553.929 262.65 513187.981 5402553.904 262.649 513187.977 5402553.878 262.647 513187.976 5402553.852 262.645 513187.976 5402553.826 262.643 513187.978 5402553.8 262.642 513187.982 5402553.774 262.64 513187.987 5402553.749 262.639 513187.995 5402553.724 262.637 513188.004 5402553.7 262.636 513188.014 5402553.676 262.635 513188.027 5402553.653 262.634 513188.041 5402553.631 262.633 513188.056 5402553.61 262.632 513188.073 5402553.591 262.631 513188.091 5402553.572 262.63 513188.111 5402553.555 262.63 513188.131 5402553.539 262.629 513188.153 5402553.524 262.629 513188.175 5402553.512 262.629 513188.202 5402553.499 262.629 513188.229 5402553.489 262.629 513188.254 5402553.481 262.629 513188.279 5402553.476 262.629 513188.305 5402553.472 262.63 513188.331 5402553.47 262.63 513188.357 5402553.469 262.631 513188.383 5402553.471 262.632 513188.408 5402553.474 262.633 513188.434 5402553.479 262.634 513188.459 5402553.486 262.635 513188.483 5402553.495 262.636 513188.507 5402553.505 262.638 513188.53 5402553.517 262.639 513188.552 5402553.531 262.64 513188.574 5402553.546 262.642 513188.594 5402553.562 262.644 513188.613 5402553.58 262.645 513188.63 5402553.599 262.647 513188.646 5402553.619 262.649 513188.661 5402553.641 262.651 513188.674 5402553.663 262.652 513188.686 5402553.686 262.654 513188.696 5402553.71 262.656 513188.704 5402553.735 262.658 513188.711 5402553.76 262.66 513188.716 5402553.786 262.662 513188.719 5402553.811 262.663 513188.72 5402553.84 262.665 513192.72 5402552.07 262.662 513192.65 5402551.91 262.65 513192.64 5402551.886 262.648 513192.633 5402551.862 262.646 513192.628 5402551.839 262.645 513192.624 5402551.815 262.643 513192.622 5402551.79 262.641 513192.621 5402551.766 262.64 513192.622 5402551.742 262.638 513192.625 5402551.717 262.637 513192.629 5402551.694 262.635 513192.636 5402551.67 262.634 513192.644 5402551.647 262.633 513192.653 5402551.625 262.632 513192.664 5402551.603 262.63 513192.676 5402551.582 262.629 513192.69 5402551.562 262.629 513192.705 5402551.543 262.628 513192.722 5402551.525 262.627 513192.74 5402551.509 262.626 513192.759 5402551.493 262.626 513192.778 5402551.479 262.626 513192.799 5402551.466 262.625 513192.821 5402551.455 262.625 513192.845 5402551.445 262.625 513192.869 5402551.437 262.625 513192.893 5402551.431 262.626 513192.917 5402551.426 262.626 513192.941 5402551.423 262.627 513192.965 5402551.422 262.627 513192.99 5402551.423 262.628 513193.014 5402551.425 262.629 513193.038 5402551.429 262.63 513193.061 5402551.434 262.631 513193.085 5402551.442 262.632 513193.107 5402551.45 262.633 513193.129 5402551.461 262.634 513193.151 5402551.473 262.636 513193.171 5402551.486 262.637 513193.19 5402551.501 262.639 513193.208 5402551.517 262.64 513193.226 5402551.534 262.642 513193.241 5402551.553 262.643 513193.256 5402551.572 262.645 513193.269 5402551.593 262.647 513193.281 5402551.614 262.648 513193.291 5402551.636 262.65 513193.3 5402551.66 262.652 513193.35 5402551.78 262.661 513196.66 5402550.5 262.671 513196.937 5402550.365 262.67 513197.167 5402550.274 262.67 513197.402 5402550.2 262.672 513197.642 5402550.143 262.675 513197.885 5402550.102 262.679 513198.13 5402550.078 262.684 513198.377 5402550.072 262.691 513198.623 5402550.082 262.698 513198.869 5402550.11 262.707 513199.111 5402550.155 262.717 513199.409 5402550.235 262.73 513199.7 5402550.341 262.745 513199.924 5402550.443 262.758 513200.141 5402550.561 262.772 513200.349 5402550.693 262.786 513200.547 5402550.84 262.801 513200.735 5402551.0 262.817 513200.911 5402551.173 262.833 513201.074 5402551.358 262.85 513201.224 5402551.554 262.866 513201.36 5402551.76 262.884 513201.51 5402552.03 262.905 513204.69 5402559.04 263.448 513207.72 5402557.69 263.445 513219.026 5402583.413 265.428 513137.221 5402619.876 265.504 513136.33 5402618.75 265.407 513138.41 5402617.33 265.373 513139.92 5402616.3 265.348 513141.6 5402614.96 265.308 513139.98 5402611.44 265.035 513139.46 5402611.6 265.031 513139.11 5402610.8 264.969 513139.58 5402610.52 264.964 513138.39 5402607.83 264.757 513137.86 5402608.06 264.757 513137.55 5402607.27 264.697 513138.05 5402607.09 264.699 513136.98 5402604.66 264.512 513136.47 5402604.9 264.513 513136.12 5402604.09 264.451 513136.6 5402603.87 264.45 513135.53 5402601.45 264.264 513135.06 5402601.66 264.264 513134.68 5402600.84 264.2 513135.2 5402600.67 264.204 513134.08 5402598.16 264.01 513133.61 5402598.41 264.013 513133.25 5402597.56 263.948 513133.71 5402597.44 263.953 513132.69 5402595.04 263.769 513132.17 5402595.27 263.769 513131.78 5402594.38 263.701 513132.29 5402594.24 263.706 513131.22 5402591.75 263.515 513130.69 5402591.95 263.513 513130.34 5402591.16 263.452 513130.81 5402590.95 263.451 513129.38 5402587.67 263.199 513134.65 5402585.22 263.188 513133.2 5402581.88 262.931 513133.17 5402581.88 262.93 513133.142 5402581.867 262.928 513133.12 5402581.854 262.927 513133.098 5402581.839 262.925 513133.077 5402581.823 262.924 513133.058 5402581.806 262.922 513133.04 5402581.787 262.92 513133.023 5402581.768 262.918 513133.008 5402581.747 262.917 513132.994 5402581.725 262.915 513132.982 5402581.702 262.913 513132.971 5402581.678 262.911 513132.962 5402581.654 262.909 513132.955 5402581.629 262.908 513132.95 5402581.603 262.906 513132.946 5402581.577 262.904 513132.944 5402581.552 262.902 513132.944 5402581.526 262.901 513132.946 5402581.5 262.899 513132.949 5402581.474 262.897 513132.955 5402581.448 262.896 513132.962 5402581.423 262.894 513132.971 5402581.399 262.893 513132.981 5402581.375 262.892 513132.993 5402581.352 262.891 513133.007 5402581.33 262.89 513133.022 5402581.309 262.889 513133.039 5402581.289 262.888 513133.057 5402581.271 262.887 513133.08 5402581.25 262.886 513133.104 5402581.232 262.886 513133.126 5402581.218 262.886 513133.149 5402581.205 262.885 513133.172 5402581.194 262.885 513133.197 5402581.185 262.886 513133.222 5402581.178 262.886 513133.247 5402581.172 262.886 513133.273 5402581.168 262.887 513133.298 5402581.166 262.887 513133.324 5402581.166 262.888 513133.35 5402581.167 262.889 513133.376 5402581.17 262.89 513133.402 5402581.175 262.891 513133.427 5402581.182 262.892 513133.451 5402581.191 262.893 513133.475 5402581.201 262.894 513133.498 5402581.213 262.896 513133.52 5402581.227 262.897 513133.542 5402581.242 262.899 513133.562 5402581.258 262.9 513133.581 5402581.276 262.902 513133.598 5402581.295 262.904 513133.614 5402581.315 262.906 513133.629 5402581.337 262.907 513133.643 5402581.359 262.909 513133.654 5402581.382 262.911 513133.664 5402581.406 262.913 513133.673 5402581.431 262.915 513133.68 5402581.46 262.917 513133.81 5402581.86 262.946 513138.34 5402579.78 262.938 513138.2 5402579.4 262.91 513138.186 5402579.379 262.908 513138.178 5402579.363 262.907 513138.17 5402579.346 262.905 513138.164 5402579.329 262.904 513138.159 5402579.311 262.903 513138.155 5402579.293 262.901 513138.152 5402579.274 262.9 513138.151 5402579.256 262.899 513138.151 5402579.238 262.898 513138.152 5402579.219 262.897 513138.155 5402579.201 262.896 513138.159 5402579.183 262.894 513138.164 5402579.165 262.893 513138.17 5402579.148 262.892 513138.178 5402579.131 262.892 513138.186 5402579.114 262.891 513138.196 5402579.099 262.89 513138.207 5402579.084 262.889 513138.219 5402579.07 262.889 513138.232 5402579.057 262.888 513138.245 5402579.044 262.888 513138.26 5402579.033 262.888 513138.275 5402579.022 262.887 513138.291 5402579.013 262.887 513138.308 5402579.005 262.887 513138.331 5402578.996 262.887 513138.356 5402578.989 262.887 513138.374 5402578.985 262.888 513138.392 5402578.983 262.888 513138.411 5402578.982 262.888 513138.429 5402578.982 262.889 513138.448 5402578.984 262.89 513138.466 5402578.987 262.89 513138.484 5402578.991 262.891 513138.502 5402578.997 262.892 513138.519 5402579.003 262.893 513138.536 5402579.011 262.894 513138.552 5402579.02 262.895 513138.567 5402579.03 262.896 513138.582 5402579.041 262.897 513138.596 5402579.053 262.898 513138.609 5402579.066 262.899 513138.621 5402579.08 262.901 513138.632 5402579.095 262.902 513138.642 5402579.11 262.903 513138.651 5402579.126 262.905 513138.659 5402579.143 262.906 513138.666 5402579.16 262.907 513138.671 5402579.178 262.908 513138.675 5402579.196 262.91 513138.678 5402579.214 262.911 513138.68 5402579.24 262.913 513138.96 5402579.53 262.939 513142.24 5402576.58 262.84 513141.94 5402576.22 262.808 513141.926 5402576.201 262.806 513141.914 5402576.181 262.805 513141.904 5402576.161 262.803 513141.895 5402576.14 262.802 513141.888 5402576.119 262.8 513141.882 5402576.097 262.799 513141.878 5402576.075 262.797 513141.875 5402576.052 262.795 513141.873 5402576.029 262.794 513141.874 5402576.007 262.792 513141.876 5402575.984 262.791 513141.879 5402575.962 262.79 513141.884 5402575.94 262.788 513141.891 5402575.918 262.787 513141.899 5402575.897 262.786 513141.908 5402575.876 262.785 513141.919 5402575.856 262.784 513141.932 5402575.837 262.783 513141.945 5402575.819 262.782 513141.96 5402575.802 262.782 513141.976 5402575.786 262.781 513141.993 5402575.771 262.781 513142.011 5402575.757 262.78 513142.03 5402575.745 262.78 513142.051 5402575.733 262.78 513142.073 5402575.723 262.78 513142.094 5402575.715 262.78 513142.116 5402575.708 262.78 513142.138 5402575.703 262.78 513142.16 5402575.7 262.781 513142.183 5402575.698 262.781 513142.205 5402575.698 262.782 513142.228 5402575.699 262.782 513142.251 5402575.702 262.783 513142.273 5402575.706 262.784 513142.295 5402575.712 262.785 513142.316 5402575.72 262.786 513142.337 5402575.729 262.787 513142.357 5402575.739 262.789 513142.377 5402575.751 262.79 513142.395 5402575.764 262.791 513142.413 5402575.778 262.793 513142.429 5402575.794 262.794 513142.445 5402575.81 262.796 513142.459 5402575.828 262.797 513142.472 5402575.847 262.799 513142.483 5402575.866 262.8 513142.494 5402575.886 262.802 513142.502 5402575.908 262.804 513142.51 5402575.93 262.805 513142.65 5402576.17 262.825 513145.9 5402573.38 262.735 513145.64 5402573.06 262.707 513145.617 5402573.038 262.705 513145.602 5402573.021 262.703 513145.588 5402573.003 262.702 513145.575 5402572.984 262.7 513145.564 5402572.964 262.698 513145.554 5402572.943 262.697 513145.545 5402572.921 262.695 513145.538 5402572.9 262.694 513145.533 5402572.877 262.692 513145.529 5402572.854 262.69 513145.527 5402572.832 262.689 513145.526 5402572.809 262.687 513145.527 5402572.786 262.686 513145.53 5402572.763 262.684 513145.534 5402572.74 262.683 513145.539 5402572.718 262.682 513145.547 5402572.696 262.681 513145.555 5402572.674 262.679 513145.566 5402572.654 262.678 513145.577 5402572.634 262.677 513145.59 5402572.615 262.677 513145.605 5402572.597 262.676 513145.626 5402572.574 262.675 513145.649 5402572.554 262.674 513145.667 5402572.54 262.674 513145.686 5402572.527 262.674 513145.707 5402572.516 262.673 513145.728 5402572.507 262.673 513145.749 5402572.499 262.673 513145.771 5402572.492 262.674 513145.793 5402572.487 262.674 513145.816 5402572.483 262.674 513145.839 5402572.481 262.675 513145.862 5402572.481 262.675 513145.885 5402572.482 262.676 513145.908 5402572.485 262.677 513145.931 5402572.489 262.678 513145.953 5402572.495 262.679 513145.975 5402572.503 262.68 513145.996 5402572.512 262.681 513146.016 5402572.522 262.682 513146.036 5402572.534 262.684 513146.055 5402572.547 262.685 513146.073 5402572.562 262.687 513146.09 5402572.578 262.688 513146.11 5402572.6 262.69 513146.39 5402572.95 262.721 513149.3 5402570.36 262.634 513149.76 5402569.94 262.62 513153.29 5402566.8 262.515 513153.01 5402566.52 262.489 513152.997 5402566.495 262.487 513152.989 5402566.476 262.486 513152.983 5402566.455 262.484 513152.981 5402566.436 262.483 513153.009 5402566.231 262.47 513153.016 5402566.212 262.469 513153.027 5402566.194 262.468 513153.04 5402566.177 262.468 513153.054 5402566.162 262.467 513153.069 5402566.147 262.466 513153.091 5402566.129 262.466 513153.115 5402566.113 262.466 513153.133 5402566.102 262.465 513153.152 5402566.093 262.465 513153.172 5402566.086 262.465 513153.192 5402566.079 262.466 513153.212 5402566.074 262.466 513153.233 5402566.071 262.466 513153.254 5402566.069 262.467 513153.275 5402566.068 262.467 513153.296 5402566.069 262.468 513153.317 5402566.071 262.469 513153.338 5402566.075 262.469 513153.359 5402566.08 262.47 513153.379 5402566.087 262.471 513153.398 5402566.095 262.472 513153.417 5402566.105 262.473 513153.435 5402566.115 262.475 513153.453 5402566.127 262.476 513153.469 5402566.14 262.477 513153.49 5402566.16 262.479 513153.75 5402566.38 262.501 513157.03 5402563.45 262.402 513156.79 5402563.17 262.378 513156.777 5402563.144 262.376 513156.768 5402563.123 262.374 513156.762 5402563.102 262.372 513156.756 5402563.08 262.371 513156.752 5402563.057 262.369 513156.75 5402563.035 262.368 513156.749 5402563.013 262.366 513156.75 5402562.99 262.365 513156.752 5402562.968 262.363 513156.756 5402562.946 262.362 513156.762 5402562.924 262.361 513156.769 5402562.903 262.36 513156.777 5402562.882 262.359 513156.787 5402562.862 262.358 513156.798 5402562.842 262.357 513156.811 5402562.824 262.356 513156.825 5402562.806 262.355 513156.84 5402562.789 262.354 513156.861 5402562.769 262.354 513156.885 5402562.75 262.353 513156.904 5402562.738 262.353 513156.923 5402562.727 262.353 513156.944 5402562.717 262.353 513156.965 5402562.709 262.353 513156.986 5402562.702 262.353 513157.008 5402562.697 262.353 513157.03 5402562.694 262.353 513157.053 5402562.692 262.354 513157.075 5402562.691 262.355 513157.098 5402562.692 262.355 513157.12 5402562.695 262.356 513157.142 5402562.699 262.357 513157.164 5402562.705 262.358 513157.185 5402562.712 262.359 513157.206 5402562.721 262.36 513157.226 5402562.731 262.361 513157.245 5402562.742 262.363 513157.27 5402562.76 262.364 513157.53 5402562.98 262.386 513160.8 5402560.07 262.289 513160.6 5402559.79 262.265 513160.587 5402559.776 262.264 513160.577 5402559.763 262.263 513160.568 5402559.75 262.262 513160.56 5402559.737 262.26 513160.553 5402559.722 262.259 513160.546 5402559.708 262.258 513160.541 5402559.693 262.257 513160.537 5402559.677 262.256 513160.534 5402559.662 262.255 513160.532 5402559.646 262.254 513160.532 5402559.63 262.253 513160.532 5402559.614 262.252 513160.534 5402559.598 262.251 513160.536 5402559.583 262.25 513160.54 5402559.567 262.249 513160.545 5402559.552 262.248 513160.55 5402559.537 262.247 513160.557 5402559.523 262.247 513160.565 5402559.509 262.246 513160.574 5402559.496 262.245 513160.583 5402559.483 262.245 513160.594 5402559.471 262.244 513160.605 5402559.46 262.244 513160.617 5402559.45 262.243 513160.633 5402559.438 262.243 513160.649 5402559.429 262.243 513160.663 5402559.421 262.243 513160.677 5402559.415 262.243 513160.692 5402559.41 262.243 513160.708 5402559.406 262.243 513160.723 5402559.402 262.243 513160.739 5402559.4 262.244 513160.755 5402559.4 262.244 513160.771 5402559.4 262.245 513160.787 5402559.401 262.245 513160.803 5402559.404 262.246 513160.818 5402559.407 262.246 513160.833 5402559.412 262.247 513160.848 5402559.417 262.248 513160.862 5402559.424 262.249 513160.876 5402559.432 262.25 513160.89 5402559.44 262.251 513160.902 5402559.45 262.251 513160.914 5402559.46 262.253 513160.926 5402559.472 262.254 513160.936 5402559.484 262.255 513160.946 5402559.496 262.256 513160.955 5402559.51 262.257 513160.962 5402559.523 262.258 513160.97 5402559.54 262.259 513162.77 5402561.57 262.441 513165.11 5402564.25 262.68 + + 513022.53 5402430.32 269.3 513021.1 5402428.79 269.3 513023.62 5402430.31 269.3 513022.53 5402430.32 269.3 @@ -942,14 +228,14 @@ - + - + - + - - 513150.45 5402619.52 262.049 513144.69 5402622.22 261.972 513140.57 5402624.11 261.943 513137.221 5402619.876 265.504 513219.026 5402583.413 265.428 513220.84 5402587.54 262.358 513220.44 5402587.66 262.395 513222.26 5402591.7 259.379 513212.29 5402596.13 259.397 513212.22 5402595.95 259.528 513210.73 5402592.46 262.111 513160.27 5402615.0 262.128 513161.79 5402618.38 259.606 513161.89 5402618.59 259.447 513152.04 5402622.99 259.451 513150.45 5402619.52 262.049 + + 513025.87 5402427.53 269.3 513023.62 5402430.31 269.3 513021.1 5402428.79 269.3 513025.87 5402427.53 269.3 @@ -959,12730 +245,592 @@ - + - + - + - - 513196.937 5402550.365 262.67 513196.66 5402550.5 262.671 513196.66 5402550.5 244.64 513196.937 5402550.365 244.64 513196.937 5402550.365 262.67 + + 513021.1 5402428.79 269.3 513022.53 5402430.32 269.3 513022.15 5402430.49 269.3 513021.1 5402428.79 269.3 - - - - - - - - - - - 513196.937 5402550.365 244.64 513197.167 5402550.274 244.64 513197.167 5402550.274 262.67 513196.937 5402550.365 262.67 513196.937 5402550.365 244.64 - - - - - - - - - - - - - - - - - 513197.167 5402550.274 244.64 513197.402 5402550.2 244.64 513197.402 5402550.2 262.672 513197.167 5402550.274 262.67 513197.167 5402550.274 244.64 - - - - - - - - - - - - - - - - - 513197.402 5402550.2 244.64 513197.642 5402550.143 244.64 513197.642 5402550.143 262.675 513197.402 5402550.2 262.672 513197.402 5402550.2 244.64 - - - - - - - - - - - - - - - - - 513197.642 5402550.143 244.64 513197.885 5402550.102 244.64 513197.885 5402550.102 262.679 513197.642 5402550.143 262.675 513197.642 5402550.143 244.64 - - - - - - - - - - - - - - - - - 513197.885 5402550.102 244.64 513198.13 5402550.078 244.64 513198.13 5402550.078 262.684 513197.885 5402550.102 262.679 513197.885 5402550.102 244.64 - - - - - - - - - - - - - - - - - 513198.13 5402550.078 244.64 513198.377 5402550.072 244.64 513198.377 5402550.072 262.691 513198.13 5402550.078 262.684 513198.13 5402550.078 244.64 - - - - - - - - - - - - - - - - - 513198.377 5402550.072 244.64 513198.623 5402550.082 244.64 513198.623 5402550.082 262.698 513198.377 5402550.072 262.691 513198.377 5402550.072 244.64 - - - - - - - - - - - - - - - - - 513198.623 5402550.082 244.64 513198.869 5402550.11 244.64 513198.869 5402550.11 262.707 513198.623 5402550.082 262.698 513198.623 5402550.082 244.64 - - - - - - - - - - - - - - - - - 513198.869 5402550.11 244.64 513199.111 5402550.155 244.64 513199.111 5402550.155 262.717 513198.869 5402550.11 262.707 513198.869 5402550.11 244.64 - - - - - - - - - - - - - - - - - 513199.111 5402550.155 244.64 513199.409 5402550.235 244.64 513199.409 5402550.235 262.73 513199.111 5402550.155 262.717 513199.111 5402550.155 244.64 - - - - - - - - - - - - - - - - - 513199.409 5402550.235 244.64 513199.7 5402550.341 244.64 513199.7 5402550.341 262.745 513199.409 5402550.235 262.73 513199.409 5402550.235 244.64 - - - - - - - - - - - - - - - - - 513199.7 5402550.341 244.64 513199.924 5402550.443 244.64 513199.924 5402550.443 262.758 513199.7 5402550.341 262.745 513199.7 5402550.341 244.64 - - - - - - - - - - - - - - - - - 513199.924 5402550.443 244.64 513200.141 5402550.561 244.64 513200.141 5402550.561 262.772 513199.924 5402550.443 262.758 513199.924 5402550.443 244.64 - - - - - - - - - - - - - - - - - 513200.141 5402550.561 244.64 513200.349 5402550.693 244.64 513200.349 5402550.693 262.786 513200.141 5402550.561 262.772 513200.141 5402550.561 244.64 - - - - - - - - - - - - - - - - - 513200.349 5402550.693 244.64 513200.547 5402550.84 244.64 513200.547 5402550.84 262.801 513200.349 5402550.693 262.786 513200.349 5402550.693 244.64 - - - - - - - - - - - - - - - - - 513200.547 5402550.84 244.64 513200.735 5402551.0 244.64 513200.735 5402551.0 262.817 513200.547 5402550.84 262.801 513200.547 5402550.84 244.64 - - - - - - - - - - - - - - - - - 513200.735 5402551.0 244.64 513200.911 5402551.173 244.64 513200.911 5402551.173 262.833 513200.735 5402551.0 262.817 513200.735 5402551.0 244.64 - - - - - - - - - - - - - - - - - 513200.911 5402551.173 244.64 513201.074 5402551.358 244.64 513201.074 5402551.358 262.85 513200.911 5402551.173 262.833 513200.911 5402551.173 244.64 - - - - - - - - - - - - - - - - - 513201.074 5402551.358 244.64 513201.224 5402551.554 244.64 513201.224 5402551.554 262.866 513201.074 5402551.358 262.85 513201.074 5402551.358 244.64 - - - - - - - - - - - - - - - - - 513201.224 5402551.554 244.64 513201.36 5402551.76 244.64 513201.36 5402551.76 262.884 513201.224 5402551.554 262.866 513201.224 5402551.554 244.64 - - - - - - - - - - - - - - - - - 513201.36 5402551.76 244.64 513201.51 5402552.03 244.64 513201.51 5402552.03 262.905 513201.36 5402551.76 262.884 513201.36 5402551.76 244.64 - - - - - - - - - - - - - - - - - 513201.51 5402552.03 244.64 513204.69 5402559.04 244.64 513204.69 5402559.04 263.448 513201.51 5402552.03 262.905 513201.51 5402552.03 244.64 - - - - - - - - - - - - - - - - - 513207.72 5402557.69 263.445 513204.69 5402559.04 263.448 513204.69 5402559.04 244.64 513207.72 5402557.69 244.64 513207.72 5402557.69 263.445 - - - - - - - - - - - - - - - - - 513207.72 5402557.69 244.64 513219.026 5402583.413 244.64 513219.026 5402583.413 265.428 513207.72 5402557.69 263.445 513207.72 5402557.69 244.64 - - - - - - - - - - - - - - - - - 513220.84 5402587.54 262.358 513219.026 5402583.413 265.428 513219.026 5402583.413 244.64 513220.84 5402587.54 244.64 513220.84 5402587.54 262.358 - - - - - - - - - - - - - - - - - 513220.44 5402587.66 262.395 513220.84 5402587.54 262.358 513220.84 5402587.54 244.64 513220.44 5402587.66 244.64 513220.44 5402587.66 262.395 - - - - - - - - - - - - - - - - - 513222.26 5402591.7 259.379 513220.44 5402587.66 262.395 513220.44 5402587.66 244.64 513222.26 5402591.7 244.64 513222.26 5402591.7 259.379 - - - - - - - - - - - - - - - - - 513212.29 5402596.13 259.397 513222.26 5402591.7 259.379 513222.26 5402591.7 244.64 513212.29 5402596.13 244.64 513212.29 5402596.13 259.397 - - - - - - - - - - - - - - - - - 513212.22 5402595.95 259.528 513212.29 5402596.13 259.397 513212.29 5402596.13 244.64 513212.22 5402595.95 244.64 513212.22 5402595.95 259.528 - - - - - - - - - - - - - - - - - 513210.73 5402592.46 262.111 513212.22 5402595.95 259.528 513212.22 5402595.95 244.64 513210.73 5402592.46 244.64 513210.73 5402592.46 262.111 - - - - - - - - - - - - - - - - - 513160.27 5402615.0 262.128 513210.73 5402592.46 262.111 513210.73 5402592.46 244.64 513160.27 5402615.0 244.64 513160.27 5402615.0 262.128 - - - - - - - - - - - - - - - - - 513161.79 5402618.38 259.606 513160.27 5402615.0 262.128 513160.27 5402615.0 244.64 513161.79 5402618.38 244.64 513161.79 5402618.38 259.606 - - - - - - - - - - - - - - - - - 513161.89 5402618.59 259.447 513161.79 5402618.38 259.606 513161.79 5402618.38 244.64 513161.89 5402618.59 244.64 513161.89 5402618.59 259.447 - - - - - - - - - - - - - - - - - 513152.04 5402622.99 259.451 513161.89 5402618.59 259.447 513161.89 5402618.59 244.64 513152.04 5402622.99 244.64 513152.04 5402622.99 259.451 - - - - - - - - - - - - - - - - - 513150.45 5402619.52 262.049 513152.04 5402622.99 259.451 513152.04 5402622.99 244.64 513150.45 5402619.52 244.64 513150.45 5402619.52 262.049 - - - - - - - - - - - - - - - - - 513150.45 5402619.52 244.64 513144.69 5402622.22 244.64 513144.69 5402622.22 261.972 513150.45 5402619.52 262.049 513150.45 5402619.52 244.64 - - - - - - - - - - - - - - - - - 513144.69 5402622.22 244.64 513140.57 5402624.11 244.64 513140.57 5402624.11 261.943 513144.69 5402622.22 261.972 513144.69 5402622.22 244.64 - - - - - - - - - - - - - - - - - 513137.221 5402619.876 265.504 513140.57 5402624.11 261.943 513140.57 5402624.11 244.64 513137.221 5402619.876 244.64 513137.221 5402619.876 265.504 - - - - - - - - - - - - - - - - - 513137.221 5402619.876 244.64 513136.33 5402618.75 244.64 513136.33 5402618.75 265.407 513137.221 5402619.876 265.504 513137.221 5402619.876 244.64 - - - - - - - - - - - - - - - - - 513138.41 5402617.33 265.373 513136.33 5402618.75 265.407 513136.33 5402618.75 244.64 513138.41 5402617.33 244.64 513138.41 5402617.33 265.373 - - - - - - - - - - - - - - - - - 513139.92 5402616.3 265.348 513138.41 5402617.33 265.373 513138.41 5402617.33 244.64 513139.92 5402616.3 244.64 513139.92 5402616.3 265.348 - - - - - - - - - - - - - - - - - 513141.6 5402614.96 265.308 513139.92 5402616.3 265.348 513139.92 5402616.3 244.64 513141.6 5402614.96 244.64 513141.6 5402614.96 265.308 - - - - - - - - - - - - - - - - - 513141.6 5402614.96 244.64 513139.98 5402611.44 244.64 513139.98 5402611.44 265.035 513141.6 5402614.96 265.308 513141.6 5402614.96 244.64 - - - - - - - - - - - - - - - - - 513139.98 5402611.44 244.64 513139.46 5402611.6 244.64 513139.46 5402611.6 265.031 513139.98 5402611.44 265.035 513139.98 5402611.44 244.64 - - - - - - - - - - - - - - - - - 513139.46 5402611.6 244.64 513139.11 5402610.8 244.64 513139.11 5402610.8 264.969 513139.46 5402611.6 265.031 513139.46 5402611.6 244.64 - - - - - - - - - - - - - - - - - 513139.58 5402610.52 264.964 513139.11 5402610.8 264.969 513139.11 5402610.8 244.64 513139.58 5402610.52 244.64 513139.58 5402610.52 264.964 - - - - - - - - - - - - - - - - - 513139.58 5402610.52 244.64 513138.39 5402607.83 244.64 513138.39 5402607.83 264.757 513139.58 5402610.52 264.964 513139.58 5402610.52 244.64 - - - - - - - - - - - - - - - - - 513138.39 5402607.83 244.64 513137.86 5402608.06 244.64 513137.86 5402608.06 264.757 513138.39 5402607.83 264.757 513138.39 5402607.83 244.64 - - - - - - - - - - - - - - - - - 513137.86 5402608.06 244.64 513137.55 5402607.27 244.64 513137.55 5402607.27 264.697 513137.86 5402608.06 264.757 513137.86 5402608.06 244.64 - - - - - - - - - - - - - - - - - 513137.55 5402607.27 244.64 513138.05 5402607.09 244.64 513138.05 5402607.09 264.699 513137.55 5402607.27 264.697 513137.55 5402607.27 244.64 - - - - - - - - - - - - - - - - - 513138.05 5402607.09 244.64 513136.98 5402604.66 244.64 513136.98 5402604.66 264.512 513138.05 5402607.09 264.699 513138.05 5402607.09 244.64 - - - - - - - - - - - - - - - - - 513136.47 5402604.9 264.513 513136.98 5402604.66 264.512 513136.98 5402604.66 244.64 513136.47 5402604.9 244.64 513136.47 5402604.9 264.513 - - - - - - - - - - - - - - - - - 513136.47 5402604.9 244.64 513136.12 5402604.09 244.64 513136.12 5402604.09 264.451 513136.47 5402604.9 264.513 513136.47 5402604.9 244.64 - - - - - - - - - - - - - - - - - 513136.6 5402603.87 264.45 513136.12 5402604.09 264.451 513136.12 5402604.09 244.64 513136.6 5402603.87 244.64 513136.6 5402603.87 264.45 - - - - - - - - - - - - - - - - - 513136.6 5402603.87 244.64 513135.53 5402601.45 244.64 513135.53 5402601.45 264.264 513136.6 5402603.87 264.45 513136.6 5402603.87 244.64 - - - - - - - - - - - - - - - - - 513135.53 5402601.45 244.64 513135.06 5402601.66 244.64 513135.06 5402601.66 264.264 513135.53 5402601.45 264.264 513135.53 5402601.45 244.64 - - - - - - - - - - - - - - - - - 513135.06 5402601.66 244.64 513134.68 5402600.84 244.64 513134.68 5402600.84 264.2 513135.06 5402601.66 264.264 513135.06 5402601.66 244.64 - - - - - - - - - - - - - - - - - 513134.68 5402600.84 244.64 513135.2 5402600.67 244.64 513135.2 5402600.67 264.204 513134.68 5402600.84 264.2 513134.68 5402600.84 244.64 - - - - - - - - - - - - - - - - - 513135.2 5402600.67 244.64 513134.08 5402598.16 244.64 513134.08 5402598.16 264.01 513135.2 5402600.67 264.204 513135.2 5402600.67 244.64 - - - - - - - - - - - - - - - - - 513133.61 5402598.41 264.013 513134.08 5402598.16 264.01 513134.08 5402598.16 244.64 513133.61 5402598.41 244.64 513133.61 5402598.41 264.013 - - - - - - - - - - - - - - - - - 513133.61 5402598.41 244.64 513133.25 5402597.56 244.64 513133.25 5402597.56 263.948 513133.61 5402598.41 264.013 513133.61 5402598.41 244.64 - - - - - - - - - - - - - - - - - 513133.25 5402597.56 244.64 513133.71 5402597.44 244.64 513133.71 5402597.44 263.953 513133.25 5402597.56 263.948 513133.25 5402597.56 244.64 - - - - - - - - - - - - - - - - - 513133.71 5402597.44 244.64 513132.69 5402595.04 244.64 513132.69 5402595.04 263.769 513133.71 5402597.44 263.953 513133.71 5402597.44 244.64 - - - - - - - - - - - - - - - - - 513132.69 5402595.04 244.64 513132.17 5402595.27 244.64 513132.17 5402595.27 263.769 513132.69 5402595.04 263.769 513132.69 5402595.04 244.64 - - - - - - - - - - - - - - - - - 513132.17 5402595.27 244.64 513131.78 5402594.38 244.64 513131.78 5402594.38 263.701 513132.17 5402595.27 263.769 513132.17 5402595.27 244.64 - - - - - - - - - - - - - - - - - 513131.78 5402594.38 244.64 513132.29 5402594.24 244.64 513132.29 5402594.24 263.706 513131.78 5402594.38 263.701 513131.78 5402594.38 244.64 - - - - - - - - - - - - - - - - - 513132.29 5402594.24 244.64 513131.22 5402591.75 244.64 513131.22 5402591.75 263.515 513132.29 5402594.24 263.706 513132.29 5402594.24 244.64 - - - - - - - - - - - - - - - - - 513131.22 5402591.75 244.64 513130.69 5402591.95 244.64 513130.69 5402591.95 263.513 513131.22 5402591.75 263.515 513131.22 5402591.75 244.64 - - - - - - - - - - - - - - - - - 513130.69 5402591.95 244.64 513130.34 5402591.16 244.64 513130.34 5402591.16 263.452 513130.69 5402591.95 263.513 513130.69 5402591.95 244.64 - - - - - - - - - - - - - - - - - 513130.81 5402590.95 263.451 513130.34 5402591.16 263.452 513130.34 5402591.16 244.64 513130.81 5402590.95 244.64 513130.81 5402590.95 263.451 - - - - - - - - - - - - - - - - - 513130.81 5402590.95 244.64 513129.38 5402587.67 244.64 513129.38 5402587.67 263.199 513130.81 5402590.95 263.451 513130.81 5402590.95 244.64 - - - - - - - - - - - - - - - - - 513134.65 5402585.22 263.188 513129.38 5402587.67 263.199 513129.38 5402587.67 244.64 513134.65 5402585.22 244.64 513134.65 5402585.22 263.188 - - - - - - - - - - - - - - - - - 513134.65 5402585.22 244.64 513133.2 5402581.88 244.64 513133.2 5402581.88 262.931 513134.65 5402585.22 263.188 513134.65 5402585.22 244.64 - - - - - - - - - - - - - - - - - 513133.2 5402581.88 244.64 513133.17 5402581.88 244.64 513133.17 5402581.88 262.93 513133.2 5402581.88 262.931 513133.2 5402581.88 244.64 - - - - - - - - - - - - - - - - - 513133.17 5402581.88 244.64 513133.142 5402581.867 244.64 513133.142 5402581.867 262.928 513133.17 5402581.88 262.93 513133.17 5402581.88 244.64 - - - - - - - - - - - - - - - - - 513133.142 5402581.867 244.64 513133.12 5402581.854 244.64 513133.12 5402581.854 262.927 513133.142 5402581.867 262.928 513133.142 5402581.867 244.64 - - - - - - - - - - - - - - - - - 513183.427 5402556.027 244.64 513183.413 5402556.006 244.64 513183.413 5402556.006 262.657 513183.427 5402556.027 262.659 513183.427 5402556.027 244.64 - - - - - - - - - - - - - - - - - 513183.413 5402556.006 244.64 513183.402 5402555.983 244.64 513183.402 5402555.983 262.655 513183.413 5402556.006 262.657 513183.413 5402556.006 244.64 - - - - - - - - - - - - - - - - - 513183.402 5402555.983 244.64 513183.392 5402555.959 244.64 513183.392 5402555.959 262.654 513183.402 5402555.983 262.655 513183.402 5402555.983 244.64 - - - - - - - - - - - - - - - - - 513183.384 5402555.935 244.64 513183.384 5402555.935 262.652 513183.392 5402555.959 262.654 513183.392 5402555.959 244.64 513183.384 5402555.935 244.64 - - - - - - - - - - - - - - - - - 513183.377 5402555.91 244.64 513183.377 5402555.91 262.65 513183.384 5402555.935 262.652 513183.384 5402555.935 244.64 513183.377 5402555.91 244.64 - - - - - - - - - - - - - - - - - 513183.372 5402555.885 244.64 513183.372 5402555.885 262.648 513183.377 5402555.91 262.65 513183.377 5402555.91 244.64 513183.372 5402555.885 244.64 - - - - - - - - - - - - - - - - - 513183.369 5402555.859 244.64 513183.369 5402555.859 262.647 513183.372 5402555.885 262.648 513183.372 5402555.885 244.64 513183.369 5402555.859 244.64 - - - - - - - - - - - - - - - - - 513183.367 5402555.834 244.64 513183.367 5402555.834 262.645 513183.369 5402555.859 262.647 513183.369 5402555.859 244.64 513183.367 5402555.834 244.64 - - - - - - - - - - - - - - - - - 513183.368 5402555.808 244.64 513183.368 5402555.808 262.643 513183.367 5402555.834 262.645 513183.367 5402555.834 244.64 513183.368 5402555.808 244.64 - - - - - - - - - - - - - - - - - 513183.37 5402555.783 244.64 513183.37 5402555.783 262.642 513183.368 5402555.808 262.643 513183.368 5402555.808 244.64 513183.37 5402555.783 244.64 - - - - - - - - - - - - - - - - - 513183.374 5402555.757 244.64 513183.374 5402555.757 262.64 513183.37 5402555.783 262.642 513183.37 5402555.783 244.64 513183.374 5402555.757 244.64 - - - - - - - - - - - - - - - - - 513183.38 5402555.732 244.64 513183.38 5402555.732 262.639 513183.374 5402555.757 262.64 513183.374 5402555.757 244.64 513183.38 5402555.732 244.64 - - - - - - - - - - - - - - - - - 513183.388 5402555.708 244.64 513183.388 5402555.708 262.637 513183.38 5402555.732 262.639 513183.38 5402555.732 244.64 513183.388 5402555.708 244.64 - - - - - - - - - - - - - - - - - 513183.397 5402555.684 262.636 513183.388 5402555.708 262.637 513183.388 5402555.708 244.64 513183.397 5402555.684 244.64 513183.397 5402555.684 262.636 - - - - - - - - - - - - - - - - - 513183.408 5402555.66 262.635 513183.397 5402555.684 262.636 513183.397 5402555.684 244.64 513183.408 5402555.66 244.64 513183.408 5402555.66 262.635 - - - - - - - - - - - - - - - - - 513183.42 5402555.638 262.634 513183.408 5402555.66 262.635 513183.408 5402555.66 244.64 513183.42 5402555.638 244.64 513183.42 5402555.638 262.634 - - - - - - - - - - - - - - - - - 513183.434 5402555.617 262.633 513183.42 5402555.638 262.634 513183.42 5402555.638 244.64 513183.434 5402555.617 244.64 513183.434 5402555.617 262.633 - - - - - - - - - - - - - - - - - 513183.449 5402555.596 262.632 513183.434 5402555.617 262.633 513183.434 5402555.617 244.64 513183.449 5402555.596 244.64 513183.449 5402555.596 262.632 - - - - - - - - - - - - - - - - - 513183.466 5402555.577 262.631 513183.449 5402555.596 262.632 513183.449 5402555.596 244.64 513183.466 5402555.577 244.64 513183.466 5402555.577 262.631 - - - - - - - - - - - - - - - - - 513183.484 5402555.559 262.63 513183.466 5402555.577 262.631 513183.466 5402555.577 244.64 513183.484 5402555.559 244.64 513183.484 5402555.559 262.63 - - - - - - - - - - - - - - - - - 513183.484 5402555.559 244.64 513183.504 5402555.542 244.64 513183.504 5402555.542 262.63 513183.484 5402555.559 262.63 513183.484 5402555.559 244.64 - - - - - - - - - - - - - - - - - 513183.524 5402555.526 262.629 513183.504 5402555.542 262.63 513183.504 5402555.542 244.64 513183.524 5402555.526 244.64 513183.524 5402555.526 262.629 - - - - - - - - - - - - - - - - - 513183.524 5402555.526 244.64 513183.546 5402555.512 244.64 513183.546 5402555.512 262.629 513183.524 5402555.526 262.629 513183.524 5402555.526 244.64 - - - - - - - - - - - - - - - - - 513183.546 5402555.512 244.64 513183.568 5402555.5 244.64 513183.568 5402555.5 262.629 513183.546 5402555.512 262.629 513183.546 5402555.512 244.64 - - - - - - - - - - - - - - - - - 513183.568 5402555.5 244.64 513183.599 5402555.486 244.64 513183.599 5402555.486 262.629 513183.568 5402555.5 262.629 513183.568 5402555.5 244.64 - - - - - - - - - - - - - - - - - 513183.599 5402555.486 244.64 513183.63 5402555.475 244.64 513183.63 5402555.475 262.629 513183.599 5402555.486 262.629 513183.599 5402555.486 244.64 - - - - - - - - - - - - - - - - - 513183.63 5402555.475 244.64 513183.655 5402555.469 244.64 513183.655 5402555.469 262.629 513183.63 5402555.475 262.629 513183.63 5402555.475 244.64 - - - - - - - - - - - - - - - - - 513183.655 5402555.469 244.64 513183.68 5402555.464 244.64 513183.68 5402555.464 262.63 513183.655 5402555.469 262.629 513183.655 5402555.469 244.64 - - - - - - - - - - - - - - - - - 513183.68 5402555.464 244.64 513183.706 5402555.461 244.64 513183.706 5402555.461 262.63 513183.68 5402555.464 262.63 513183.68 5402555.464 244.64 - - - - - - - - - - - - - - - - - 513183.706 5402555.461 244.64 513183.732 5402555.46 244.64 513183.732 5402555.46 262.631 513183.706 5402555.461 262.63 513183.706 5402555.461 244.64 - - - - - - - - - - - - - - - - - 513183.732 5402555.46 244.64 513183.757 5402555.461 244.64 513183.757 5402555.461 262.632 513183.732 5402555.46 262.631 513183.732 5402555.46 244.64 - - - - - - - - - - - - - - - - - 513183.757 5402555.461 244.64 513183.783 5402555.463 244.64 513183.783 5402555.463 262.632 513183.757 5402555.461 262.632 513183.757 5402555.461 244.64 - - - - - - - - - - - - - - - - - 513183.783 5402555.463 244.64 513183.808 5402555.467 244.64 513183.808 5402555.467 262.633 513183.783 5402555.463 262.632 513183.783 5402555.463 244.64 - - - - - - - - - - - - - - - - - 513183.808 5402555.467 244.64 513183.833 5402555.473 244.64 513183.833 5402555.473 262.634 513183.808 5402555.467 262.633 513183.808 5402555.467 244.64 - - - - - - - - - - - - - - - - - 513183.833 5402555.473 244.64 513183.857 5402555.481 244.64 513183.857 5402555.481 262.636 513183.833 5402555.473 262.634 513183.833 5402555.473 244.64 - - - - - - - - - - - - - - - - - 513183.857 5402555.481 244.64 513183.881 5402555.49 244.64 513183.881 5402555.49 262.637 513183.857 5402555.481 262.636 513183.857 5402555.481 244.64 - - - - - - - - - - - - - - - - - 513183.881 5402555.49 244.64 513183.905 5402555.501 244.64 513183.905 5402555.501 262.638 513183.881 5402555.49 262.637 513183.881 5402555.49 244.64 - - - - - - - - - - - - - - - - - 513183.905 5402555.501 244.64 513183.927 5402555.514 244.64 513183.927 5402555.514 262.64 513183.905 5402555.501 262.638 513183.905 5402555.501 244.64 - - - - - - - - - - - - - - - - - 513183.927 5402555.514 244.64 513183.948 5402555.528 244.64 513183.948 5402555.528 262.641 513183.927 5402555.514 262.64 513183.927 5402555.514 244.64 - - - - - - - - - - - - - - - - - 513183.948 5402555.528 244.64 513183.969 5402555.544 244.64 513183.969 5402555.544 262.643 513183.948 5402555.528 262.641 513183.948 5402555.528 244.64 - - - - - - - - - - - - - - - - - 513183.969 5402555.544 244.64 513183.988 5402555.561 244.64 513183.988 5402555.561 262.644 513183.969 5402555.544 262.643 513183.969 5402555.544 244.64 - - - - - - - - - - - - - - - - - 513183.988 5402555.561 244.64 513184.006 5402555.579 244.64 513184.006 5402555.579 262.646 513183.988 5402555.561 262.644 513183.988 5402555.561 244.64 - - - - - - - - - - - - - - - - - 513184.006 5402555.579 244.64 513184.022 5402555.599 244.64 513184.022 5402555.599 262.648 513184.006 5402555.579 262.646 513184.006 5402555.579 244.64 - - - - - - - - - - - - - - - - - 513184.022 5402555.599 244.64 513184.038 5402555.619 244.64 513184.038 5402555.619 262.65 513184.022 5402555.599 262.648 513184.022 5402555.599 244.64 - - - - - - - - - - - - - - - - - 513184.038 5402555.619 244.64 513184.052 5402555.641 244.64 513184.052 5402555.641 262.651 513184.038 5402555.619 262.65 513184.038 5402555.619 244.64 - - - - - - - - - - - - - - - - - 513184.052 5402555.641 244.64 513184.064 5402555.663 244.64 513184.064 5402555.663 262.653 513184.052 5402555.641 262.651 513184.052 5402555.641 244.64 - - - - - - - - - - - - - - - - - 513184.064 5402555.663 244.64 513184.074 5402555.687 244.64 513184.074 5402555.687 262.655 513184.064 5402555.663 262.653 513184.064 5402555.663 244.64 - - - - - - - - - - - - - - - - - 513184.074 5402555.687 244.64 513184.083 5402555.711 244.64 513184.083 5402555.711 262.657 513184.074 5402555.687 262.655 513184.074 5402555.687 244.64 - - - - - - - - - - - - - - - - - 513184.083 5402555.711 262.657 513184.083 5402555.711 244.64 513184.091 5402555.735 244.64 513184.091 5402555.735 262.659 513184.083 5402555.711 262.657 - - - - - - - - - - - - - - - - - 513184.091 5402555.735 262.659 513184.091 5402555.735 244.64 513184.096 5402555.76 244.64 513184.096 5402555.76 262.66 513184.091 5402555.735 262.659 - - - - - - - - - - - - - - - - - 513184.096 5402555.76 262.66 513184.096 5402555.76 244.64 513184.1 5402555.786 244.64 513184.1 5402555.786 262.662 513184.096 5402555.76 262.66 - - - - - - - - - - - - - - - - - 513184.1 5402555.786 262.662 513184.1 5402555.786 244.64 513184.102 5402555.811 244.64 513184.102 5402555.811 262.664 513184.1 5402555.786 262.662 - - - - - - - - - - - - - - - - - 513184.102 5402555.811 262.664 513184.102 5402555.811 244.64 513184.102 5402555.837 244.64 513184.102 5402555.837 262.666 513184.102 5402555.811 262.664 - - - - - - - - - - - - - - - - - 513184.102 5402555.837 262.666 513184.102 5402555.837 244.64 513184.1 5402555.87 244.64 513184.1 5402555.87 262.668 513184.102 5402555.837 262.666 - - - - - - - - - - - - - - - - - 513188.09 5402554.11 262.665 513184.1 5402555.87 262.668 513184.1 5402555.87 244.64 513188.09 5402554.11 244.64 513188.09 5402554.11 262.665 - - - - - - - - - - - - - - - - - 513188.09 5402554.11 244.64 513188.07 5402554.089 244.64 513188.07 5402554.089 262.663 513188.09 5402554.11 262.665 513188.09 5402554.11 244.64 - - - - - - - - - - - - - - - - - 513188.07 5402554.089 244.64 513188.053 5402554.069 244.64 513188.053 5402554.069 262.661 513188.07 5402554.089 262.663 513188.07 5402554.089 244.64 - - - - - - - - - - - - - - - - - 513188.053 5402554.069 244.64 513188.038 5402554.047 244.64 513188.038 5402554.047 262.66 513188.053 5402554.069 262.661 513188.053 5402554.069 244.64 - - - - - - - - - - - - - - - - - 513188.038 5402554.047 244.64 513188.024 5402554.025 244.64 513188.024 5402554.025 262.658 513188.038 5402554.047 262.66 513188.038 5402554.047 244.64 - - - - - - - - - - - - - - - - - 513188.024 5402554.025 244.64 513188.012 5402554.002 244.64 513188.012 5402554.002 262.656 513188.024 5402554.025 262.658 513188.024 5402554.025 244.64 - - - - - - - - - - - - - - - - - 513188.012 5402554.002 244.64 513188.002 5402553.979 244.64 513188.002 5402553.979 262.654 513188.012 5402554.002 262.656 513188.012 5402554.002 244.64 - - - - - - - - - - - - - - - - - 513188.002 5402553.979 244.64 513187.993 5402553.954 244.64 513187.993 5402553.954 262.652 513188.002 5402553.979 262.654 513188.002 5402553.979 244.64 - - - - - - - - - - - - - - - - - 513187.986 5402553.929 244.64 513187.986 5402553.929 262.65 513187.993 5402553.954 262.652 513187.993 5402553.954 244.64 513187.986 5402553.929 244.64 - - - - - - - - - - - - - - - - - 513187.981 5402553.904 244.64 513187.981 5402553.904 262.649 513187.986 5402553.929 262.65 513187.986 5402553.929 244.64 513187.981 5402553.904 244.64 - - - - - - - - - - - - - - - - - 513187.977 5402553.878 244.64 513187.977 5402553.878 262.647 513187.981 5402553.904 262.649 513187.981 5402553.904 244.64 513187.977 5402553.878 244.64 - - - - - - - - - - - - - - - - - 513187.976 5402553.852 244.64 513187.976 5402553.852 262.645 513187.977 5402553.878 262.647 513187.977 5402553.878 244.64 513187.976 5402553.852 244.64 - - - - - - - - - - - - - - - - - 513187.976 5402553.826 244.64 513187.976 5402553.826 262.643 513187.976 5402553.852 262.645 513187.976 5402553.852 244.64 513187.976 5402553.826 244.64 - - - - - - - - - - - - - - - - - 513187.978 5402553.8 244.64 513187.978 5402553.8 262.642 513187.976 5402553.826 262.643 513187.976 5402553.826 244.64 513187.978 5402553.8 244.64 - - - - - - - - - - - - - - - - - 513187.982 5402553.774 244.64 513187.982 5402553.774 262.64 513187.978 5402553.8 262.642 513187.978 5402553.8 244.64 513187.982 5402553.774 244.64 - - - - - - - - - - - - - - - - - 513187.987 5402553.749 244.64 513187.987 5402553.749 262.639 513187.982 5402553.774 262.64 513187.982 5402553.774 244.64 513187.987 5402553.749 244.64 - - - - - - - - - - - - - - - - - 513187.995 5402553.724 244.64 513187.995 5402553.724 262.637 513187.987 5402553.749 262.639 513187.987 5402553.749 244.64 513187.995 5402553.724 244.64 - - - - - - - - - - - - - - - - - 513188.004 5402553.7 262.636 513187.995 5402553.724 262.637 513187.995 5402553.724 244.64 513188.004 5402553.7 244.64 513188.004 5402553.7 262.636 - - - - - - - - - - - - - - - - - 513188.014 5402553.676 262.635 513188.004 5402553.7 262.636 513188.004 5402553.7 244.64 513188.014 5402553.676 244.64 513188.014 5402553.676 262.635 - - - - - - - - - - - - - - - - - 513188.027 5402553.653 262.634 513188.014 5402553.676 262.635 513188.014 5402553.676 244.64 513188.027 5402553.653 244.64 513188.027 5402553.653 262.634 - - - - - - - - - - - - - - - - - 513188.041 5402553.631 262.633 513188.027 5402553.653 262.634 513188.027 5402553.653 244.64 513188.041 5402553.631 244.64 513188.041 5402553.631 262.633 - - - - - - - - - - - - - - - - - 513188.056 5402553.61 262.632 513188.041 5402553.631 262.633 513188.041 5402553.631 244.64 513188.056 5402553.61 244.64 513188.056 5402553.61 262.632 - - - - - - - - - - - - - - - - - 513188.073 5402553.591 262.631 513188.056 5402553.61 262.632 513188.056 5402553.61 244.64 513188.073 5402553.591 244.64 513188.073 5402553.591 262.631 - - - - - - - - - - - - - - - - - 513188.091 5402553.572 262.63 513188.073 5402553.591 262.631 513188.073 5402553.591 244.64 513188.091 5402553.572 244.64 513188.091 5402553.572 262.63 - - - - - - - - - - - - - - - - - 513188.091 5402553.572 244.64 513188.111 5402553.555 244.64 513188.111 5402553.555 262.63 513188.091 5402553.572 262.63 513188.091 5402553.572 244.64 - - - - - - - - - - - - - - - - - 513188.131 5402553.539 262.629 513188.111 5402553.555 262.63 513188.111 5402553.555 244.64 513188.131 5402553.539 244.64 513188.131 5402553.539 262.629 - - - - - - - - - - - - - - - - - 513188.131 5402553.539 244.64 513188.153 5402553.524 244.64 513188.153 5402553.524 262.629 513188.131 5402553.539 262.629 513188.131 5402553.539 244.64 - - - - - - - - - - - - - - - - - 513188.153 5402553.524 244.64 513188.175 5402553.512 244.64 513188.175 5402553.512 262.629 513188.153 5402553.524 262.629 513188.153 5402553.524 244.64 - - - - - - - - - - - - - - - - - 513188.175 5402553.512 244.64 513188.202 5402553.499 244.64 513188.202 5402553.499 262.629 513188.175 5402553.512 262.629 513188.175 5402553.512 244.64 - - - - - - - - - - - - - - - - - 513188.202 5402553.499 244.64 513188.229 5402553.489 244.64 513188.229 5402553.489 262.629 513188.202 5402553.499 262.629 513188.202 5402553.499 244.64 - - - - - - - - - - - - - - - - - 513188.229 5402553.489 244.64 513188.254 5402553.481 244.64 513188.254 5402553.481 262.629 513188.229 5402553.489 262.629 513188.229 5402553.489 244.64 - - - - - - - - - - - - - - - - - 513188.254 5402553.481 244.64 513188.279 5402553.476 244.64 513188.279 5402553.476 262.629 513188.254 5402553.481 262.629 513188.254 5402553.481 244.64 - - - - - - - - - - - - - - - - - 513188.279 5402553.476 244.64 513188.305 5402553.472 244.64 513188.305 5402553.472 262.63 513188.279 5402553.476 262.629 513188.279 5402553.476 244.64 - - - - - - - - - - - - - - - - - 513188.305 5402553.472 244.64 513188.331 5402553.47 244.64 513188.331 5402553.47 262.63 513188.305 5402553.472 262.63 513188.305 5402553.472 244.64 - - - - - - - - - - - - - - - - - 513188.331 5402553.47 244.64 513188.357 5402553.469 244.64 513188.357 5402553.469 262.631 513188.331 5402553.47 262.63 513188.331 5402553.47 244.64 - - - - - - - - - - - - - - - - - 513188.357 5402553.469 244.64 513188.383 5402553.471 244.64 513188.383 5402553.471 262.632 513188.357 5402553.469 262.631 513188.357 5402553.469 244.64 - - - - - - - - - - - - - - - - - 513188.383 5402553.471 244.64 513188.408 5402553.474 244.64 513188.408 5402553.474 262.633 513188.383 5402553.471 262.632 513188.383 5402553.471 244.64 - - - - - - - - - - - - - - - - - 513188.408 5402553.474 244.64 513188.434 5402553.479 244.64 513188.434 5402553.479 262.634 513188.408 5402553.474 262.633 513188.408 5402553.474 244.64 - - - - - - - - - - - - - - - - - 513188.434 5402553.479 244.64 513188.459 5402553.486 244.64 513188.459 5402553.486 262.635 513188.434 5402553.479 262.634 513188.434 5402553.479 244.64 - - - - - - - - - - - - - - - - - 513188.459 5402553.486 244.64 513188.483 5402553.495 244.64 513188.483 5402553.495 262.636 513188.459 5402553.486 262.635 513188.459 5402553.486 244.64 - - - - - - - - - - - - - - - - - 513188.483 5402553.495 244.64 513188.507 5402553.505 244.64 513188.507 5402553.505 262.638 513188.483 5402553.495 262.636 513188.483 5402553.495 244.64 - - - - - - - - - - - - - - - - - 513188.507 5402553.505 244.64 513188.53 5402553.517 244.64 513188.53 5402553.517 262.639 513188.507 5402553.505 262.638 513188.507 5402553.505 244.64 - - - - - - - - - - - - - - - - - 513188.53 5402553.517 244.64 513188.552 5402553.531 244.64 513188.552 5402553.531 262.64 513188.53 5402553.517 262.639 513188.53 5402553.517 244.64 - - - - - - - - - - - - - - - - - 513188.552 5402553.531 244.64 513188.574 5402553.546 244.64 513188.574 5402553.546 262.642 513188.552 5402553.531 262.64 513188.552 5402553.531 244.64 - - - - - - - - - - - - - - - - - 513188.574 5402553.546 244.64 513188.594 5402553.562 244.64 513188.594 5402553.562 262.644 513188.574 5402553.546 262.642 513188.574 5402553.546 244.64 - - - - - - - - - - - - - - - - - 513188.594 5402553.562 244.64 513188.613 5402553.58 244.64 513188.613 5402553.58 262.645 513188.594 5402553.562 262.644 513188.594 5402553.562 244.64 - - - - - - - - - - - - - - - - - 513188.613 5402553.58 244.64 513188.63 5402553.599 244.64 513188.63 5402553.599 262.647 513188.613 5402553.58 262.645 513188.613 5402553.58 244.64 - - - - - - - - - - - - - - - - - 513188.63 5402553.599 244.64 513188.646 5402553.619 244.64 513188.646 5402553.619 262.649 513188.63 5402553.599 262.647 513188.63 5402553.599 244.64 - - - - - - - - - - - - - - - - - 513188.646 5402553.619 244.64 513188.661 5402553.641 244.64 513188.661 5402553.641 262.651 513188.646 5402553.619 262.649 513188.646 5402553.619 244.64 - - - - - - - - - - - - - - - - - 513188.661 5402553.641 244.64 513188.674 5402553.663 244.64 513188.674 5402553.663 262.652 513188.661 5402553.641 262.651 513188.661 5402553.641 244.64 - - - - - - - - - - - - - - - - - 513188.674 5402553.663 244.64 513188.686 5402553.686 244.64 513188.686 5402553.686 262.654 513188.674 5402553.663 262.652 513188.674 5402553.663 244.64 - - - - - - - - - - - - - - - - - 513188.686 5402553.686 244.64 513188.696 5402553.71 244.64 513188.696 5402553.71 262.656 513188.686 5402553.686 262.654 513188.686 5402553.686 244.64 - - - - - - - - - - - - - - - - - 513188.696 5402553.71 262.656 513188.696 5402553.71 244.64 513188.704 5402553.735 244.64 513188.704 5402553.735 262.658 513188.696 5402553.71 262.656 - - - - - - - - - - - - - - - - - 513188.704 5402553.735 262.658 513188.704 5402553.735 244.64 513188.711 5402553.76 244.64 513188.711 5402553.76 262.66 513188.704 5402553.735 262.658 - - - - - - - - - - - - - - - - - 513188.711 5402553.76 262.66 513188.711 5402553.76 244.64 513188.716 5402553.786 244.64 513188.716 5402553.786 262.662 513188.711 5402553.76 262.66 - - - - - - - - - - - - - - - - - 513188.716 5402553.786 262.662 513188.716 5402553.786 244.64 513188.719 5402553.811 244.64 513188.719 5402553.811 262.663 513188.716 5402553.786 262.662 - - - - - - - - - - - - - - - - - 513188.719 5402553.811 262.663 513188.719 5402553.811 244.64 513188.72 5402553.84 244.64 513188.72 5402553.84 262.665 513188.719 5402553.811 262.663 - - - - - - - - - - - - - - - - - 513192.72 5402552.07 262.662 513188.72 5402553.84 262.665 513188.72 5402553.84 244.64 513192.72 5402552.07 244.64 513192.72 5402552.07 262.662 - - - - - - - - - - - - - - - - - 513192.72 5402552.07 244.64 513192.65 5402551.91 244.64 513192.65 5402551.91 262.65 513192.72 5402552.07 262.662 513192.72 5402552.07 244.64 - - - - - - - - - - - - - - - - - 513192.65 5402551.91 244.64 513192.64 5402551.886 244.64 513192.64 5402551.886 262.648 513192.65 5402551.91 262.65 513192.65 5402551.91 244.64 - - - - - - - - - - - - - - - - - 513192.633 5402551.862 244.64 513192.633 5402551.862 262.646 513192.64 5402551.886 262.648 513192.64 5402551.886 244.64 513192.633 5402551.862 244.64 - - - - - - - - - - - - - - - - - 513192.628 5402551.839 244.64 513192.628 5402551.839 262.645 513192.633 5402551.862 262.646 513192.633 5402551.862 244.64 513192.628 5402551.839 244.64 - - - - - - - - - - - - - - - - - 513192.624 5402551.815 244.64 513192.624 5402551.815 262.643 513192.628 5402551.839 262.645 513192.628 5402551.839 244.64 513192.624 5402551.815 244.64 - - - - - - - - - - - - - - - - - 513192.622 5402551.79 244.64 513192.622 5402551.79 262.641 513192.624 5402551.815 262.643 513192.624 5402551.815 244.64 513192.622 5402551.79 244.64 - - - - - - - - - - - - - - - - - 513192.621 5402551.766 244.64 513192.621 5402551.766 262.64 513192.622 5402551.79 262.641 513192.622 5402551.79 244.64 513192.621 5402551.766 244.64 - - - - - - - - - - - - - - - - - 513192.622 5402551.742 244.64 513192.622 5402551.742 262.638 513192.621 5402551.766 262.64 513192.621 5402551.766 244.64 513192.622 5402551.742 244.64 - - - - - - - - - - - - - - - - - 513192.625 5402551.717 244.64 513192.625 5402551.717 262.637 513192.622 5402551.742 262.638 513192.622 5402551.742 244.64 513192.625 5402551.717 244.64 - - - - - - - - - - - - - - - - - 513192.629 5402551.694 244.64 513192.629 5402551.694 262.635 513192.625 5402551.717 262.637 513192.625 5402551.717 244.64 513192.629 5402551.694 244.64 - - - - - - - - - - - - - - - - - 513192.636 5402551.67 244.64 513192.636 5402551.67 262.634 513192.629 5402551.694 262.635 513192.629 5402551.694 244.64 513192.636 5402551.67 244.64 - - - - - - - - - - - - - - - - - 513192.644 5402551.647 244.64 513192.644 5402551.647 262.633 513192.636 5402551.67 262.634 513192.636 5402551.67 244.64 513192.644 5402551.647 244.64 - - - - - - - - - - - - - - - - - 513192.653 5402551.625 262.632 513192.644 5402551.647 262.633 513192.644 5402551.647 244.64 513192.653 5402551.625 244.64 513192.653 5402551.625 262.632 - - - - - - - - - - - - - - - - - 513192.664 5402551.603 262.63 513192.653 5402551.625 262.632 513192.653 5402551.625 244.64 513192.664 5402551.603 244.64 513192.664 5402551.603 262.63 - - - - - - - - - - - - - - - - - 513192.676 5402551.582 262.629 513192.664 5402551.603 262.63 513192.664 5402551.603 244.64 513192.676 5402551.582 244.64 513192.676 5402551.582 262.629 - - - - - - - - - - - - - - - - - 513192.676 5402551.582 244.64 513192.69 5402551.562 244.64 513192.69 5402551.562 262.629 513192.676 5402551.582 262.629 513192.676 5402551.582 244.64 - - - - - - - - - - - - - - - - - 513192.705 5402551.543 262.628 513192.69 5402551.562 262.629 513192.69 5402551.562 244.64 513192.705 5402551.543 244.64 513192.705 5402551.543 262.628 - - - - - - - - - - - - - - - - - 513192.722 5402551.525 262.627 513192.705 5402551.543 262.628 513192.705 5402551.543 244.64 513192.722 5402551.525 244.64 513192.722 5402551.525 262.627 - - - - - - - - - - - - - - - - - 513192.74 5402551.509 262.626 513192.722 5402551.525 262.627 513192.722 5402551.525 244.64 513192.74 5402551.509 244.64 513192.74 5402551.509 262.626 - - - - - - - - - - - - - - - - - 513192.74 5402551.509 244.64 513192.759 5402551.493 244.64 513192.759 5402551.493 262.626 513192.74 5402551.509 262.626 513192.74 5402551.509 244.64 - - - - - - - - - - - - - - - - - 513192.759 5402551.493 244.64 513192.778 5402551.479 244.64 513192.778 5402551.479 262.626 513192.759 5402551.493 262.626 513192.759 5402551.493 244.64 - - - - - - - - - - - - - - - - - 513192.799 5402551.466 262.625 513192.778 5402551.479 262.626 513192.778 5402551.479 244.64 513192.799 5402551.466 244.64 513192.799 5402551.466 262.625 - - - - - - - - - - - - - - - - - 513192.799 5402551.466 244.64 513192.821 5402551.455 244.64 513192.821 5402551.455 262.625 513192.799 5402551.466 262.625 513192.799 5402551.466 244.64 - - - - - - - - - - - - - - - - - 513192.821 5402551.455 244.64 513192.845 5402551.445 244.64 513192.845 5402551.445 262.625 513192.821 5402551.455 262.625 513192.821 5402551.455 244.64 - - - - - - - - - - - - - - - - - 513192.845 5402551.445 244.64 513192.869 5402551.437 244.64 513192.869 5402551.437 262.625 513192.845 5402551.445 262.625 513192.845 5402551.445 244.64 - - - - - - - - - - - - - - - - - 513192.869 5402551.437 244.64 513192.893 5402551.431 244.64 513192.893 5402551.431 262.626 513192.869 5402551.437 262.625 513192.869 5402551.437 244.64 - - - - - - - - - - - - - - - - - 513192.893 5402551.431 244.64 513192.917 5402551.426 244.64 513192.917 5402551.426 262.626 513192.893 5402551.431 262.626 513192.893 5402551.431 244.64 - - - - - - - - - - - - - - - - - 513192.917 5402551.426 244.64 513192.941 5402551.423 244.64 513192.941 5402551.423 262.627 513192.917 5402551.426 262.626 513192.917 5402551.426 244.64 - - - - - - - - - - - - - - - - - 513192.941 5402551.423 244.64 513192.965 5402551.422 244.64 513192.965 5402551.422 262.627 513192.941 5402551.423 262.627 513192.941 5402551.423 244.64 - - - - - - - - - - - - - - - - - 513192.965 5402551.422 244.64 513192.99 5402551.423 244.64 513192.99 5402551.423 262.628 513192.965 5402551.422 262.627 513192.965 5402551.422 244.64 - - - - - - - - - - - - - - - - - 513192.99 5402551.423 244.64 513193.014 5402551.425 244.64 513193.014 5402551.425 262.629 513192.99 5402551.423 262.628 513192.99 5402551.423 244.64 - - - - - - - - - - - - - - - - - 513193.014 5402551.425 244.64 513193.038 5402551.429 244.64 513193.038 5402551.429 262.63 513193.014 5402551.425 262.629 513193.014 5402551.425 244.64 - - - - - - - - - - - - - - - - - 513193.038 5402551.429 244.64 513193.061 5402551.434 244.64 513193.061 5402551.434 262.631 513193.038 5402551.429 262.63 513193.038 5402551.429 244.64 - - - - - - - - - - - - - - - - - 513193.061 5402551.434 244.64 513193.085 5402551.442 244.64 513193.085 5402551.442 262.632 513193.061 5402551.434 262.631 513193.061 5402551.434 244.64 - - - - - - - - - - - - - - - - - 513193.085 5402551.442 244.64 513193.107 5402551.45 244.64 513193.107 5402551.45 262.633 513193.085 5402551.442 262.632 513193.085 5402551.442 244.64 - - - - - - - - - - - - - - - - - 513193.107 5402551.45 244.64 513193.129 5402551.461 244.64 513193.129 5402551.461 262.634 513193.107 5402551.45 262.633 513193.107 5402551.45 244.64 - - - - - - - - - - - - - - - - - 513193.129 5402551.461 244.64 513193.151 5402551.473 244.64 513193.151 5402551.473 262.636 513193.129 5402551.461 262.634 513193.129 5402551.461 244.64 - - - - - - - - - - - - - - - - - 513193.151 5402551.473 244.64 513193.171 5402551.486 244.64 513193.171 5402551.486 262.637 513193.151 5402551.473 262.636 513193.151 5402551.473 244.64 - - - - - - - - - - - - - - - - - 513193.171 5402551.486 244.64 513193.19 5402551.501 244.64 513193.19 5402551.501 262.639 513193.171 5402551.486 262.637 513193.171 5402551.486 244.64 - - - - - - - - - - - - - - - - - 513193.19 5402551.501 244.64 513193.208 5402551.517 244.64 513193.208 5402551.517 262.64 513193.19 5402551.501 262.639 513193.19 5402551.501 244.64 - - - - - - - - - - - - - - - - - 513193.208 5402551.517 244.64 513193.226 5402551.534 244.64 513193.226 5402551.534 262.642 513193.208 5402551.517 262.64 513193.208 5402551.517 244.64 - - - - - - - - - - - - - - - - - 513193.226 5402551.534 244.64 513193.241 5402551.553 244.64 513193.241 5402551.553 262.643 513193.226 5402551.534 262.642 513193.226 5402551.534 244.64 - - - - - - - - - - - - - - - - - 513193.241 5402551.553 244.64 513193.256 5402551.572 244.64 513193.256 5402551.572 262.645 513193.241 5402551.553 262.643 513193.241 5402551.553 244.64 - - - - - - - - - - - - - - - - - 513193.256 5402551.572 244.64 513193.269 5402551.593 244.64 513193.269 5402551.593 262.647 513193.256 5402551.572 262.645 513193.256 5402551.572 244.64 - - - - - - - - - - - - - - - - - 513193.269 5402551.593 244.64 513193.281 5402551.614 244.64 513193.281 5402551.614 262.648 513193.269 5402551.593 262.647 513193.269 5402551.593 244.64 - - - - - - - - - - - - - - - - - 513193.281 5402551.614 244.64 513193.291 5402551.636 244.64 513193.291 5402551.636 262.65 513193.281 5402551.614 262.648 513193.281 5402551.614 244.64 - - - - - - - - - - - - - - - - - 513193.291 5402551.636 244.64 513193.3 5402551.66 244.64 513193.3 5402551.66 262.652 513193.291 5402551.636 262.65 513193.291 5402551.636 244.64 - - - - - - - - - - - - - - - - - 513193.3 5402551.66 244.64 513193.35 5402551.78 244.64 513193.35 5402551.78 262.661 513193.3 5402551.66 262.652 513193.3 5402551.66 244.64 - - - - - - - - - - - - - - - - - 513193.35 5402551.78 244.64 513196.66 5402550.5 244.64 513196.66 5402550.5 262.671 513193.35 5402551.78 262.661 513193.35 5402551.78 244.64 - - - - - - - - - - - - - - - - - 513149.05 5402569.737 244.64 513149.037 5402569.754 244.64 513149.026 5402569.772 244.64 513149.015 5402569.79 244.64 513149.006 5402569.809 244.64 513148.998 5402569.829 244.64 513148.992 5402569.849 244.64 513148.987 5402569.869 244.64 513148.983 5402569.89 244.64 513148.981 5402569.911 244.64 513148.98 5402569.932 244.64 513148.981 5402569.953 244.64 513148.984 5402569.974 244.64 513148.987 5402569.995 244.64 513148.993 5402570.015 244.64 513148.999 5402570.035 244.64 513149.007 5402570.055 244.64 513149.02 5402570.08 244.64 513149.3 5402570.36 244.64 513146.39 5402572.95 244.64 513146.11 5402572.6 244.64 513146.09 5402572.578 244.64 513146.073 5402572.562 244.64 513146.055 5402572.547 244.64 513146.036 5402572.534 244.64 513146.016 5402572.522 244.64 513145.996 5402572.512 244.64 513145.975 5402572.503 244.64 513145.953 5402572.495 244.64 513145.931 5402572.489 244.64 513145.908 5402572.485 244.64 513145.885 5402572.482 244.64 513145.862 5402572.481 244.64 513145.839 5402572.481 244.64 513145.816 5402572.483 244.64 513145.793 5402572.487 244.64 513145.771 5402572.492 244.64 513145.749 5402572.499 244.64 513145.728 5402572.507 244.64 513145.707 5402572.516 244.64 513145.686 5402572.527 244.64 513145.667 5402572.54 244.64 513145.649 5402572.554 244.64 513145.626 5402572.574 244.64 513145.605 5402572.597 244.64 513145.59 5402572.615 244.64 513145.577 5402572.634 244.64 513145.566 5402572.654 244.64 513145.555 5402572.674 244.64 513145.547 5402572.696 244.64 513145.539 5402572.718 244.64 513145.534 5402572.74 244.64 513145.53 5402572.763 244.64 513145.527 5402572.786 244.64 513145.526 5402572.809 244.64 513145.527 5402572.832 244.64 513145.529 5402572.854 244.64 513145.533 5402572.877 244.64 513145.538 5402572.9 244.64 513145.545 5402572.921 244.64 513145.554 5402572.943 244.64 513145.564 5402572.964 244.64 513145.575 5402572.984 244.64 513145.588 5402573.003 244.64 513145.602 5402573.021 244.64 513145.617 5402573.038 244.64 513145.64 5402573.06 244.64 513145.9 5402573.38 244.64 513142.65 5402576.17 244.64 513142.51 5402575.93 244.64 513142.502 5402575.908 244.64 513142.494 5402575.886 244.64 513142.483 5402575.866 244.64 513142.472 5402575.847 244.64 513142.459 5402575.828 244.64 513142.445 5402575.81 244.64 513142.429 5402575.794 244.64 513142.413 5402575.778 244.64 513142.395 5402575.764 244.64 513142.377 5402575.751 244.64 513142.357 5402575.739 244.64 513142.337 5402575.729 244.64 513142.316 5402575.72 244.64 513142.295 5402575.712 244.64 513142.273 5402575.706 244.64 513142.251 5402575.702 244.64 513142.228 5402575.699 244.64 513142.205 5402575.698 244.64 513142.183 5402575.698 244.64 513142.16 5402575.7 244.64 513142.138 5402575.703 244.64 513142.116 5402575.708 244.64 513142.094 5402575.715 244.64 513142.073 5402575.723 244.64 513142.051 5402575.733 244.64 513142.03 5402575.745 244.64 513142.011 5402575.757 244.64 513141.993 5402575.771 244.64 513141.976 5402575.786 244.64 513141.96 5402575.802 244.64 513141.945 5402575.819 244.64 513141.932 5402575.837 244.64 513141.919 5402575.856 244.64 513141.908 5402575.876 244.64 513141.899 5402575.897 244.64 513141.891 5402575.918 244.64 513141.884 5402575.94 244.64 513141.879 5402575.962 244.64 513141.876 5402575.984 244.64 513141.874 5402576.007 244.64 513141.873 5402576.029 244.64 513141.875 5402576.052 244.64 513141.878 5402576.075 244.64 513141.882 5402576.097 244.64 513141.888 5402576.119 244.64 513141.895 5402576.14 244.64 513141.904 5402576.161 244.64 513141.914 5402576.181 244.64 513141.926 5402576.201 244.64 513141.94 5402576.22 244.64 513142.24 5402576.58 244.64 513138.96 5402579.53 244.64 513138.68 5402579.24 244.64 513138.678 5402579.214 244.64 513138.675 5402579.196 244.64 513138.671 5402579.178 244.64 513138.666 5402579.16 244.64 513138.659 5402579.143 244.64 513138.651 5402579.126 244.64 513138.642 5402579.11 244.64 513138.632 5402579.095 244.64 513138.621 5402579.08 244.64 513138.609 5402579.066 244.64 513138.596 5402579.053 244.64 513138.582 5402579.041 244.64 513138.567 5402579.03 244.64 513138.552 5402579.02 244.64 513138.536 5402579.011 244.64 513138.519 5402579.003 244.64 513138.502 5402578.997 244.64 513138.484 5402578.991 244.64 513138.466 5402578.987 244.64 513138.448 5402578.984 244.64 513138.429 5402578.982 244.64 513138.411 5402578.982 244.64 513138.392 5402578.983 244.64 513138.374 5402578.985 244.64 513138.356 5402578.989 244.64 513138.331 5402578.996 244.64 513138.308 5402579.005 244.64 513138.291 5402579.013 244.64 513138.275 5402579.022 244.64 513138.26 5402579.033 244.64 513138.245 5402579.044 244.64 513138.232 5402579.057 244.64 513138.219 5402579.07 244.64 513138.207 5402579.084 244.64 513138.196 5402579.099 244.64 513138.186 5402579.114 244.64 513138.178 5402579.131 244.64 513138.17 5402579.148 244.64 513138.164 5402579.165 244.64 513138.159 5402579.183 244.64 513138.155 5402579.201 244.64 513138.152 5402579.219 244.64 513138.151 5402579.238 244.64 513138.151 5402579.256 244.64 513138.152 5402579.274 244.64 513138.155 5402579.293 244.64 513138.159 5402579.311 244.64 513138.164 5402579.329 244.64 513138.17 5402579.346 244.64 513138.178 5402579.363 244.64 513138.186 5402579.379 244.64 513138.2 5402579.4 244.64 513138.34 5402579.78 244.64 513133.81 5402581.86 244.64 513133.68 5402581.46 244.64 513133.673 5402581.431 244.64 513133.664 5402581.406 244.64 513133.654 5402581.382 244.64 513133.643 5402581.359 244.64 513133.629 5402581.337 244.64 513133.614 5402581.315 244.64 513133.598 5402581.295 244.64 513133.581 5402581.276 244.64 513133.562 5402581.258 244.64 513133.542 5402581.242 244.64 513133.52 5402581.227 244.64 513133.498 5402581.213 244.64 513133.475 5402581.201 244.64 513133.451 5402581.191 244.64 513133.427 5402581.182 244.64 513133.402 5402581.175 244.64 513133.376 5402581.17 244.64 513133.35 5402581.167 244.64 513133.324 5402581.166 244.64 513133.298 5402581.166 244.64 513133.273 5402581.168 244.64 513133.247 5402581.172 244.64 513133.222 5402581.178 244.64 513133.197 5402581.185 244.64 513133.172 5402581.194 244.64 513133.149 5402581.205 244.64 513133.126 5402581.218 244.64 513133.104 5402581.232 244.64 513133.08 5402581.25 244.64 513133.057 5402581.271 244.64 513133.039 5402581.289 244.64 513133.022 5402581.309 244.64 513133.007 5402581.33 244.64 513132.993 5402581.352 244.64 513132.981 5402581.375 244.64 513132.971 5402581.399 244.64 513132.962 5402581.423 244.64 513132.955 5402581.448 244.64 513132.949 5402581.474 244.64 513132.946 5402581.5 244.64 513132.944 5402581.526 244.64 513132.944 5402581.552 244.64 513132.946 5402581.577 244.64 513132.95 5402581.603 244.64 513132.955 5402581.629 244.64 513132.962 5402581.654 244.64 513132.971 5402581.678 244.64 513132.982 5402581.702 244.64 513132.994 5402581.725 244.64 513133.008 5402581.747 244.64 513133.023 5402581.768 244.64 513133.04 5402581.787 244.64 513133.058 5402581.806 244.64 513133.077 5402581.823 244.64 513133.098 5402581.839 244.64 513133.12 5402581.854 244.64 513133.142 5402581.867 244.64 513133.17 5402581.88 244.64 513133.2 5402581.88 244.64 513134.65 5402585.22 244.64 513129.38 5402587.67 244.64 513130.81 5402590.95 244.64 513130.34 5402591.16 244.64 513130.69 5402591.95 244.64 513131.22 5402591.75 244.64 513132.29 5402594.24 244.64 513131.78 5402594.38 244.64 513132.17 5402595.27 244.64 513132.69 5402595.04 244.64 513133.71 5402597.44 244.64 513133.25 5402597.56 244.64 513133.61 5402598.41 244.64 513134.08 5402598.16 244.64 513135.2 5402600.67 244.64 513134.68 5402600.84 244.64 513135.06 5402601.66 244.64 513135.53 5402601.45 244.64 513136.6 5402603.87 244.64 513136.12 5402604.09 244.64 513136.47 5402604.9 244.64 513136.98 5402604.66 244.64 513138.05 5402607.09 244.64 513137.55 5402607.27 244.64 513137.86 5402608.06 244.64 513138.39 5402607.83 244.64 513139.58 5402610.52 244.64 513139.11 5402610.8 244.64 513139.46 5402611.6 244.64 513139.98 5402611.44 244.64 513141.6 5402614.96 244.64 513139.92 5402616.3 244.64 513138.41 5402617.33 244.64 513136.33 5402618.75 244.64 513137.221 5402619.876 244.64 513140.57 5402624.11 244.64 513144.69 5402622.22 244.64 513150.45 5402619.52 244.64 513152.04 5402622.99 244.64 513161.89 5402618.59 244.64 513161.79 5402618.38 244.64 513160.27 5402615.0 244.64 513210.73 5402592.46 244.64 513212.22 5402595.95 244.64 513212.29 5402596.13 244.64 513222.26 5402591.7 244.64 513220.44 5402587.66 244.64 513220.84 5402587.54 244.64 513219.026 5402583.413 244.64 513207.72 5402557.69 244.64 513204.69 5402559.04 244.64 513201.51 5402552.03 244.64 513201.36 5402551.76 244.64 513201.224 5402551.554 244.64 513201.074 5402551.358 244.64 513200.911 5402551.173 244.64 513200.735 5402551.0 244.64 513200.547 5402550.84 244.64 513200.349 5402550.693 244.64 513200.141 5402550.561 244.64 513199.924 5402550.443 244.64 513199.7 5402550.341 244.64 513199.409 5402550.235 244.64 513199.111 5402550.155 244.64 513198.869 5402550.11 244.64 513198.623 5402550.082 244.64 513198.377 5402550.072 244.64 513198.13 5402550.078 244.64 513197.885 5402550.102 244.64 513197.642 5402550.143 244.64 513197.402 5402550.2 244.64 513197.167 5402550.274 244.64 513196.937 5402550.365 244.64 513196.66 5402550.5 244.64 513193.35 5402551.78 244.64 513193.3 5402551.66 244.64 513193.291 5402551.636 244.64 513193.281 5402551.614 244.64 513193.269 5402551.593 244.64 513193.256 5402551.572 244.64 513193.241 5402551.553 244.64 513193.226 5402551.534 244.64 513193.208 5402551.517 244.64 513193.19 5402551.501 244.64 513193.171 5402551.486 244.64 513193.151 5402551.473 244.64 513193.129 5402551.461 244.64 513193.107 5402551.45 244.64 513193.085 5402551.442 244.64 513193.061 5402551.434 244.64 513193.038 5402551.429 244.64 513193.014 5402551.425 244.64 513192.99 5402551.423 244.64 513192.965 5402551.422 244.64 513192.941 5402551.423 244.64 513192.917 5402551.426 244.64 513192.893 5402551.431 244.64 513192.869 5402551.437 244.64 513192.845 5402551.445 244.64 513192.821 5402551.455 244.64 513192.799 5402551.466 244.64 513192.778 5402551.479 244.64 513192.759 5402551.493 244.64 513192.74 5402551.509 244.64 513192.722 5402551.525 244.64 513192.705 5402551.543 244.64 513192.69 5402551.562 244.64 513192.676 5402551.582 244.64 513192.664 5402551.603 244.64 513192.653 5402551.625 244.64 513192.644 5402551.647 244.64 513192.636 5402551.67 244.64 513192.629 5402551.694 244.64 513192.625 5402551.717 244.64 513192.622 5402551.742 244.64 513192.621 5402551.766 244.64 513192.622 5402551.79 244.64 513192.624 5402551.815 244.64 513192.628 5402551.839 244.64 513192.633 5402551.862 244.64 513192.64 5402551.886 244.64 513192.65 5402551.91 244.64 513192.72 5402552.07 244.64 513188.72 5402553.84 244.64 513188.719 5402553.811 244.64 513188.716 5402553.786 244.64 513188.711 5402553.76 244.64 513188.704 5402553.735 244.64 513188.696 5402553.71 244.64 513188.686 5402553.686 244.64 513188.674 5402553.663 244.64 513188.661 5402553.641 244.64 513188.646 5402553.619 244.64 513188.63 5402553.599 244.64 513188.613 5402553.58 244.64 513188.594 5402553.562 244.64 513188.574 5402553.546 244.64 513188.552 5402553.531 244.64 513188.53 5402553.517 244.64 513188.507 5402553.505 244.64 513188.483 5402553.495 244.64 513188.459 5402553.486 244.64 513188.434 5402553.479 244.64 513188.408 5402553.474 244.64 513188.383 5402553.471 244.64 513188.357 5402553.469 244.64 513188.331 5402553.47 244.64 513188.305 5402553.472 244.64 513188.279 5402553.476 244.64 513188.254 5402553.481 244.64 513188.229 5402553.489 244.64 513188.202 5402553.499 244.64 513188.175 5402553.512 244.64 513188.153 5402553.524 244.64 513188.131 5402553.539 244.64 513188.111 5402553.555 244.64 513188.091 5402553.572 244.64 513188.073 5402553.591 244.64 513188.056 5402553.61 244.64 513188.041 5402553.631 244.64 513188.027 5402553.653 244.64 513188.014 5402553.676 244.64 513188.004 5402553.7 244.64 513187.995 5402553.724 244.64 513187.987 5402553.749 244.64 513187.982 5402553.774 244.64 513187.978 5402553.8 244.64 513187.976 5402553.826 244.64 513187.976 5402553.852 244.64 513187.977 5402553.878 244.64 513187.981 5402553.904 244.64 513187.986 5402553.929 244.64 513187.993 5402553.954 244.64 513188.002 5402553.979 244.64 513188.012 5402554.002 244.64 513188.024 5402554.025 244.64 513188.038 5402554.047 244.64 513188.053 5402554.069 244.64 513188.07 5402554.089 244.64 513188.09 5402554.11 244.64 513184.1 5402555.87 244.64 513184.102 5402555.837 244.64 513184.102 5402555.811 244.64 513184.1 5402555.786 244.64 513184.096 5402555.76 244.64 513184.091 5402555.735 244.64 513184.083 5402555.711 244.64 513184.074 5402555.687 244.64 513184.064 5402555.663 244.64 513184.052 5402555.641 244.64 513184.038 5402555.619 244.64 513184.022 5402555.599 244.64 513184.006 5402555.579 244.64 513183.988 5402555.561 244.64 513183.969 5402555.544 244.64 513183.948 5402555.528 244.64 513183.927 5402555.514 244.64 513183.905 5402555.501 244.64 513183.881 5402555.49 244.64 513183.857 5402555.481 244.64 513183.833 5402555.473 244.64 513183.808 5402555.467 244.64 513183.783 5402555.463 244.64 513183.757 5402555.461 244.64 513183.732 5402555.46 244.64 513183.706 5402555.461 244.64 513183.68 5402555.464 244.64 513183.655 5402555.469 244.64 513183.63 5402555.475 244.64 513183.599 5402555.486 244.64 513183.568 5402555.5 244.64 513183.546 5402555.512 244.64 513183.524 5402555.526 244.64 513183.504 5402555.542 244.64 513183.484 5402555.559 244.64 513183.466 5402555.577 244.64 513183.449 5402555.596 244.64 513183.434 5402555.617 244.64 513183.42 5402555.638 244.64 513183.408 5402555.66 244.64 513183.397 5402555.684 244.64 513183.388 5402555.708 244.64 513183.38 5402555.732 244.64 513183.374 5402555.757 244.64 513183.37 5402555.783 244.64 513183.368 5402555.808 244.64 513183.367 5402555.834 244.64 513183.369 5402555.859 244.64 513183.372 5402555.885 244.64 513183.377 5402555.91 244.64 513183.384 5402555.935 244.64 513183.392 5402555.959 244.64 513183.402 5402555.983 244.64 513183.413 5402556.006 244.64 513183.427 5402556.027 244.64 513183.441 5402556.048 244.64 513183.457 5402556.068 244.64 513183.475 5402556.087 244.64 513183.5 5402556.11 244.64 513179.46 5402557.9 244.64 513179.464 5402557.875 244.64 513179.465 5402557.85 244.64 513179.465 5402557.825 244.64 513179.464 5402557.8 244.64 513179.461 5402557.775 244.64 513179.455 5402557.751 244.64 513179.449 5402557.727 244.64 513179.44 5402557.704 244.64 513179.43 5402557.681 244.64 513179.418 5402557.659 244.64 513179.405 5402557.638 244.64 513179.391 5402557.617 244.64 513179.375 5402557.598 244.64 513179.357 5402557.58 244.64 513179.339 5402557.564 244.64 513179.319 5402557.548 244.64 513179.299 5402557.534 244.64 513179.277 5402557.522 244.64 513179.255 5402557.511 244.64 513179.232 5402557.501 244.64 513179.208 5402557.494 244.64 513179.184 5402557.488 244.64 513179.16 5402557.483 244.64 513179.135 5402557.48 244.64 513179.11 5402557.479 244.64 513179.085 5402557.48 244.64 513179.06 5402557.483 244.64 513179.036 5402557.487 244.64 513179.012 5402557.493 244.64 513178.987 5402557.501 244.64 513178.964 5402557.511 244.64 513178.941 5402557.521 244.64 513178.92 5402557.534 244.64 513178.899 5402557.548 244.64 513178.879 5402557.563 244.64 513178.861 5402557.58 244.64 513178.844 5402557.598 244.64 513178.828 5402557.617 244.64 513178.813 5402557.637 244.64 513178.8 5402557.658 244.64 513178.788 5402557.68 244.64 513178.778 5402557.703 244.64 513178.77 5402557.726 244.64 513178.763 5402557.75 244.64 513178.758 5402557.775 244.64 513178.754 5402557.799 244.64 513178.752 5402557.824 244.64 513178.752 5402557.849 244.64 513178.754 5402557.874 244.64 513178.758 5402557.898 244.64 513178.763 5402557.923 244.64 513178.77 5402557.947 244.64 513178.778 5402557.97 244.64 513178.788 5402557.993 244.64 513178.8 5402558.015 244.64 513178.813 5402558.036 244.64 513178.828 5402558.056 244.64 513178.844 5402558.075 244.64 513178.861 5402558.093 244.64 513178.88 5402558.11 244.64 513174.76 5402559.97 244.64 513174.765 5402559.944 244.64 513174.768 5402559.921 244.64 513174.769 5402559.897 244.64 513174.768 5402559.873 244.64 513174.766 5402559.849 244.64 513174.762 5402559.826 244.64 513174.757 5402559.803 244.64 513174.75 5402559.78 244.64 513174.741 5402559.758 244.64 513174.731 5402559.736 244.64 513174.719 5402559.715 244.64 513174.706 5402559.695 244.64 513174.692 5402559.677 244.64 513174.676 5402559.659 244.64 513174.659 5402559.642 244.64 513174.641 5402559.626 244.64 513174.622 5402559.612 244.64 513174.602 5402559.599 244.64 513174.581 5402559.588 244.64 513174.56 5402559.578 244.64 513174.537 5402559.569 244.64 513174.514 5402559.563 244.64 513174.491 5402559.557 244.64 513174.468 5402559.554 244.64 513174.444 5402559.552 244.64 513174.42 5402559.551 244.64 513174.396 5402559.553 244.64 513174.373 5402559.556 244.64 513174.349 5402559.56 244.64 513174.327 5402559.567 244.64 513174.304 5402559.575 244.64 513174.28 5402559.585 244.64 513174.257 5402559.597 244.64 513174.237 5402559.61 244.64 513174.218 5402559.624 244.64 513174.2 5402559.639 244.64 513174.182 5402559.656 244.64 513174.166 5402559.673 244.64 513174.152 5402559.692 244.64 513174.138 5402559.712 244.64 513174.127 5402559.732 244.64 513174.116 5402559.754 244.64 513174.107 5402559.776 244.64 513174.1 5402559.798 244.64 513174.094 5402559.822 244.64 513174.09 5402559.845 244.64 513174.087 5402559.869 244.64 513174.087 5402559.893 244.64 513174.087 5402559.916 244.64 513174.09 5402559.94 244.64 513174.094 5402559.963 244.64 513174.1 5402559.987 244.64 513174.107 5402560.009 244.64 513174.116 5402560.031 244.64 513174.127 5402560.053 244.64 513174.138 5402560.073 244.64 513174.152 5402560.093 244.64 513174.166 5402560.112 244.64 513174.182 5402560.129 244.64 513174.2 5402560.146 244.64 513174.218 5402560.161 244.64 513174.237 5402560.175 244.64 513174.257 5402560.188 244.64 513174.28 5402560.2 244.64 513170.15 5402562.02 244.64 513170.154 5402561.988 244.64 513170.154 5402561.963 244.64 513170.153 5402561.939 244.64 513170.15 5402561.914 244.64 513170.146 5402561.89 244.64 513170.14 5402561.866 244.64 513170.132 5402561.843 244.64 513170.122 5402561.821 244.64 513170.111 5402561.799 244.64 513170.099 5402561.777 244.64 513170.085 5402561.757 244.64 513170.07 5402561.738 244.64 513170.053 5402561.72 244.64 513170.036 5402561.703 244.64 513170.017 5402561.688 244.64 513169.997 5402561.673 244.64 513169.976 5402561.661 244.64 513169.954 5402561.649 244.64 513169.931 5402561.639 244.64 513169.908 5402561.631 244.64 513169.885 5402561.625 244.64 513169.861 5402561.62 244.64 513169.836 5402561.617 244.64 513169.812 5402561.615 244.64 513169.787 5402561.615 244.64 513169.763 5402561.617 244.64 513169.739 5402561.621 244.64 513169.715 5402561.626 244.64 513169.691 5402561.633 244.64 513169.661 5402561.645 244.64 513169.631 5402561.66 244.64 513169.61 5402561.673 244.64 513169.59 5402561.687 244.64 513169.571 5402561.702 244.64 513169.553 5402561.719 244.64 513169.537 5402561.737 244.64 513169.521 5402561.756 244.64 513169.507 5402561.776 244.64 513169.495 5402561.797 244.64 513169.484 5402561.819 244.64 513169.474 5402561.842 244.64 513169.466 5402561.865 244.64 513169.46 5402561.889 244.64 513169.456 5402561.913 244.64 513169.453 5402561.937 244.64 513169.452 5402561.962 244.64 513169.452 5402561.986 244.64 513169.454 5402562.011 244.64 513169.458 5402562.035 244.64 513169.464 5402562.059 244.64 513169.471 5402562.082 244.64 513169.48 5402562.105 244.64 513169.491 5402562.127 244.64 513169.503 5402562.149 244.64 513169.516 5402562.169 244.64 513169.531 5402562.189 244.64 513169.547 5402562.207 244.64 513169.564 5402562.224 244.64 513169.583 5402562.24 244.64 513169.61 5402562.26 244.64 513165.11 5402564.25 244.64 513162.77 5402561.57 244.64 513160.97 5402559.54 244.64 513160.962 5402559.523 244.64 513160.955 5402559.51 244.64 513160.946 5402559.496 244.64 513160.936 5402559.484 244.64 513160.926 5402559.472 244.64 513160.914 5402559.46 244.64 513160.902 5402559.45 244.64 513160.89 5402559.44 244.64 513160.876 5402559.432 244.64 513160.862 5402559.424 244.64 513160.848 5402559.417 244.64 513160.833 5402559.412 244.64 513160.818 5402559.407 244.64 513160.803 5402559.404 244.64 513160.787 5402559.401 244.64 513160.771 5402559.4 244.64 513160.755 5402559.4 244.64 513160.739 5402559.4 244.64 513160.723 5402559.402 244.64 513160.708 5402559.406 244.64 513160.692 5402559.41 244.64 513160.677 5402559.415 244.64 513160.663 5402559.421 244.64 513160.649 5402559.429 244.64 513160.633 5402559.438 244.64 513160.617 5402559.45 244.64 513160.605 5402559.46 244.64 513160.594 5402559.471 244.64 513160.583 5402559.483 244.64 513160.574 5402559.496 244.64 513160.565 5402559.509 244.64 513160.557 5402559.523 244.64 513160.55 5402559.537 244.64 513160.545 5402559.552 244.64 513160.54 5402559.567 244.64 513160.536 5402559.583 244.64 513160.534 5402559.598 244.64 513160.532 5402559.614 244.64 513160.532 5402559.63 244.64 513160.532 5402559.646 244.64 513160.534 5402559.662 244.64 513160.537 5402559.677 244.64 513160.541 5402559.693 244.64 513160.546 5402559.708 244.64 513160.553 5402559.722 244.64 513160.56 5402559.737 244.64 513160.568 5402559.75 244.64 513160.577 5402559.763 244.64 513160.587 5402559.776 244.64 513160.6 5402559.79 244.64 513160.8 5402560.07 244.64 513157.53 5402562.98 244.64 513157.27 5402562.76 244.64 513157.245 5402562.742 244.64 513157.226 5402562.731 244.64 513157.206 5402562.721 244.64 513157.185 5402562.712 244.64 513157.164 5402562.705 244.64 513157.142 5402562.699 244.64 513157.12 5402562.695 244.64 513157.098 5402562.692 244.64 513157.075 5402562.691 244.64 513157.053 5402562.692 244.64 513157.03 5402562.694 244.64 513157.008 5402562.697 244.64 513156.986 5402562.702 244.64 513156.965 5402562.709 244.64 513156.944 5402562.717 244.64 513156.923 5402562.727 244.64 513156.904 5402562.738 244.64 513156.885 5402562.75 244.64 513156.861 5402562.769 244.64 513156.84 5402562.789 244.64 513156.825 5402562.806 244.64 513156.811 5402562.824 244.64 513156.798 5402562.842 244.64 513156.787 5402562.862 244.64 513156.777 5402562.882 244.64 513156.769 5402562.903 244.64 513156.762 5402562.924 244.64 513156.756 5402562.946 244.64 513156.752 5402562.968 244.64 513156.75 5402562.99 244.64 513156.749 5402563.013 244.64 513156.75 5402563.035 244.64 513156.752 5402563.057 244.64 513156.756 5402563.08 244.64 513156.762 5402563.102 244.64 513156.768 5402563.123 244.64 513156.777 5402563.144 244.64 513156.79 5402563.17 244.64 513157.03 5402563.45 244.64 513153.75 5402566.38 244.64 513153.49 5402566.16 244.64 513153.469 5402566.14 244.64 513153.453 5402566.127 244.64 513153.435 5402566.115 244.64 513153.417 5402566.105 244.64 513153.398 5402566.095 244.64 513153.379 5402566.087 244.64 513153.359 5402566.08 244.64 513153.338 5402566.075 244.64 513153.317 5402566.071 244.64 513153.296 5402566.069 244.64 513153.275 5402566.068 244.64 513153.254 5402566.069 244.64 513153.233 5402566.071 244.64 513153.212 5402566.074 244.64 513153.192 5402566.079 244.64 513153.172 5402566.086 244.64 513153.152 5402566.093 244.64 513153.133 5402566.102 244.64 513153.115 5402566.113 244.64 513153.091 5402566.129 244.64 513153.069 5402566.147 244.64 513153.054 5402566.162 244.64 513153.04 5402566.177 244.64 513153.027 5402566.194 244.64 513153.016 5402566.212 244.64 513153.005 5402566.23 244.64 513152.996 5402566.249 244.64 513152.988 5402566.269 244.64 513152.982 5402566.289 244.64 513152.977 5402566.309 244.64 513152.973 5402566.33 244.64 513152.971 5402566.351 244.64 513152.97 5402566.372 244.64 513152.971 5402566.393 244.64 513152.974 5402566.414 244.64 513152.977 5402566.435 244.64 513152.983 5402566.455 244.64 513152.989 5402566.476 244.64 513152.997 5402566.495 244.64 513153.01 5402566.52 244.64 513153.29 5402566.8 244.64 513149.76 5402569.94 244.64 513149.5 5402569.72 244.64 513149.479 5402569.7 244.64 513149.463 5402569.687 244.64 513149.445 5402569.675 244.64 513149.427 5402569.665 244.64 513149.408 5402569.655 244.64 513149.389 5402569.647 244.64 513149.368 5402569.64 244.64 513149.348 5402569.635 244.64 513149.327 5402569.631 244.64 513149.306 5402569.629 244.64 513149.285 5402569.628 244.64 513149.264 5402569.629 244.64 513149.243 5402569.631 244.64 513149.222 5402569.634 244.64 513149.202 5402569.639 244.64 513149.182 5402569.646 244.64 513149.162 5402569.653 244.64 513149.143 5402569.662 244.64 513149.125 5402569.673 244.64 513149.101 5402569.689 244.64 513149.079 5402569.707 244.64 513149.064 5402569.722 244.64 513149.05 5402569.737 244.64 - - - - - - - - - - - - - - - - - 513133.12 5402581.854 244.64 513133.098 5402581.839 244.64 513133.098 5402581.839 262.925 513133.12 5402581.854 262.927 513133.12 5402581.854 244.64 - - - - - - - - - - - - - - - - - 513133.098 5402581.839 244.64 513133.077 5402581.823 244.64 513133.077 5402581.823 262.924 513133.098 5402581.839 262.925 513133.098 5402581.839 244.64 - - - - - - - - - - - - - - - - - 513133.077 5402581.823 244.64 513133.058 5402581.806 244.64 513133.058 5402581.806 262.922 513133.077 5402581.823 262.924 513133.077 5402581.823 244.64 - - - - - - - - - - - - - - - - - 513133.058 5402581.806 244.64 513133.04 5402581.787 244.64 513133.04 5402581.787 262.92 513133.058 5402581.806 262.922 513133.058 5402581.806 244.64 - - - - - - - - - - - - - - - - - 513133.04 5402581.787 244.64 513133.023 5402581.768 244.64 513133.023 5402581.768 262.918 513133.04 5402581.787 262.92 513133.04 5402581.787 244.64 - - - - - - - - - - - - - - - - - 513133.023 5402581.768 244.64 513133.008 5402581.747 244.64 513133.008 5402581.747 262.917 513133.023 5402581.768 262.918 513133.023 5402581.768 244.64 - - - - - - - - - - - - - - - - - 513133.008 5402581.747 244.64 513132.994 5402581.725 244.64 513132.994 5402581.725 262.915 513133.008 5402581.747 262.917 513133.008 5402581.747 244.64 - - - - - - - - - - - - - - - - - 513132.994 5402581.725 244.64 513132.982 5402581.702 244.64 513132.982 5402581.702 262.913 513132.994 5402581.725 262.915 513132.994 5402581.725 244.64 - - - - - - - - - - - - - - - - - 513132.982 5402581.702 244.64 513132.971 5402581.678 244.64 513132.971 5402581.678 262.911 513132.982 5402581.702 262.913 513132.982 5402581.702 244.64 - - - - - - - - - - - - - - - - - 513132.971 5402581.678 244.64 513132.962 5402581.654 244.64 513132.962 5402581.654 262.909 513132.971 5402581.678 262.911 513132.971 5402581.678 244.64 - - - - - - - - - - - - - - - - - 513132.955 5402581.629 244.64 513132.955 5402581.629 262.908 513132.962 5402581.654 262.909 513132.962 5402581.654 244.64 513132.955 5402581.629 244.64 - - - - - - - - - - - - - - - - - 513132.95 5402581.603 244.64 513132.95 5402581.603 262.906 513132.955 5402581.629 262.908 513132.955 5402581.629 244.64 513132.95 5402581.603 244.64 - - - - - - - - - - - - - - - - - 513132.946 5402581.577 244.64 513132.946 5402581.577 262.904 513132.95 5402581.603 262.906 513132.95 5402581.603 244.64 513132.946 5402581.577 244.64 - - - - - - - - - - - - - - - - - 513132.944 5402581.552 244.64 513132.944 5402581.552 262.902 513132.946 5402581.577 262.904 513132.946 5402581.577 244.64 513132.944 5402581.552 244.64 - - - - - - - - - - - - - - - - - 513132.944 5402581.526 244.64 513132.944 5402581.526 262.901 513132.944 5402581.552 262.902 513132.944 5402581.552 244.64 513132.944 5402581.526 244.64 - - - - - - - - - - - - - - - - - 513132.946 5402581.5 244.64 513132.946 5402581.5 262.899 513132.944 5402581.526 262.901 513132.944 5402581.526 244.64 513132.946 5402581.5 244.64 - - - - - - - - - - - - - - - - - 513132.949 5402581.474 244.64 513132.949 5402581.474 262.897 513132.946 5402581.5 262.899 513132.946 5402581.5 244.64 513132.949 5402581.474 244.64 - - - - - - - - - - - - - - - - - 513132.955 5402581.448 244.64 513132.955 5402581.448 262.896 513132.949 5402581.474 262.897 513132.949 5402581.474 244.64 513132.955 5402581.448 244.64 - - - - - - - - - - - - - - - - - 513132.962 5402581.423 244.64 513132.962 5402581.423 262.894 513132.955 5402581.448 262.896 513132.955 5402581.448 244.64 513132.962 5402581.423 244.64 - - - - - - - - - - - - - - - - - 513132.971 5402581.399 262.893 513132.962 5402581.423 262.894 513132.962 5402581.423 244.64 513132.971 5402581.399 244.64 513132.971 5402581.399 262.893 - - - - - - - - - - - - - - - - - 513132.981 5402581.375 262.892 513132.971 5402581.399 262.893 513132.971 5402581.399 244.64 513132.981 5402581.375 244.64 513132.981 5402581.375 262.892 - - - - - - - - - - - - - - - - - 513132.993 5402581.352 262.891 513132.981 5402581.375 262.892 513132.981 5402581.375 244.64 513132.993 5402581.352 244.64 513132.993 5402581.352 262.891 - - - - - - - - - - - - - - - - - 513133.007 5402581.33 262.89 513132.993 5402581.352 262.891 513132.993 5402581.352 244.64 513133.007 5402581.33 244.64 513133.007 5402581.33 262.89 - - - - - - - - - - - - - - - - - 513133.022 5402581.309 262.889 513133.007 5402581.33 262.89 513133.007 5402581.33 244.64 513133.022 5402581.309 244.64 513133.022 5402581.309 262.889 - - - - - - - - - - - - - - - - - 513133.039 5402581.289 262.888 513133.022 5402581.309 262.889 513133.022 5402581.309 244.64 513133.039 5402581.289 244.64 513133.039 5402581.289 262.888 - - - - - - - - - - - - - - - - - 513133.057 5402581.271 262.887 513133.039 5402581.289 262.888 513133.039 5402581.289 244.64 513133.057 5402581.271 244.64 513133.057 5402581.271 262.887 - - - - - - - - - - - - - - - - - 513133.08 5402581.25 262.886 513133.057 5402581.271 262.887 513133.057 5402581.271 244.64 513133.08 5402581.25 244.64 513133.08 5402581.25 262.886 - - - - - - - - - - - - - - - - - 513133.08 5402581.25 244.64 513133.104 5402581.232 244.64 513133.104 5402581.232 262.886 513133.08 5402581.25 262.886 513133.08 5402581.25 244.64 - - - - - - - - - - - - - - - - - 513133.104 5402581.232 244.64 513133.126 5402581.218 244.64 513133.126 5402581.218 262.886 513133.104 5402581.232 262.886 513133.104 5402581.232 244.64 - - - - - - - - - - - - - - - - - 513133.149 5402581.205 262.885 513133.126 5402581.218 262.886 513133.126 5402581.218 244.64 513133.149 5402581.205 244.64 513133.149 5402581.205 262.885 - - - - - - - - - - - - - - - - - 513133.149 5402581.205 244.64 513133.172 5402581.194 244.64 513133.172 5402581.194 262.885 513133.149 5402581.205 262.885 513133.149 5402581.205 244.64 - - - - - - - - - - - - - - - - - 513133.172 5402581.194 244.64 513133.197 5402581.185 244.64 513133.197 5402581.185 262.886 513133.172 5402581.194 262.885 513133.172 5402581.194 244.64 - - - - - - - - - - - - - - - - - 513133.197 5402581.185 244.64 513133.222 5402581.178 244.64 513133.222 5402581.178 262.886 513133.197 5402581.185 262.886 513133.197 5402581.185 244.64 - - - - - - - - - - - - - - - - - 513133.222 5402581.178 244.64 513133.247 5402581.172 244.64 513133.247 5402581.172 262.886 513133.222 5402581.178 262.886 513133.222 5402581.178 244.64 - - - - - - - - - - - - - - - - - 513133.247 5402581.172 244.64 513133.273 5402581.168 244.64 513133.273 5402581.168 262.887 513133.247 5402581.172 262.886 513133.247 5402581.172 244.64 - - - - - - - - - - - - - - - - - 513133.273 5402581.168 244.64 513133.298 5402581.166 244.64 513133.298 5402581.166 262.887 513133.273 5402581.168 262.887 513133.273 5402581.168 244.64 - - - - - - - - - - - - - - - - - 513133.298 5402581.166 244.64 513133.324 5402581.166 244.64 513133.324 5402581.166 262.888 513133.298 5402581.166 262.887 513133.298 5402581.166 244.64 - - - - - - - - - - - - - - - - - 513133.324 5402581.166 244.64 513133.35 5402581.167 244.64 513133.35 5402581.167 262.889 513133.324 5402581.166 262.888 513133.324 5402581.166 244.64 - - - - - - - - - - - - - - - - - 513133.35 5402581.167 244.64 513133.376 5402581.17 244.64 513133.376 5402581.17 262.89 513133.35 5402581.167 262.889 513133.35 5402581.167 244.64 - - - - - - - - - - - - - - - - - 513133.376 5402581.17 244.64 513133.402 5402581.175 244.64 513133.402 5402581.175 262.891 513133.376 5402581.17 262.89 513133.376 5402581.17 244.64 - - - - - - - - - - - - - - - - - 513133.402 5402581.175 244.64 513133.427 5402581.182 244.64 513133.427 5402581.182 262.892 513133.402 5402581.175 262.891 513133.402 5402581.175 244.64 - - - - - - - - - - - - - - - - - 513133.427 5402581.182 244.64 513133.451 5402581.191 244.64 513133.451 5402581.191 262.893 513133.427 5402581.182 262.892 513133.427 5402581.182 244.64 - - - - - - - - - - - - - - - - - 513133.451 5402581.191 244.64 513133.475 5402581.201 244.64 513133.475 5402581.201 262.894 513133.451 5402581.191 262.893 513133.451 5402581.191 244.64 - - - - - - - - - - - - - - - - - 513133.475 5402581.201 244.64 513133.498 5402581.213 244.64 513133.498 5402581.213 262.896 513133.475 5402581.201 262.894 513133.475 5402581.201 244.64 - - - - - - - - - - - - - - - - - 513133.498 5402581.213 244.64 513133.52 5402581.227 244.64 513133.52 5402581.227 262.897 513133.498 5402581.213 262.896 513133.498 5402581.213 244.64 - - - - - - - - - - - - - - - - - 513133.52 5402581.227 244.64 513133.542 5402581.242 244.64 513133.542 5402581.242 262.899 513133.52 5402581.227 262.897 513133.52 5402581.227 244.64 - - - - - - - - - - - - - - - - - 513133.542 5402581.242 244.64 513133.562 5402581.258 244.64 513133.562 5402581.258 262.9 513133.542 5402581.242 262.899 513133.542 5402581.242 244.64 - - - - - - - - - - - - - - - - - 513133.562 5402581.258 244.64 513133.581 5402581.276 244.64 513133.581 5402581.276 262.902 513133.562 5402581.258 262.9 513133.562 5402581.258 244.64 - - - - - - - - - - - - - - - - - 513133.581 5402581.276 244.64 513133.598 5402581.295 244.64 513133.598 5402581.295 262.904 513133.581 5402581.276 262.902 513133.581 5402581.276 244.64 - - - - - - - - - - - - - - - - - 513133.598 5402581.295 244.64 513133.614 5402581.315 244.64 513133.614 5402581.315 262.906 513133.598 5402581.295 262.904 513133.598 5402581.295 244.64 - - - - - - - - - - - - - - - - - 513133.614 5402581.315 244.64 513133.629 5402581.337 244.64 513133.629 5402581.337 262.907 513133.614 5402581.315 262.906 513133.614 5402581.315 244.64 - - - - - - - - - - - - - - - - - 513133.629 5402581.337 244.64 513133.643 5402581.359 244.64 513133.643 5402581.359 262.909 513133.629 5402581.337 262.907 513133.629 5402581.337 244.64 - - - - - - - - - - - - - - - - - 513133.643 5402581.359 244.64 513133.654 5402581.382 244.64 513133.654 5402581.382 262.911 513133.643 5402581.359 262.909 513133.643 5402581.359 244.64 - - - - - - - - - - - - - - - - - 513133.654 5402581.382 244.64 513133.664 5402581.406 244.64 513133.664 5402581.406 262.913 513133.654 5402581.382 262.911 513133.654 5402581.382 244.64 - - - - - - - - - - - - - - - - - 513133.664 5402581.406 244.64 513133.673 5402581.431 244.64 513133.673 5402581.431 262.915 513133.664 5402581.406 262.913 513133.664 5402581.406 244.64 - - - - - - - - - - - - - - - - - 513133.673 5402581.431 262.915 513133.673 5402581.431 244.64 513133.68 5402581.46 244.64 513133.68 5402581.46 262.917 513133.673 5402581.431 262.915 - - - - - - - - - - - - - - - - - 513133.68 5402581.46 244.64 513133.81 5402581.86 244.64 513133.81 5402581.86 262.946 513133.68 5402581.46 262.917 513133.68 5402581.46 244.64 - - - - - - - - - - - - - - - - - 513138.34 5402579.78 262.938 513133.81 5402581.86 262.946 513133.81 5402581.86 244.64 513138.34 5402579.78 244.64 513138.34 5402579.78 262.938 - - - - - - - - - - - - - - - - - 513138.34 5402579.78 244.64 513138.2 5402579.4 244.64 513138.2 5402579.4 262.91 513138.34 5402579.78 262.938 513138.34 5402579.78 244.64 - - - - - - - - - - - - - - - - - 513138.2 5402579.4 244.64 513138.186 5402579.379 244.64 513138.186 5402579.379 262.908 513138.2 5402579.4 262.91 513138.2 5402579.4 244.64 - - - - - - - - - - - - - - - - - 513138.178 5402579.363 244.64 513138.178 5402579.363 262.907 513138.186 5402579.379 262.908 513138.186 5402579.379 244.64 513138.178 5402579.363 244.64 - - - - - - - - - - - - - - - - - 513138.17 5402579.346 244.64 513138.17 5402579.346 262.905 513138.178 5402579.363 262.907 513138.178 5402579.363 244.64 513138.17 5402579.346 244.64 - - - - - - - - - - - - - - - - - 513138.164 5402579.329 244.64 513138.164 5402579.329 262.904 513138.17 5402579.346 262.905 513138.17 5402579.346 244.64 513138.164 5402579.329 244.64 - - - - - - - - - - - - - - - - - 513138.159 5402579.311 244.64 513138.159 5402579.311 262.903 513138.164 5402579.329 262.904 513138.164 5402579.329 244.64 513138.159 5402579.311 244.64 - - - - - - - - - - - - - - - - - 513138.155 5402579.293 244.64 513138.155 5402579.293 262.901 513138.159 5402579.311 262.903 513138.159 5402579.311 244.64 513138.155 5402579.293 244.64 - - - - - - - - - - - - - - - - - 513138.152 5402579.274 244.64 513138.152 5402579.274 262.9 513138.155 5402579.293 262.901 513138.155 5402579.293 244.64 513138.152 5402579.274 244.64 - - - - - - - - - - - - - - - - - 513138.151 5402579.256 244.64 513138.151 5402579.256 262.899 513138.152 5402579.274 262.9 513138.152 5402579.274 244.64 513138.151 5402579.256 244.64 - - - - - - - - - - - - - - - - - 513138.151 5402579.238 244.64 513138.151 5402579.238 262.898 513138.151 5402579.256 262.899 513138.151 5402579.256 244.64 513138.151 5402579.238 244.64 - - - - - - - - - - - - - - - - - 513138.152 5402579.219 244.64 513138.152 5402579.219 262.897 513138.151 5402579.238 262.898 513138.151 5402579.238 244.64 513138.152 5402579.219 244.64 - - - - - - - - - - - - - - - - - 513138.155 5402579.201 244.64 513138.155 5402579.201 262.896 513138.152 5402579.219 262.897 513138.152 5402579.219 244.64 513138.155 5402579.201 244.64 - - - - - - - - - - - - - - - - - 513138.159 5402579.183 244.64 513138.159 5402579.183 262.894 513138.155 5402579.201 262.896 513138.155 5402579.201 244.64 513138.159 5402579.183 244.64 - - - - - - - - - - - - - - - - - 513138.164 5402579.165 244.64 513138.164 5402579.165 262.893 513138.159 5402579.183 262.894 513138.159 5402579.183 244.64 513138.164 5402579.165 244.64 - - - - - - - - - - - - - - - - - 513138.17 5402579.148 244.64 513138.17 5402579.148 262.892 513138.164 5402579.165 262.893 513138.164 5402579.165 244.64 513138.17 5402579.148 244.64 - - - - - - - - - - - - - - - - - 513138.178 5402579.131 244.64 513138.178 5402579.131 262.892 513138.17 5402579.148 262.892 513138.17 5402579.148 244.64 513138.178 5402579.131 244.64 - - - - - - - - - - - - - - - - - 513138.186 5402579.114 244.64 513138.186 5402579.114 262.891 513138.178 5402579.131 262.892 513138.178 5402579.131 244.64 513138.186 5402579.114 244.64 - - - - - - - - - - - - - - - - - 513138.196 5402579.099 262.89 513138.186 5402579.114 262.891 513138.186 5402579.114 244.64 513138.196 5402579.099 244.64 513138.196 5402579.099 262.89 - - - - - - - - - - - - - - - - - 513138.207 5402579.084 262.889 513138.196 5402579.099 262.89 513138.196 5402579.099 244.64 513138.207 5402579.084 244.64 513138.207 5402579.084 262.889 - - - - - - - - - - - - - - - - - 513138.207 5402579.084 244.64 513138.219 5402579.07 244.64 513138.219 5402579.07 262.889 513138.207 5402579.084 262.889 513138.207 5402579.084 244.64 - - - - - - - - - - - - - - - - - 513138.232 5402579.057 262.888 513138.219 5402579.07 262.889 513138.219 5402579.07 244.64 513138.232 5402579.057 244.64 513138.232 5402579.057 262.888 - - - - - - - - - - - - - - - - - 513138.232 5402579.057 244.64 513138.245 5402579.044 244.64 513138.245 5402579.044 262.888 513138.232 5402579.057 262.888 513138.232 5402579.057 244.64 - - - - - - - - - - - - - - - - - 513138.245 5402579.044 244.64 513138.26 5402579.033 244.64 513138.26 5402579.033 262.888 513138.245 5402579.044 262.888 513138.245 5402579.044 244.64 - - - - - - - - - - - - - - - - - 513138.275 5402579.022 262.887 513138.26 5402579.033 262.888 513138.26 5402579.033 244.64 513138.275 5402579.022 244.64 513138.275 5402579.022 262.887 - - - - - - - - - - - - - - - - - 513138.275 5402579.022 244.64 513138.291 5402579.013 244.64 513138.291 5402579.013 262.887 513138.275 5402579.022 262.887 513138.275 5402579.022 244.64 - - - - - - - - - - - - - - - - - 513138.291 5402579.013 244.64 513138.308 5402579.005 244.64 513138.308 5402579.005 262.887 513138.291 5402579.013 262.887 513138.291 5402579.013 244.64 - - - - - - - - - - - - - - - - - 513138.308 5402579.005 244.64 513138.331 5402578.996 244.64 513138.331 5402578.996 262.887 513138.308 5402579.005 262.887 513138.308 5402579.005 244.64 - - - - - - - - - - - - - - - - - 513138.331 5402578.996 244.64 513138.356 5402578.989 244.64 513138.356 5402578.989 262.887 513138.331 5402578.996 262.887 513138.331 5402578.996 244.64 - - - - - - - - - - - - - - - - - 513138.356 5402578.989 244.64 513138.374 5402578.985 244.64 513138.374 5402578.985 262.888 513138.356 5402578.989 262.887 513138.356 5402578.989 244.64 - - - - - - - - - - - - - - - - - 513138.374 5402578.985 244.64 513138.392 5402578.983 244.64 513138.392 5402578.983 262.888 513138.374 5402578.985 262.888 513138.374 5402578.985 244.64 - - - - - - - - - - - - - - - - - 513138.392 5402578.983 244.64 513138.411 5402578.982 244.64 513138.411 5402578.982 262.888 513138.392 5402578.983 262.888 513138.392 5402578.983 244.64 - - - - - - - - - - - - - - - - - 513138.411 5402578.982 244.64 513138.429 5402578.982 244.64 513138.429 5402578.982 262.889 513138.411 5402578.982 262.888 513138.411 5402578.982 244.64 - - - - - - - - - - - - - - - - - 513138.429 5402578.982 244.64 513138.448 5402578.984 244.64 513138.448 5402578.984 262.89 513138.429 5402578.982 262.889 513138.429 5402578.982 244.64 - - - - - - - - - - - - - - - - - 513138.448 5402578.984 244.64 513138.466 5402578.987 244.64 513138.466 5402578.987 262.89 513138.448 5402578.984 262.89 513138.448 5402578.984 244.64 - - - - - - - - - - - - - - - - - 513138.466 5402578.987 244.64 513138.484 5402578.991 244.64 513138.484 5402578.991 262.891 513138.466 5402578.987 262.89 513138.466 5402578.987 244.64 - - - - - - - - - - - - - - - - - 513138.484 5402578.991 244.64 513138.502 5402578.997 244.64 513138.502 5402578.997 262.892 513138.484 5402578.991 262.891 513138.484 5402578.991 244.64 - - - - - - - - - - - - - - - - - 513138.502 5402578.997 244.64 513138.519 5402579.003 244.64 513138.519 5402579.003 262.893 513138.502 5402578.997 262.892 513138.502 5402578.997 244.64 - - - - - - - - - - - - - - - - - 513138.519 5402579.003 244.64 513138.536 5402579.011 244.64 513138.536 5402579.011 262.894 513138.519 5402579.003 262.893 513138.519 5402579.003 244.64 - - - - - - - - - - - - - - - - - 513138.536 5402579.011 244.64 513138.552 5402579.02 244.64 513138.552 5402579.02 262.895 513138.536 5402579.011 262.894 513138.536 5402579.011 244.64 - - - - - - - - - - - - - - - - - 513138.552 5402579.02 244.64 513138.567 5402579.03 244.64 513138.567 5402579.03 262.896 513138.552 5402579.02 262.895 513138.552 5402579.02 244.64 - - - - - - - - - - - - - - - - - 513138.567 5402579.03 244.64 513138.582 5402579.041 244.64 513138.582 5402579.041 262.897 513138.567 5402579.03 262.896 513138.567 5402579.03 244.64 - - - - - - - - - - - - - - - - - 513138.582 5402579.041 244.64 513138.596 5402579.053 244.64 513138.596 5402579.053 262.898 513138.582 5402579.041 262.897 513138.582 5402579.041 244.64 - - - - - - - - - - - - - - - - - 513138.596 5402579.053 244.64 513138.609 5402579.066 244.64 513138.609 5402579.066 262.899 513138.596 5402579.053 262.898 513138.596 5402579.053 244.64 - - - - - - - - - - - - - - - - - 513138.609 5402579.066 244.64 513138.621 5402579.08 244.64 513138.621 5402579.08 262.901 513138.609 5402579.066 262.899 513138.609 5402579.066 244.64 - - - - - - - - - - - - - - - - - 513138.621 5402579.08 244.64 513138.632 5402579.095 244.64 513138.632 5402579.095 262.902 513138.621 5402579.08 262.901 513138.621 5402579.08 244.64 - - - - - - - - - - - - - - - - - 513138.632 5402579.095 244.64 513138.642 5402579.11 244.64 513138.642 5402579.11 262.903 513138.632 5402579.095 262.902 513138.632 5402579.095 244.64 - - - - - - - - - - - - - - - - - 513138.642 5402579.11 244.64 513138.651 5402579.126 244.64 513138.651 5402579.126 262.905 513138.642 5402579.11 262.903 513138.642 5402579.11 244.64 - - - - - - - - - - - - - - - - - 513138.651 5402579.126 262.905 513138.651 5402579.126 244.64 513138.659 5402579.143 244.64 513138.659 5402579.143 262.906 513138.651 5402579.126 262.905 - - - - - - - - - - - - - - - - - 513138.659 5402579.143 262.906 513138.659 5402579.143 244.64 513138.666 5402579.16 244.64 513138.666 5402579.16 262.907 513138.659 5402579.143 262.906 - - - - - - - - - - - - - - - - - 513138.666 5402579.16 262.907 513138.666 5402579.16 244.64 513138.671 5402579.178 244.64 513138.671 5402579.178 262.908 513138.666 5402579.16 262.907 - - - - - - - - - - - - - - - - - 513138.671 5402579.178 262.908 513138.671 5402579.178 244.64 513138.675 5402579.196 244.64 513138.675 5402579.196 262.91 513138.671 5402579.178 262.908 - - - - - - - - - - - - - - - - - 513138.675 5402579.196 262.91 513138.675 5402579.196 244.64 513138.678 5402579.214 244.64 513138.678 5402579.214 262.911 513138.675 5402579.196 262.91 - - - - - - - - - - - - - - - - - 513138.678 5402579.214 262.911 513138.678 5402579.214 244.64 513138.68 5402579.24 244.64 513138.68 5402579.24 262.913 513138.678 5402579.214 262.911 - - - - - - - - - - - - - - - - - 513138.68 5402579.24 244.64 513138.96 5402579.53 244.64 513138.96 5402579.53 262.939 513138.68 5402579.24 262.913 513138.68 5402579.24 244.64 - - - - - - - - - - - - - - - - - 513142.24 5402576.58 262.84 513138.96 5402579.53 262.939 513138.96 5402579.53 244.64 513142.24 5402576.58 244.64 513142.24 5402576.58 262.84 - - - - - - - - - - - - - - - - - 513142.24 5402576.58 244.64 513141.94 5402576.22 244.64 513141.94 5402576.22 262.808 513142.24 5402576.58 262.84 513142.24 5402576.58 244.64 - - - - - - - - - - - - - - - - - 513141.94 5402576.22 244.64 513141.926 5402576.201 244.64 513141.926 5402576.201 262.806 513141.94 5402576.22 262.808 513141.94 5402576.22 244.64 - - - - - - - - - - - - - - - - - 513141.926 5402576.201 244.64 513141.914 5402576.181 244.64 513141.914 5402576.181 262.805 513141.926 5402576.201 262.806 513141.926 5402576.201 244.64 - - - - - - - - - - - - - - - - - 513141.914 5402576.181 244.64 513141.904 5402576.161 244.64 513141.904 5402576.161 262.803 513141.914 5402576.181 262.805 513141.914 5402576.181 244.64 - - - - - - - - - - - - - - - - - 513141.904 5402576.161 244.64 513141.895 5402576.14 244.64 513141.895 5402576.14 262.802 513141.904 5402576.161 262.803 513141.904 5402576.161 244.64 - - - - - - - - - - - - - - - - - 513141.888 5402576.119 244.64 513141.888 5402576.119 262.8 513141.895 5402576.14 262.802 513141.895 5402576.14 244.64 513141.888 5402576.119 244.64 - - - - - - - - - - - - - - - - - 513141.882 5402576.097 244.64 513141.882 5402576.097 262.799 513141.888 5402576.119 262.8 513141.888 5402576.119 244.64 513141.882 5402576.097 244.64 - - - - - - - - - - - - - - - - - 513141.878 5402576.075 244.64 513141.878 5402576.075 262.797 513141.882 5402576.097 262.799 513141.882 5402576.097 244.64 513141.878 5402576.075 244.64 - - - - - - - - - - - - - - - - - 513141.875 5402576.052 244.64 513141.875 5402576.052 262.795 513141.878 5402576.075 262.797 513141.878 5402576.075 244.64 513141.875 5402576.052 244.64 - - - - - - - - - - - - - - - - - 513141.873 5402576.029 244.64 513141.873 5402576.029 262.794 513141.875 5402576.052 262.795 513141.875 5402576.052 244.64 513141.873 5402576.029 244.64 - - - - - - - - - - - - - - - - - 513141.874 5402576.007 244.64 513141.874 5402576.007 262.792 513141.873 5402576.029 262.794 513141.873 5402576.029 244.64 513141.874 5402576.007 244.64 - - - - - - - - - - - - - - - - - 513141.876 5402575.984 244.64 513141.876 5402575.984 262.791 513141.874 5402576.007 262.792 513141.874 5402576.007 244.64 513141.876 5402575.984 244.64 - - - - - - - - - - - - - - - - - 513141.879 5402575.962 244.64 513141.879 5402575.962 262.79 513141.876 5402575.984 262.791 513141.876 5402575.984 244.64 513141.879 5402575.962 244.64 - - - - - - - - - - - - - - - - - 513141.884 5402575.94 244.64 513141.884 5402575.94 262.788 513141.879 5402575.962 262.79 513141.879 5402575.962 244.64 513141.884 5402575.94 244.64 - - - - - - - - - - - - - - - - - 513141.891 5402575.918 244.64 513141.891 5402575.918 262.787 513141.884 5402575.94 262.788 513141.884 5402575.94 244.64 513141.891 5402575.918 244.64 - - - - - - - - - - - - - - - - - 513141.899 5402575.897 244.64 513141.899 5402575.897 262.786 513141.891 5402575.918 262.787 513141.891 5402575.918 244.64 513141.899 5402575.897 244.64 - - - - - - - - - - - - - - - - - 513141.908 5402575.876 262.785 513141.899 5402575.897 262.786 513141.899 5402575.897 244.64 513141.908 5402575.876 244.64 513141.908 5402575.876 262.785 - - - - - - - - - - - - - - - - - 513141.919 5402575.856 262.784 513141.908 5402575.876 262.785 513141.908 5402575.876 244.64 513141.919 5402575.856 244.64 513141.919 5402575.856 262.784 - - - - - - - - - - - - - - - - - 513141.932 5402575.837 262.783 513141.919 5402575.856 262.784 513141.919 5402575.856 244.64 513141.932 5402575.837 244.64 513141.932 5402575.837 262.783 - - - - - - - - - - - - - - - - - 513141.945 5402575.819 262.782 513141.932 5402575.837 262.783 513141.932 5402575.837 244.64 513141.945 5402575.819 244.64 513141.945 5402575.819 262.782 - - - - - - - - - - - - - - - - - 513141.945 5402575.819 244.64 513141.96 5402575.802 244.64 513141.96 5402575.802 262.782 513141.945 5402575.819 262.782 513141.945 5402575.819 244.64 - - - - - - - - - - - - - - - - - 513141.976 5402575.786 262.781 513141.96 5402575.802 262.782 513141.96 5402575.802 244.64 513141.976 5402575.786 244.64 513141.976 5402575.786 262.781 - - - - - - - - - - - - - - - - - 513141.976 5402575.786 244.64 513141.993 5402575.771 244.64 513141.993 5402575.771 262.781 513141.976 5402575.786 262.781 513141.976 5402575.786 244.64 - - - - - - - - - - - - - - - - - 513142.011 5402575.757 262.78 513141.993 5402575.771 262.781 513141.993 5402575.771 244.64 513142.011 5402575.757 244.64 513142.011 5402575.757 262.78 - - - - - - - - - - - - - - - - - 513142.011 5402575.757 244.64 513142.03 5402575.745 244.64 513142.03 5402575.745 262.78 513142.011 5402575.757 262.78 513142.011 5402575.757 244.64 - - - - - - - - - - - - - - - - - 513142.03 5402575.745 244.64 513142.051 5402575.733 244.64 513142.051 5402575.733 262.78 513142.03 5402575.745 262.78 513142.03 5402575.745 244.64 - - - - - - - - - - - - - - - - - 513142.051 5402575.733 244.64 513142.073 5402575.723 244.64 513142.073 5402575.723 262.78 513142.051 5402575.733 262.78 513142.051 5402575.733 244.64 - - - - - - - - - - - - - - - - - 513142.073 5402575.723 244.64 513142.094 5402575.715 244.64 513142.094 5402575.715 262.78 513142.073 5402575.723 262.78 513142.073 5402575.723 244.64 - - - - - - - - - - - - - - - - - 513142.094 5402575.715 244.64 513142.116 5402575.708 244.64 513142.116 5402575.708 262.78 513142.094 5402575.715 262.78 513142.094 5402575.715 244.64 - - - - - - - - - - - - - - - - - 513142.116 5402575.708 244.64 513142.138 5402575.703 244.64 513142.138 5402575.703 262.78 513142.116 5402575.708 262.78 513142.116 5402575.708 244.64 - - - - - - - - - - - - - - - - - 513142.138 5402575.703 244.64 513142.16 5402575.7 244.64 513142.16 5402575.7 262.781 513142.138 5402575.703 262.78 513142.138 5402575.703 244.64 - - - - - - - - - - - - - - - - - 513142.16 5402575.7 244.64 513142.183 5402575.698 244.64 513142.183 5402575.698 262.781 513142.16 5402575.7 262.781 513142.16 5402575.7 244.64 - - - - - - - - - - - - - - - - - 513142.183 5402575.698 244.64 513142.205 5402575.698 244.64 513142.205 5402575.698 262.782 513142.183 5402575.698 262.781 513142.183 5402575.698 244.64 - - - - - - - - - - - - - - - - - 513142.205 5402575.698 244.64 513142.228 5402575.699 244.64 513142.228 5402575.699 262.782 513142.205 5402575.698 262.782 513142.205 5402575.698 244.64 - - - - - - - - - - - - - - - - - 513142.228 5402575.699 244.64 513142.251 5402575.702 244.64 513142.251 5402575.702 262.783 513142.228 5402575.699 262.782 513142.228 5402575.699 244.64 - - - - - - - - - - - - - - - - - 513142.251 5402575.702 244.64 513142.273 5402575.706 244.64 513142.273 5402575.706 262.784 513142.251 5402575.702 262.783 513142.251 5402575.702 244.64 - - - - - - - - - - - - - - - - - 513142.273 5402575.706 244.64 513142.295 5402575.712 244.64 513142.295 5402575.712 262.785 513142.273 5402575.706 262.784 513142.273 5402575.706 244.64 - - - - - - - - - - - - - - - - - 513142.295 5402575.712 244.64 513142.316 5402575.72 244.64 513142.316 5402575.72 262.786 513142.295 5402575.712 262.785 513142.295 5402575.712 244.64 - - - - - - - - - - - - - - - - - 513142.316 5402575.72 244.64 513142.337 5402575.729 244.64 513142.337 5402575.729 262.787 513142.316 5402575.72 262.786 513142.316 5402575.72 244.64 - - - - - - - - - - - - - - - - - 513142.337 5402575.729 244.64 513142.357 5402575.739 244.64 513142.357 5402575.739 262.789 513142.337 5402575.729 262.787 513142.337 5402575.729 244.64 - - - - - - - - - - - - - - - - - 513142.357 5402575.739 244.64 513142.377 5402575.751 244.64 513142.377 5402575.751 262.79 513142.357 5402575.739 262.789 513142.357 5402575.739 244.64 - - - - - - - - - - - - - - - - - 513142.377 5402575.751 244.64 513142.395 5402575.764 244.64 513142.395 5402575.764 262.791 513142.377 5402575.751 262.79 513142.377 5402575.751 244.64 - - - - - - - - - - - - - - - - - 513142.395 5402575.764 244.64 513142.413 5402575.778 244.64 513142.413 5402575.778 262.793 513142.395 5402575.764 262.791 513142.395 5402575.764 244.64 - - - - - - - - - - - - - - - - - 513142.413 5402575.778 244.64 513142.429 5402575.794 244.64 513142.429 5402575.794 262.794 513142.413 5402575.778 262.793 513142.413 5402575.778 244.64 - - - - - - - - - - - - - - - - - 513142.429 5402575.794 244.64 513142.445 5402575.81 244.64 513142.445 5402575.81 262.796 513142.429 5402575.794 262.794 513142.429 5402575.794 244.64 - - - - - - - - - - - - - - - - - 513142.445 5402575.81 244.64 513142.459 5402575.828 244.64 513142.459 5402575.828 262.797 513142.445 5402575.81 262.796 513142.445 5402575.81 244.64 - - - - - - - - - - - - - - - - - 513142.459 5402575.828 244.64 513142.472 5402575.847 244.64 513142.472 5402575.847 262.799 513142.459 5402575.828 262.797 513142.459 5402575.828 244.64 - - - - - - - - - - - - - - - - - 513142.472 5402575.847 244.64 513142.483 5402575.866 244.64 513142.483 5402575.866 262.8 513142.472 5402575.847 262.799 513142.472 5402575.847 244.64 - - - - - - - - - - - - - - - - - 513142.483 5402575.866 244.64 513142.494 5402575.886 244.64 513142.494 5402575.886 262.802 513142.483 5402575.866 262.8 513142.483 5402575.866 244.64 - - - - - - - - - - - - - - - - - 513142.494 5402575.886 262.802 513142.494 5402575.886 244.64 513142.502 5402575.908 244.64 513142.502 5402575.908 262.804 513142.494 5402575.886 262.802 - - - - - - - - - - - - - - - - - 513142.502 5402575.908 262.804 513142.502 5402575.908 244.64 513142.51 5402575.93 244.64 513142.51 5402575.93 262.805 513142.502 5402575.908 262.804 - - - - - - - - - - - - - - - - - 513142.51 5402575.93 244.64 513142.65 5402576.17 244.64 513142.65 5402576.17 262.825 513142.51 5402575.93 262.805 513142.51 5402575.93 244.64 - - - - - - - - - - - - - - - - - 513145.9 5402573.38 262.735 513142.65 5402576.17 262.825 513142.65 5402576.17 244.64 513145.9 5402573.38 244.64 513145.9 5402573.38 262.735 - - - - - - - - - - - - - - - - - 513145.9 5402573.38 244.64 513145.64 5402573.06 244.64 513145.64 5402573.06 262.707 513145.9 5402573.38 262.735 513145.9 5402573.38 244.64 - - - - - - - - - - - - - - - - - 513145.64 5402573.06 244.64 513145.617 5402573.038 244.64 513145.617 5402573.038 262.705 513145.64 5402573.06 262.707 513145.64 5402573.06 244.64 - - - - - - - - - - - - - - - - - 513145.617 5402573.038 244.64 513145.602 5402573.021 244.64 513145.602 5402573.021 262.703 513145.617 5402573.038 262.705 513145.617 5402573.038 244.64 - - - - - - - - - - - - - - - - - 513145.602 5402573.021 244.64 513145.588 5402573.003 244.64 513145.588 5402573.003 262.702 513145.602 5402573.021 262.703 513145.602 5402573.021 244.64 - - - - - - - - - - - - - - - - - 513145.588 5402573.003 244.64 513145.575 5402572.984 244.64 513145.575 5402572.984 262.7 513145.588 5402573.003 262.702 513145.588 5402573.003 244.64 - - - - - - - - - - - - - - - - - 513145.575 5402572.984 244.64 513145.564 5402572.964 244.64 513145.564 5402572.964 262.698 513145.575 5402572.984 262.7 513145.575 5402572.984 244.64 - - - - - - - - - - - - - - - - - 513145.564 5402572.964 244.64 513145.554 5402572.943 244.64 513145.554 5402572.943 262.697 513145.564 5402572.964 262.698 513145.564 5402572.964 244.64 - - - - - - - - - - - - - - - - - 513145.554 5402572.943 244.64 513145.545 5402572.921 244.64 513145.545 5402572.921 262.695 513145.554 5402572.943 262.697 513145.554 5402572.943 244.64 - - - - - - - - - - - - - - - - - 513145.538 5402572.9 244.64 513145.538 5402572.9 262.694 513145.545 5402572.921 262.695 513145.545 5402572.921 244.64 513145.538 5402572.9 244.64 - - - - - - - - - - - - - - - - - 513145.533 5402572.877 244.64 513145.533 5402572.877 262.692 513145.538 5402572.9 262.694 513145.538 5402572.9 244.64 513145.533 5402572.877 244.64 - - - - - - - - - - - - - - - - - 513145.529 5402572.854 244.64 513145.529 5402572.854 262.69 513145.533 5402572.877 262.692 513145.533 5402572.877 244.64 513145.529 5402572.854 244.64 - - - - - - - - - - - - - - - - - 513145.527 5402572.832 244.64 513145.527 5402572.832 262.689 513145.529 5402572.854 262.69 513145.529 5402572.854 244.64 513145.527 5402572.832 244.64 - - - - - - - - - - - - - - - - - 513145.526 5402572.809 244.64 513145.526 5402572.809 262.687 513145.527 5402572.832 262.689 513145.527 5402572.832 244.64 513145.526 5402572.809 244.64 - - - - - - - - - - - - - - - - - 513145.527 5402572.786 244.64 513145.527 5402572.786 262.686 513145.526 5402572.809 262.687 513145.526 5402572.809 244.64 513145.527 5402572.786 244.64 - - - - - - - - - - - - - - - - - 513145.53 5402572.763 244.64 513145.53 5402572.763 262.684 513145.527 5402572.786 262.686 513145.527 5402572.786 244.64 513145.53 5402572.763 244.64 - - - - - - - - - - - - - - - - - 513145.534 5402572.74 244.64 513145.534 5402572.74 262.683 513145.53 5402572.763 262.684 513145.53 5402572.763 244.64 513145.534 5402572.74 244.64 - - - - - - - - - - - - - - - - - 513145.539 5402572.718 244.64 513145.539 5402572.718 262.682 513145.534 5402572.74 262.683 513145.534 5402572.74 244.64 513145.539 5402572.718 244.64 - - - - - - - - - - - - - - - - - 513145.547 5402572.696 244.64 513145.547 5402572.696 262.681 513145.539 5402572.718 262.682 513145.539 5402572.718 244.64 513145.547 5402572.696 244.64 - - - - - - - - - - - - - - - - - 513145.555 5402572.674 244.64 513145.555 5402572.674 262.679 513145.547 5402572.696 262.681 513145.547 5402572.696 244.64 513145.555 5402572.674 244.64 - - - - - - - - - - - - - - - - - 513145.566 5402572.654 262.678 513145.555 5402572.674 262.679 513145.555 5402572.674 244.64 513145.566 5402572.654 244.64 513145.566 5402572.654 262.678 - - - - - - - - - - - - - - - - - 513145.577 5402572.634 262.677 513145.566 5402572.654 262.678 513145.566 5402572.654 244.64 513145.577 5402572.634 244.64 513145.577 5402572.634 262.677 - - - - - - - - - - - - - - - - - 513145.577 5402572.634 244.64 513145.59 5402572.615 244.64 513145.59 5402572.615 262.677 513145.577 5402572.634 262.677 513145.577 5402572.634 244.64 - - - - - - - - - - - - - - - - - 513145.605 5402572.597 262.676 513145.59 5402572.615 262.677 513145.59 5402572.615 244.64 513145.605 5402572.597 244.64 513145.605 5402572.597 262.676 - - - - - - - - - - - - - - - - - 513145.626 5402572.574 262.675 513145.605 5402572.597 262.676 513145.605 5402572.597 244.64 513145.626 5402572.574 244.64 513145.626 5402572.574 262.675 - - - - - - - - - - - - - - - - - 513145.649 5402572.554 262.674 513145.626 5402572.574 262.675 513145.626 5402572.574 244.64 513145.649 5402572.554 244.64 513145.649 5402572.554 262.674 - - - - - - - - - - - - - - - - - 513145.649 5402572.554 244.64 513145.667 5402572.54 244.64 513145.667 5402572.54 262.674 513145.649 5402572.554 262.674 513145.649 5402572.554 244.64 - - - - - - - - - - - - - - - - - 513145.667 5402572.54 244.64 513145.686 5402572.527 244.64 513145.686 5402572.527 262.674 513145.667 5402572.54 262.674 513145.667 5402572.54 244.64 - - - - - - - - - - - - - - - - - 513145.707 5402572.516 262.673 513145.686 5402572.527 262.674 513145.686 5402572.527 244.64 513145.707 5402572.516 244.64 513145.707 5402572.516 262.673 - - - - - - - - - - - - - - - - - 513145.707 5402572.516 244.64 513145.728 5402572.507 244.64 513145.728 5402572.507 262.673 513145.707 5402572.516 262.673 513145.707 5402572.516 244.64 - - - - - - - - - - - - - - - - - 513145.728 5402572.507 244.64 513145.749 5402572.499 244.64 513145.749 5402572.499 262.673 513145.728 5402572.507 262.673 513145.728 5402572.507 244.64 - - - - - - - - - - - - - - - - - 513145.749 5402572.499 244.64 513145.771 5402572.492 244.64 513145.771 5402572.492 262.674 513145.749 5402572.499 262.673 513145.749 5402572.499 244.64 - - - - - - - - - - - - - - - - - 513145.771 5402572.492 244.64 513145.793 5402572.487 244.64 513145.793 5402572.487 262.674 513145.771 5402572.492 262.674 513145.771 5402572.492 244.64 - - - - - - - - - - - - - - - - - 513145.793 5402572.487 244.64 513145.816 5402572.483 244.64 513145.816 5402572.483 262.674 513145.793 5402572.487 262.674 513145.793 5402572.487 244.64 - - - - - - - - - - - - - - - - - 513145.816 5402572.483 244.64 513145.839 5402572.481 244.64 513145.839 5402572.481 262.675 513145.816 5402572.483 262.674 513145.816 5402572.483 244.64 - - - - - - - - - - - - - - - - - 513145.839 5402572.481 244.64 513145.862 5402572.481 244.64 513145.862 5402572.481 262.675 513145.839 5402572.481 262.675 513145.839 5402572.481 244.64 - - - - - - - - - - - - - - - - - 513145.862 5402572.481 244.64 513145.885 5402572.482 244.64 513145.885 5402572.482 262.676 513145.862 5402572.481 262.675 513145.862 5402572.481 244.64 - - - - - - - - - - - - - - - - - 513145.885 5402572.482 244.64 513145.908 5402572.485 244.64 513145.908 5402572.485 262.677 513145.885 5402572.482 262.676 513145.885 5402572.482 244.64 - - - - - - - - - - - - - - - - - 513145.908 5402572.485 244.64 513145.931 5402572.489 244.64 513145.931 5402572.489 262.678 513145.908 5402572.485 262.677 513145.908 5402572.485 244.64 - - - - - - - - - - - - - - - - - 513145.931 5402572.489 244.64 513145.953 5402572.495 244.64 513145.953 5402572.495 262.679 513145.931 5402572.489 262.678 513145.931 5402572.489 244.64 - - - - - - - - - - - - - - - - - 513145.953 5402572.495 244.64 513145.975 5402572.503 244.64 513145.975 5402572.503 262.68 513145.953 5402572.495 262.679 513145.953 5402572.495 244.64 - - - - - - - - - - - - - - - - - 513145.975 5402572.503 244.64 513145.996 5402572.512 244.64 513145.996 5402572.512 262.681 513145.975 5402572.503 262.68 513145.975 5402572.503 244.64 - - - - - - - - - - - - - - - - - 513145.996 5402572.512 244.64 513146.016 5402572.522 244.64 513146.016 5402572.522 262.682 513145.996 5402572.512 262.681 513145.996 5402572.512 244.64 - - - - - - - - - - - - - - - - - 513146.016 5402572.522 244.64 513146.036 5402572.534 244.64 513146.036 5402572.534 262.684 513146.016 5402572.522 262.682 513146.016 5402572.522 244.64 - - - - - - - - - - - - - - - - - 513146.036 5402572.534 244.64 513146.055 5402572.547 244.64 513146.055 5402572.547 262.685 513146.036 5402572.534 262.684 513146.036 5402572.534 244.64 - - - - - - - - - - - - - - - - - 513146.055 5402572.547 244.64 513146.073 5402572.562 244.64 513146.073 5402572.562 262.687 513146.055 5402572.547 262.685 513146.055 5402572.547 244.64 - - - - - - - - - - - - - - - - - 513146.073 5402572.562 244.64 513146.09 5402572.578 244.64 513146.09 5402572.578 262.688 513146.073 5402572.562 262.687 513146.073 5402572.562 244.64 - - - - - - - - - - - - - - - - - 513146.09 5402572.578 244.64 513146.11 5402572.6 244.64 513146.11 5402572.6 262.69 513146.09 5402572.578 262.688 513146.09 5402572.578 244.64 - - - - - - - - - - - - - - - - - 513146.11 5402572.6 244.64 513146.39 5402572.95 244.64 513146.39 5402572.95 262.721 513146.11 5402572.6 262.69 513146.11 5402572.6 244.64 - - - - - - - - - - - - - - - - - 513149.3 5402570.36 262.634 513146.39 5402572.95 262.721 513146.39 5402572.95 244.64 513149.3 5402570.36 244.64 513149.3 5402570.36 262.634 - - - - - - - - - - - - - - - - - 513149.3 5402570.36 244.64 513149.02 5402570.08 244.64 513149.02 5402570.08 262.608 513149.3 5402570.36 262.634 513149.3 5402570.36 244.64 - - - - - - - - - - - - - - - - - 513149.02 5402570.08 244.64 513149.007 5402570.055 244.64 513149.007 5402570.055 262.606 513149.02 5402570.08 262.608 513149.02 5402570.08 244.64 - - - - - - - - - - - - - - - - - 513148.999 5402570.035 244.64 513148.999 5402570.035 262.605 513149.007 5402570.055 262.606 513149.007 5402570.055 244.64 513148.999 5402570.035 244.64 - - - - - - - - - - - - - - - - - 513148.993 5402570.015 244.64 513148.993 5402570.015 262.603 513148.999 5402570.035 262.605 513148.999 5402570.035 244.64 513148.993 5402570.015 244.64 - - - - - - - - - - - - - - - - - 513148.987 5402569.995 244.64 513148.987 5402569.995 262.602 513148.993 5402570.015 262.603 513148.993 5402570.015 244.64 513148.987 5402569.995 244.64 - - - - - - - - - - - - - - - - - 513148.984 5402569.974 244.64 513148.984 5402569.974 262.6 513148.987 5402569.995 262.602 513148.987 5402569.995 244.64 513148.984 5402569.974 244.64 - - - - - - - - - - - - - - - - - 513148.981 5402569.953 244.64 513148.981 5402569.953 262.599 513148.984 5402569.974 262.6 513148.984 5402569.974 244.64 513148.981 5402569.953 244.64 - - - - - - - - - - - - - - - - - 513148.98 5402569.932 244.64 513148.98 5402569.932 262.597 513148.981 5402569.953 262.599 513148.981 5402569.953 244.64 513148.98 5402569.932 244.64 - - - - - - - - - - - - - - - - - 513148.981 5402569.911 244.64 513148.981 5402569.911 262.596 513148.98 5402569.932 262.597 513148.98 5402569.932 244.64 513148.981 5402569.911 244.64 - - - - - - - - - - - - - - - - - 513148.983 5402569.89 244.64 513148.983 5402569.89 262.595 513148.981 5402569.911 262.596 513148.981 5402569.911 244.64 513148.983 5402569.89 244.64 - - - - - - - - - - - - - - - - - 513148.987 5402569.869 244.64 513148.987 5402569.869 262.594 513148.983 5402569.89 262.595 513148.983 5402569.89 244.64 513148.987 5402569.869 244.64 - - - - - - - - - - - - - - - - - 513148.992 5402569.849 244.64 513148.992 5402569.849 262.592 513148.987 5402569.869 262.594 513148.987 5402569.869 244.64 513148.992 5402569.849 244.64 - - - - - - - - - - - - - - - - - 513148.998 5402569.829 244.64 513148.999 5402569.83 262.591 513148.992 5402569.849 262.592 513148.992 5402569.849 244.64 513148.998 5402569.829 244.64 - - - - - - - - - - - - - - - - - 513149.006 5402569.809 244.64 513149.008 5402569.81 262.59 513148.999 5402569.83 262.591 513148.998 5402569.829 244.64 513149.006 5402569.809 244.64 - - - - - - - - - - - - - - - - - 513149.016 5402569.791 262.589 513149.008 5402569.81 262.59 513149.006 5402569.809 244.64 513149.015 5402569.79 244.64 513149.016 5402569.791 262.589 - - - - - - - - - - - - - - - - - 513149.026 5402569.772 262.588 513149.016 5402569.791 262.589 513149.015 5402569.79 244.64 513149.026 5402569.772 244.64 513149.026 5402569.772 262.588 - - - - - - - - - - - - - - - - - 513149.026 5402569.772 244.64 513149.037 5402569.754 244.64 513149.039 5402569.757 262.588 513149.026 5402569.772 262.588 513149.026 5402569.772 244.64 - - - - - - - - - - - - - - - - - 513149.05 5402569.737 262.587 513149.039 5402569.757 262.588 513149.037 5402569.754 244.64 513149.05 5402569.737 244.64 513149.05 5402569.737 262.587 - - - - - - - - - - - - - - - - - 513149.064 5402569.722 262.586 513149.05 5402569.737 262.587 513149.05 5402569.737 244.64 513149.064 5402569.722 244.64 513149.064 5402569.722 262.586 - - - - - - - - - - - - - - - - - 513149.064 5402569.722 244.64 513149.079 5402569.707 244.64 513149.079 5402569.707 262.586 513149.064 5402569.722 262.586 513149.064 5402569.722 244.64 - - - - - - - - - - - - - - - - - 513149.101 5402569.689 262.585 513149.079 5402569.707 262.586 513149.079 5402569.707 244.64 513149.101 5402569.689 244.64 513149.101 5402569.689 262.585 - - - - - - - - - - - - - - - - - 513149.101 5402569.689 244.64 513149.125 5402569.673 244.64 513149.125 5402569.673 262.585 513149.101 5402569.689 262.585 513149.101 5402569.689 244.64 - - - - - - - - - - - - - - - - - 513149.125 5402569.673 244.64 513149.143 5402569.662 244.64 513149.143 5402569.662 262.585 513149.125 5402569.673 262.585 513149.125 5402569.673 244.64 - - - - - - - - - - - - - - - - - 513149.164 5402569.656 262.585 513149.143 5402569.662 262.585 513149.143 5402569.662 244.64 513149.162 5402569.653 244.64 513149.164 5402569.656 262.585 - - - - - - - - - - - - - - - - - 513149.162 5402569.653 244.64 513149.182 5402569.646 244.64 513149.182 5402569.646 262.585 513149.164 5402569.656 262.585 513149.162 5402569.653 244.64 - - - - - - - - - - - - - - - - - 513149.182 5402569.646 244.64 513149.202 5402569.639 244.64 513149.202 5402569.639 262.585 513149.182 5402569.646 262.585 513149.182 5402569.646 244.64 - - - - - - - - - - - - - - - - - 513149.202 5402569.639 244.64 513149.222 5402569.634 244.64 513149.222 5402569.634 262.585 513149.202 5402569.639 262.585 513149.202 5402569.639 244.64 - - - - - - - - - - - - - - - - - 513149.222 5402569.634 244.64 513149.243 5402569.631 244.64 513149.243 5402569.631 262.585 513149.222 5402569.634 262.585 513149.222 5402569.634 244.64 - - - - - - - - - - - - - - - - - 513149.243 5402569.631 244.64 513149.264 5402569.629 244.64 513149.264 5402569.629 262.586 513149.243 5402569.631 262.585 513149.243 5402569.631 244.64 - - - - - - - - - - - - - - - - - 513149.264 5402569.629 244.64 513149.285 5402569.628 244.64 513149.285 5402569.628 262.586 513149.264 5402569.629 262.586 513149.264 5402569.629 244.64 - - - - - - - - - - - - - - - - - 513149.285 5402569.628 244.64 513149.306 5402569.629 244.64 513149.306 5402569.629 262.587 513149.285 5402569.628 262.586 513149.285 5402569.628 244.64 - - - - - - - - - - - - - - - - - 513149.306 5402569.629 244.64 513149.327 5402569.631 244.64 513149.327 5402569.631 262.588 513149.306 5402569.629 262.587 513149.306 5402569.629 244.64 - - - - - - - - - - - - - - - - - 513149.327 5402569.631 244.64 513149.348 5402569.635 244.64 513149.348 5402569.635 262.589 513149.327 5402569.631 262.588 513149.327 5402569.631 244.64 - - - - - - - - - - - - - - - - - 513149.348 5402569.635 244.64 513149.368 5402569.64 244.64 513149.368 5402569.64 262.589 513149.348 5402569.635 262.589 513149.348 5402569.635 244.64 - - - - - - - - - - - - - - - - - 513149.368 5402569.64 244.64 513149.389 5402569.647 244.64 513149.389 5402569.647 262.59 513149.368 5402569.64 262.589 513149.368 5402569.64 244.64 - - - - - - - - - - - - - - - - - 513149.389 5402569.647 244.64 513149.408 5402569.655 244.64 513149.408 5402569.655 262.591 513149.389 5402569.647 262.59 513149.389 5402569.647 244.64 - - - - - - - - - - - - - - - - - 513149.408 5402569.655 244.64 513149.427 5402569.665 244.64 513149.427 5402569.665 262.593 513149.408 5402569.655 262.591 513149.408 5402569.655 244.64 - - - - - - - - - - - - - - - - - 513149.427 5402569.665 244.64 513149.445 5402569.675 244.64 513149.445 5402569.675 262.594 513149.427 5402569.665 262.593 513149.427 5402569.665 244.64 - - - - - - - - - - - - - - - - - 513149.445 5402569.675 244.64 513149.463 5402569.687 244.64 513149.463 5402569.687 262.595 513149.445 5402569.675 262.594 513149.445 5402569.675 244.64 - - - - - - - - - - - - - - - - - 513149.463 5402569.687 244.64 513149.479 5402569.7 244.64 513149.479 5402569.7 262.596 513149.463 5402569.687 262.595 513149.463 5402569.687 244.64 - - - - - - - - - - - - - - - - - 513149.479 5402569.7 244.64 513149.5 5402569.72 244.64 513149.5 5402569.72 262.598 513149.479 5402569.7 262.596 513149.479 5402569.7 244.64 - - - - - - - - - - - - - - - - - 513149.5 5402569.72 244.64 513149.76 5402569.94 244.64 513149.76 5402569.94 262.62 513149.5 5402569.72 262.598 513149.5 5402569.72 244.64 - - - - - - - - - - - - - - - - - 513153.29 5402566.8 262.515 513149.76 5402569.94 262.62 513149.76 5402569.94 244.64 513153.29 5402566.8 244.64 513153.29 5402566.8 262.515 - - - - - - - - - - - - - - - - - 513153.29 5402566.8 244.64 513153.01 5402566.52 244.64 513153.01 5402566.52 262.489 513153.29 5402566.8 262.515 513153.29 5402566.8 244.64 - - - - - - - - - - - - - - - - - 513153.01 5402566.52 244.64 513152.997 5402566.495 244.64 513152.997 5402566.495 262.487 513153.01 5402566.52 262.489 513153.01 5402566.52 244.64 - - - - - - - - - - - - - - - - - 513152.989 5402566.476 244.64 513152.989 5402566.476 262.486 513152.997 5402566.495 262.487 513152.997 5402566.495 244.64 513152.989 5402566.476 244.64 - - - - - - - - - - - - - - - - - 513152.983 5402566.455 244.64 513152.983 5402566.455 262.484 513152.989 5402566.476 262.486 513152.989 5402566.476 244.64 513152.983 5402566.455 244.64 - - - - - - - - - - - - - - - - - 513152.977 5402566.435 244.64 513152.981 5402566.436 262.483 513152.983 5402566.455 262.484 513152.983 5402566.455 244.64 513152.977 5402566.435 244.64 - - - - - - - - - - - - - - - - - 513152.974 5402566.414 244.64 513152.974 5402566.414 262.481 513152.981 5402566.436 262.483 513152.977 5402566.435 244.64 513152.974 5402566.414 244.64 - - - - - - - - - - - - - - - - - 513152.971 5402566.393 244.64 513152.971 5402566.393 262.48 513152.974 5402566.414 262.481 513152.974 5402566.414 244.64 513152.971 5402566.393 244.64 - - - - - - - - - - - - - - - - - 513152.97 5402566.372 244.64 513152.97 5402566.372 262.478 513152.971 5402566.393 262.48 513152.971 5402566.393 244.64 513152.97 5402566.372 244.64 - - - - - - - - - - - - - - - - - 513152.971 5402566.351 244.64 513152.971 5402566.351 262.477 513152.97 5402566.372 262.478 513152.97 5402566.372 244.64 513152.971 5402566.351 244.64 - - - - - - - - - - - - - - - - - 513152.973 5402566.33 244.64 513152.973 5402566.33 262.476 513152.971 5402566.351 262.477 513152.971 5402566.351 244.64 513152.973 5402566.33 244.64 - - - - - - - - - - - - - - - - - 513152.977 5402566.309 244.64 513152.977 5402566.309 262.474 513152.973 5402566.33 262.476 513152.973 5402566.33 244.64 513152.977 5402566.309 244.64 - - - - - - - - - - - - - - - - - 513152.982 5402566.289 244.64 513152.982 5402566.289 262.473 513152.977 5402566.309 262.474 513152.977 5402566.309 244.64 513152.982 5402566.289 244.64 - - - - - - - - - - - - - - - - - 513152.988 5402566.269 244.64 513152.988 5402566.269 262.472 513152.982 5402566.289 262.473 513152.982 5402566.289 244.64 513152.988 5402566.269 244.64 - - - - - - - - - - - - - - - - - 513152.996 5402566.249 244.64 513152.996 5402566.249 262.471 513152.988 5402566.269 262.472 513152.988 5402566.269 244.64 513152.996 5402566.249 244.64 - - - - - - - - - - - - - - - - - 513153.009 5402566.231 262.47 513152.996 5402566.249 262.471 513152.996 5402566.249 244.64 513153.005 5402566.23 244.64 513153.009 5402566.231 262.47 - - - - - - - - - - - - - - - - - 513153.016 5402566.212 262.469 513153.009 5402566.231 262.47 513153.005 5402566.23 244.64 513153.016 5402566.212 244.64 513153.016 5402566.212 262.469 - - - - - - - - - - - - - - - - - 513153.027 5402566.194 262.468 513153.016 5402566.212 262.469 513153.016 5402566.212 244.64 513153.027 5402566.194 244.64 513153.027 5402566.194 262.468 - - - - - - - - - - - - - - - - - 513153.027 5402566.194 244.64 513153.04 5402566.177 244.64 513153.04 5402566.177 262.468 513153.027 5402566.194 262.468 513153.027 5402566.194 244.64 - - - - - - - - - - - - - - - - - 513153.054 5402566.162 262.467 513153.04 5402566.177 262.468 513153.04 5402566.177 244.64 513153.054 5402566.162 244.64 513153.054 5402566.162 262.467 - - - - - - - - - - - - - - - - - 513153.069 5402566.147 262.466 513153.054 5402566.162 262.467 513153.054 5402566.162 244.64 513153.069 5402566.147 244.64 513153.069 5402566.147 262.466 - - - - - - - - - - - - - - - - - 513153.069 5402566.147 244.64 513153.091 5402566.129 244.64 513153.091 5402566.129 262.466 513153.069 5402566.147 262.466 513153.069 5402566.147 244.64 - - - - - - - - - - - - - - - - - 513153.091 5402566.129 244.64 513153.115 5402566.113 244.64 513153.115 5402566.113 262.466 513153.091 5402566.129 262.466 513153.091 5402566.129 244.64 - - - - - - - - - - - - - - - - - 513153.133 5402566.102 262.465 513153.115 5402566.113 262.466 513153.115 5402566.113 244.64 513153.133 5402566.102 244.64 513153.133 5402566.102 262.465 - - - - - - - - - - - - - - - - - 513153.133 5402566.102 244.64 513153.152 5402566.093 244.64 513153.152 5402566.093 262.465 513153.133 5402566.102 262.465 513153.133 5402566.102 244.64 - - - - - - - - - - - - - - - - - 513153.152 5402566.093 244.64 513153.172 5402566.086 244.64 513153.172 5402566.086 262.465 513153.152 5402566.093 262.465 513153.152 5402566.093 244.64 - - - - - - - - - - - - - - - - - 513153.172 5402566.086 244.64 513153.192 5402566.079 244.64 513153.192 5402566.079 262.466 513153.172 5402566.086 262.465 513153.172 5402566.086 244.64 - - - - - - - - - - - - - - - - - 513153.192 5402566.079 244.64 513153.212 5402566.074 244.64 513153.212 5402566.074 262.466 513153.192 5402566.079 262.466 513153.192 5402566.079 244.64 - - - - - - - - - - - - - - - - - 513153.212 5402566.074 244.64 513153.233 5402566.071 244.64 513153.233 5402566.071 262.466 513153.212 5402566.074 262.466 513153.212 5402566.074 244.64 - - - - - - - - - - - - - - - - - 513153.233 5402566.071 244.64 513153.254 5402566.069 244.64 513153.254 5402566.069 262.467 513153.233 5402566.071 262.466 513153.233 5402566.071 244.64 - - - - - - - - - - - - - - - - - 513153.254 5402566.069 244.64 513153.275 5402566.068 244.64 513153.275 5402566.068 262.467 513153.254 5402566.069 262.467 513153.254 5402566.069 244.64 - - - - - - - - - - - - - - - - - 513153.275 5402566.068 244.64 513153.296 5402566.069 244.64 513153.296 5402566.069 262.468 513153.275 5402566.068 262.467 513153.275 5402566.068 244.64 - - - - - - - - - - - - - - - - - 513153.296 5402566.069 244.64 513153.317 5402566.071 244.64 513153.317 5402566.071 262.469 513153.296 5402566.069 262.468 513153.296 5402566.069 244.64 - - - - - - - - - - - - - - - - - 513153.317 5402566.071 244.64 513153.338 5402566.075 244.64 513153.338 5402566.075 262.469 513153.317 5402566.071 262.469 513153.317 5402566.071 244.64 - - - - - - - - - - - - - - - - - 513153.338 5402566.075 244.64 513153.359 5402566.08 244.64 513153.359 5402566.08 262.47 513153.338 5402566.075 262.469 513153.338 5402566.075 244.64 - - - - - - - - - - - - - - - - - 513153.359 5402566.08 244.64 513153.379 5402566.087 244.64 513153.379 5402566.087 262.471 513153.359 5402566.08 262.47 513153.359 5402566.08 244.64 - - - - - - - - - - - - - - - - - 513153.379 5402566.087 244.64 513153.398 5402566.095 244.64 513153.398 5402566.095 262.472 513153.379 5402566.087 262.471 513153.379 5402566.087 244.64 - - - - - - - - - - - - - - - - - 513153.398 5402566.095 244.64 513153.417 5402566.105 244.64 513153.417 5402566.105 262.473 513153.398 5402566.095 262.472 513153.398 5402566.095 244.64 - - - - - - - - - - - - - - - - - 513153.417 5402566.105 244.64 513153.435 5402566.115 244.64 513153.435 5402566.115 262.475 513153.417 5402566.105 262.473 513153.417 5402566.105 244.64 - - - - - - - - - - - - - - - - - 513153.435 5402566.115 244.64 513153.453 5402566.127 244.64 513153.453 5402566.127 262.476 513153.435 5402566.115 262.475 513153.435 5402566.115 244.64 - - - - - - - - - - - - - - - - - 513153.453 5402566.127 244.64 513153.469 5402566.14 244.64 513153.469 5402566.14 262.477 513153.453 5402566.127 262.476 513153.453 5402566.127 244.64 - - - - - - - - - - - - - - - - - 513153.469 5402566.14 244.64 513153.49 5402566.16 244.64 513153.49 5402566.16 262.479 513153.469 5402566.14 262.477 513153.469 5402566.14 244.64 - - - - - - - - - - - - - - - - - 513153.49 5402566.16 244.64 513153.75 5402566.38 244.64 513153.75 5402566.38 262.501 513153.49 5402566.16 262.479 513153.49 5402566.16 244.64 - - - - - - - - - - - - - - - - - 513157.03 5402563.45 262.402 513153.75 5402566.38 262.501 513153.75 5402566.38 244.64 513157.03 5402563.45 244.64 513157.03 5402563.45 262.402 - - - - - - - - - - - - - - - - - 513157.03 5402563.45 244.64 513156.79 5402563.17 244.64 513156.79 5402563.17 262.378 513157.03 5402563.45 262.402 513157.03 5402563.45 244.64 - - - - - - - - - - - - - - - - - 513156.79 5402563.17 244.64 513156.777 5402563.144 244.64 513156.777 5402563.144 262.376 513156.79 5402563.17 262.378 513156.79 5402563.17 244.64 - - - - - - - - - - - - - - - - - 513156.777 5402563.144 244.64 513156.768 5402563.123 244.64 513156.768 5402563.123 262.374 513156.777 5402563.144 262.376 513156.777 5402563.144 244.64 - - - - - - - - - - - - - - - - - 513156.762 5402563.102 244.64 513156.762 5402563.102 262.372 513156.768 5402563.123 262.374 513156.768 5402563.123 244.64 513156.762 5402563.102 244.64 - - - - - - - - - - - - - - - - - 513156.756 5402563.08 244.64 513156.756 5402563.08 262.371 513156.762 5402563.102 262.372 513156.762 5402563.102 244.64 513156.756 5402563.08 244.64 - - - - - - - - - - - - - - - - - 513156.752 5402563.057 244.64 513156.752 5402563.057 262.369 513156.756 5402563.08 262.371 513156.756 5402563.08 244.64 513156.752 5402563.057 244.64 - - - - - - - - - - - - - - - - - 513156.75 5402563.035 244.64 513156.75 5402563.035 262.368 513156.752 5402563.057 262.369 513156.752 5402563.057 244.64 513156.75 5402563.035 244.64 - - - - - - - - - - - - - - - - - 513156.749 5402563.013 244.64 513156.749 5402563.013 262.366 513156.75 5402563.035 262.368 513156.75 5402563.035 244.64 513156.749 5402563.013 244.64 - - - - - - - - - - - - - - - - - 513156.75 5402562.99 244.64 513156.75 5402562.99 262.365 513156.749 5402563.013 262.366 513156.749 5402563.013 244.64 513156.75 5402562.99 244.64 - - - - - - - - - - - - - - - - - 513156.752 5402562.968 244.64 513156.752 5402562.968 262.363 513156.75 5402562.99 262.365 513156.75 5402562.99 244.64 513156.752 5402562.968 244.64 - - - - - - - - - - - - - - - - - 513156.756 5402562.946 244.64 513156.756 5402562.946 262.362 513156.752 5402562.968 262.363 513156.752 5402562.968 244.64 513156.756 5402562.946 244.64 - - - - - - - - - - - - - - - - - 513156.762 5402562.924 244.64 513156.762 5402562.924 262.361 513156.756 5402562.946 262.362 513156.756 5402562.946 244.64 513156.762 5402562.924 244.64 - - - - - - - - - - - - - - - - - 513156.769 5402562.903 244.64 513156.769 5402562.903 262.36 513156.762 5402562.924 262.361 513156.762 5402562.924 244.64 513156.769 5402562.903 244.64 - - - - - - - - - - - - - - - - - 513156.777 5402562.882 244.64 513156.777 5402562.882 262.359 513156.769 5402562.903 262.36 513156.769 5402562.903 244.64 513156.777 5402562.882 244.64 - - - - - - - - - - - - - - - - - 513156.787 5402562.862 262.358 513156.777 5402562.882 262.359 513156.777 5402562.882 244.64 513156.787 5402562.862 244.64 513156.787 5402562.862 262.358 - - - - - - - - - - - - - - - - - 513156.798 5402562.842 262.357 513156.787 5402562.862 262.358 513156.787 5402562.862 244.64 513156.798 5402562.842 244.64 513156.798 5402562.842 262.357 - - - - - - - - - - - - - - - - - 513156.811 5402562.824 262.356 513156.798 5402562.842 262.357 513156.798 5402562.842 244.64 513156.811 5402562.824 244.64 513156.811 5402562.824 262.356 - - - - - - - - - - - - - - - - - 513156.825 5402562.806 262.355 513156.811 5402562.824 262.356 513156.811 5402562.824 244.64 513156.825 5402562.806 244.64 513156.825 5402562.806 262.355 - - - - - - - - - - - - - - - - - 513156.84 5402562.789 262.354 513156.825 5402562.806 262.355 513156.825 5402562.806 244.64 513156.84 5402562.789 244.64 513156.84 5402562.789 262.354 - - - - - - - - - - - - - - - - - 513156.84 5402562.789 244.64 513156.861 5402562.769 244.64 513156.861 5402562.769 262.354 513156.84 5402562.789 262.354 513156.84 5402562.789 244.64 - - - - - - - - - - - - - - - - - 513156.885 5402562.75 262.353 513156.861 5402562.769 262.354 513156.861 5402562.769 244.64 513156.885 5402562.75 244.64 513156.885 5402562.75 262.353 - - - - - - - - - - - - - - - - - 513156.885 5402562.75 244.64 513156.904 5402562.738 244.64 513156.904 5402562.738 262.353 513156.885 5402562.75 262.353 513156.885 5402562.75 244.64 - - - - - - - - - - - - - - - - - 513156.904 5402562.738 244.64 513156.923 5402562.727 244.64 513156.923 5402562.727 262.353 513156.904 5402562.738 262.353 513156.904 5402562.738 244.64 - - - - - - - - - - - - - - - - - 513156.923 5402562.727 244.64 513156.944 5402562.717 244.64 513156.944 5402562.717 262.353 513156.923 5402562.727 262.353 513156.923 5402562.727 244.64 - - - - - - - - - - - - - - - - - 513156.944 5402562.717 244.64 513156.965 5402562.709 244.64 513156.965 5402562.709 262.353 513156.944 5402562.717 262.353 513156.944 5402562.717 244.64 - - - - - - - - - - - - - - - - - 513156.965 5402562.709 244.64 513156.986 5402562.702 244.64 513156.986 5402562.702 262.353 513156.965 5402562.709 262.353 513156.965 5402562.709 244.64 - - - - - - - - - - - - - - - - - 513156.986 5402562.702 244.64 513157.008 5402562.697 244.64 513157.008 5402562.697 262.353 513156.986 5402562.702 262.353 513156.986 5402562.702 244.64 - - - - - - - - - - - - - - - - - 513157.008 5402562.697 244.64 513157.03 5402562.694 244.64 513157.03 5402562.694 262.353 513157.008 5402562.697 262.353 513157.008 5402562.697 244.64 - - - - - - - - - - - - - - - - - 513157.03 5402562.694 244.64 513157.053 5402562.692 244.64 513157.053 5402562.692 262.354 513157.03 5402562.694 262.353 513157.03 5402562.694 244.64 - - - - - - - - - - - - - - - - - 513157.053 5402562.692 244.64 513157.075 5402562.691 244.64 513157.075 5402562.691 262.355 513157.053 5402562.692 262.354 513157.053 5402562.692 244.64 - - - - - - - - - - - - - - - - - 513157.075 5402562.691 244.64 513157.098 5402562.692 244.64 513157.098 5402562.692 262.355 513157.075 5402562.691 262.355 513157.075 5402562.691 244.64 - - - - - - - - - - - - - - - - - 513157.098 5402562.692 244.64 513157.12 5402562.695 244.64 513157.12 5402562.695 262.356 513157.098 5402562.692 262.355 513157.098 5402562.692 244.64 - - - - - - - - - - - - - - - - - 513157.12 5402562.695 244.64 513157.142 5402562.699 244.64 513157.142 5402562.699 262.357 513157.12 5402562.695 262.356 513157.12 5402562.695 244.64 - - - - - - - - - - - - - - - - - 513157.142 5402562.699 244.64 513157.164 5402562.705 244.64 513157.164 5402562.705 262.358 513157.142 5402562.699 262.357 513157.142 5402562.699 244.64 - - - - - - - - - - - - - - - - - 513157.164 5402562.705 244.64 513157.185 5402562.712 244.64 513157.185 5402562.712 262.359 513157.164 5402562.705 262.358 513157.164 5402562.705 244.64 - - - - - - - - - - - - - - - - - 513157.185 5402562.712 244.64 513157.206 5402562.721 244.64 513157.206 5402562.721 262.36 513157.185 5402562.712 262.359 513157.185 5402562.712 244.64 - - - - - - - - - - - - - - - - - 513157.206 5402562.721 244.64 513157.226 5402562.731 244.64 513157.226 5402562.731 262.361 513157.206 5402562.721 262.36 513157.206 5402562.721 244.64 - - - - - - - - - - - - - - - - - 513157.226 5402562.731 244.64 513157.245 5402562.742 244.64 513157.245 5402562.742 262.363 513157.226 5402562.731 262.361 513157.226 5402562.731 244.64 - - - - - - - - - - - - - - - - - 513157.245 5402562.742 244.64 513157.27 5402562.76 244.64 513157.27 5402562.76 262.364 513157.245 5402562.742 262.363 513157.245 5402562.742 244.64 - - - - - - - - - - - - - - - - - 513157.27 5402562.76 244.64 513157.53 5402562.98 244.64 513157.53 5402562.98 262.386 513157.27 5402562.76 262.364 513157.27 5402562.76 244.64 - - - - - - - - - - - - - - - - - 513160.8 5402560.07 262.289 513157.53 5402562.98 262.386 513157.53 5402562.98 244.64 513160.8 5402560.07 244.64 513160.8 5402560.07 262.289 - - - - - - - - - - - - - - - - - 513160.8 5402560.07 244.64 513160.6 5402559.79 244.64 513160.6 5402559.79 262.265 513160.8 5402560.07 262.289 513160.8 5402560.07 244.64 - - - - - - - - - - - - - - - - - 513160.6 5402559.79 244.64 513160.587 5402559.776 244.64 513160.587 5402559.776 262.264 513160.6 5402559.79 262.265 513160.6 5402559.79 244.64 - - - - - - - - - - - - - - - - - 513160.587 5402559.776 244.64 513160.577 5402559.763 244.64 513160.577 5402559.763 262.263 513160.587 5402559.776 262.264 513160.587 5402559.776 244.64 - - - - - - - - - - - - - - - - - 513160.577 5402559.763 244.64 513160.568 5402559.75 244.64 513160.568 5402559.75 262.262 513160.577 5402559.763 262.263 513160.577 5402559.763 244.64 - - - - - - - - - - - - - - - - - 513160.56 5402559.737 244.64 513160.56 5402559.737 262.26 513160.568 5402559.75 262.262 513160.568 5402559.75 244.64 513160.56 5402559.737 244.64 - - - - - - - - - - - - - - - - - 513160.553 5402559.722 244.64 513160.553 5402559.722 262.259 513160.56 5402559.737 262.26 513160.56 5402559.737 244.64 513160.553 5402559.722 244.64 - - - - - - - - - - - - - - - - - 513160.546 5402559.708 244.64 513160.546 5402559.708 262.258 513160.553 5402559.722 262.259 513160.553 5402559.722 244.64 513160.546 5402559.708 244.64 - - - - - - - - - - - - - - - - - 513160.541 5402559.693 244.64 513160.541 5402559.693 262.257 513160.546 5402559.708 262.258 513160.546 5402559.708 244.64 513160.541 5402559.693 244.64 - - - - - - - - - - - - - - - - - 513160.537 5402559.677 244.64 513160.537 5402559.677 262.256 513160.541 5402559.693 262.257 513160.541 5402559.693 244.64 513160.537 5402559.677 244.64 - - - - - - - - - - - - - - - - - 513160.534 5402559.662 244.64 513160.534 5402559.662 262.255 513160.537 5402559.677 262.256 513160.537 5402559.677 244.64 513160.534 5402559.662 244.64 - - - - - - - - - - - - - - - - - 513160.532 5402559.646 244.64 513160.532 5402559.646 262.254 513160.534 5402559.662 262.255 513160.534 5402559.662 244.64 513160.532 5402559.646 244.64 - - - - - - - - - - - - - - - - - 513160.532 5402559.63 244.64 513160.532 5402559.63 262.253 513160.532 5402559.646 262.254 513160.532 5402559.646 244.64 513160.532 5402559.63 244.64 - - - - - - - - - - - - - - - - - 513160.532 5402559.614 244.64 513160.532 5402559.614 262.252 513160.532 5402559.63 262.253 513160.532 5402559.63 244.64 513160.532 5402559.614 244.64 - - - - - - - - - - - - - - - - - 513160.534 5402559.598 244.64 513160.534 5402559.598 262.251 513160.532 5402559.614 262.252 513160.532 5402559.614 244.64 513160.534 5402559.598 244.64 - - - - - - - - - - - - - - - - - 513160.536 5402559.583 244.64 513160.536 5402559.583 262.25 513160.534 5402559.598 262.251 513160.534 5402559.598 244.64 513160.536 5402559.583 244.64 - - - - - - - - - - - - - - - - - 513160.54 5402559.567 244.64 513160.54 5402559.567 262.249 513160.536 5402559.583 262.25 513160.536 5402559.583 244.64 513160.54 5402559.567 244.64 - - - - - - - - - - - - - - - - - 513160.545 5402559.552 244.64 513160.545 5402559.552 262.248 513160.54 5402559.567 262.249 513160.54 5402559.567 244.64 513160.545 5402559.552 244.64 - - - - - - - - - - - - - - - - - 513160.55 5402559.537 244.64 513160.55 5402559.537 262.247 513160.545 5402559.552 262.248 513160.545 5402559.552 244.64 513160.55 5402559.537 244.64 - - - - - - - - - - - - - - - - - 513160.557 5402559.523 244.64 513160.557 5402559.523 262.247 513160.55 5402559.537 262.247 513160.55 5402559.537 244.64 513160.557 5402559.523 244.64 - - - - - - - - - - - - - - - - - 513160.565 5402559.509 244.64 513160.565 5402559.509 262.246 513160.557 5402559.523 262.247 513160.557 5402559.523 244.64 513160.565 5402559.509 244.64 - - - - - - - - - - - - - - - - - 513160.574 5402559.496 262.245 513160.565 5402559.509 262.246 513160.565 5402559.509 244.64 513160.574 5402559.496 244.64 513160.574 5402559.496 262.245 - - - - - - - - - - - - - - - - - 513160.574 5402559.496 244.64 513160.583 5402559.483 244.64 513160.583 5402559.483 262.245 513160.574 5402559.496 262.245 513160.574 5402559.496 244.64 - - - - - - - - - - - - - - - - - 513160.594 5402559.471 262.244 513160.583 5402559.483 262.245 513160.583 5402559.483 244.64 513160.594 5402559.471 244.64 513160.594 5402559.471 262.244 - - - - - - - - - - - - - - - - - 513160.594 5402559.471 244.64 513160.605 5402559.46 244.64 513160.605 5402559.46 262.244 513160.594 5402559.471 262.244 513160.594 5402559.471 244.64 - - - - - - - - - - - - - - - - - 513160.617 5402559.45 262.243 513160.605 5402559.46 262.244 513160.605 5402559.46 244.64 513160.617 5402559.45 244.64 513160.617 5402559.45 262.243 - - - - - - - - - - - - - - - - - 513160.617 5402559.45 244.64 513160.633 5402559.438 244.64 513160.633 5402559.438 262.243 513160.617 5402559.45 262.243 513160.617 5402559.45 244.64 - - - - - - - - - - - - - - - - - 513160.633 5402559.438 244.64 513160.649 5402559.429 244.64 513160.649 5402559.429 262.243 513160.633 5402559.438 262.243 513160.633 5402559.438 244.64 - - - - - - - - - - - - - - - - - 513160.649 5402559.429 244.64 513160.663 5402559.421 244.64 513160.663 5402559.421 262.243 513160.649 5402559.429 262.243 513160.649 5402559.429 244.64 - - - - - - - - - - - - - - - - - 513160.663 5402559.421 244.64 513160.677 5402559.415 244.64 513160.677 5402559.415 262.243 513160.663 5402559.421 262.243 513160.663 5402559.421 244.64 - - - - - - - - - - - - - - - - - 513160.677 5402559.415 244.64 513160.692 5402559.41 244.64 513160.692 5402559.41 262.243 513160.677 5402559.415 262.243 513160.677 5402559.415 244.64 - - - - - - - - - - - - - - - - - 513160.692 5402559.41 244.64 513160.708 5402559.406 244.64 513160.708 5402559.406 262.243 513160.692 5402559.41 262.243 513160.692 5402559.41 244.64 - - - - - - - - - - - - - - - - - 513160.708 5402559.406 244.64 513160.723 5402559.402 244.64 513160.723 5402559.402 262.243 513160.708 5402559.406 262.243 513160.708 5402559.406 244.64 - - - - - - - - - - - - - - - - - 513160.723 5402559.402 244.64 513160.739 5402559.4 244.64 513160.739 5402559.4 262.244 513160.723 5402559.402 262.243 513160.723 5402559.402 244.64 - - - - - - - - - - - - - - - - - 513160.739 5402559.4 244.64 513160.755 5402559.4 244.64 513160.755 5402559.4 262.244 513160.739 5402559.4 262.244 513160.739 5402559.4 244.64 - - - - - - - - - - - - - - - - - 513160.755 5402559.4 244.64 513160.771 5402559.4 244.64 513160.771 5402559.4 262.245 513160.755 5402559.4 262.244 513160.755 5402559.4 244.64 - - - - - - - - - - - - - - - - - 513160.771 5402559.4 244.64 513160.787 5402559.401 244.64 513160.787 5402559.401 262.245 513160.771 5402559.4 262.245 513160.771 5402559.4 244.64 - - - - - - - - - - - - - - - - - 513160.787 5402559.401 244.64 513160.803 5402559.404 244.64 513160.803 5402559.404 262.246 513160.787 5402559.401 262.245 513160.787 5402559.401 244.64 - - - - - - - - - - - - - - - - - 513160.803 5402559.404 244.64 513160.818 5402559.407 244.64 513160.818 5402559.407 262.246 513160.803 5402559.404 262.246 513160.803 5402559.404 244.64 - - - - - - - - - - - - - - - - - 513160.818 5402559.407 244.64 513160.833 5402559.412 244.64 513160.833 5402559.412 262.247 513160.818 5402559.407 262.246 513160.818 5402559.407 244.64 - - - - - - - - - - - - - - - - - 513160.833 5402559.412 244.64 513160.848 5402559.417 244.64 513160.848 5402559.417 262.248 513160.833 5402559.412 262.247 513160.833 5402559.412 244.64 - - - - - - - - - - - - - - - - - 513160.848 5402559.417 244.64 513160.862 5402559.424 244.64 513160.862 5402559.424 262.249 513160.848 5402559.417 262.248 513160.848 5402559.417 244.64 - - - - - - - - - - - - - - - - - 513160.862 5402559.424 244.64 513160.876 5402559.432 244.64 513160.876 5402559.432 262.25 513160.862 5402559.424 262.249 513160.862 5402559.424 244.64 - - - - - - - - - - - - - - - - - 513160.876 5402559.432 244.64 513160.89 5402559.44 244.64 513160.89 5402559.44 262.251 513160.876 5402559.432 262.25 513160.876 5402559.432 244.64 - - - - - - - - - - - - - - - - - 513160.89 5402559.44 244.64 513160.902 5402559.45 244.64 513160.902 5402559.45 262.251 513160.89 5402559.44 262.251 513160.89 5402559.44 244.64 - - - - - - - - - - - - - - - - - 513160.902 5402559.45 244.64 513160.914 5402559.46 244.64 513160.914 5402559.46 262.253 513160.902 5402559.45 262.251 513160.902 5402559.45 244.64 - - - - - - - - - - - - - - - - - 513160.914 5402559.46 244.64 513160.926 5402559.472 244.64 513160.926 5402559.472 262.254 513160.914 5402559.46 262.253 513160.914 5402559.46 244.64 - - - - - - - - - - - - - - - - - 513160.926 5402559.472 244.64 513160.936 5402559.484 244.64 513160.936 5402559.484 262.255 513160.926 5402559.472 262.254 513160.926 5402559.472 244.64 - - - - - - - - - - - - - - - - - 513160.936 5402559.484 244.64 513160.946 5402559.496 244.64 513160.946 5402559.496 262.256 513160.936 5402559.484 262.255 513160.936 5402559.484 244.64 - - - - - - - - - - - - - - - - - 513160.946 5402559.496 244.64 513160.955 5402559.51 244.64 513160.955 5402559.51 262.257 513160.946 5402559.496 262.256 513160.946 5402559.496 244.64 - - - - - - - - - - - - - - - - - 513160.955 5402559.51 262.257 513160.955 5402559.51 244.64 513160.962 5402559.523 244.64 513160.962 5402559.523 262.258 513160.955 5402559.51 262.257 - - - - - - - - - - - - - - - - - 513160.962 5402559.523 262.258 513160.962 5402559.523 244.64 513160.97 5402559.54 244.64 513160.97 5402559.54 262.259 513160.962 5402559.523 262.258 - - - - - - - - - - - - - - - - - 513160.97 5402559.54 244.64 513162.77 5402561.57 244.64 513162.77 5402561.57 262.441 513160.97 5402559.54 262.259 513160.97 5402559.54 244.64 - - - - - - - - - - - - - - - - - 513162.77 5402561.57 244.64 513165.11 5402564.25 244.64 513165.11 5402564.25 262.68 513162.77 5402561.57 262.441 513162.77 5402561.57 244.64 - - - - - - - - - - - - - - - - - 513169.61 5402562.26 262.677 513165.11 5402564.25 262.68 513165.11 5402564.25 244.64 513169.61 5402562.26 244.64 513169.61 5402562.26 262.677 - - - - - - - - - - - - - - - - - 513169.61 5402562.26 244.64 513169.583 5402562.24 244.64 513169.583 5402562.24 262.675 513169.61 5402562.26 262.677 513169.61 5402562.26 244.64 - - - - - - - - - - - - - - - - - 513169.583 5402562.24 244.64 513169.564 5402562.224 244.64 513169.564 5402562.224 262.673 513169.583 5402562.24 262.675 513169.583 5402562.24 244.64 - - - - - - - - - - - - - - - - - 513169.564 5402562.224 244.64 513169.547 5402562.207 244.64 513169.547 5402562.207 262.672 513169.564 5402562.224 262.673 513169.564 5402562.224 244.64 - - - - - - - - - - - - - - - - - 513169.547 5402562.207 244.64 513169.531 5402562.189 244.64 513169.531 5402562.189 262.67 513169.547 5402562.207 262.672 513169.547 5402562.207 244.64 - - - - - - - - - - - - - - - - - 513169.531 5402562.189 244.64 513169.516 5402562.169 244.64 513169.516 5402562.169 262.668 513169.531 5402562.189 262.67 513169.531 5402562.189 244.64 - - - - - - - - - - - - - - - - - 513169.516 5402562.169 244.64 513169.503 5402562.149 244.64 513169.503 5402562.149 262.667 513169.516 5402562.169 262.668 513169.516 5402562.169 244.64 - - - - - - - - - - - - - - - - - 513169.503 5402562.149 244.64 513169.491 5402562.127 244.64 513169.491 5402562.127 262.665 513169.503 5402562.149 262.667 513169.503 5402562.149 244.64 - - - - - - - - - - - - - - - - - 513169.491 5402562.127 244.64 513169.48 5402562.105 244.64 513169.48 5402562.105 262.663 513169.491 5402562.127 262.665 513169.491 5402562.127 244.64 - - - - - - - - - - - - - - - - - 513169.48 5402562.105 244.64 513169.471 5402562.082 244.64 513169.471 5402562.082 262.661 513169.48 5402562.105 262.663 513169.48 5402562.105 244.64 - - - - - - - - - - - - - - - - - 513169.464 5402562.059 244.64 513169.464 5402562.059 262.66 513169.471 5402562.082 262.661 513169.471 5402562.082 244.64 513169.464 5402562.059 244.64 - - - - - - - - - - - - - - - - - 513169.458 5402562.035 244.64 513169.458 5402562.035 262.658 513169.464 5402562.059 262.66 513169.464 5402562.059 244.64 513169.458 5402562.035 244.64 - - - - - - - - - - - - - - - - - 513169.454 5402562.011 244.64 513169.454 5402562.011 262.656 513169.458 5402562.035 262.658 513169.458 5402562.035 244.64 513169.454 5402562.011 244.64 - - - - - - - - - - - - - - - - - 513169.452 5402561.986 244.64 513169.452 5402561.986 262.655 513169.454 5402562.011 262.656 513169.454 5402562.011 244.64 513169.452 5402561.986 244.64 - - - - - - - - - - - - - - - - - 513169.452 5402561.962 244.64 513169.452 5402561.962 262.653 513169.452 5402561.986 262.655 513169.452 5402561.986 244.64 513169.452 5402561.962 244.64 - - - - - - - - - - - - - - - - - 513169.453 5402561.937 244.64 513169.453 5402561.937 262.651 513169.452 5402561.962 262.653 513169.452 5402561.962 244.64 513169.453 5402561.937 244.64 - - - - - - - - - - - - - - - - - 513169.456 5402561.913 244.64 513169.456 5402561.913 262.65 513169.453 5402561.937 262.651 513169.453 5402561.937 244.64 513169.456 5402561.913 244.64 - - - - - - - - - - - - - - - - - 513169.46 5402561.889 244.64 513169.46 5402561.889 262.649 513169.456 5402561.913 262.65 513169.456 5402561.913 244.64 513169.46 5402561.889 244.64 - - - - - - - - - - - - - - - - - 513169.466 5402561.865 244.64 513169.466 5402561.865 262.647 513169.46 5402561.889 262.649 513169.46 5402561.889 244.64 513169.466 5402561.865 244.64 - - - - - - - - - - - - - - - - - 513169.474 5402561.842 244.64 513169.474 5402561.842 262.646 513169.466 5402561.865 262.647 513169.466 5402561.865 244.64 513169.474 5402561.842 244.64 - - - - - - - - - - - - - - - - - 513169.484 5402561.819 262.645 513169.474 5402561.842 262.646 513169.474 5402561.842 244.64 513169.484 5402561.819 244.64 513169.484 5402561.819 262.645 - - - - - - - - - - - - - - - - - 513169.495 5402561.797 262.644 513169.484 5402561.819 262.645 513169.484 5402561.819 244.64 513169.495 5402561.797 244.64 513169.495 5402561.797 262.644 - - - - - - - - - - - - - - - - - 513169.507 5402561.776 262.643 513169.495 5402561.797 262.644 513169.495 5402561.797 244.64 513169.507 5402561.776 244.64 513169.507 5402561.776 262.643 - - - - - - - - - - - - - - - - - 513169.521 5402561.756 262.642 513169.507 5402561.776 262.643 513169.507 5402561.776 244.64 513169.521 5402561.756 244.64 513169.521 5402561.756 262.642 - - - - - - - - - - - - - - - - - 513169.537 5402561.737 262.641 513169.521 5402561.756 262.642 513169.521 5402561.756 244.64 513169.537 5402561.737 244.64 513169.537 5402561.737 262.641 - - - - - - - - - - - - - - - - - 513169.553 5402561.719 262.64 513169.537 5402561.737 262.641 513169.537 5402561.737 244.64 513169.553 5402561.719 244.64 513169.553 5402561.719 262.64 - - - - - - - - - - - - - - - - - 513169.553 5402561.719 244.64 513169.571 5402561.702 244.64 513169.571 5402561.702 262.64 513169.553 5402561.719 262.64 513169.553 5402561.719 244.64 - - - - - - - - - - - - - - - - - 513169.59 5402561.687 262.639 513169.571 5402561.702 262.64 513169.571 5402561.702 244.64 513169.59 5402561.687 244.64 513169.59 5402561.687 262.639 - - - - - - - - - - - - - - - - - 513169.59 5402561.687 244.64 513169.61 5402561.673 244.64 513169.61 5402561.673 262.639 513169.59 5402561.687 262.639 513169.59 5402561.687 244.64 - - - - - - - - - - - - - - - - - 513169.61 5402561.673 244.64 513169.631 5402561.66 244.64 513169.631 5402561.66 262.639 513169.61 5402561.673 262.639 513169.61 5402561.673 244.64 - - - - - - - - - - - - - - - - - 513169.661 5402561.645 262.638 513169.631 5402561.66 262.639 513169.631 5402561.66 244.64 513169.661 5402561.645 244.64 513169.661 5402561.645 262.638 - - - - - - - - - - - - - - - - - 513169.661 5402561.645 244.64 513169.691 5402561.633 244.64 513169.691 5402561.633 262.638 513169.661 5402561.645 262.638 513169.661 5402561.645 244.64 - - - - - - - - - - - - - - - - - 513169.691 5402561.633 244.64 513169.715 5402561.626 244.64 513169.715 5402561.626 262.639 513169.691 5402561.633 262.638 513169.691 5402561.633 244.64 - - - - - - - - - - - - - - - - - 513169.715 5402561.626 244.64 513169.739 5402561.621 244.64 513169.739 5402561.621 262.639 513169.715 5402561.626 262.639 513169.715 5402561.626 244.64 - - - - - - - - - - - - - - - - - 513169.739 5402561.621 244.64 513169.763 5402561.617 244.64 513169.763 5402561.617 262.639 513169.739 5402561.621 262.639 513169.739 5402561.621 244.64 - - - - - - - - - - - - - - - - - 513169.763 5402561.617 244.64 513169.787 5402561.615 244.64 513169.787 5402561.615 262.64 513169.763 5402561.617 262.639 513169.763 5402561.617 244.64 - - - - - - - - - - - - - - - - - 513169.787 5402561.615 244.64 513169.812 5402561.615 244.64 513169.812 5402561.615 262.641 513169.787 5402561.615 262.64 513169.787 5402561.615 244.64 - - - - - - - - - - - - - - - - - 513169.812 5402561.615 244.64 513169.836 5402561.617 244.64 513169.836 5402561.617 262.641 513169.812 5402561.615 262.641 513169.812 5402561.615 244.64 - - - - - - - - - - - - - - - - - 513169.836 5402561.617 244.64 513169.861 5402561.62 244.64 513169.861 5402561.62 262.642 513169.836 5402561.617 262.641 513169.836 5402561.617 244.64 - - - - - - - - - - - - - - - - - 513169.861 5402561.62 244.64 513169.885 5402561.625 244.64 513169.885 5402561.625 262.643 513169.861 5402561.62 262.642 513169.861 5402561.62 244.64 - - - - - - - - - - - - - - - - - 513169.885 5402561.625 244.64 513169.908 5402561.631 244.64 513169.908 5402561.631 262.644 513169.885 5402561.625 262.643 513169.885 5402561.625 244.64 - - - - - - - - - - - - - - - - - 513169.908 5402561.631 244.64 513169.931 5402561.639 244.64 513169.931 5402561.639 262.646 513169.908 5402561.631 262.644 513169.908 5402561.631 244.64 - - - - - - - - - - - - - - - - - 513169.931 5402561.639 244.64 513169.954 5402561.649 244.64 513169.954 5402561.649 262.647 513169.931 5402561.639 262.646 513169.931 5402561.639 244.64 - - - - - - - - - - - - - - - - - 513169.954 5402561.649 244.64 513169.976 5402561.661 244.64 513169.976 5402561.661 262.648 513169.954 5402561.649 262.647 513169.954 5402561.649 244.64 - - - - - - - - - - - - - - - - - 513169.976 5402561.661 244.64 513169.997 5402561.673 244.64 513169.997 5402561.673 262.65 513169.976 5402561.661 262.648 513169.976 5402561.661 244.64 - - - - - - - - - - - - - - - - - 513169.997 5402561.673 244.64 513170.017 5402561.688 244.64 513170.017 5402561.688 262.651 513169.997 5402561.673 262.65 513169.997 5402561.673 244.64 - - - - - - - - - - - - - - - - - 513170.017 5402561.688 244.64 513170.036 5402561.703 244.64 513170.036 5402561.703 262.653 513170.017 5402561.688 262.651 513170.017 5402561.688 244.64 - - - - - - - - - - - - - - - - - 513170.036 5402561.703 244.64 513170.053 5402561.72 244.64 513170.053 5402561.72 262.654 513170.036 5402561.703 262.653 513170.036 5402561.703 244.64 - - - - - - - - - - - - - - - - - 513170.053 5402561.72 244.64 513170.07 5402561.738 244.64 513170.07 5402561.738 262.656 513170.053 5402561.72 262.654 513170.053 5402561.72 244.64 - - - - - - - - - - - - - - - - - 513170.07 5402561.738 244.64 513170.085 5402561.757 244.64 513170.085 5402561.757 262.657 513170.07 5402561.738 262.656 513170.07 5402561.738 244.64 - - - - - - - - - - - - - - - - - 513170.085 5402561.757 244.64 513170.099 5402561.777 244.64 513170.099 5402561.777 262.659 513170.085 5402561.757 262.657 513170.085 5402561.757 244.64 - - - - - - - - - - - - - - - - - 513170.099 5402561.777 244.64 513170.111 5402561.799 244.64 513170.111 5402561.799 262.661 513170.099 5402561.777 262.659 513170.099 5402561.777 244.64 - - - - - - - - - - - - - - - - - 513170.111 5402561.799 244.64 513170.122 5402561.821 244.64 513170.122 5402561.821 262.663 513170.111 5402561.799 262.661 513170.111 5402561.799 244.64 - - - - - - - - - - - - - - - - - 513170.122 5402561.821 244.64 513170.132 5402561.843 244.64 513170.132 5402561.843 262.664 513170.122 5402561.821 262.663 513170.122 5402561.821 244.64 - - - - - - - - - - - - - - - - - 513170.132 5402561.843 262.664 513170.132 5402561.843 244.64 513170.14 5402561.866 244.64 513170.14 5402561.866 262.666 513170.132 5402561.843 262.664 - - - - - - - - - - - - - - - - - 513170.14 5402561.866 262.666 513170.14 5402561.866 244.64 513170.146 5402561.89 244.64 513170.146 5402561.89 262.668 513170.14 5402561.866 262.666 - - - - - - - - - - - - - - - - - 513170.146 5402561.89 262.668 513170.146 5402561.89 244.64 513170.15 5402561.914 244.64 513170.15 5402561.914 262.669 513170.146 5402561.89 262.668 - - - - - - - - - - - - - - - - - 513170.15 5402561.914 262.669 513170.15 5402561.914 244.64 513170.153 5402561.939 244.64 513170.153 5402561.939 262.671 513170.15 5402561.914 262.669 - - - - - - - - - - - - - - - - - 513170.153 5402561.939 262.671 513170.153 5402561.939 244.64 513170.154 5402561.963 244.64 513170.154 5402561.963 262.673 513170.153 5402561.939 262.671 - - - - - - - - - - - - - - - - - 513170.154 5402561.963 262.673 513170.154 5402561.963 244.64 513170.154 5402561.988 244.64 513170.154 5402561.988 262.674 513170.154 5402561.963 262.673 - - - - - - - - - - - - - - - - - 513170.154 5402561.988 262.674 513170.154 5402561.988 244.64 513170.15 5402562.02 244.64 513170.15 5402562.02 262.676 513170.154 5402561.988 262.674 - - - - - - - - - - - - - - - - - 513174.28 5402560.2 262.674 513170.15 5402562.02 262.676 513170.15 5402562.02 244.64 513174.28 5402560.2 244.64 513174.28 5402560.2 262.674 - - - - - - - - - - - - - - - - - 513174.28 5402560.2 244.64 513174.257 5402560.188 244.64 513174.257 5402560.188 262.672 513174.28 5402560.2 262.674 513174.28 5402560.2 244.64 - - - - - - - - - - - - - - - - - 513174.257 5402560.188 244.64 513174.237 5402560.175 244.64 513174.237 5402560.175 262.671 513174.257 5402560.188 262.672 513174.257 5402560.188 244.64 - - - - - - - - - - - - - - - - - 513174.237 5402560.175 244.64 513174.218 5402560.161 244.64 513174.218 5402560.161 262.67 513174.237 5402560.175 262.671 513174.237 5402560.175 244.64 - - - - - - - - - - - - - - - - - 513174.218 5402560.161 244.64 513174.2 5402560.146 244.64 513174.2 5402560.146 262.668 513174.218 5402560.161 262.67 513174.218 5402560.161 244.64 - - - - - - - - - - - - - - - - - 513174.2 5402560.146 244.64 513174.182 5402560.129 244.64 513174.182 5402560.129 262.667 513174.2 5402560.146 262.668 513174.2 5402560.146 244.64 - - - - - - - - - - - - - - - - - 513174.182 5402560.129 244.64 513174.166 5402560.112 244.64 513174.166 5402560.112 262.665 513174.182 5402560.129 262.667 513174.182 5402560.129 244.64 - - - - - - - - - - - - - - - - - 513174.166 5402560.112 244.64 513174.152 5402560.093 244.64 513174.152 5402560.093 262.663 513174.166 5402560.112 262.665 513174.166 5402560.112 244.64 - - - - - - - - - - - - - - - - - 513174.152 5402560.093 244.64 513174.138 5402560.073 244.64 513174.138 5402560.073 262.662 513174.152 5402560.093 262.663 513174.152 5402560.093 244.64 - - - - - - - - - - - - - - - - - 513174.138 5402560.073 244.64 513174.127 5402560.053 244.64 513174.127 5402560.053 262.66 513174.138 5402560.073 262.662 513174.138 5402560.073 244.64 - - - - - - - - - - - - - - - - - 513174.127 5402560.053 244.64 513174.116 5402560.031 244.64 513174.116 5402560.031 262.658 513174.127 5402560.053 262.66 513174.127 5402560.053 244.64 - - - - - - - - - - - - - - - - - 513174.116 5402560.031 244.64 513174.107 5402560.009 244.64 513174.107 5402560.009 262.657 513174.116 5402560.031 262.658 513174.116 5402560.031 244.64 - - - - - - - - - - - - - - - - - 513174.1 5402559.987 244.64 513174.1 5402559.987 262.655 513174.107 5402560.009 262.657 513174.107 5402560.009 244.64 513174.1 5402559.987 244.64 - - - - - - - - - - - - - - - - - 513174.094 5402559.963 244.64 513174.094 5402559.963 262.653 513174.1 5402559.987 262.655 513174.1 5402559.987 244.64 513174.094 5402559.963 244.64 - - - - - - - - - - - - - - - - - 513174.09 5402559.94 244.64 513174.09 5402559.94 262.652 513174.094 5402559.963 262.653 513174.094 5402559.963 244.64 513174.09 5402559.94 244.64 - - - - - - - - - - - - - - - - - 513174.087 5402559.916 244.64 513174.087 5402559.916 262.65 513174.09 5402559.94 262.652 513174.09 5402559.94 244.64 513174.087 5402559.916 244.64 - - - - - - - - - - - - - - - - - 513174.087 5402559.893 244.64 513174.087 5402559.893 262.648 513174.087 5402559.916 262.65 513174.087 5402559.916 244.64 513174.087 5402559.893 244.64 - - - - - - - - - - - - - - - - - 513174.087 5402559.869 244.64 513174.087 5402559.869 262.647 513174.087 5402559.893 262.648 513174.087 5402559.893 244.64 513174.087 5402559.869 244.64 - - - - - - - - - - - - - - - - - 513174.09 5402559.845 244.64 513174.09 5402559.845 262.645 513174.087 5402559.869 262.647 513174.087 5402559.869 244.64 513174.09 5402559.845 244.64 - - - - - - - - - - - - - - - - - 513174.094 5402559.822 244.64 513174.094 5402559.822 262.644 513174.09 5402559.845 262.645 513174.09 5402559.845 244.64 513174.094 5402559.822 244.64 - - - - - - - + - + - + - + - - 513174.1 5402559.798 244.64 513174.1 5402559.798 262.643 513174.094 5402559.822 262.644 513174.094 5402559.822 244.64 513174.1 5402559.798 244.64 + + 513036.15 5402417.28 269.3 513034.63 5402421.88 269.3 513033.58 5402421.69 269.3 513036.15 5402417.28 269.3 - + - + - + - + - - 513174.107 5402559.776 244.64 513174.107 5402559.776 262.641 513174.1 5402559.798 262.643 513174.1 5402559.798 244.64 513174.107 5402559.776 244.64 + + 513033.58 5402421.69 269.3 513025.87 5402427.53 269.3 513036.15 5402417.28 269.3 513033.58 5402421.69 269.3 - + - + - + - + - - 513174.116 5402559.754 262.64 513174.107 5402559.776 262.641 513174.107 5402559.776 244.64 513174.116 5402559.754 244.64 513174.116 5402559.754 262.64 + + 513025.91 5402428.65 269.3 513023.62 5402430.31 269.3 513025.87 5402427.53 269.3 513025.91 5402428.65 269.3 - + - + - + - + - - 513174.127 5402559.732 262.639 513174.116 5402559.754 262.64 513174.116 5402559.754 244.64 513174.127 5402559.732 244.64 513174.127 5402559.732 262.639 + + 513025.87 5402427.53 269.3 513021.1 5402428.79 269.3 513036.15 5402417.28 269.3 513025.87 5402427.53 269.3 - + - + - + - + - - 513174.138 5402559.712 262.638 513174.127 5402559.732 262.639 513174.127 5402559.732 244.64 513174.138 5402559.712 244.64 513174.138 5402559.712 262.638 + + 513043.05 5402397.8 269.3 513036.15 5402417.28 269.3 513000.38 5402430.08 269.3 513043.05 5402397.8 269.3 - + - + - + - + - - 513174.152 5402559.692 262.637 513174.138 5402559.712 262.638 513174.138 5402559.712 244.64 513174.152 5402559.692 244.64 513174.152 5402559.692 262.637 + + 513017.31 5402431.67 269.3 513017.24 5402433.17 269.3 513007.27 5402439.2 269.3 513017.31 5402431.67 269.3 - + - + - + - + - - 513174.166 5402559.673 262.636 513174.152 5402559.692 262.637 513174.152 5402559.692 244.64 513174.166 5402559.673 244.64 513174.166 5402559.673 262.636 + + 513007.27 5402439.2 269.3 513000.38 5402430.08 269.3 513017.31 5402431.67 269.3 513007.27 5402439.2 269.3 - + - + - + - + - - 513174.166 5402559.673 244.64 513174.182 5402559.656 244.64 513174.182 5402559.656 262.636 513174.166 5402559.673 262.636 513174.166 5402559.673 244.64 + + 513007.27 5402439.2 269.3 513017.24 5402433.17 269.3 513025.34 5402440.66 269.3 513007.27 5402439.2 269.3 - + - + - + - + - - 513174.2 5402559.639 262.635 513174.182 5402559.656 262.636 513174.182 5402559.656 244.64 513174.2 5402559.639 244.64 513174.2 5402559.639 262.635 + + 513028.33 5402440.49 269.3 513035.2 5402450.0 269.3 513025.34 5402440.66 269.3 513028.33 5402440.49 269.3 - + - + - + - + - - 513174.2 5402559.639 244.64 513174.218 5402559.624 244.64 513174.218 5402559.624 262.635 513174.2 5402559.639 262.635 513174.2 5402559.639 244.64 + + 513025.34 5402440.66 269.3 513026.8 5402439.07 269.3 513028.33 5402440.49 269.3 513025.34 5402440.66 269.3 - + - + - + - + - - 513174.237 5402559.61 262.634 513174.218 5402559.624 262.635 513174.218 5402559.624 244.64 513174.237 5402559.61 244.64 513174.237 5402559.61 262.634 + + 513028.33 5402440.49 269.3 513031.22 5402437.41 269.3 513035.2 5402450.0 269.3 513028.33 5402440.49 269.3 - + - + - + - + - - 513174.237 5402559.61 244.64 513174.257 5402559.597 244.64 513174.257 5402559.597 262.634 513174.237 5402559.61 262.634 513174.237 5402559.61 244.64 + + 513035.2 5402450.0 269.3 513007.27 5402439.2 269.3 513025.34 5402440.66 269.3 513035.2 5402450.0 269.3 - + - + - + - + - - 513174.257 5402559.597 244.64 513174.28 5402559.585 244.64 513174.28 5402559.585 262.634 513174.257 5402559.597 262.634 513174.257 5402559.597 244.64 + + 513031.22 5402437.41 269.3 513055.79 5402427.84 269.3 513035.2 5402450.0 269.3 513031.22 5402437.41 269.3 - + - + - + - + - - 513174.28 5402559.585 244.64 513174.304 5402559.575 244.64 513174.304 5402559.575 262.634 513174.28 5402559.585 262.634 513174.28 5402559.585 244.64 + + 513035.2 5402450.0 269.3 513041.48 5402471.56 269.3 513007.27 5402439.2 269.3 513035.2 5402450.0 269.3 - + - + - + - + - - 513174.304 5402559.575 244.64 513174.327 5402559.567 244.64 513174.327 5402559.567 262.634 513174.304 5402559.575 262.634 513174.304 5402559.575 244.64 + + 513036.15 5402417.28 269.3 513037.15 5402419.07 269.3 513034.63 5402421.88 269.3 513036.15 5402417.28 269.3 - + - + - + - + - - 513174.327 5402559.567 244.64 513174.349 5402559.56 244.64 513174.349 5402559.56 262.634 513174.327 5402559.567 262.634 513174.327 5402559.567 244.64 + + 513043.05 5402397.8 269.3 513049.15 5402405.85 269.3 513040.78 5402413.76 269.3 513043.05 5402397.8 269.3 - + - + - + - + - - 513174.349 5402559.56 244.64 513174.373 5402559.556 244.64 513174.373 5402559.556 262.635 513174.349 5402559.56 262.634 513174.349 5402559.56 244.64 + + 513036.15 5402417.28 269.3 513037.44 5402418.92 269.3 513037.15 5402419.07 269.3 513036.15 5402417.28 269.3 - + - + - + - + - - 513174.373 5402559.556 244.64 513174.396 5402559.553 244.64 513174.396 5402559.553 262.635 513174.373 5402559.556 262.635 513174.373 5402559.556 244.64 + + 513036.15 5402417.28 269.3 513043.05 5402397.8 269.3 513040.78 5402413.76 269.3 513036.15 5402417.28 269.3 - + - + - + - + - - 513174.396 5402559.553 244.64 513174.42 5402559.551 244.64 513174.42 5402559.551 262.636 513174.396 5402559.553 262.635 513174.396 5402559.553 244.64 + + 513049.15 5402405.85 269.3 513055.79 5402427.84 269.3 513047.4 5402420.11 269.3 513049.15 5402405.85 269.3 - + - + - + - + - - 513174.42 5402559.551 244.64 513174.444 5402559.552 244.64 513174.444 5402559.552 262.636 513174.42 5402559.551 262.636 513174.42 5402559.551 244.64 + + 513047.4 5402420.11 269.3 513040.78 5402413.76 269.3 513049.15 5402405.85 269.3 513047.4 5402420.11 269.3 - + - + - + - + - - 513174.444 5402559.552 244.64 513174.468 5402559.554 244.64 513174.468 5402559.554 262.637 513174.444 5402559.552 262.636 513174.444 5402559.552 244.64 + + 513078.66 5402433.75 269.3 513065.57 5402437.14 269.3 513055.79 5402427.84 269.3 513078.66 5402433.75 269.3 - + - + - + - + - - 513174.468 5402559.554 244.64 513174.491 5402559.557 244.64 513174.491 5402559.557 262.638 513174.468 5402559.554 262.637 513174.468 5402559.554 244.64 + + 513055.79 5402427.84 269.3 513049.15 5402405.85 269.3 513078.66 5402433.75 269.3 513055.79 5402427.84 269.3 - + - + - + - + - - 513174.491 5402559.557 244.64 513174.514 5402559.563 244.64 513174.514 5402559.563 262.639 513174.491 5402559.557 262.638 513174.491 5402559.557 244.64 + + 513078.66 5402433.75 269.3 513073.17 5402438.72 269.3 513065.57 5402437.14 269.3 513078.66 5402433.75 269.3 - + - + - + - + - - 513174.514 5402559.563 244.64 513174.537 5402559.569 244.64 513174.537 5402559.569 262.64 513174.514 5402559.563 262.639 513174.514 5402559.563 244.64 + + 513047.4 5402420.11 269.3 513055.79 5402427.84 269.3 513031.22 5402437.41 269.3 513047.4 5402420.11 269.3 - + - + - + - + - - 513174.537 5402559.569 244.64 513174.56 5402559.578 244.64 513174.56 5402559.578 262.641 513174.537 5402559.569 262.64 513174.537 5402559.569 244.64 + + 513041.69 5402471.35 269.3 513049.66 5402463.63 269.3 513041.92 5402471.49 269.3 513041.69 5402471.35 269.3 - + - + - + - + - - 513174.56 5402559.578 244.64 513174.581 5402559.588 244.64 513174.581 5402559.588 262.643 513174.56 5402559.578 262.641 513174.56 5402559.578 244.64 + + 513041.92 5402471.49 269.3 513041.94 5402472.08 269.3 513041.6 5402471.79 269.3 513041.92 5402471.49 269.3 - + - + - + - + - - 513174.581 5402559.588 244.64 513174.602 5402559.599 244.64 513174.602 5402559.599 262.644 513174.581 5402559.588 262.643 513174.581 5402559.588 244.64 + + 513049.66 5402463.63 269.3 513041.94 5402472.08 269.3 513041.92 5402471.49 269.3 513049.66 5402463.63 269.3 - + - + - + - + - - 513174.602 5402559.599 244.64 513174.622 5402559.612 244.64 513174.622 5402559.612 262.645 513174.602 5402559.599 262.644 513174.602 5402559.599 244.64 + + 513035.2 5402450.0 269.3 513041.69 5402471.35 269.3 513041.48 5402471.56 269.3 513035.2 5402450.0 269.3 - + - + - + - + - - 513174.622 5402559.612 244.64 513174.641 5402559.626 244.64 513174.641 5402559.626 262.647 513174.622 5402559.612 262.645 513174.622 5402559.612 244.64 + + 513073.17 5402438.72 269.3 513078.66 5402433.75 269.3 513073.6 5402439.16 269.3 513073.17 5402438.72 269.3 - + - + - + - + - - 513174.641 5402559.626 244.64 513174.659 5402559.642 244.64 513174.659 5402559.642 262.648 513174.641 5402559.626 262.647 513174.641 5402559.626 244.64 + + 513049.66 5402463.63 269.3 513041.69 5402471.35 269.3 513045.08 5402459.26 269.3 513049.66 5402463.63 269.3 - + - + - + - + - - 513174.659 5402559.642 244.64 513174.676 5402559.659 244.64 513174.676 5402559.659 262.65 513174.659 5402559.642 262.648 513174.659 5402559.642 244.64 + + 513065.57 5402437.14 269.3 513073.17 5402438.72 269.3 513070.4 5402441.75 269.3 513065.57 5402437.14 269.3 - + - + - + - + - - 513174.676 5402559.659 244.64 513174.692 5402559.677 244.64 513174.692 5402559.677 262.651 513174.676 5402559.659 262.65 513174.676 5402559.659 244.64 + + 513041.69 5402471.35 269.3 513035.2 5402450.0 269.3 513045.08 5402459.26 269.3 513041.69 5402471.35 269.3 - + - + - + - + - - 513174.692 5402559.677 244.64 513174.706 5402559.695 244.64 513174.706 5402559.695 262.653 513174.692 5402559.677 262.651 513174.692 5402559.677 244.64 + + 513034.63 5402421.88 269.3 513037.15 5402419.07 269.3 513037.23 5402419.94 269.3 513034.63 5402421.88 269.3 - + - + - + - + - - 513174.706 5402559.695 244.64 513174.719 5402559.715 244.64 513174.719 5402559.715 262.655 513174.706 5402559.695 262.653 513174.706 5402559.695 244.64 + + 513043.05 5402397.8 244.842 513049.15 5402405.85 244.842 513049.15 5402405.85 269.3 513043.05 5402397.8 269.3 513043.05 5402397.8 244.842 @@ -13692,14 +840,14 @@ - + - + - + - - 513174.719 5402559.715 244.64 513174.731 5402559.736 244.64 513174.731 5402559.736 262.656 513174.719 5402559.715 262.655 513174.719 5402559.715 244.64 + + 513049.15 5402405.85 244.842 513078.66 5402433.75 244.842 513078.66 5402433.75 269.3 513049.15 5402405.85 269.3 513049.15 5402405.85 244.842 @@ -13709,14 +857,14 @@ - + - + - + - - 513174.731 5402559.736 244.64 513174.741 5402559.758 244.64 513174.741 5402559.758 262.658 513174.731 5402559.736 262.656 513174.731 5402559.736 244.64 + + 513078.66 5402433.75 244.842 513073.6 5402439.16 244.842 513073.6 5402439.16 269.3 513078.66 5402433.75 269.3 513078.66 5402433.75 244.842 @@ -13726,14 +874,14 @@ - + - + - + - - 513174.741 5402559.758 244.64 513174.75 5402559.78 244.64 513174.75 5402559.78 262.66 513174.741 5402559.758 262.658 513174.741 5402559.758 244.64 + + 513073.6 5402439.16 244.842 513073.17 5402438.72 244.842 513073.17 5402438.72 269.3 513073.6 5402439.16 269.3 513073.6 5402439.16 244.842 @@ -13743,14 +891,14 @@ - + - + - + - - 513174.75 5402559.78 262.66 513174.75 5402559.78 244.64 513174.757 5402559.803 244.64 513174.757 5402559.803 262.661 513174.75 5402559.78 262.66 + + 513073.17 5402438.72 244.842 513070.4 5402441.75 244.842 513070.4 5402441.75 269.3 513073.17 5402438.72 269.3 513073.17 5402438.72 244.842 @@ -13760,14 +908,14 @@ - + - + - + - - 513174.757 5402559.803 262.661 513174.757 5402559.803 244.64 513174.762 5402559.826 244.64 513174.762 5402559.826 262.663 513174.757 5402559.803 262.661 + + 513070.4 5402441.75 244.842 513065.57 5402437.14 244.842 513065.57 5402437.14 269.3 513070.4 5402441.75 269.3 513070.4 5402441.75 244.842 @@ -13777,14 +925,14 @@ - + - + - + - - 513174.762 5402559.826 262.663 513174.762 5402559.826 244.64 513174.766 5402559.849 244.64 513174.766 5402559.849 262.665 513174.762 5402559.826 262.663 + + 513065.57 5402437.14 244.842 513055.79 5402427.84 244.842 513055.79 5402427.84 269.3 513065.57 5402437.14 269.3 513065.57 5402437.14 244.842 @@ -13794,14 +942,14 @@ - + - + - + - - 513174.766 5402559.849 262.665 513174.766 5402559.849 244.64 513174.768 5402559.873 244.64 513174.768 5402559.873 262.666 513174.766 5402559.849 262.665 + + 513055.79 5402427.84 244.842 513035.2 5402450.0 244.842 513035.2 5402450.0 269.3 513055.79 5402427.84 269.3 513055.79 5402427.84 244.842 @@ -13811,14 +959,14 @@ - + - + - + - - 513174.768 5402559.873 262.666 513174.768 5402559.873 244.64 513174.769 5402559.897 244.64 513174.769 5402559.897 262.668 513174.768 5402559.873 262.666 + + 513035.2 5402450.0 244.842 513045.08 5402459.26 244.842 513045.08 5402459.26 269.3 513035.2 5402450.0 269.3 513035.2 5402450.0 244.842 @@ -13828,14 +976,14 @@ - + - + - + - - 513174.769 5402559.897 262.668 513174.769 5402559.897 244.64 513174.768 5402559.921 244.64 513174.768 5402559.921 262.669 513174.769 5402559.897 262.668 + + 513045.08 5402459.26 244.842 513049.66 5402463.63 244.842 513049.66 5402463.63 269.3 513045.08 5402459.26 269.3 513045.08 5402459.26 244.842 @@ -13845,14 +993,14 @@ - + - + - + - - 513174.768 5402559.921 262.669 513174.768 5402559.921 244.64 513174.765 5402559.944 244.64 513174.765 5402559.944 262.671 513174.768 5402559.921 262.669 + + 513049.66 5402463.63 244.842 513041.94 5402472.08 244.842 513041.94 5402472.08 269.3 513049.66 5402463.63 269.3 513049.66 5402463.63 244.842 @@ -13862,14 +1010,14 @@ - + - + - + - - 513174.765 5402559.944 262.671 513174.765 5402559.944 244.64 513174.76 5402559.97 244.64 513174.76 5402559.97 262.672 513174.765 5402559.944 262.671 + + 513041.94 5402472.08 244.842 513041.6 5402471.79 244.842 513041.6 5402471.79 269.3 513041.94 5402472.08 269.3 513041.94 5402472.08 244.842 @@ -13879,14 +1027,14 @@ - + - + - + - - 513178.88 5402558.11 262.667 513174.76 5402559.97 262.672 513174.76 5402559.97 244.64 513178.88 5402558.11 244.64 513178.88 5402558.11 262.667 + + 513041.6 5402471.79 244.842 513041.92 5402471.49 244.842 513041.92 5402471.49 269.3 513041.6 5402471.79 269.3 513041.6 5402471.79 244.842 @@ -13896,14 +1044,14 @@ - + - + - + - - 513178.88 5402558.11 244.64 513178.861 5402558.093 244.64 513178.861 5402558.093 262.665 513178.88 5402558.11 262.667 513178.88 5402558.11 244.64 + + 513041.92 5402471.49 244.842 513041.69 5402471.35 244.842 513041.69 5402471.35 269.3 513041.92 5402471.49 269.3 513041.92 5402471.49 244.842 @@ -13913,14 +1061,14 @@ - + - + - + - - 513178.861 5402558.093 244.64 513178.844 5402558.075 244.64 513178.844 5402558.075 262.664 513178.861 5402558.093 262.665 513178.861 5402558.093 244.64 + + 513041.69 5402471.35 244.842 513041.48 5402471.56 244.842 513041.48 5402471.56 269.3 513041.69 5402471.35 269.3 513041.69 5402471.35 244.842 @@ -13930,14 +1078,14 @@ - + - + - + - - 513178.844 5402558.075 244.64 513178.828 5402558.056 244.64 513178.828 5402558.056 262.662 513178.844 5402558.075 262.664 513178.844 5402558.075 244.64 + + 513007.27 5402439.2 269.3 513041.48 5402471.56 269.3 513041.48 5402471.56 244.842 513007.27 5402439.2 244.842 513007.27 5402439.2 269.3 @@ -13947,14 +1095,14 @@ - + - + - + - - 513178.828 5402558.056 244.64 513178.813 5402558.036 244.64 513178.813 5402558.036 262.66 513178.828 5402558.056 262.662 513178.828 5402558.056 244.64 + + 513007.27 5402439.2 244.842 513000.38 5402430.08 244.842 513000.38 5402430.08 269.3 513007.27 5402439.2 269.3 513007.27 5402439.2 244.842 @@ -13964,14 +1112,14 @@ - + - + - + - - 513178.813 5402558.036 244.64 513178.8 5402558.015 244.64 513178.8 5402558.015 262.659 513178.813 5402558.036 262.66 513178.813 5402558.036 244.64 + + 513000.38 5402430.08 244.842 513043.05 5402397.8 244.842 513043.05 5402397.8 269.3 513000.38 5402430.08 269.3 513000.38 5402430.08 244.842 @@ -13981,14 +1129,14 @@ - + - + - + - - 513178.8 5402558.015 244.64 513178.788 5402557.993 244.64 513178.788 5402557.993 262.657 513178.8 5402558.015 262.659 513178.8 5402558.015 244.64 + + 513025.87 5402427.53 244.842 513025.91 5402428.65 244.842 513025.91 5402428.65 269.3 513025.87 5402427.53 269.3 513025.87 5402427.53 244.842 @@ -13998,14 +1146,14 @@ - + - + - + - - 513178.788 5402557.993 244.64 513178.778 5402557.97 244.64 513178.778 5402557.97 262.655 513178.788 5402557.993 262.657 513178.788 5402557.993 244.64 + + 513025.91 5402428.65 244.842 513023.62 5402430.31 244.842 513023.62 5402430.31 269.3 513025.91 5402428.65 269.3 513025.91 5402428.65 244.842 @@ -14015,14 +1163,14 @@ - + - + - + - - 513178.77 5402557.947 244.64 513178.77 5402557.947 262.653 513178.778 5402557.97 262.655 513178.778 5402557.97 244.64 513178.77 5402557.947 244.64 + + 513023.62 5402430.31 244.842 513023.22 5402430.6 244.842 513023.22 5402430.6 269.3 513023.62 5402430.31 269.3 513023.62 5402430.31 244.842 @@ -14032,14 +1180,14 @@ - + - + - + - - 513178.763 5402557.923 244.64 513178.763 5402557.923 262.652 513178.77 5402557.947 262.653 513178.77 5402557.947 244.64 513178.763 5402557.923 244.64 + + 513023.22 5402430.6 244.842 513022.53 5402430.32 244.842 513022.53 5402430.32 269.3 513023.22 5402430.6 269.3 513023.22 5402430.6 244.842 @@ -14049,14 +1197,14 @@ - + - + - + - - 513178.758 5402557.898 244.64 513178.758 5402557.898 262.65 513178.763 5402557.923 262.652 513178.763 5402557.923 244.64 513178.758 5402557.898 244.64 + + 513022.53 5402430.32 244.842 513022.15 5402430.49 244.842 513022.15 5402430.49 269.3 513022.53 5402430.32 269.3 513022.53 5402430.32 244.842 @@ -14066,14 +1214,14 @@ - + - + - + - - 513178.754 5402557.874 244.64 513178.754 5402557.874 262.648 513178.758 5402557.898 262.65 513178.758 5402557.898 244.64 513178.754 5402557.874 244.64 + + 513022.15 5402430.49 244.842 513021.1 5402428.79 244.842 513021.1 5402428.79 269.3 513022.15 5402430.49 269.3 513022.15 5402430.49 244.842 @@ -14083,14 +1231,14 @@ - + - + - + - - 513178.752 5402557.849 244.64 513178.752 5402557.849 262.646 513178.754 5402557.874 262.648 513178.754 5402557.874 244.64 513178.752 5402557.849 244.64 + + 513021.1 5402428.79 244.842 513017.31 5402431.67 244.842 513017.31 5402431.67 269.3 513021.1 5402428.79 269.3 513021.1 5402428.79 244.842 @@ -14100,14 +1248,14 @@ - + - + - + - - 513178.752 5402557.824 244.64 513178.752 5402557.824 262.645 513178.752 5402557.849 262.646 513178.752 5402557.849 244.64 513178.752 5402557.824 244.64 + + 513017.31 5402431.67 244.842 513017.24 5402433.17 244.842 513017.24 5402433.17 269.3 513017.31 5402431.67 269.3 513017.31 5402431.67 244.842 @@ -14117,14 +1265,14 @@ - + - + - + - - 513178.754 5402557.799 244.64 513178.754 5402557.799 262.643 513178.752 5402557.824 262.645 513178.752 5402557.824 244.64 513178.754 5402557.799 244.64 + + 513017.24 5402433.17 244.842 513025.34 5402440.66 244.842 513025.34 5402440.66 269.3 513017.24 5402433.17 269.3 513017.24 5402433.17 244.842 @@ -14134,14 +1282,14 @@ - + - + - + - - 513178.758 5402557.775 244.64 513178.758 5402557.775 262.642 513178.754 5402557.799 262.643 513178.754 5402557.799 244.64 513178.758 5402557.775 244.64 + + 513025.34 5402440.66 244.842 513026.8 5402439.07 244.842 513026.8 5402439.07 269.3 513025.34 5402440.66 269.3 513025.34 5402440.66 244.842 @@ -14151,14 +1299,14 @@ - + - + - + - - 513178.763 5402557.75 244.64 513178.763 5402557.75 262.64 513178.758 5402557.775 262.642 513178.758 5402557.775 244.64 513178.763 5402557.75 244.64 + + 513026.8 5402439.07 244.842 513028.33 5402440.49 244.842 513028.33 5402440.49 269.3 513026.8 5402439.07 269.3 513026.8 5402439.07 244.842 @@ -14168,14 +1316,14 @@ - + - + - + - - 513178.77 5402557.726 244.64 513178.77 5402557.726 262.639 513178.763 5402557.75 262.64 513178.763 5402557.75 244.64 513178.77 5402557.726 244.64 + + 513028.33 5402440.49 244.842 513031.22 5402437.41 244.842 513031.22 5402437.41 269.3 513028.33 5402440.49 269.3 513028.33 5402440.49 244.842 @@ -14185,14 +1333,14 @@ - + - + - + - - 513178.778 5402557.703 244.64 513178.778 5402557.703 262.638 513178.77 5402557.726 262.639 513178.77 5402557.726 244.64 513178.778 5402557.703 244.64 + + 513047.4 5402420.11 269.3 513031.22 5402437.41 269.3 513031.22 5402437.41 244.842 513047.4 5402420.11 244.842 513047.4 5402420.11 269.3 @@ -14202,14 +1350,14 @@ - + - + - + - - 513178.788 5402557.68 262.636 513178.778 5402557.703 262.638 513178.778 5402557.703 244.64 513178.788 5402557.68 244.64 513178.788 5402557.68 262.636 + + 513047.4 5402420.11 244.842 513040.78 5402413.76 244.842 513040.78 5402413.76 269.3 513047.4 5402420.11 269.3 513047.4 5402420.11 244.842 @@ -14219,14 +1367,14 @@ - + - + - + - - 513178.8 5402557.658 262.635 513178.788 5402557.68 262.636 513178.788 5402557.68 244.64 513178.8 5402557.658 244.64 513178.8 5402557.658 262.635 + + 513040.78 5402413.76 244.842 513036.15 5402417.28 244.842 513036.15 5402417.28 269.3 513040.78 5402413.76 269.3 513040.78 5402413.76 244.842 @@ -14236,14 +1384,14 @@ - + - + - + - - 513178.813 5402557.637 262.634 513178.8 5402557.658 262.635 513178.8 5402557.658 244.64 513178.813 5402557.637 244.64 513178.813 5402557.637 262.634 + + 513036.15 5402417.28 244.842 513037.44 5402418.92 244.842 513037.44 5402418.92 269.3 513036.15 5402417.28 269.3 513036.15 5402417.28 244.842 @@ -14253,14 +1401,14 @@ - + - + - + - - 513178.813 5402557.637 244.64 513178.828 5402557.617 244.64 513178.828 5402557.617 262.634 513178.813 5402557.637 262.634 513178.813 5402557.637 244.64 + + 513037.44 5402418.92 244.842 513037.15 5402419.07 244.842 513037.15 5402419.07 269.3 513037.44 5402418.92 269.3 513037.44 5402418.92 244.842 @@ -14270,14 +1418,14 @@ - + - + - + - - 513178.844 5402557.598 262.633 513178.828 5402557.617 262.634 513178.828 5402557.617 244.64 513178.844 5402557.598 244.64 513178.844 5402557.598 262.633 + + 513037.15 5402419.07 244.842 513037.23 5402419.94 244.842 513037.23 5402419.94 269.3 513037.15 5402419.07 269.3 513037.15 5402419.07 244.842 @@ -14287,14 +1435,14 @@ - + - + - + - - 513178.861 5402557.58 262.632 513178.844 5402557.598 262.633 513178.844 5402557.598 244.64 513178.861 5402557.58 244.64 513178.861 5402557.58 262.632 + + 513037.23 5402419.94 244.842 513034.63 5402421.88 244.842 513034.63 5402421.88 269.3 513037.23 5402419.94 269.3 513037.23 5402419.94 244.842 @@ -14304,14 +1452,14 @@ - + - + - + - - 513178.879 5402557.563 262.631 513178.861 5402557.58 262.632 513178.861 5402557.58 244.64 513178.879 5402557.563 244.64 513178.879 5402557.563 262.631 + + 513034.63 5402421.88 244.842 513033.58 5402421.69 244.842 513033.58 5402421.69 269.3 513034.63 5402421.88 269.3 513034.63 5402421.88 244.842 @@ -14321,14 +1469,14 @@ - + - + - + - - 513178.879 5402557.563 244.64 513178.899 5402557.548 244.64 513178.899 5402557.548 262.631 513178.879 5402557.563 262.631 513178.879 5402557.563 244.64 + + 513033.58 5402421.69 244.842 513025.87 5402427.53 244.842 513025.87 5402427.53 269.3 513033.58 5402421.69 269.3 513033.58 5402421.69 244.842 @@ -14338,667 +1486,667 @@ - + - + - + - - 513178.899 5402557.548 244.64 513178.92 5402557.534 244.64 513178.92 5402557.534 262.631 513178.899 5402557.548 262.631 513178.899 5402557.548 244.64 + + 513017.31 5402431.67 244.842 513021.1 5402428.79 244.842 513000.38 5402430.08 244.842 513017.31 5402431.67 244.842 - + - + - + - + - - 513178.941 5402557.521 262.63 513178.92 5402557.534 262.631 513178.92 5402557.534 244.64 513178.941 5402557.521 244.64 513178.941 5402557.521 262.63 + + 513021.1 5402428.79 244.842 513036.15 5402417.28 244.842 513000.38 5402430.08 244.842 513021.1 5402428.79 244.842 - + - + - + - + - - 513178.941 5402557.521 244.64 513178.964 5402557.511 244.64 513178.964 5402557.511 262.63 513178.941 5402557.521 262.63 513178.941 5402557.521 244.64 + + 513022.53 5402430.32 244.842 513023.22 5402430.6 244.842 513023.62 5402430.31 244.842 513022.53 5402430.32 244.842 - + - + - + - + - - 513178.964 5402557.511 244.64 513178.987 5402557.501 244.64 513178.987 5402557.501 262.63 513178.964 5402557.511 262.63 513178.964 5402557.511 244.64 + + 513023.62 5402430.31 244.842 513021.1 5402428.79 244.842 513022.53 5402430.32 244.842 513023.62 5402430.31 244.842 - + - + - + - + - - 513178.987 5402557.501 244.64 513179.012 5402557.493 244.64 513179.012 5402557.493 262.631 513178.987 5402557.501 262.63 513178.987 5402557.501 244.64 + + 513021.1 5402428.79 244.842 513023.62 5402430.31 244.842 513025.87 5402427.53 244.842 513021.1 5402428.79 244.842 - + - + - + - + - - 513179.012 5402557.493 244.64 513179.036 5402557.487 244.64 513179.036 5402557.487 262.631 513179.012 5402557.493 262.631 513179.012 5402557.493 244.64 + + 513022.15 5402430.49 244.842 513022.53 5402430.32 244.842 513021.1 5402428.79 244.842 513022.15 5402430.49 244.842 - + - + - + - + - - 513179.036 5402557.487 244.64 513179.06 5402557.483 244.64 513179.06 5402557.483 262.631 513179.036 5402557.487 262.631 513179.036 5402557.487 244.64 + + 513033.58 5402421.69 244.842 513034.63 5402421.88 244.842 513036.15 5402417.28 244.842 513033.58 5402421.69 244.842 - + - + - + - + - - 513179.06 5402557.483 244.64 513179.085 5402557.48 244.64 513179.085 5402557.48 262.632 513179.06 5402557.483 262.631 513179.06 5402557.483 244.64 + + 513036.15 5402417.28 244.842 513025.87 5402427.53 244.842 513033.58 5402421.69 244.842 513036.15 5402417.28 244.842 - + - + - + - + - - 513179.085 5402557.48 244.64 513179.11 5402557.479 244.64 513179.11 5402557.479 262.632 513179.085 5402557.48 262.632 513179.085 5402557.48 244.64 + + 513025.87 5402427.53 244.842 513023.62 5402430.31 244.842 513025.91 5402428.65 244.842 513025.87 5402427.53 244.842 - + - + - + - + - - 513179.11 5402557.479 244.64 513179.135 5402557.48 244.64 513179.135 5402557.48 262.633 513179.11 5402557.479 262.632 513179.11 5402557.479 244.64 + + 513036.15 5402417.28 244.842 513021.1 5402428.79 244.842 513025.87 5402427.53 244.842 513036.15 5402417.28 244.842 - + - + - + - + - - 513179.135 5402557.48 244.64 513179.16 5402557.483 244.64 513179.16 5402557.483 262.634 513179.135 5402557.48 262.633 513179.135 5402557.48 244.64 + + 513000.38 5402430.08 244.842 513036.15 5402417.28 244.842 513043.05 5402397.8 244.842 513000.38 5402430.08 244.842 - + - + - + - + - - 513179.16 5402557.483 244.64 513179.184 5402557.488 244.64 513179.184 5402557.488 262.635 513179.16 5402557.483 262.634 513179.16 5402557.483 244.64 + + 513007.27 5402439.2 244.842 513017.24 5402433.17 244.842 513017.31 5402431.67 244.842 513007.27 5402439.2 244.842 - + - + - + - + - - 513179.184 5402557.488 244.64 513179.208 5402557.494 244.64 513179.208 5402557.494 262.636 513179.184 5402557.488 262.635 513179.184 5402557.488 244.64 + + 513017.31 5402431.67 244.842 513000.38 5402430.08 244.842 513007.27 5402439.2 244.842 513017.31 5402431.67 244.842 - + - + - + - + - - 513179.208 5402557.494 244.64 513179.232 5402557.501 244.64 513179.232 5402557.501 262.637 513179.208 5402557.494 262.636 513179.208 5402557.494 244.64 + + 513025.34 5402440.66 244.842 513017.24 5402433.17 244.842 513007.27 5402439.2 244.842 513025.34 5402440.66 244.842 - + - + - + - + - - 513179.232 5402557.501 244.64 513179.255 5402557.511 244.64 513179.255 5402557.511 262.639 513179.232 5402557.501 262.637 513179.232 5402557.501 244.64 + + 513025.34 5402440.66 244.842 513035.2 5402450.0 244.842 513028.33 5402440.49 244.842 513025.34 5402440.66 244.842 - + - + - + - + - - 513179.255 5402557.511 244.64 513179.277 5402557.522 244.64 513179.277 5402557.522 262.64 513179.255 5402557.511 262.639 513179.255 5402557.511 244.64 + + 513028.33 5402440.49 244.842 513026.8 5402439.07 244.842 513025.34 5402440.66 244.842 513028.33 5402440.49 244.842 - + - + - + - + - - 513179.277 5402557.522 244.64 513179.299 5402557.534 244.64 513179.299 5402557.534 262.641 513179.277 5402557.522 262.64 513179.277 5402557.522 244.64 + + 513035.2 5402450.0 244.842 513031.22 5402437.41 244.842 513028.33 5402440.49 244.842 513035.2 5402450.0 244.842 - + - + - + - + - - 513179.299 5402557.534 244.64 513179.319 5402557.548 244.64 513179.319 5402557.548 262.643 513179.299 5402557.534 262.641 513179.299 5402557.534 244.64 + + 513025.34 5402440.66 244.842 513007.27 5402439.2 244.842 513035.2 5402450.0 244.842 513025.34 5402440.66 244.842 - + - + - + - + - - 513179.319 5402557.548 244.64 513179.339 5402557.564 244.64 513179.339 5402557.564 262.644 513179.319 5402557.548 262.643 513179.319 5402557.548 244.64 + + 513035.2 5402450.0 244.842 513055.79 5402427.84 244.842 513031.22 5402437.41 244.842 513035.2 5402450.0 244.842 - + - + - + - + - - 513179.339 5402557.564 244.64 513179.357 5402557.58 244.64 513179.357 5402557.58 262.646 513179.339 5402557.564 262.644 513179.339 5402557.564 244.64 + + 513007.27 5402439.2 244.842 513041.48 5402471.56 244.842 513035.2 5402450.0 244.842 513007.27 5402439.2 244.842 - + - + - + - + - - 513179.357 5402557.58 244.64 513179.375 5402557.598 244.64 513179.375 5402557.598 262.648 513179.357 5402557.58 262.646 513179.357 5402557.58 244.64 + + 513034.63 5402421.88 244.842 513037.15 5402419.07 244.842 513036.15 5402417.28 244.842 513034.63 5402421.88 244.842 - + - + - + - + - - 513179.375 5402557.598 244.64 513179.391 5402557.617 244.64 513179.391 5402557.617 262.649 513179.375 5402557.598 262.648 513179.375 5402557.598 244.64 + + 513040.78 5402413.76 244.842 513049.15 5402405.85 244.842 513043.05 5402397.8 244.842 513040.78 5402413.76 244.842 - + - + - + - + - - 513179.391 5402557.617 244.64 513179.405 5402557.638 244.64 513179.405 5402557.638 262.651 513179.391 5402557.617 262.649 513179.391 5402557.617 244.64 + + 513037.15 5402419.07 244.842 513037.44 5402418.92 244.842 513036.15 5402417.28 244.842 513037.15 5402419.07 244.842 - + - + - + - + - - 513179.405 5402557.638 244.64 513179.418 5402557.659 244.64 513179.418 5402557.659 262.653 513179.405 5402557.638 262.651 513179.405 5402557.638 244.64 + + 513040.78 5402413.76 244.842 513043.05 5402397.8 244.842 513036.15 5402417.28 244.842 513040.78 5402413.76 244.842 - + - + - + - + - - 513179.418 5402557.659 244.64 513179.43 5402557.681 244.64 513179.43 5402557.681 262.654 513179.418 5402557.659 262.653 513179.418 5402557.659 244.64 + + 513047.4 5402420.11 244.842 513055.79 5402427.84 244.842 513049.15 5402405.85 244.842 513047.4 5402420.11 244.842 - + - + - + - + - - 513179.43 5402557.681 244.64 513179.44 5402557.704 244.64 513179.44 5402557.704 262.656 513179.43 5402557.681 262.654 513179.43 5402557.681 244.64 + + 513049.15 5402405.85 244.842 513040.78 5402413.76 244.842 513047.4 5402420.11 244.842 513049.15 5402405.85 244.842 - + - + - + - + - - 513179.44 5402557.704 244.64 513179.449 5402557.727 244.64 513179.449 5402557.727 262.658 513179.44 5402557.704 262.656 513179.44 5402557.704 244.64 + + 513055.79 5402427.84 244.842 513065.57 5402437.14 244.842 513078.66 5402433.75 244.842 513055.79 5402427.84 244.842 - + - + - + - + - - 513179.449 5402557.727 262.658 513179.449 5402557.727 244.64 513179.455 5402557.751 244.64 513179.455 5402557.751 262.66 513179.449 5402557.727 262.658 + + 513078.66 5402433.75 244.842 513049.15 5402405.85 244.842 513055.79 5402427.84 244.842 513078.66 5402433.75 244.842 - + - + - + - + - - 513179.455 5402557.751 262.66 513179.455 5402557.751 244.64 513179.461 5402557.775 244.64 513179.461 5402557.775 262.661 513179.455 5402557.751 262.66 + + 513065.57 5402437.14 244.842 513073.17 5402438.72 244.842 513078.66 5402433.75 244.842 513065.57 5402437.14 244.842 - + - + - + - + - - 513179.461 5402557.775 262.661 513179.461 5402557.775 244.64 513179.464 5402557.8 244.64 513179.464 5402557.8 262.663 513179.461 5402557.775 262.661 + + 513031.22 5402437.41 244.842 513055.79 5402427.84 244.842 513047.4 5402420.11 244.842 513031.22 5402437.41 244.842 - + - + - + - + - - 513179.464 5402557.8 262.663 513179.464 5402557.8 244.64 513179.465 5402557.825 244.64 513179.465 5402557.825 262.665 513179.464 5402557.8 262.663 + + 513041.92 5402471.49 244.842 513049.66 5402463.63 244.842 513041.69 5402471.35 244.842 513041.92 5402471.49 244.842 - + - + - + - + - - 513179.465 5402557.825 262.665 513179.465 5402557.825 244.64 513179.465 5402557.85 244.64 513179.465 5402557.85 262.666 513179.465 5402557.825 262.665 + + 513041.6 5402471.79 244.842 513041.94 5402472.08 244.842 513041.92 5402471.49 244.842 513041.6 5402471.79 244.842 - + - + - + - + - - 513179.465 5402557.85 262.666 513179.465 5402557.85 244.64 513179.464 5402557.875 244.64 513179.464 5402557.875 262.668 513179.465 5402557.85 262.666 + + 513041.92 5402471.49 244.842 513041.94 5402472.08 244.842 513049.66 5402463.63 244.842 513041.92 5402471.49 244.842 - + - + - + - + - - 513179.464 5402557.875 262.668 513179.464 5402557.875 244.64 513179.46 5402557.9 244.64 513179.46 5402557.9 262.67 513179.464 5402557.875 262.668 + + 513041.48 5402471.56 244.842 513041.69 5402471.35 244.842 513035.2 5402450.0 244.842 513041.48 5402471.56 244.842 - + - + - + - + - - 513183.5 5402556.11 262.666 513179.46 5402557.9 262.67 513179.46 5402557.9 244.64 513183.5 5402556.11 244.64 513183.5 5402556.11 262.666 + + 513073.6 5402439.16 244.842 513078.66 5402433.75 244.842 513073.17 5402438.72 244.842 513073.6 5402439.16 244.842 - + - + - + - + - - 513183.5 5402556.11 244.64 513183.475 5402556.087 244.64 513183.475 5402556.087 262.664 513183.5 5402556.11 262.666 513183.5 5402556.11 244.64 + + 513045.08 5402459.26 244.842 513041.69 5402471.35 244.842 513049.66 5402463.63 244.842 513045.08 5402459.26 244.842 - + - + - + - + - - 513183.475 5402556.087 244.64 513183.457 5402556.068 244.64 513183.457 5402556.068 262.663 513183.475 5402556.087 262.664 513183.475 5402556.087 244.64 + + 513070.4 5402441.75 244.842 513073.17 5402438.72 244.842 513065.57 5402437.14 244.842 513070.4 5402441.75 244.842 - + - + - + - + - - 513183.457 5402556.068 244.64 513183.441 5402556.048 244.64 513183.441 5402556.048 262.661 513183.457 5402556.068 262.663 513183.457 5402556.068 244.64 + + 513045.08 5402459.26 244.842 513035.2 5402450.0 244.842 513041.69 5402471.35 244.842 513045.08 5402459.26 244.842 - + - + - + - + - - 513183.441 5402556.048 244.64 513183.427 5402556.027 244.64 513183.427 5402556.027 262.659 513183.441 5402556.048 262.661 513183.441 5402556.048 244.64 + + 513037.23 5402419.94 244.842 513037.15 5402419.07 244.842 513034.63 5402421.88 244.842 513037.23 5402419.94 244.842 - + @@ -15009,8 +2157,7 @@ Stuttgart - 4 - Dorotheenstraße + Marktplatz (Stgt) diff --git a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive4.gml b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive4.gml deleted file mode 100644 index 0519804..0000000 --- a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive4.gml +++ /dev/null @@ -1,2170 +0,0 @@ - - - - - 2022-11-17 - - http://repository.gdi-de.org/schemas/adv/citygml/fdv/art.htm#_9100 - - DEBWL52210003wz8 - - - - 08111000 - - - 1000 - - - 2000 - - - 3000 - - - 1000 - - - 1100 - - - 2023-03-12 - - 31001_3012 - 9999 - 24.46 - 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 513000.38 5402430.08 269.3 513021.1 5402428.79 269.3 513017.31 5402431.67 269.3 513000.38 5402430.08 269.3 - - - - - - - - - - - - - - - - - 513000.38 5402430.08 269.3 513036.15 5402417.28 269.3 513021.1 5402428.79 269.3 513000.38 5402430.08 269.3 - - - - - - - - - - - - - - - - - 513023.62 5402430.31 269.3 513023.22 5402430.6 269.3 513022.53 5402430.32 269.3 513023.62 5402430.31 269.3 - - - - - - - - - - - - - - - - - 513022.53 5402430.32 269.3 513021.1 5402428.79 269.3 513023.62 5402430.31 269.3 513022.53 5402430.32 269.3 - - - - - - - - - - - - - - - - - 513025.87 5402427.53 269.3 513023.62 5402430.31 269.3 513021.1 5402428.79 269.3 513025.87 5402427.53 269.3 - - - - - - - - - - - - - - - - - 513021.1 5402428.79 269.3 513022.53 5402430.32 269.3 513022.15 5402430.49 269.3 513021.1 5402428.79 269.3 - - - - - - - - - - - - - - - - - 513036.15 5402417.28 269.3 513034.63 5402421.88 269.3 513033.58 5402421.69 269.3 513036.15 5402417.28 269.3 - - - - - - - - - - - - - - - - - 513033.58 5402421.69 269.3 513025.87 5402427.53 269.3 513036.15 5402417.28 269.3 513033.58 5402421.69 269.3 - - - - - - - - - - - - - - - - - 513025.91 5402428.65 269.3 513023.62 5402430.31 269.3 513025.87 5402427.53 269.3 513025.91 5402428.65 269.3 - - - - - - - - - - - - - - - - - 513025.87 5402427.53 269.3 513021.1 5402428.79 269.3 513036.15 5402417.28 269.3 513025.87 5402427.53 269.3 - - - - - - - - - - - - - - - - - 513043.05 5402397.8 269.3 513036.15 5402417.28 269.3 513000.38 5402430.08 269.3 513043.05 5402397.8 269.3 - - - - - - - - - - - - - - - - - 513017.31 5402431.67 269.3 513017.24 5402433.17 269.3 513007.27 5402439.2 269.3 513017.31 5402431.67 269.3 - - - - - - - - - - - - - - - - - 513007.27 5402439.2 269.3 513000.38 5402430.08 269.3 513017.31 5402431.67 269.3 513007.27 5402439.2 269.3 - - - - - - - - - - - - - - - - - 513007.27 5402439.2 269.3 513017.24 5402433.17 269.3 513025.34 5402440.66 269.3 513007.27 5402439.2 269.3 - - - - - - - - - - - - - - - - - 513028.33 5402440.49 269.3 513035.2 5402450.0 269.3 513025.34 5402440.66 269.3 513028.33 5402440.49 269.3 - - - - - - - - - - - - - - - - - 513025.34 5402440.66 269.3 513026.8 5402439.07 269.3 513028.33 5402440.49 269.3 513025.34 5402440.66 269.3 - - - - - - - - - - - - - - - - - 513028.33 5402440.49 269.3 513031.22 5402437.41 269.3 513035.2 5402450.0 269.3 513028.33 5402440.49 269.3 - - - - - - - - - - - - - - - - - 513035.2 5402450.0 269.3 513007.27 5402439.2 269.3 513025.34 5402440.66 269.3 513035.2 5402450.0 269.3 - - - - - - - - - - - - - - - - - 513031.22 5402437.41 269.3 513055.79 5402427.84 269.3 513035.2 5402450.0 269.3 513031.22 5402437.41 269.3 - - - - - - - - - - - - - - - - - 513035.2 5402450.0 269.3 513041.48 5402471.56 269.3 513007.27 5402439.2 269.3 513035.2 5402450.0 269.3 - - - - - - - - - - - - - - - - - 513036.15 5402417.28 269.3 513037.15 5402419.07 269.3 513034.63 5402421.88 269.3 513036.15 5402417.28 269.3 - - - - - - - - - - - - - - - - - 513043.05 5402397.8 269.3 513049.15 5402405.85 269.3 513040.78 5402413.76 269.3 513043.05 5402397.8 269.3 - - - - - - - - - - - - - - - - - 513036.15 5402417.28 269.3 513037.44 5402418.92 269.3 513037.15 5402419.07 269.3 513036.15 5402417.28 269.3 - - - - - - - - - - - - - - - - - 513036.15 5402417.28 269.3 513043.05 5402397.8 269.3 513040.78 5402413.76 269.3 513036.15 5402417.28 269.3 - - - - - - - - - - - - - - - - - 513049.15 5402405.85 269.3 513055.79 5402427.84 269.3 513047.4 5402420.11 269.3 513049.15 5402405.85 269.3 - - - - - - - - - - - - - - - - - 513047.4 5402420.11 269.3 513040.78 5402413.76 269.3 513049.15 5402405.85 269.3 513047.4 5402420.11 269.3 - - - - - - - - - - - - - - - - - 513078.66 5402433.75 269.3 513065.57 5402437.14 269.3 513055.79 5402427.84 269.3 513078.66 5402433.75 269.3 - - - - - - - - - - - - - - - - - 513055.79 5402427.84 269.3 513049.15 5402405.85 269.3 513078.66 5402433.75 269.3 513055.79 5402427.84 269.3 - - - - - - - - - - - - - - - - - 513078.66 5402433.75 269.3 513073.17 5402438.72 269.3 513065.57 5402437.14 269.3 513078.66 5402433.75 269.3 - - - - - - - - - - - - - - - - - 513047.4 5402420.11 269.3 513055.79 5402427.84 269.3 513031.22 5402437.41 269.3 513047.4 5402420.11 269.3 - - - - - - - - - - - - - - - - - 513041.69 5402471.35 269.3 513049.66 5402463.63 269.3 513041.92 5402471.49 269.3 513041.69 5402471.35 269.3 - - - - - - - - - - - - - - - - - 513041.92 5402471.49 269.3 513041.94 5402472.08 269.3 513041.6 5402471.79 269.3 513041.92 5402471.49 269.3 - - - - - - - - - - - - - - - - - 513049.66 5402463.63 269.3 513041.94 5402472.08 269.3 513041.92 5402471.49 269.3 513049.66 5402463.63 269.3 - - - - - - - - - - - - - - - - - 513035.2 5402450.0 269.3 513041.69 5402471.35 269.3 513041.48 5402471.56 269.3 513035.2 5402450.0 269.3 - - - - - - - - - - - - - - - - - 513073.17 5402438.72 269.3 513078.66 5402433.75 269.3 513073.6 5402439.16 269.3 513073.17 5402438.72 269.3 - - - - - - - - - - - - - - - - - 513049.66 5402463.63 269.3 513041.69 5402471.35 269.3 513045.08 5402459.26 269.3 513049.66 5402463.63 269.3 - - - - - - - - - - - - - - - - - 513065.57 5402437.14 269.3 513073.17 5402438.72 269.3 513070.4 5402441.75 269.3 513065.57 5402437.14 269.3 - - - - - - - - - - - - - - - - - 513041.69 5402471.35 269.3 513035.2 5402450.0 269.3 513045.08 5402459.26 269.3 513041.69 5402471.35 269.3 - - - - - - - - - - - - - - - - - 513034.63 5402421.88 269.3 513037.15 5402419.07 269.3 513037.23 5402419.94 269.3 513034.63 5402421.88 269.3 - - - - - - - - - - - - - - - - - 513043.05 5402397.8 244.842 513049.15 5402405.85 244.842 513049.15 5402405.85 269.3 513043.05 5402397.8 269.3 513043.05 5402397.8 244.842 - - - - - - - - - - - - - - - - - 513049.15 5402405.85 244.842 513078.66 5402433.75 244.842 513078.66 5402433.75 269.3 513049.15 5402405.85 269.3 513049.15 5402405.85 244.842 - - - - - - - - - - - - - - - - - 513078.66 5402433.75 244.842 513073.6 5402439.16 244.842 513073.6 5402439.16 269.3 513078.66 5402433.75 269.3 513078.66 5402433.75 244.842 - - - - - - - - - - - - - - - - - 513073.6 5402439.16 244.842 513073.17 5402438.72 244.842 513073.17 5402438.72 269.3 513073.6 5402439.16 269.3 513073.6 5402439.16 244.842 - - - - - - - - - - - - - - - - - 513073.17 5402438.72 244.842 513070.4 5402441.75 244.842 513070.4 5402441.75 269.3 513073.17 5402438.72 269.3 513073.17 5402438.72 244.842 - - - - - - - - - - - - - - - - - 513070.4 5402441.75 244.842 513065.57 5402437.14 244.842 513065.57 5402437.14 269.3 513070.4 5402441.75 269.3 513070.4 5402441.75 244.842 - - - - - - - - - - - - - - - - - 513065.57 5402437.14 244.842 513055.79 5402427.84 244.842 513055.79 5402427.84 269.3 513065.57 5402437.14 269.3 513065.57 5402437.14 244.842 - - - - - - - - - - - - - - - - - 513055.79 5402427.84 244.842 513035.2 5402450.0 244.842 513035.2 5402450.0 269.3 513055.79 5402427.84 269.3 513055.79 5402427.84 244.842 - - - - - - - - - - - - - - - - - 513035.2 5402450.0 244.842 513045.08 5402459.26 244.842 513045.08 5402459.26 269.3 513035.2 5402450.0 269.3 513035.2 5402450.0 244.842 - - - - - - - - - - - - - - - - - 513045.08 5402459.26 244.842 513049.66 5402463.63 244.842 513049.66 5402463.63 269.3 513045.08 5402459.26 269.3 513045.08 5402459.26 244.842 - - - - - - - - - - - - - - - - - 513049.66 5402463.63 244.842 513041.94 5402472.08 244.842 513041.94 5402472.08 269.3 513049.66 5402463.63 269.3 513049.66 5402463.63 244.842 - - - - - - - - - - - - - - - - - 513041.94 5402472.08 244.842 513041.6 5402471.79 244.842 513041.6 5402471.79 269.3 513041.94 5402472.08 269.3 513041.94 5402472.08 244.842 - - - - - - - - - - - - - - - - - 513041.6 5402471.79 244.842 513041.92 5402471.49 244.842 513041.92 5402471.49 269.3 513041.6 5402471.79 269.3 513041.6 5402471.79 244.842 - - - - - - - - - - - - - - - - - 513041.92 5402471.49 244.842 513041.69 5402471.35 244.842 513041.69 5402471.35 269.3 513041.92 5402471.49 269.3 513041.92 5402471.49 244.842 - - - - - - - - - - - - - - - - - 513041.69 5402471.35 244.842 513041.48 5402471.56 244.842 513041.48 5402471.56 269.3 513041.69 5402471.35 269.3 513041.69 5402471.35 244.842 - - - - - - - - - - - - - - - - - 513007.27 5402439.2 269.3 513041.48 5402471.56 269.3 513041.48 5402471.56 244.842 513007.27 5402439.2 244.842 513007.27 5402439.2 269.3 - - - - - - - - - - - - - - - - - 513007.27 5402439.2 244.842 513000.38 5402430.08 244.842 513000.38 5402430.08 269.3 513007.27 5402439.2 269.3 513007.27 5402439.2 244.842 - - - - - - - - - - - - - - - - - 513000.38 5402430.08 244.842 513043.05 5402397.8 244.842 513043.05 5402397.8 269.3 513000.38 5402430.08 269.3 513000.38 5402430.08 244.842 - - - - - - - - - - - - - - - - - 513025.87 5402427.53 244.842 513025.91 5402428.65 244.842 513025.91 5402428.65 269.3 513025.87 5402427.53 269.3 513025.87 5402427.53 244.842 - - - - - - - - - - - - - - - - - 513025.91 5402428.65 244.842 513023.62 5402430.31 244.842 513023.62 5402430.31 269.3 513025.91 5402428.65 269.3 513025.91 5402428.65 244.842 - - - - - - - - - - - - - - - - - 513023.62 5402430.31 244.842 513023.22 5402430.6 244.842 513023.22 5402430.6 269.3 513023.62 5402430.31 269.3 513023.62 5402430.31 244.842 - - - - - - - - - - - - - - - - - 513023.22 5402430.6 244.842 513022.53 5402430.32 244.842 513022.53 5402430.32 269.3 513023.22 5402430.6 269.3 513023.22 5402430.6 244.842 - - - - - - - - - - - - - - - - - 513022.53 5402430.32 244.842 513022.15 5402430.49 244.842 513022.15 5402430.49 269.3 513022.53 5402430.32 269.3 513022.53 5402430.32 244.842 - - - - - - - - - - - - - - - - - 513022.15 5402430.49 244.842 513021.1 5402428.79 244.842 513021.1 5402428.79 269.3 513022.15 5402430.49 269.3 513022.15 5402430.49 244.842 - - - - - - - - - - - - - - - - - 513021.1 5402428.79 244.842 513017.31 5402431.67 244.842 513017.31 5402431.67 269.3 513021.1 5402428.79 269.3 513021.1 5402428.79 244.842 - - - - - - - - - - - - - - - - - 513017.31 5402431.67 244.842 513017.24 5402433.17 244.842 513017.24 5402433.17 269.3 513017.31 5402431.67 269.3 513017.31 5402431.67 244.842 - - - - - - - - - - - - - - - - - 513017.24 5402433.17 244.842 513025.34 5402440.66 244.842 513025.34 5402440.66 269.3 513017.24 5402433.17 269.3 513017.24 5402433.17 244.842 - - - - - - - - - - - - - - - - - 513025.34 5402440.66 244.842 513026.8 5402439.07 244.842 513026.8 5402439.07 269.3 513025.34 5402440.66 269.3 513025.34 5402440.66 244.842 - - - - - - - - - - - - - - - - - 513026.8 5402439.07 244.842 513028.33 5402440.49 244.842 513028.33 5402440.49 269.3 513026.8 5402439.07 269.3 513026.8 5402439.07 244.842 - - - - - - - - - - - - - - - - - 513028.33 5402440.49 244.842 513031.22 5402437.41 244.842 513031.22 5402437.41 269.3 513028.33 5402440.49 269.3 513028.33 5402440.49 244.842 - - - - - - - - - - - - - - - - - 513047.4 5402420.11 269.3 513031.22 5402437.41 269.3 513031.22 5402437.41 244.842 513047.4 5402420.11 244.842 513047.4 5402420.11 269.3 - - - - - - - - - - - - - - - - - 513047.4 5402420.11 244.842 513040.78 5402413.76 244.842 513040.78 5402413.76 269.3 513047.4 5402420.11 269.3 513047.4 5402420.11 244.842 - - - - - - - - - - - - - - - - - 513040.78 5402413.76 244.842 513036.15 5402417.28 244.842 513036.15 5402417.28 269.3 513040.78 5402413.76 269.3 513040.78 5402413.76 244.842 - - - - - - - - - - - - - - - - - 513036.15 5402417.28 244.842 513037.44 5402418.92 244.842 513037.44 5402418.92 269.3 513036.15 5402417.28 269.3 513036.15 5402417.28 244.842 - - - - - - - - - - - - - - - - - 513037.44 5402418.92 244.842 513037.15 5402419.07 244.842 513037.15 5402419.07 269.3 513037.44 5402418.92 269.3 513037.44 5402418.92 244.842 - - - - - - - - - - - - - - - - - 513037.15 5402419.07 244.842 513037.23 5402419.94 244.842 513037.23 5402419.94 269.3 513037.15 5402419.07 269.3 513037.15 5402419.07 244.842 - - - - - - - - - - - - - - - - - 513037.23 5402419.94 244.842 513034.63 5402421.88 244.842 513034.63 5402421.88 269.3 513037.23 5402419.94 269.3 513037.23 5402419.94 244.842 - - - - - - - - - - - - - - - - - 513034.63 5402421.88 244.842 513033.58 5402421.69 244.842 513033.58 5402421.69 269.3 513034.63 5402421.88 269.3 513034.63 5402421.88 244.842 - - - - - - - - - - - - - - - - - 513033.58 5402421.69 244.842 513025.87 5402427.53 244.842 513025.87 5402427.53 269.3 513033.58 5402421.69 269.3 513033.58 5402421.69 244.842 - - - - - - - - - - - - - - - - - 513017.31 5402431.67 244.842 513021.1 5402428.79 244.842 513000.38 5402430.08 244.842 513017.31 5402431.67 244.842 - - - - - - - - - - - - - - - - - 513021.1 5402428.79 244.842 513036.15 5402417.28 244.842 513000.38 5402430.08 244.842 513021.1 5402428.79 244.842 - - - - - - - - - - - - - - - - - 513022.53 5402430.32 244.842 513023.22 5402430.6 244.842 513023.62 5402430.31 244.842 513022.53 5402430.32 244.842 - - - - - - - - - - - - - - - - - 513023.62 5402430.31 244.842 513021.1 5402428.79 244.842 513022.53 5402430.32 244.842 513023.62 5402430.31 244.842 - - - - - - - - - - - - - - - - - 513021.1 5402428.79 244.842 513023.62 5402430.31 244.842 513025.87 5402427.53 244.842 513021.1 5402428.79 244.842 - - - - - - - - - - - - - - - - - 513022.15 5402430.49 244.842 513022.53 5402430.32 244.842 513021.1 5402428.79 244.842 513022.15 5402430.49 244.842 - - - - - - - - - - - - - - - - - 513033.58 5402421.69 244.842 513034.63 5402421.88 244.842 513036.15 5402417.28 244.842 513033.58 5402421.69 244.842 - - - - - - - - - - - - - - - - - 513036.15 5402417.28 244.842 513025.87 5402427.53 244.842 513033.58 5402421.69 244.842 513036.15 5402417.28 244.842 - - - - - - - - - - - - - - - - - 513025.87 5402427.53 244.842 513023.62 5402430.31 244.842 513025.91 5402428.65 244.842 513025.87 5402427.53 244.842 - - - - - - - - - - - - - - - - - 513036.15 5402417.28 244.842 513021.1 5402428.79 244.842 513025.87 5402427.53 244.842 513036.15 5402417.28 244.842 - - - - - - - - - - - - - - - - - 513000.38 5402430.08 244.842 513036.15 5402417.28 244.842 513043.05 5402397.8 244.842 513000.38 5402430.08 244.842 - - - - - - - - - - - - - - - - - 513007.27 5402439.2 244.842 513017.24 5402433.17 244.842 513017.31 5402431.67 244.842 513007.27 5402439.2 244.842 - - - - - - - - - - - - - - - - - 513017.31 5402431.67 244.842 513000.38 5402430.08 244.842 513007.27 5402439.2 244.842 513017.31 5402431.67 244.842 - - - - - - - - - - - - - - - - - 513025.34 5402440.66 244.842 513017.24 5402433.17 244.842 513007.27 5402439.2 244.842 513025.34 5402440.66 244.842 - - - - - - - - - - - - - - - - - 513025.34 5402440.66 244.842 513035.2 5402450.0 244.842 513028.33 5402440.49 244.842 513025.34 5402440.66 244.842 - - - - - - - - - - - - - - - - - 513028.33 5402440.49 244.842 513026.8 5402439.07 244.842 513025.34 5402440.66 244.842 513028.33 5402440.49 244.842 - - - - - - - - - - - - - - - - - 513035.2 5402450.0 244.842 513031.22 5402437.41 244.842 513028.33 5402440.49 244.842 513035.2 5402450.0 244.842 - - - - - - - - - - - - - - - - - 513025.34 5402440.66 244.842 513007.27 5402439.2 244.842 513035.2 5402450.0 244.842 513025.34 5402440.66 244.842 - - - - - - - - - - - - - - - - - 513035.2 5402450.0 244.842 513055.79 5402427.84 244.842 513031.22 5402437.41 244.842 513035.2 5402450.0 244.842 - - - - - - - - - - - - - - - - - 513007.27 5402439.2 244.842 513041.48 5402471.56 244.842 513035.2 5402450.0 244.842 513007.27 5402439.2 244.842 - - - - - - - - - - - - - - - - - 513034.63 5402421.88 244.842 513037.15 5402419.07 244.842 513036.15 5402417.28 244.842 513034.63 5402421.88 244.842 - - - - - - - - - - - - - - - - - 513040.78 5402413.76 244.842 513049.15 5402405.85 244.842 513043.05 5402397.8 244.842 513040.78 5402413.76 244.842 - - - - - - - - - - - - - - - - - 513037.15 5402419.07 244.842 513037.44 5402418.92 244.842 513036.15 5402417.28 244.842 513037.15 5402419.07 244.842 - - - - - - - - - - - - - - - - - 513040.78 5402413.76 244.842 513043.05 5402397.8 244.842 513036.15 5402417.28 244.842 513040.78 5402413.76 244.842 - - - - - - - - - - - - - - - - - 513047.4 5402420.11 244.842 513055.79 5402427.84 244.842 513049.15 5402405.85 244.842 513047.4 5402420.11 244.842 - - - - - - - - - - - - - - - - - 513049.15 5402405.85 244.842 513040.78 5402413.76 244.842 513047.4 5402420.11 244.842 513049.15 5402405.85 244.842 - - - - - - - - - - - - - - - - - 513055.79 5402427.84 244.842 513065.57 5402437.14 244.842 513078.66 5402433.75 244.842 513055.79 5402427.84 244.842 - - - - - - - - - - - - - - - - - 513078.66 5402433.75 244.842 513049.15 5402405.85 244.842 513055.79 5402427.84 244.842 513078.66 5402433.75 244.842 - - - - - - - - - - - - - - - - - 513065.57 5402437.14 244.842 513073.17 5402438.72 244.842 513078.66 5402433.75 244.842 513065.57 5402437.14 244.842 - - - - - - - - - - - - - - - - - 513031.22 5402437.41 244.842 513055.79 5402427.84 244.842 513047.4 5402420.11 244.842 513031.22 5402437.41 244.842 - - - - - - - - - - - - - - - - - 513041.92 5402471.49 244.842 513049.66 5402463.63 244.842 513041.69 5402471.35 244.842 513041.92 5402471.49 244.842 - - - - - - - - - - - - - - - - - 513041.6 5402471.79 244.842 513041.94 5402472.08 244.842 513041.92 5402471.49 244.842 513041.6 5402471.79 244.842 - - - - - - - - - - - - - - - - - 513041.92 5402471.49 244.842 513041.94 5402472.08 244.842 513049.66 5402463.63 244.842 513041.92 5402471.49 244.842 - - - - - - - - - - - - - - - - - 513041.48 5402471.56 244.842 513041.69 5402471.35 244.842 513035.2 5402450.0 244.842 513041.48 5402471.56 244.842 - - - - - - - - - - - - - - - - - 513073.6 5402439.16 244.842 513078.66 5402433.75 244.842 513073.17 5402438.72 244.842 513073.6 5402439.16 244.842 - - - - - - - - - - - - - - - - - 513045.08 5402459.26 244.842 513041.69 5402471.35 244.842 513049.66 5402463.63 244.842 513045.08 5402459.26 244.842 - - - - - - - - - - - - - - - - - 513070.4 5402441.75 244.842 513073.17 5402438.72 244.842 513065.57 5402437.14 244.842 513070.4 5402441.75 244.842 - - - - - - - - - - - - - - - - - 513045.08 5402459.26 244.842 513035.2 5402450.0 244.842 513041.69 5402471.35 244.842 513045.08 5402459.26 244.842 - - - - - - - - - - - - - - - - - 513037.23 5402419.94 244.842 513037.15 5402419.07 244.842 513034.63 5402421.88 244.842 513037.23 5402419.94 244.842 - - - - - - - - - - - - - - Deutschland - - Stuttgart - - Marktplatz (Stgt) - - - - - - - - - - \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh1.gml b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh1.gml new file mode 100644 index 0000000..7f9caf7 --- /dev/null +++ b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh1.gml @@ -0,0 +1,15023 @@ + + + + + 2022-11-17 + + http://repository.gdi-de.org/schemas/adv/citygml/fdv/art.htm#_9100 + + DEBWL52210004hX7 + + + + 08111000 + + + 1000 + + + 2000 + + + 3000 + + + 1000 + + + 1100 + + + 2023-03-12 + + 31001_2050 + 3100 + 20.86 + 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 513149.039 5402569.757 262.588 513149.05 5402569.737 262.587 513149.064 5402569.722 262.586 513149.079 5402569.707 262.586 513149.101 5402569.689 262.585 513149.125 5402569.673 262.585 513149.143 5402569.662 262.585 513149.164 5402569.656 262.585 513149.039 5402569.757 262.588 + + + + + + + + + + + + + + + + + 513149.026 5402569.772 262.588 513149.039 5402569.757 262.588 513149.164 5402569.656 262.585 513149.182 5402569.646 262.585 513149.202 5402569.639 262.585 513149.222 5402569.634 262.585 513149.243 5402569.631 262.585 513149.264 5402569.629 262.586 513149.285 5402569.628 262.586 513149.306 5402569.629 262.587 513149.327 5402569.631 262.588 513149.348 5402569.635 262.589 513149.368 5402569.64 262.589 513149.389 5402569.647 262.59 513149.408 5402569.655 262.591 513149.427 5402569.665 262.593 513149.445 5402569.675 262.594 513149.463 5402569.687 262.595 513149.479 5402569.7 262.596 513149.5 5402569.72 262.598 513149.76 5402569.94 262.62 513149.3 5402570.36 262.634 513149.02 5402570.08 262.608 513149.007 5402570.055 262.606 513148.999 5402570.035 262.605 513148.993 5402570.015 262.603 513148.987 5402569.995 262.602 513148.984 5402569.974 262.6 513148.981 5402569.953 262.599 513148.98 5402569.932 262.597 513148.981 5402569.911 262.596 513148.983 5402569.89 262.595 513148.987 5402569.869 262.594 513148.992 5402569.849 262.592 513148.999 5402569.83 262.591 513149.008 5402569.81 262.59 513149.016 5402569.791 262.589 513149.026 5402569.772 262.588 + + + + + + + + + + + + + + + + + 513152.973 5402566.33 262.476 513152.977 5402566.309 262.474 513152.982 5402566.289 262.473 513152.988 5402566.269 262.472 513152.996 5402566.249 262.471 513153.009 5402566.231 262.47 513152.981 5402566.436 262.483 513152.974 5402566.414 262.481 513152.971 5402566.393 262.48 513152.97 5402566.372 262.478 513152.971 5402566.351 262.477 513152.973 5402566.33 262.476 + + + + + + + + + + + + + + + + + 513165.11 5402564.25 262.68 513169.61 5402562.26 262.677 513169.583 5402562.24 262.675 513169.564 5402562.224 262.673 513169.547 5402562.207 262.672 513169.531 5402562.189 262.67 513169.516 5402562.169 262.668 513169.503 5402562.149 262.667 513169.491 5402562.127 262.665 513169.48 5402562.105 262.663 513169.471 5402562.082 262.661 513169.464 5402562.059 262.66 513169.458 5402562.035 262.658 513169.454 5402562.011 262.656 513169.452 5402561.986 262.655 513169.452 5402561.962 262.653 513169.453 5402561.937 262.651 513169.456 5402561.913 262.65 513169.46 5402561.889 262.649 513169.466 5402561.865 262.647 513169.474 5402561.842 262.646 513169.484 5402561.819 262.645 513169.495 5402561.797 262.644 513169.507 5402561.776 262.643 513169.521 5402561.756 262.642 513169.537 5402561.737 262.641 513169.553 5402561.719 262.64 513169.571 5402561.702 262.64 513169.59 5402561.687 262.639 513169.61 5402561.673 262.639 513169.631 5402561.66 262.639 513169.661 5402561.645 262.638 513169.691 5402561.633 262.638 513169.715 5402561.626 262.639 513169.739 5402561.621 262.639 513169.763 5402561.617 262.639 513169.787 5402561.615 262.64 513169.812 5402561.615 262.641 513169.836 5402561.617 262.641 513169.861 5402561.62 262.642 513169.885 5402561.625 262.643 513169.908 5402561.631 262.644 513169.931 5402561.639 262.646 513169.954 5402561.649 262.647 513169.976 5402561.661 262.648 513169.997 5402561.673 262.65 513170.017 5402561.688 262.651 513170.036 5402561.703 262.653 513170.053 5402561.72 262.654 513170.07 5402561.738 262.656 513170.085 5402561.757 262.657 513170.099 5402561.777 262.659 513170.111 5402561.799 262.661 513170.122 5402561.821 262.663 513170.132 5402561.843 262.664 513170.14 5402561.866 262.666 513170.146 5402561.89 262.668 513170.15 5402561.914 262.669 513170.153 5402561.939 262.671 513170.154 5402561.963 262.673 513170.154 5402561.988 262.674 513170.15 5402562.02 262.676 513174.28 5402560.2 262.674 513174.257 5402560.188 262.672 513174.237 5402560.175 262.671 513174.218 5402560.161 262.67 513174.2 5402560.146 262.668 513174.182 5402560.129 262.667 513174.166 5402560.112 262.665 513174.152 5402560.093 262.663 513174.138 5402560.073 262.662 513174.127 5402560.053 262.66 513174.116 5402560.031 262.658 513174.107 5402560.009 262.657 513174.1 5402559.987 262.655 513174.094 5402559.963 262.653 513174.09 5402559.94 262.652 513174.087 5402559.916 262.65 513174.087 5402559.893 262.648 513174.087 5402559.869 262.647 513174.09 5402559.845 262.645 513174.094 5402559.822 262.644 513174.1 5402559.798 262.643 513174.107 5402559.776 262.641 513174.116 5402559.754 262.64 513174.127 5402559.732 262.639 513174.138 5402559.712 262.638 513174.152 5402559.692 262.637 513174.166 5402559.673 262.636 513174.182 5402559.656 262.636 513174.2 5402559.639 262.635 513174.218 5402559.624 262.635 513174.237 5402559.61 262.634 513174.257 5402559.597 262.634 513174.28 5402559.585 262.634 513174.304 5402559.575 262.634 513174.327 5402559.567 262.634 513174.349 5402559.56 262.634 513174.373 5402559.556 262.635 513174.396 5402559.553 262.635 513174.42 5402559.551 262.636 513174.444 5402559.552 262.636 513174.468 5402559.554 262.637 513174.491 5402559.557 262.638 513174.514 5402559.563 262.639 513174.537 5402559.569 262.64 513174.56 5402559.578 262.641 513174.581 5402559.588 262.643 513174.602 5402559.599 262.644 513174.622 5402559.612 262.645 513174.641 5402559.626 262.647 513174.659 5402559.642 262.648 513174.676 5402559.659 262.65 513174.692 5402559.677 262.651 513174.706 5402559.695 262.653 513174.719 5402559.715 262.655 513174.731 5402559.736 262.656 513174.741 5402559.758 262.658 513174.75 5402559.78 262.66 513174.757 5402559.803 262.661 513174.762 5402559.826 262.663 513174.766 5402559.849 262.665 513174.768 5402559.873 262.666 513174.769 5402559.897 262.668 513174.768 5402559.921 262.669 513174.765 5402559.944 262.671 513174.76 5402559.97 262.672 513178.88 5402558.11 262.667 513178.861 5402558.093 262.665 513178.844 5402558.075 262.664 513178.828 5402558.056 262.662 513178.813 5402558.036 262.66 513178.8 5402558.015 262.659 513178.788 5402557.993 262.657 513178.778 5402557.97 262.655 513178.77 5402557.947 262.653 513178.763 5402557.923 262.652 513178.758 5402557.898 262.65 513178.754 5402557.874 262.648 513178.752 5402557.849 262.646 513178.752 5402557.824 262.645 513178.754 5402557.799 262.643 513178.758 5402557.775 262.642 513178.763 5402557.75 262.64 513178.77 5402557.726 262.639 513178.778 5402557.703 262.638 513178.788 5402557.68 262.636 513178.8 5402557.658 262.635 513178.813 5402557.637 262.634 513178.828 5402557.617 262.634 513178.844 5402557.598 262.633 513178.861 5402557.58 262.632 513178.879 5402557.563 262.631 513178.899 5402557.548 262.631 513178.92 5402557.534 262.631 513178.941 5402557.521 262.63 513178.964 5402557.511 262.63 513178.987 5402557.501 262.63 513179.012 5402557.493 262.631 513179.036 5402557.487 262.631 513179.06 5402557.483 262.631 513179.085 5402557.48 262.632 513179.11 5402557.479 262.632 513179.135 5402557.48 262.633 513179.16 5402557.483 262.634 513179.184 5402557.488 262.635 513179.208 5402557.494 262.636 513179.232 5402557.501 262.637 513179.255 5402557.511 262.639 513179.277 5402557.522 262.64 513179.299 5402557.534 262.641 513179.319 5402557.548 262.643 513179.339 5402557.564 262.644 513179.357 5402557.58 262.646 513179.375 5402557.598 262.648 513179.391 5402557.617 262.649 513179.405 5402557.638 262.651 513179.418 5402557.659 262.653 513179.43 5402557.681 262.654 513179.44 5402557.704 262.656 513179.449 5402557.727 262.658 513179.455 5402557.751 262.66 513179.461 5402557.775 262.661 513179.464 5402557.8 262.663 513179.465 5402557.825 262.665 513179.465 5402557.85 262.666 513179.464 5402557.875 262.668 513179.46 5402557.9 262.67 513183.5 5402556.11 262.666 513183.475 5402556.087 262.664 513183.457 5402556.068 262.663 513183.441 5402556.048 262.661 513183.427 5402556.027 262.659 513183.413 5402556.006 262.657 513183.402 5402555.983 262.655 513183.392 5402555.959 262.654 513183.384 5402555.935 262.652 513183.377 5402555.91 262.65 513183.372 5402555.885 262.648 513183.369 5402555.859 262.647 513183.367 5402555.834 262.645 513183.368 5402555.808 262.643 513183.37 5402555.783 262.642 513183.374 5402555.757 262.64 513183.38 5402555.732 262.639 513183.388 5402555.708 262.637 513183.397 5402555.684 262.636 513183.408 5402555.66 262.635 513183.42 5402555.638 262.634 513183.434 5402555.617 262.633 513183.449 5402555.596 262.632 513183.466 5402555.577 262.631 513183.484 5402555.559 262.63 513183.504 5402555.542 262.63 513183.524 5402555.526 262.629 513183.546 5402555.512 262.629 513183.568 5402555.5 262.629 513183.599 5402555.486 262.629 513183.63 5402555.475 262.629 513183.655 5402555.469 262.629 513183.68 5402555.464 262.63 513183.706 5402555.461 262.63 513183.732 5402555.46 262.631 513183.757 5402555.461 262.632 513183.783 5402555.463 262.632 513183.808 5402555.467 262.633 513183.833 5402555.473 262.634 513183.857 5402555.481 262.636 513183.881 5402555.49 262.637 513183.905 5402555.501 262.638 513183.927 5402555.514 262.64 513183.948 5402555.528 262.641 513183.969 5402555.544 262.643 513183.988 5402555.561 262.644 513184.006 5402555.579 262.646 513184.022 5402555.599 262.648 513184.038 5402555.619 262.65 513184.052 5402555.641 262.651 513184.064 5402555.663 262.653 513184.074 5402555.687 262.655 513184.083 5402555.711 262.657 513184.091 5402555.735 262.659 513184.096 5402555.76 262.66 513184.1 5402555.786 262.662 513184.102 5402555.811 262.664 513184.102 5402555.837 262.666 513184.1 5402555.87 262.668 513188.09 5402554.11 262.665 513188.07 5402554.089 262.663 513188.053 5402554.069 262.661 513188.038 5402554.047 262.66 513188.024 5402554.025 262.658 513188.012 5402554.002 262.656 513188.002 5402553.979 262.654 513187.993 5402553.954 262.652 513187.986 5402553.929 262.65 513187.981 5402553.904 262.649 513187.977 5402553.878 262.647 513187.976 5402553.852 262.645 513187.976 5402553.826 262.643 513187.978 5402553.8 262.642 513187.982 5402553.774 262.64 513187.987 5402553.749 262.639 513187.995 5402553.724 262.637 513188.004 5402553.7 262.636 513188.014 5402553.676 262.635 513188.027 5402553.653 262.634 513188.041 5402553.631 262.633 513188.056 5402553.61 262.632 513188.073 5402553.591 262.631 513188.091 5402553.572 262.63 513188.111 5402553.555 262.63 513188.131 5402553.539 262.629 513188.153 5402553.524 262.629 513188.175 5402553.512 262.629 513188.202 5402553.499 262.629 513188.229 5402553.489 262.629 513188.254 5402553.481 262.629 513188.279 5402553.476 262.629 513188.305 5402553.472 262.63 513188.331 5402553.47 262.63 513188.357 5402553.469 262.631 513188.383 5402553.471 262.632 513188.408 5402553.474 262.633 513188.434 5402553.479 262.634 513188.459 5402553.486 262.635 513188.483 5402553.495 262.636 513188.507 5402553.505 262.638 513188.53 5402553.517 262.639 513188.552 5402553.531 262.64 513188.574 5402553.546 262.642 513188.594 5402553.562 262.644 513188.613 5402553.58 262.645 513188.63 5402553.599 262.647 513188.646 5402553.619 262.649 513188.661 5402553.641 262.651 513188.674 5402553.663 262.652 513188.686 5402553.686 262.654 513188.696 5402553.71 262.656 513188.704 5402553.735 262.658 513188.711 5402553.76 262.66 513188.716 5402553.786 262.662 513188.719 5402553.811 262.663 513188.72 5402553.84 262.665 513192.72 5402552.07 262.662 513192.65 5402551.91 262.65 513192.64 5402551.886 262.648 513192.633 5402551.862 262.646 513192.628 5402551.839 262.645 513192.624 5402551.815 262.643 513192.622 5402551.79 262.641 513192.621 5402551.766 262.64 513192.622 5402551.742 262.638 513192.625 5402551.717 262.637 513192.629 5402551.694 262.635 513192.636 5402551.67 262.634 513192.644 5402551.647 262.633 513192.653 5402551.625 262.632 513192.664 5402551.603 262.63 513192.676 5402551.582 262.629 513192.69 5402551.562 262.629 513192.705 5402551.543 262.628 513192.722 5402551.525 262.627 513192.74 5402551.509 262.626 513192.759 5402551.493 262.626 513192.778 5402551.479 262.626 513192.799 5402551.466 262.625 513192.821 5402551.455 262.625 513192.845 5402551.445 262.625 513192.869 5402551.437 262.625 513192.893 5402551.431 262.626 513192.917 5402551.426 262.626 513192.941 5402551.423 262.627 513192.965 5402551.422 262.627 513192.99 5402551.423 262.628 513193.014 5402551.425 262.629 513193.038 5402551.429 262.63 513193.061 5402551.434 262.631 513193.085 5402551.442 262.632 513193.107 5402551.45 262.633 513193.129 5402551.461 262.634 513193.151 5402551.473 262.636 513193.171 5402551.486 262.637 513193.19 5402551.501 262.639 513193.208 5402551.517 262.64 513193.226 5402551.534 262.642 513193.241 5402551.553 262.643 513193.256 5402551.572 262.645 513193.269 5402551.593 262.647 513193.281 5402551.614 262.648 513193.291 5402551.636 262.65 513193.3 5402551.66 262.652 513193.35 5402551.78 262.661 513196.66 5402550.5 262.671 513196.937 5402550.365 262.67 513197.167 5402550.274 262.67 513197.402 5402550.2 262.672 513197.642 5402550.143 262.675 513197.885 5402550.102 262.679 513198.13 5402550.078 262.684 513198.377 5402550.072 262.691 513198.623 5402550.082 262.698 513198.869 5402550.11 262.707 513199.111 5402550.155 262.717 513199.409 5402550.235 262.73 513199.7 5402550.341 262.745 513199.924 5402550.443 262.758 513200.141 5402550.561 262.772 513200.349 5402550.693 262.786 513200.547 5402550.84 262.801 513200.735 5402551.0 262.817 513200.911 5402551.173 262.833 513201.074 5402551.358 262.85 513201.224 5402551.554 262.866 513201.36 5402551.76 262.884 513201.51 5402552.03 262.905 513204.69 5402559.04 263.448 513207.72 5402557.69 263.445 513219.026 5402583.413 265.428 513137.221 5402619.876 265.504 513136.33 5402618.75 265.407 513138.41 5402617.33 265.373 513139.92 5402616.3 265.348 513141.6 5402614.96 265.308 513139.98 5402611.44 265.035 513139.46 5402611.6 265.031 513139.11 5402610.8 264.969 513139.58 5402610.52 264.964 513138.39 5402607.83 264.757 513137.86 5402608.06 264.757 513137.55 5402607.27 264.697 513138.05 5402607.09 264.699 513136.98 5402604.66 264.512 513136.47 5402604.9 264.513 513136.12 5402604.09 264.451 513136.6 5402603.87 264.45 513135.53 5402601.45 264.264 513135.06 5402601.66 264.264 513134.68 5402600.84 264.2 513135.2 5402600.67 264.204 513134.08 5402598.16 264.01 513133.61 5402598.41 264.013 513133.25 5402597.56 263.948 513133.71 5402597.44 263.953 513132.69 5402595.04 263.769 513132.17 5402595.27 263.769 513131.78 5402594.38 263.701 513132.29 5402594.24 263.706 513131.22 5402591.75 263.515 513130.69 5402591.95 263.513 513130.34 5402591.16 263.452 513130.81 5402590.95 263.451 513129.38 5402587.67 263.199 513134.65 5402585.22 263.188 513133.2 5402581.88 262.931 513133.17 5402581.88 262.93 513133.142 5402581.867 262.928 513133.12 5402581.854 262.927 513133.098 5402581.839 262.925 513133.077 5402581.823 262.924 513133.058 5402581.806 262.922 513133.04 5402581.787 262.92 513133.023 5402581.768 262.918 513133.008 5402581.747 262.917 513132.994 5402581.725 262.915 513132.982 5402581.702 262.913 513132.971 5402581.678 262.911 513132.962 5402581.654 262.909 513132.955 5402581.629 262.908 513132.95 5402581.603 262.906 513132.946 5402581.577 262.904 513132.944 5402581.552 262.902 513132.944 5402581.526 262.901 513132.946 5402581.5 262.899 513132.949 5402581.474 262.897 513132.955 5402581.448 262.896 513132.962 5402581.423 262.894 513132.971 5402581.399 262.893 513132.981 5402581.375 262.892 513132.993 5402581.352 262.891 513133.007 5402581.33 262.89 513133.022 5402581.309 262.889 513133.039 5402581.289 262.888 513133.057 5402581.271 262.887 513133.08 5402581.25 262.886 513133.104 5402581.232 262.886 513133.126 5402581.218 262.886 513133.149 5402581.205 262.885 513133.172 5402581.194 262.885 513133.197 5402581.185 262.886 513133.222 5402581.178 262.886 513133.247 5402581.172 262.886 513133.273 5402581.168 262.887 513133.298 5402581.166 262.887 513133.324 5402581.166 262.888 513133.35 5402581.167 262.889 513133.376 5402581.17 262.89 513133.402 5402581.175 262.891 513133.427 5402581.182 262.892 513133.451 5402581.191 262.893 513133.475 5402581.201 262.894 513133.498 5402581.213 262.896 513133.52 5402581.227 262.897 513133.542 5402581.242 262.899 513133.562 5402581.258 262.9 513133.581 5402581.276 262.902 513133.598 5402581.295 262.904 513133.614 5402581.315 262.906 513133.629 5402581.337 262.907 513133.643 5402581.359 262.909 513133.654 5402581.382 262.911 513133.664 5402581.406 262.913 513133.673 5402581.431 262.915 513133.68 5402581.46 262.917 513133.81 5402581.86 262.946 513138.34 5402579.78 262.938 513138.2 5402579.4 262.91 513138.186 5402579.379 262.908 513138.178 5402579.363 262.907 513138.17 5402579.346 262.905 513138.164 5402579.329 262.904 513138.159 5402579.311 262.903 513138.155 5402579.293 262.901 513138.152 5402579.274 262.9 513138.151 5402579.256 262.899 513138.151 5402579.238 262.898 513138.152 5402579.219 262.897 513138.155 5402579.201 262.896 513138.159 5402579.183 262.894 513138.164 5402579.165 262.893 513138.17 5402579.148 262.892 513138.178 5402579.131 262.892 513138.186 5402579.114 262.891 513138.196 5402579.099 262.89 513138.207 5402579.084 262.889 513138.219 5402579.07 262.889 513138.232 5402579.057 262.888 513138.245 5402579.044 262.888 513138.26 5402579.033 262.888 513138.275 5402579.022 262.887 513138.291 5402579.013 262.887 513138.308 5402579.005 262.887 513138.331 5402578.996 262.887 513138.356 5402578.989 262.887 513138.374 5402578.985 262.888 513138.392 5402578.983 262.888 513138.411 5402578.982 262.888 513138.429 5402578.982 262.889 513138.448 5402578.984 262.89 513138.466 5402578.987 262.89 513138.484 5402578.991 262.891 513138.502 5402578.997 262.892 513138.519 5402579.003 262.893 513138.536 5402579.011 262.894 513138.552 5402579.02 262.895 513138.567 5402579.03 262.896 513138.582 5402579.041 262.897 513138.596 5402579.053 262.898 513138.609 5402579.066 262.899 513138.621 5402579.08 262.901 513138.632 5402579.095 262.902 513138.642 5402579.11 262.903 513138.651 5402579.126 262.905 513138.659 5402579.143 262.906 513138.666 5402579.16 262.907 513138.671 5402579.178 262.908 513138.675 5402579.196 262.91 513138.678 5402579.214 262.911 513138.68 5402579.24 262.913 513138.96 5402579.53 262.939 513142.24 5402576.58 262.84 513141.94 5402576.22 262.808 513141.926 5402576.201 262.806 513141.914 5402576.181 262.805 513141.904 5402576.161 262.803 513141.895 5402576.14 262.802 513141.888 5402576.119 262.8 513141.882 5402576.097 262.799 513141.878 5402576.075 262.797 513141.875 5402576.052 262.795 513141.873 5402576.029 262.794 513141.874 5402576.007 262.792 513141.876 5402575.984 262.791 513141.879 5402575.962 262.79 513141.884 5402575.94 262.788 513141.891 5402575.918 262.787 513141.899 5402575.897 262.786 513141.908 5402575.876 262.785 513141.919 5402575.856 262.784 513141.932 5402575.837 262.783 513141.945 5402575.819 262.782 513141.96 5402575.802 262.782 513141.976 5402575.786 262.781 513141.993 5402575.771 262.781 513142.011 5402575.757 262.78 513142.03 5402575.745 262.78 513142.051 5402575.733 262.78 513142.073 5402575.723 262.78 513142.094 5402575.715 262.78 513142.116 5402575.708 262.78 513142.138 5402575.703 262.78 513142.16 5402575.7 262.781 513142.183 5402575.698 262.781 513142.205 5402575.698 262.782 513142.228 5402575.699 262.782 513142.251 5402575.702 262.783 513142.273 5402575.706 262.784 513142.295 5402575.712 262.785 513142.316 5402575.72 262.786 513142.337 5402575.729 262.787 513142.357 5402575.739 262.789 513142.377 5402575.751 262.79 513142.395 5402575.764 262.791 513142.413 5402575.778 262.793 513142.429 5402575.794 262.794 513142.445 5402575.81 262.796 513142.459 5402575.828 262.797 513142.472 5402575.847 262.799 513142.483 5402575.866 262.8 513142.494 5402575.886 262.802 513142.502 5402575.908 262.804 513142.51 5402575.93 262.805 513142.65 5402576.17 262.825 513145.9 5402573.38 262.735 513145.64 5402573.06 262.707 513145.617 5402573.038 262.705 513145.602 5402573.021 262.703 513145.588 5402573.003 262.702 513145.575 5402572.984 262.7 513145.564 5402572.964 262.698 513145.554 5402572.943 262.697 513145.545 5402572.921 262.695 513145.538 5402572.9 262.694 513145.533 5402572.877 262.692 513145.529 5402572.854 262.69 513145.527 5402572.832 262.689 513145.526 5402572.809 262.687 513145.527 5402572.786 262.686 513145.53 5402572.763 262.684 513145.534 5402572.74 262.683 513145.539 5402572.718 262.682 513145.547 5402572.696 262.681 513145.555 5402572.674 262.679 513145.566 5402572.654 262.678 513145.577 5402572.634 262.677 513145.59 5402572.615 262.677 513145.605 5402572.597 262.676 513145.626 5402572.574 262.675 513145.649 5402572.554 262.674 513145.667 5402572.54 262.674 513145.686 5402572.527 262.674 513145.707 5402572.516 262.673 513145.728 5402572.507 262.673 513145.749 5402572.499 262.673 513145.771 5402572.492 262.674 513145.793 5402572.487 262.674 513145.816 5402572.483 262.674 513145.839 5402572.481 262.675 513145.862 5402572.481 262.675 513145.885 5402572.482 262.676 513145.908 5402572.485 262.677 513145.931 5402572.489 262.678 513145.953 5402572.495 262.679 513145.975 5402572.503 262.68 513145.996 5402572.512 262.681 513146.016 5402572.522 262.682 513146.036 5402572.534 262.684 513146.055 5402572.547 262.685 513146.073 5402572.562 262.687 513146.09 5402572.578 262.688 513146.11 5402572.6 262.69 513146.39 5402572.95 262.721 513149.3 5402570.36 262.634 513149.76 5402569.94 262.62 513153.29 5402566.8 262.515 513153.01 5402566.52 262.489 513152.997 5402566.495 262.487 513152.989 5402566.476 262.486 513152.983 5402566.455 262.484 513152.981 5402566.436 262.483 513153.009 5402566.231 262.47 513153.016 5402566.212 262.469 513153.027 5402566.194 262.468 513153.04 5402566.177 262.468 513153.054 5402566.162 262.467 513153.069 5402566.147 262.466 513153.091 5402566.129 262.466 513153.115 5402566.113 262.466 513153.133 5402566.102 262.465 513153.152 5402566.093 262.465 513153.172 5402566.086 262.465 513153.192 5402566.079 262.466 513153.212 5402566.074 262.466 513153.233 5402566.071 262.466 513153.254 5402566.069 262.467 513153.275 5402566.068 262.467 513153.296 5402566.069 262.468 513153.317 5402566.071 262.469 513153.338 5402566.075 262.469 513153.359 5402566.08 262.47 513153.379 5402566.087 262.471 513153.398 5402566.095 262.472 513153.417 5402566.105 262.473 513153.435 5402566.115 262.475 513153.453 5402566.127 262.476 513153.469 5402566.14 262.477 513153.49 5402566.16 262.479 513153.75 5402566.38 262.501 513157.03 5402563.45 262.402 513156.79 5402563.17 262.378 513156.777 5402563.144 262.376 513156.768 5402563.123 262.374 513156.762 5402563.102 262.372 513156.756 5402563.08 262.371 513156.752 5402563.057 262.369 513156.75 5402563.035 262.368 513156.749 5402563.013 262.366 513156.75 5402562.99 262.365 513156.752 5402562.968 262.363 513156.756 5402562.946 262.362 513156.762 5402562.924 262.361 513156.769 5402562.903 262.36 513156.777 5402562.882 262.359 513156.787 5402562.862 262.358 513156.798 5402562.842 262.357 513156.811 5402562.824 262.356 513156.825 5402562.806 262.355 513156.84 5402562.789 262.354 513156.861 5402562.769 262.354 513156.885 5402562.75 262.353 513156.904 5402562.738 262.353 513156.923 5402562.727 262.353 513156.944 5402562.717 262.353 513156.965 5402562.709 262.353 513156.986 5402562.702 262.353 513157.008 5402562.697 262.353 513157.03 5402562.694 262.353 513157.053 5402562.692 262.354 513157.075 5402562.691 262.355 513157.098 5402562.692 262.355 513157.12 5402562.695 262.356 513157.142 5402562.699 262.357 513157.164 5402562.705 262.358 513157.185 5402562.712 262.359 513157.206 5402562.721 262.36 513157.226 5402562.731 262.361 513157.245 5402562.742 262.363 513157.27 5402562.76 262.364 513157.53 5402562.98 262.386 513160.8 5402560.07 262.289 513160.6 5402559.79 262.265 513160.587 5402559.776 262.264 513160.577 5402559.763 262.263 513160.568 5402559.75 262.262 513160.56 5402559.737 262.26 513160.553 5402559.722 262.259 513160.546 5402559.708 262.258 513160.541 5402559.693 262.257 513160.537 5402559.677 262.256 513160.534 5402559.662 262.255 513160.532 5402559.646 262.254 513160.532 5402559.63 262.253 513160.532 5402559.614 262.252 513160.534 5402559.598 262.251 513160.536 5402559.583 262.25 513160.54 5402559.567 262.249 513160.545 5402559.552 262.248 513160.55 5402559.537 262.247 513160.557 5402559.523 262.247 513160.565 5402559.509 262.246 513160.574 5402559.496 262.245 513160.583 5402559.483 262.245 513160.594 5402559.471 262.244 513160.605 5402559.46 262.244 513160.617 5402559.45 262.243 513160.633 5402559.438 262.243 513160.649 5402559.429 262.243 513160.663 5402559.421 262.243 513160.677 5402559.415 262.243 513160.692 5402559.41 262.243 513160.708 5402559.406 262.243 513160.723 5402559.402 262.243 513160.739 5402559.4 262.244 513160.755 5402559.4 262.244 513160.771 5402559.4 262.245 513160.787 5402559.401 262.245 513160.803 5402559.404 262.246 513160.818 5402559.407 262.246 513160.833 5402559.412 262.247 513160.848 5402559.417 262.248 513160.862 5402559.424 262.249 513160.876 5402559.432 262.25 513160.89 5402559.44 262.251 513160.902 5402559.45 262.251 513160.914 5402559.46 262.253 513160.926 5402559.472 262.254 513160.936 5402559.484 262.255 513160.946 5402559.496 262.256 513160.955 5402559.51 262.257 513160.962 5402559.523 262.258 513160.97 5402559.54 262.259 513162.77 5402561.57 262.441 513165.11 5402564.25 262.68 + + + + + + + + + + + + + + + + + 513150.45 5402619.52 262.049 513144.69 5402622.22 261.972 513140.57 5402624.11 261.943 513137.221 5402619.876 265.504 513219.026 5402583.413 265.428 513220.84 5402587.54 262.358 513220.44 5402587.66 262.395 513222.26 5402591.7 259.379 513212.29 5402596.13 259.397 513212.22 5402595.95 259.528 513210.73 5402592.46 262.111 513160.27 5402615.0 262.128 513161.79 5402618.38 259.606 513161.89 5402618.59 259.447 513152.04 5402622.99 259.451 513150.45 5402619.52 262.049 + + + + + + + + + + + + + + + + + 513196.937 5402550.365 262.67 513196.66 5402550.5 262.671 513196.66 5402550.5 244.64 513196.937 5402550.365 244.64 513196.937 5402550.365 262.67 + + + + + + + + + + + + + + + + + 513196.937 5402550.365 244.64 513197.167 5402550.274 244.64 513197.167 5402550.274 262.67 513196.937 5402550.365 262.67 513196.937 5402550.365 244.64 + + + + + + + + + + + + + + + + + 513197.167 5402550.274 244.64 513197.402 5402550.2 244.64 513197.402 5402550.2 262.672 513197.167 5402550.274 262.67 513197.167 5402550.274 244.64 + + + + + + + + + + + + + + + + + 513197.402 5402550.2 244.64 513197.642 5402550.143 244.64 513197.642 5402550.143 262.675 513197.402 5402550.2 262.672 513197.402 5402550.2 244.64 + + + + + + + + + + + + + + + + + 513197.642 5402550.143 244.64 513197.885 5402550.102 244.64 513197.885 5402550.102 262.679 513197.642 5402550.143 262.675 513197.642 5402550.143 244.64 + + + + + + + + + + + + + + + + + 513197.885 5402550.102 244.64 513198.13 5402550.078 244.64 513198.13 5402550.078 262.684 513197.885 5402550.102 262.679 513197.885 5402550.102 244.64 + + + + + + + + + + + + + + + + + 513198.13 5402550.078 244.64 513198.377 5402550.072 244.64 513198.377 5402550.072 262.691 513198.13 5402550.078 262.684 513198.13 5402550.078 244.64 + + + + + + + + + + + + + + + + + 513198.377 5402550.072 244.64 513198.623 5402550.082 244.64 513198.623 5402550.082 262.698 513198.377 5402550.072 262.691 513198.377 5402550.072 244.64 + + + + + + + + + + + + + + + + + 513198.623 5402550.082 244.64 513198.869 5402550.11 244.64 513198.869 5402550.11 262.707 513198.623 5402550.082 262.698 513198.623 5402550.082 244.64 + + + + + + + + + + + + + + + + + 513198.869 5402550.11 244.64 513199.111 5402550.155 244.64 513199.111 5402550.155 262.717 513198.869 5402550.11 262.707 513198.869 5402550.11 244.64 + + + + + + + + + + + + + + + + + 513199.111 5402550.155 244.64 513199.409 5402550.235 244.64 513199.409 5402550.235 262.73 513199.111 5402550.155 262.717 513199.111 5402550.155 244.64 + + + + + + + + + + + + + + + + + 513199.409 5402550.235 244.64 513199.7 5402550.341 244.64 513199.7 5402550.341 262.745 513199.409 5402550.235 262.73 513199.409 5402550.235 244.64 + + + + + + + + + + + + + + + + + 513199.7 5402550.341 244.64 513199.924 5402550.443 244.64 513199.924 5402550.443 262.758 513199.7 5402550.341 262.745 513199.7 5402550.341 244.64 + + + + + + + + + + + + + + + + + 513199.924 5402550.443 244.64 513200.141 5402550.561 244.64 513200.141 5402550.561 262.772 513199.924 5402550.443 262.758 513199.924 5402550.443 244.64 + + + + + + + + + + + + + + + + + 513200.141 5402550.561 244.64 513200.349 5402550.693 244.64 513200.349 5402550.693 262.786 513200.141 5402550.561 262.772 513200.141 5402550.561 244.64 + + + + + + + + + + + + + + + + + 513200.349 5402550.693 244.64 513200.547 5402550.84 244.64 513200.547 5402550.84 262.801 513200.349 5402550.693 262.786 513200.349 5402550.693 244.64 + + + + + + + + + + + + + + + + + 513200.547 5402550.84 244.64 513200.735 5402551.0 244.64 513200.735 5402551.0 262.817 513200.547 5402550.84 262.801 513200.547 5402550.84 244.64 + + + + + + + + + + + + + + + + + 513200.735 5402551.0 244.64 513200.911 5402551.173 244.64 513200.911 5402551.173 262.833 513200.735 5402551.0 262.817 513200.735 5402551.0 244.64 + + + + + + + + + + + + + + + + + 513200.911 5402551.173 244.64 513201.074 5402551.358 244.64 513201.074 5402551.358 262.85 513200.911 5402551.173 262.833 513200.911 5402551.173 244.64 + + + + + + + + + + + + + + + + + 513201.074 5402551.358 244.64 513201.224 5402551.554 244.64 513201.224 5402551.554 262.866 513201.074 5402551.358 262.85 513201.074 5402551.358 244.64 + + + + + + + + + + + + + + + + + 513201.224 5402551.554 244.64 513201.36 5402551.76 244.64 513201.36 5402551.76 262.884 513201.224 5402551.554 262.866 513201.224 5402551.554 244.64 + + + + + + + + + + + + + + + + + 513201.36 5402551.76 244.64 513201.51 5402552.03 244.64 513201.51 5402552.03 262.905 513201.36 5402551.76 262.884 513201.36 5402551.76 244.64 + + + + + + + + + + + + + + + + + 513201.51 5402552.03 244.64 513204.69 5402559.04 244.64 513204.69 5402559.04 263.448 513201.51 5402552.03 262.905 513201.51 5402552.03 244.64 + + + + + + + + + + + + + + + + + 513207.72 5402557.69 263.445 513204.69 5402559.04 263.448 513204.69 5402559.04 244.64 513207.72 5402557.69 244.64 513207.72 5402557.69 263.445 + + + + + + + + + + + + + + + + + 513207.72 5402557.69 244.64 513219.026 5402583.413 244.64 513219.026 5402583.413 265.428 513207.72 5402557.69 263.445 513207.72 5402557.69 244.64 + + + + + + + + + + + + + + + + + 513220.84 5402587.54 262.358 513219.026 5402583.413 265.428 513219.026 5402583.413 244.64 513220.84 5402587.54 244.64 513220.84 5402587.54 262.358 + + + + + + + + + + + + + + + + + 513220.44 5402587.66 262.395 513220.84 5402587.54 262.358 513220.84 5402587.54 244.64 513220.44 5402587.66 244.64 513220.44 5402587.66 262.395 + + + + + + + + + + + + + + + + + 513222.26 5402591.7 259.379 513220.44 5402587.66 262.395 513220.44 5402587.66 244.64 513222.26 5402591.7 244.64 513222.26 5402591.7 259.379 + + + + + + + + + + + + + + + + + 513212.29 5402596.13 259.397 513222.26 5402591.7 259.379 513222.26 5402591.7 244.64 513212.29 5402596.13 244.64 513212.29 5402596.13 259.397 + + + + + + + + + + + + + + + + + 513212.22 5402595.95 259.528 513212.29 5402596.13 259.397 513212.29 5402596.13 244.64 513212.22 5402595.95 244.64 513212.22 5402595.95 259.528 + + + + + + + + + + + + + + + + + 513210.73 5402592.46 262.111 513212.22 5402595.95 259.528 513212.22 5402595.95 244.64 513210.73 5402592.46 244.64 513210.73 5402592.46 262.111 + + + + + + + + + + + + + + + + + 513160.27 5402615.0 262.128 513210.73 5402592.46 262.111 513210.73 5402592.46 244.64 513160.27 5402615.0 244.64 513160.27 5402615.0 262.128 + + + + + + + + + + + + + + + + + 513161.79 5402618.38 259.606 513160.27 5402615.0 262.128 513160.27 5402615.0 244.64 513161.79 5402618.38 244.64 513161.79 5402618.38 259.606 + + + + + + + + + + + + + + + + + 513161.89 5402618.59 259.447 513161.79 5402618.38 259.606 513161.79 5402618.38 244.64 513161.89 5402618.59 244.64 513161.89 5402618.59 259.447 + + + + + + + + + + + + + + + + + 513152.04 5402622.99 259.451 513161.89 5402618.59 259.447 513161.89 5402618.59 244.64 513152.04 5402622.99 244.64 513152.04 5402622.99 259.451 + + + + + + + + + + + + + + + + + 513150.45 5402619.52 262.049 513152.04 5402622.99 259.451 513152.04 5402622.99 244.64 513150.45 5402619.52 244.64 513150.45 5402619.52 262.049 + + + + + + + + + + + + + + + + + 513150.45 5402619.52 244.64 513144.69 5402622.22 244.64 513144.69 5402622.22 261.972 513150.45 5402619.52 262.049 513150.45 5402619.52 244.64 + + + + + + + + + + + + + + + + + 513144.69 5402622.22 244.64 513140.57 5402624.11 244.64 513140.57 5402624.11 261.943 513144.69 5402622.22 261.972 513144.69 5402622.22 244.64 + + + + + + + + + + + + + + + + + 513137.221 5402619.876 265.504 513140.57 5402624.11 261.943 513140.57 5402624.11 244.64 513137.221 5402619.876 244.64 513137.221 5402619.876 265.504 + + + + + + + + + + + + + + + + + 513137.221 5402619.876 244.64 513136.33 5402618.75 244.64 513136.33 5402618.75 265.407 513137.221 5402619.876 265.504 513137.221 5402619.876 244.64 + + + + + + + + + + + + + + + + + 513138.41 5402617.33 265.373 513136.33 5402618.75 265.407 513136.33 5402618.75 244.64 513138.41 5402617.33 244.64 513138.41 5402617.33 265.373 + + + + + + + + + + + + + + + + + 513139.92 5402616.3 265.348 513138.41 5402617.33 265.373 513138.41 5402617.33 244.64 513139.92 5402616.3 244.64 513139.92 5402616.3 265.348 + + + + + + + + + + + + + + + + + 513141.6 5402614.96 265.308 513139.92 5402616.3 265.348 513139.92 5402616.3 244.64 513141.6 5402614.96 244.64 513141.6 5402614.96 265.308 + + + + + + + + + + + + + + + + + 513141.6 5402614.96 244.64 513139.98 5402611.44 244.64 513139.98 5402611.44 265.035 513141.6 5402614.96 265.308 513141.6 5402614.96 244.64 + + + + + + + + + + + + + + + + + 513139.98 5402611.44 244.64 513139.46 5402611.6 244.64 513139.46 5402611.6 265.031 513139.98 5402611.44 265.035 513139.98 5402611.44 244.64 + + + + + + + + + + + + + + + + + 513139.46 5402611.6 244.64 513139.11 5402610.8 244.64 513139.11 5402610.8 264.969 513139.46 5402611.6 265.031 513139.46 5402611.6 244.64 + + + + + + + + + + + + + + + + + 513139.58 5402610.52 264.964 513139.11 5402610.8 264.969 513139.11 5402610.8 244.64 513139.58 5402610.52 244.64 513139.58 5402610.52 264.964 + + + + + + + + + + + + + + + + + 513139.58 5402610.52 244.64 513138.39 5402607.83 244.64 513138.39 5402607.83 264.757 513139.58 5402610.52 264.964 513139.58 5402610.52 244.64 + + + + + + + + + + + + + + + + + 513138.39 5402607.83 244.64 513137.86 5402608.06 244.64 513137.86 5402608.06 264.757 513138.39 5402607.83 264.757 513138.39 5402607.83 244.64 + + + + + + + + + + + + + + + + + 513137.86 5402608.06 244.64 513137.55 5402607.27 244.64 513137.55 5402607.27 264.697 513137.86 5402608.06 264.757 513137.86 5402608.06 244.64 + + + + + + + + + + + + + + + + + 513137.55 5402607.27 244.64 513138.05 5402607.09 244.64 513138.05 5402607.09 264.699 513137.55 5402607.27 264.697 513137.55 5402607.27 244.64 + + + + + + + + + + + + + + + + + 513138.05 5402607.09 244.64 513136.98 5402604.66 244.64 513136.98 5402604.66 264.512 513138.05 5402607.09 264.699 513138.05 5402607.09 244.64 + + + + + + + + + + + + + + + + + 513136.47 5402604.9 264.513 513136.98 5402604.66 264.512 513136.98 5402604.66 244.64 513136.47 5402604.9 244.64 513136.47 5402604.9 264.513 + + + + + + + + + + + + + + + + + 513136.47 5402604.9 244.64 513136.12 5402604.09 244.64 513136.12 5402604.09 264.451 513136.47 5402604.9 264.513 513136.47 5402604.9 244.64 + + + + + + + + + + + + + + + + + 513136.6 5402603.87 264.45 513136.12 5402604.09 264.451 513136.12 5402604.09 244.64 513136.6 5402603.87 244.64 513136.6 5402603.87 264.45 + + + + + + + + + + + + + + + + + 513136.6 5402603.87 244.64 513135.53 5402601.45 244.64 513135.53 5402601.45 264.264 513136.6 5402603.87 264.45 513136.6 5402603.87 244.64 + + + + + + + + + + + + + + + + + 513135.53 5402601.45 244.64 513135.06 5402601.66 244.64 513135.06 5402601.66 264.264 513135.53 5402601.45 264.264 513135.53 5402601.45 244.64 + + + + + + + + + + + + + + + + + 513135.06 5402601.66 244.64 513134.68 5402600.84 244.64 513134.68 5402600.84 264.2 513135.06 5402601.66 264.264 513135.06 5402601.66 244.64 + + + + + + + + + + + + + + + + + 513134.68 5402600.84 244.64 513135.2 5402600.67 244.64 513135.2 5402600.67 264.204 513134.68 5402600.84 264.2 513134.68 5402600.84 244.64 + + + + + + + + + + + + + + + + + 513135.2 5402600.67 244.64 513134.08 5402598.16 244.64 513134.08 5402598.16 264.01 513135.2 5402600.67 264.204 513135.2 5402600.67 244.64 + + + + + + + + + + + + + + + + + 513133.61 5402598.41 264.013 513134.08 5402598.16 264.01 513134.08 5402598.16 244.64 513133.61 5402598.41 244.64 513133.61 5402598.41 264.013 + + + + + + + + + + + + + + + + + 513133.61 5402598.41 244.64 513133.25 5402597.56 244.64 513133.25 5402597.56 263.948 513133.61 5402598.41 264.013 513133.61 5402598.41 244.64 + + + + + + + + + + + + + + + + + 513133.25 5402597.56 244.64 513133.71 5402597.44 244.64 513133.71 5402597.44 263.953 513133.25 5402597.56 263.948 513133.25 5402597.56 244.64 + + + + + + + + + + + + + + + + + 513133.71 5402597.44 244.64 513132.69 5402595.04 244.64 513132.69 5402595.04 263.769 513133.71 5402597.44 263.953 513133.71 5402597.44 244.64 + + + + + + + + + + + + + + + + + 513132.69 5402595.04 244.64 513132.17 5402595.27 244.64 513132.17 5402595.27 263.769 513132.69 5402595.04 263.769 513132.69 5402595.04 244.64 + + + + + + + + + + + + + + + + + 513132.17 5402595.27 244.64 513131.78 5402594.38 244.64 513131.78 5402594.38 263.701 513132.17 5402595.27 263.769 513132.17 5402595.27 244.64 + + + + + + + + + + + + + + + + + 513131.78 5402594.38 244.64 513132.29 5402594.24 244.64 513132.29 5402594.24 263.706 513131.78 5402594.38 263.701 513131.78 5402594.38 244.64 + + + + + + + + + + + + + + + + + 513132.29 5402594.24 244.64 513131.22 5402591.75 244.64 513131.22 5402591.75 263.515 513132.29 5402594.24 263.706 513132.29 5402594.24 244.64 + + + + + + + + + + + + + + + + + 513131.22 5402591.75 244.64 513130.69 5402591.95 244.64 513130.69 5402591.95 263.513 513131.22 5402591.75 263.515 513131.22 5402591.75 244.64 + + + + + + + + + + + + + + + + + 513130.69 5402591.95 244.64 513130.34 5402591.16 244.64 513130.34 5402591.16 263.452 513130.69 5402591.95 263.513 513130.69 5402591.95 244.64 + + + + + + + + + + + + + + + + + 513130.81 5402590.95 263.451 513130.34 5402591.16 263.452 513130.34 5402591.16 244.64 513130.81 5402590.95 244.64 513130.81 5402590.95 263.451 + + + + + + + + + + + + + + + + + 513130.81 5402590.95 244.64 513129.38 5402587.67 244.64 513129.38 5402587.67 263.199 513130.81 5402590.95 263.451 513130.81 5402590.95 244.64 + + + + + + + + + + + + + + + + + 513134.65 5402585.22 263.188 513129.38 5402587.67 263.199 513129.38 5402587.67 244.64 513134.65 5402585.22 244.64 513134.65 5402585.22 263.188 + + + + + + + + + + + + + + + + + 513134.65 5402585.22 244.64 513133.2 5402581.88 244.64 513133.2 5402581.88 262.931 513134.65 5402585.22 263.188 513134.65 5402585.22 244.64 + + + + + + + + + + + + + + + + + 513133.2 5402581.88 244.64 513133.17 5402581.88 244.64 513133.17 5402581.88 262.93 513133.2 5402581.88 262.931 513133.2 5402581.88 244.64 + + + + + + + + + + + + + + + + + 513133.17 5402581.88 244.64 513133.142 5402581.867 244.64 513133.142 5402581.867 262.928 513133.17 5402581.88 262.93 513133.17 5402581.88 244.64 + + + + + + + + + + + + + + + + + 513133.142 5402581.867 244.64 513133.12 5402581.854 244.64 513133.12 5402581.854 262.927 513133.142 5402581.867 262.928 513133.142 5402581.867 244.64 + + + + + + + + + + + + + + + + + 513183.427 5402556.027 244.64 513183.413 5402556.006 244.64 513183.413 5402556.006 262.657 513183.427 5402556.027 262.659 513183.427 5402556.027 244.64 + + + + + + + + + + + + + + + + + 513183.413 5402556.006 244.64 513183.402 5402555.983 244.64 513183.402 5402555.983 262.655 513183.413 5402556.006 262.657 513183.413 5402556.006 244.64 + + + + + + + + + + + + + + + + + 513183.402 5402555.983 244.64 513183.392 5402555.959 244.64 513183.392 5402555.959 262.654 513183.402 5402555.983 262.655 513183.402 5402555.983 244.64 + + + + + + + + + + + + + + + + + 513183.384 5402555.935 244.64 513183.384 5402555.935 262.652 513183.392 5402555.959 262.654 513183.392 5402555.959 244.64 513183.384 5402555.935 244.64 + + + + + + + + + + + + + + + + + 513183.377 5402555.91 244.64 513183.377 5402555.91 262.65 513183.384 5402555.935 262.652 513183.384 5402555.935 244.64 513183.377 5402555.91 244.64 + + + + + + + + + + + + + + + + + 513183.372 5402555.885 244.64 513183.372 5402555.885 262.648 513183.377 5402555.91 262.65 513183.377 5402555.91 244.64 513183.372 5402555.885 244.64 + + + + + + + + + + + + + + + + + 513183.369 5402555.859 244.64 513183.369 5402555.859 262.647 513183.372 5402555.885 262.648 513183.372 5402555.885 244.64 513183.369 5402555.859 244.64 + + + + + + + + + + + + + + + + + 513183.367 5402555.834 244.64 513183.367 5402555.834 262.645 513183.369 5402555.859 262.647 513183.369 5402555.859 244.64 513183.367 5402555.834 244.64 + + + + + + + + + + + + + + + + + 513183.368 5402555.808 244.64 513183.368 5402555.808 262.643 513183.367 5402555.834 262.645 513183.367 5402555.834 244.64 513183.368 5402555.808 244.64 + + + + + + + + + + + + + + + + + 513183.37 5402555.783 244.64 513183.37 5402555.783 262.642 513183.368 5402555.808 262.643 513183.368 5402555.808 244.64 513183.37 5402555.783 244.64 + + + + + + + + + + + + + + + + + 513183.374 5402555.757 244.64 513183.374 5402555.757 262.64 513183.37 5402555.783 262.642 513183.37 5402555.783 244.64 513183.374 5402555.757 244.64 + + + + + + + + + + + + + + + + + 513183.38 5402555.732 244.64 513183.38 5402555.732 262.639 513183.374 5402555.757 262.64 513183.374 5402555.757 244.64 513183.38 5402555.732 244.64 + + + + + + + + + + + + + + + + + 513183.388 5402555.708 244.64 513183.388 5402555.708 262.637 513183.38 5402555.732 262.639 513183.38 5402555.732 244.64 513183.388 5402555.708 244.64 + + + + + + + + + + + + + + + + + 513183.397 5402555.684 262.636 513183.388 5402555.708 262.637 513183.388 5402555.708 244.64 513183.397 5402555.684 244.64 513183.397 5402555.684 262.636 + + + + + + + + + + + + + + + + + 513183.408 5402555.66 262.635 513183.397 5402555.684 262.636 513183.397 5402555.684 244.64 513183.408 5402555.66 244.64 513183.408 5402555.66 262.635 + + + + + + + + + + + + + + + + + 513183.42 5402555.638 262.634 513183.408 5402555.66 262.635 513183.408 5402555.66 244.64 513183.42 5402555.638 244.64 513183.42 5402555.638 262.634 + + + + + + + + + + + + + + + + + 513183.434 5402555.617 262.633 513183.42 5402555.638 262.634 513183.42 5402555.638 244.64 513183.434 5402555.617 244.64 513183.434 5402555.617 262.633 + + + + + + + + + + + + + + + + + 513183.449 5402555.596 262.632 513183.434 5402555.617 262.633 513183.434 5402555.617 244.64 513183.449 5402555.596 244.64 513183.449 5402555.596 262.632 + + + + + + + + + + + + + + + + + 513183.466 5402555.577 262.631 513183.449 5402555.596 262.632 513183.449 5402555.596 244.64 513183.466 5402555.577 244.64 513183.466 5402555.577 262.631 + + + + + + + + + + + + + + + + + 513183.484 5402555.559 262.63 513183.466 5402555.577 262.631 513183.466 5402555.577 244.64 513183.484 5402555.559 244.64 513183.484 5402555.559 262.63 + + + + + + + + + + + + + + + + + 513183.484 5402555.559 244.64 513183.504 5402555.542 244.64 513183.504 5402555.542 262.63 513183.484 5402555.559 262.63 513183.484 5402555.559 244.64 + + + + + + + + + + + + + + + + + 513183.524 5402555.526 262.629 513183.504 5402555.542 262.63 513183.504 5402555.542 244.64 513183.524 5402555.526 244.64 513183.524 5402555.526 262.629 + + + + + + + + + + + + + + + + + 513183.524 5402555.526 244.64 513183.546 5402555.512 244.64 513183.546 5402555.512 262.629 513183.524 5402555.526 262.629 513183.524 5402555.526 244.64 + + + + + + + + + + + + + + + + + 513183.546 5402555.512 244.64 513183.568 5402555.5 244.64 513183.568 5402555.5 262.629 513183.546 5402555.512 262.629 513183.546 5402555.512 244.64 + + + + + + + + + + + + + + + + + 513183.568 5402555.5 244.64 513183.599 5402555.486 244.64 513183.599 5402555.486 262.629 513183.568 5402555.5 262.629 513183.568 5402555.5 244.64 + + + + + + + + + + + + + + + + + 513183.599 5402555.486 244.64 513183.63 5402555.475 244.64 513183.63 5402555.475 262.629 513183.599 5402555.486 262.629 513183.599 5402555.486 244.64 + + + + + + + + + + + + + + + + + 513183.63 5402555.475 244.64 513183.655 5402555.469 244.64 513183.655 5402555.469 262.629 513183.63 5402555.475 262.629 513183.63 5402555.475 244.64 + + + + + + + + + + + + + + + + + 513183.655 5402555.469 244.64 513183.68 5402555.464 244.64 513183.68 5402555.464 262.63 513183.655 5402555.469 262.629 513183.655 5402555.469 244.64 + + + + + + + + + + + + + + + + + 513183.68 5402555.464 244.64 513183.706 5402555.461 244.64 513183.706 5402555.461 262.63 513183.68 5402555.464 262.63 513183.68 5402555.464 244.64 + + + + + + + + + + + + + + + + + 513183.706 5402555.461 244.64 513183.732 5402555.46 244.64 513183.732 5402555.46 262.631 513183.706 5402555.461 262.63 513183.706 5402555.461 244.64 + + + + + + + + + + + + + + + + + 513183.732 5402555.46 244.64 513183.757 5402555.461 244.64 513183.757 5402555.461 262.632 513183.732 5402555.46 262.631 513183.732 5402555.46 244.64 + + + + + + + + + + + + + + + + + 513183.757 5402555.461 244.64 513183.783 5402555.463 244.64 513183.783 5402555.463 262.632 513183.757 5402555.461 262.632 513183.757 5402555.461 244.64 + + + + + + + + + + + + + + + + + 513183.783 5402555.463 244.64 513183.808 5402555.467 244.64 513183.808 5402555.467 262.633 513183.783 5402555.463 262.632 513183.783 5402555.463 244.64 + + + + + + + + + + + + + + + + + 513183.808 5402555.467 244.64 513183.833 5402555.473 244.64 513183.833 5402555.473 262.634 513183.808 5402555.467 262.633 513183.808 5402555.467 244.64 + + + + + + + + + + + + + + + + + 513183.833 5402555.473 244.64 513183.857 5402555.481 244.64 513183.857 5402555.481 262.636 513183.833 5402555.473 262.634 513183.833 5402555.473 244.64 + + + + + + + + + + + + + + + + + 513183.857 5402555.481 244.64 513183.881 5402555.49 244.64 513183.881 5402555.49 262.637 513183.857 5402555.481 262.636 513183.857 5402555.481 244.64 + + + + + + + + + + + + + + + + + 513183.881 5402555.49 244.64 513183.905 5402555.501 244.64 513183.905 5402555.501 262.638 513183.881 5402555.49 262.637 513183.881 5402555.49 244.64 + + + + + + + + + + + + + + + + + 513183.905 5402555.501 244.64 513183.927 5402555.514 244.64 513183.927 5402555.514 262.64 513183.905 5402555.501 262.638 513183.905 5402555.501 244.64 + + + + + + + + + + + + + + + + + 513183.927 5402555.514 244.64 513183.948 5402555.528 244.64 513183.948 5402555.528 262.641 513183.927 5402555.514 262.64 513183.927 5402555.514 244.64 + + + + + + + + + + + + + + + + + 513183.948 5402555.528 244.64 513183.969 5402555.544 244.64 513183.969 5402555.544 262.643 513183.948 5402555.528 262.641 513183.948 5402555.528 244.64 + + + + + + + + + + + + + + + + + 513183.969 5402555.544 244.64 513183.988 5402555.561 244.64 513183.988 5402555.561 262.644 513183.969 5402555.544 262.643 513183.969 5402555.544 244.64 + + + + + + + + + + + + + + + + + 513183.988 5402555.561 244.64 513184.006 5402555.579 244.64 513184.006 5402555.579 262.646 513183.988 5402555.561 262.644 513183.988 5402555.561 244.64 + + + + + + + + + + + + + + + + + 513184.006 5402555.579 244.64 513184.022 5402555.599 244.64 513184.022 5402555.599 262.648 513184.006 5402555.579 262.646 513184.006 5402555.579 244.64 + + + + + + + + + + + + + + + + + 513184.022 5402555.599 244.64 513184.038 5402555.619 244.64 513184.038 5402555.619 262.65 513184.022 5402555.599 262.648 513184.022 5402555.599 244.64 + + + + + + + + + + + + + + + + + 513184.038 5402555.619 244.64 513184.052 5402555.641 244.64 513184.052 5402555.641 262.651 513184.038 5402555.619 262.65 513184.038 5402555.619 244.64 + + + + + + + + + + + + + + + + + 513184.052 5402555.641 244.64 513184.064 5402555.663 244.64 513184.064 5402555.663 262.653 513184.052 5402555.641 262.651 513184.052 5402555.641 244.64 + + + + + + + + + + + + + + + + + 513184.064 5402555.663 244.64 513184.074 5402555.687 244.64 513184.074 5402555.687 262.655 513184.064 5402555.663 262.653 513184.064 5402555.663 244.64 + + + + + + + + + + + + + + + + + 513184.074 5402555.687 244.64 513184.083 5402555.711 244.64 513184.083 5402555.711 262.657 513184.074 5402555.687 262.655 513184.074 5402555.687 244.64 + + + + + + + + + + + + + + + + + 513184.083 5402555.711 262.657 513184.083 5402555.711 244.64 513184.091 5402555.735 244.64 513184.091 5402555.735 262.659 513184.083 5402555.711 262.657 + + + + + + + + + + + + + + + + + 513184.091 5402555.735 262.659 513184.091 5402555.735 244.64 513184.096 5402555.76 244.64 513184.096 5402555.76 262.66 513184.091 5402555.735 262.659 + + + + + + + + + + + + + + + + + 513184.096 5402555.76 262.66 513184.096 5402555.76 244.64 513184.1 5402555.786 244.64 513184.1 5402555.786 262.662 513184.096 5402555.76 262.66 + + + + + + + + + + + + + + + + + 513184.1 5402555.786 262.662 513184.1 5402555.786 244.64 513184.102 5402555.811 244.64 513184.102 5402555.811 262.664 513184.1 5402555.786 262.662 + + + + + + + + + + + + + + + + + 513184.102 5402555.811 262.664 513184.102 5402555.811 244.64 513184.102 5402555.837 244.64 513184.102 5402555.837 262.666 513184.102 5402555.811 262.664 + + + + + + + + + + + + + + + + + 513184.102 5402555.837 262.666 513184.102 5402555.837 244.64 513184.1 5402555.87 244.64 513184.1 5402555.87 262.668 513184.102 5402555.837 262.666 + + + + + + + + + + + + + + + + + 513188.09 5402554.11 262.665 513184.1 5402555.87 262.668 513184.1 5402555.87 244.64 513188.09 5402554.11 244.64 513188.09 5402554.11 262.665 + + + + + + + + + + + + + + + + + 513188.09 5402554.11 244.64 513188.07 5402554.089 244.64 513188.07 5402554.089 262.663 513188.09 5402554.11 262.665 513188.09 5402554.11 244.64 + + + + + + + + + + + + + + + + + 513188.07 5402554.089 244.64 513188.053 5402554.069 244.64 513188.053 5402554.069 262.661 513188.07 5402554.089 262.663 513188.07 5402554.089 244.64 + + + + + + + + + + + + + + + + + 513188.053 5402554.069 244.64 513188.038 5402554.047 244.64 513188.038 5402554.047 262.66 513188.053 5402554.069 262.661 513188.053 5402554.069 244.64 + + + + + + + + + + + + + + + + + 513188.038 5402554.047 244.64 513188.024 5402554.025 244.64 513188.024 5402554.025 262.658 513188.038 5402554.047 262.66 513188.038 5402554.047 244.64 + + + + + + + + + + + + + + + + + 513188.024 5402554.025 244.64 513188.012 5402554.002 244.64 513188.012 5402554.002 262.656 513188.024 5402554.025 262.658 513188.024 5402554.025 244.64 + + + + + + + + + + + + + + + + + 513188.012 5402554.002 244.64 513188.002 5402553.979 244.64 513188.002 5402553.979 262.654 513188.012 5402554.002 262.656 513188.012 5402554.002 244.64 + + + + + + + + + + + + + + + + + 513188.002 5402553.979 244.64 513187.993 5402553.954 244.64 513187.993 5402553.954 262.652 513188.002 5402553.979 262.654 513188.002 5402553.979 244.64 + + + + + + + + + + + + + + + + + 513187.986 5402553.929 244.64 513187.986 5402553.929 262.65 513187.993 5402553.954 262.652 513187.993 5402553.954 244.64 513187.986 5402553.929 244.64 + + + + + + + + + + + + + + + + + 513187.981 5402553.904 244.64 513187.981 5402553.904 262.649 513187.986 5402553.929 262.65 513187.986 5402553.929 244.64 513187.981 5402553.904 244.64 + + + + + + + + + + + + + + + + + 513187.977 5402553.878 244.64 513187.977 5402553.878 262.647 513187.981 5402553.904 262.649 513187.981 5402553.904 244.64 513187.977 5402553.878 244.64 + + + + + + + + + + + + + + + + + 513187.976 5402553.852 244.64 513187.976 5402553.852 262.645 513187.977 5402553.878 262.647 513187.977 5402553.878 244.64 513187.976 5402553.852 244.64 + + + + + + + + + + + + + + + + + 513187.976 5402553.826 244.64 513187.976 5402553.826 262.643 513187.976 5402553.852 262.645 513187.976 5402553.852 244.64 513187.976 5402553.826 244.64 + + + + + + + + + + + + + + + + + 513187.978 5402553.8 244.64 513187.978 5402553.8 262.642 513187.976 5402553.826 262.643 513187.976 5402553.826 244.64 513187.978 5402553.8 244.64 + + + + + + + + + + + + + + + + + 513187.982 5402553.774 244.64 513187.982 5402553.774 262.64 513187.978 5402553.8 262.642 513187.978 5402553.8 244.64 513187.982 5402553.774 244.64 + + + + + + + + + + + + + + + + + 513187.987 5402553.749 244.64 513187.987 5402553.749 262.639 513187.982 5402553.774 262.64 513187.982 5402553.774 244.64 513187.987 5402553.749 244.64 + + + + + + + + + + + + + + + + + 513187.995 5402553.724 244.64 513187.995 5402553.724 262.637 513187.987 5402553.749 262.639 513187.987 5402553.749 244.64 513187.995 5402553.724 244.64 + + + + + + + + + + + + + + + + + 513188.004 5402553.7 262.636 513187.995 5402553.724 262.637 513187.995 5402553.724 244.64 513188.004 5402553.7 244.64 513188.004 5402553.7 262.636 + + + + + + + + + + + + + + + + + 513188.014 5402553.676 262.635 513188.004 5402553.7 262.636 513188.004 5402553.7 244.64 513188.014 5402553.676 244.64 513188.014 5402553.676 262.635 + + + + + + + + + + + + + + + + + 513188.027 5402553.653 262.634 513188.014 5402553.676 262.635 513188.014 5402553.676 244.64 513188.027 5402553.653 244.64 513188.027 5402553.653 262.634 + + + + + + + + + + + + + + + + + 513188.041 5402553.631 262.633 513188.027 5402553.653 262.634 513188.027 5402553.653 244.64 513188.041 5402553.631 244.64 513188.041 5402553.631 262.633 + + + + + + + + + + + + + + + + + 513188.056 5402553.61 262.632 513188.041 5402553.631 262.633 513188.041 5402553.631 244.64 513188.056 5402553.61 244.64 513188.056 5402553.61 262.632 + + + + + + + + + + + + + + + + + 513188.073 5402553.591 262.631 513188.056 5402553.61 262.632 513188.056 5402553.61 244.64 513188.073 5402553.591 244.64 513188.073 5402553.591 262.631 + + + + + + + + + + + + + + + + + 513188.091 5402553.572 262.63 513188.073 5402553.591 262.631 513188.073 5402553.591 244.64 513188.091 5402553.572 244.64 513188.091 5402553.572 262.63 + + + + + + + + + + + + + + + + + 513188.091 5402553.572 244.64 513188.111 5402553.555 244.64 513188.111 5402553.555 262.63 513188.091 5402553.572 262.63 513188.091 5402553.572 244.64 + + + + + + + + + + + + + + + + + 513188.131 5402553.539 262.629 513188.111 5402553.555 262.63 513188.111 5402553.555 244.64 513188.131 5402553.539 244.64 513188.131 5402553.539 262.629 + + + + + + + + + + + + + + + + + 513188.131 5402553.539 244.64 513188.153 5402553.524 244.64 513188.153 5402553.524 262.629 513188.131 5402553.539 262.629 513188.131 5402553.539 244.64 + + + + + + + + + + + + + + + + + 513188.153 5402553.524 244.64 513188.175 5402553.512 244.64 513188.175 5402553.512 262.629 513188.153 5402553.524 262.629 513188.153 5402553.524 244.64 + + + + + + + + + + + + + + + + + 513188.175 5402553.512 244.64 513188.202 5402553.499 244.64 513188.202 5402553.499 262.629 513188.175 5402553.512 262.629 513188.175 5402553.512 244.64 + + + + + + + + + + + + + + + + + 513188.202 5402553.499 244.64 513188.229 5402553.489 244.64 513188.229 5402553.489 262.629 513188.202 5402553.499 262.629 513188.202 5402553.499 244.64 + + + + + + + + + + + + + + + + + 513188.229 5402553.489 244.64 513188.254 5402553.481 244.64 513188.254 5402553.481 262.629 513188.229 5402553.489 262.629 513188.229 5402553.489 244.64 + + + + + + + + + + + + + + + + + 513188.254 5402553.481 244.64 513188.279 5402553.476 244.64 513188.279 5402553.476 262.629 513188.254 5402553.481 262.629 513188.254 5402553.481 244.64 + + + + + + + + + + + + + + + + + 513188.279 5402553.476 244.64 513188.305 5402553.472 244.64 513188.305 5402553.472 262.63 513188.279 5402553.476 262.629 513188.279 5402553.476 244.64 + + + + + + + + + + + + + + + + + 513188.305 5402553.472 244.64 513188.331 5402553.47 244.64 513188.331 5402553.47 262.63 513188.305 5402553.472 262.63 513188.305 5402553.472 244.64 + + + + + + + + + + + + + + + + + 513188.331 5402553.47 244.64 513188.357 5402553.469 244.64 513188.357 5402553.469 262.631 513188.331 5402553.47 262.63 513188.331 5402553.47 244.64 + + + + + + + + + + + + + + + + + 513188.357 5402553.469 244.64 513188.383 5402553.471 244.64 513188.383 5402553.471 262.632 513188.357 5402553.469 262.631 513188.357 5402553.469 244.64 + + + + + + + + + + + + + + + + + 513188.383 5402553.471 244.64 513188.408 5402553.474 244.64 513188.408 5402553.474 262.633 513188.383 5402553.471 262.632 513188.383 5402553.471 244.64 + + + + + + + + + + + + + + + + + 513188.408 5402553.474 244.64 513188.434 5402553.479 244.64 513188.434 5402553.479 262.634 513188.408 5402553.474 262.633 513188.408 5402553.474 244.64 + + + + + + + + + + + + + + + + + 513188.434 5402553.479 244.64 513188.459 5402553.486 244.64 513188.459 5402553.486 262.635 513188.434 5402553.479 262.634 513188.434 5402553.479 244.64 + + + + + + + + + + + + + + + + + 513188.459 5402553.486 244.64 513188.483 5402553.495 244.64 513188.483 5402553.495 262.636 513188.459 5402553.486 262.635 513188.459 5402553.486 244.64 + + + + + + + + + + + + + + + + + 513188.483 5402553.495 244.64 513188.507 5402553.505 244.64 513188.507 5402553.505 262.638 513188.483 5402553.495 262.636 513188.483 5402553.495 244.64 + + + + + + + + + + + + + + + + + 513188.507 5402553.505 244.64 513188.53 5402553.517 244.64 513188.53 5402553.517 262.639 513188.507 5402553.505 262.638 513188.507 5402553.505 244.64 + + + + + + + + + + + + + + + + + 513188.53 5402553.517 244.64 513188.552 5402553.531 244.64 513188.552 5402553.531 262.64 513188.53 5402553.517 262.639 513188.53 5402553.517 244.64 + + + + + + + + + + + + + + + + + 513188.552 5402553.531 244.64 513188.574 5402553.546 244.64 513188.574 5402553.546 262.642 513188.552 5402553.531 262.64 513188.552 5402553.531 244.64 + + + + + + + + + + + + + + + + + 513188.574 5402553.546 244.64 513188.594 5402553.562 244.64 513188.594 5402553.562 262.644 513188.574 5402553.546 262.642 513188.574 5402553.546 244.64 + + + + + + + + + + + + + + + + + 513188.594 5402553.562 244.64 513188.613 5402553.58 244.64 513188.613 5402553.58 262.645 513188.594 5402553.562 262.644 513188.594 5402553.562 244.64 + + + + + + + + + + + + + + + + + 513188.613 5402553.58 244.64 513188.63 5402553.599 244.64 513188.63 5402553.599 262.647 513188.613 5402553.58 262.645 513188.613 5402553.58 244.64 + + + + + + + + + + + + + + + + + 513188.63 5402553.599 244.64 513188.646 5402553.619 244.64 513188.646 5402553.619 262.649 513188.63 5402553.599 262.647 513188.63 5402553.599 244.64 + + + + + + + + + + + + + + + + + 513188.646 5402553.619 244.64 513188.661 5402553.641 244.64 513188.661 5402553.641 262.651 513188.646 5402553.619 262.649 513188.646 5402553.619 244.64 + + + + + + + + + + + + + + + + + 513188.661 5402553.641 244.64 513188.674 5402553.663 244.64 513188.674 5402553.663 262.652 513188.661 5402553.641 262.651 513188.661 5402553.641 244.64 + + + + + + + + + + + + + + + + + 513188.674 5402553.663 244.64 513188.686 5402553.686 244.64 513188.686 5402553.686 262.654 513188.674 5402553.663 262.652 513188.674 5402553.663 244.64 + + + + + + + + + + + + + + + + + 513188.686 5402553.686 244.64 513188.696 5402553.71 244.64 513188.696 5402553.71 262.656 513188.686 5402553.686 262.654 513188.686 5402553.686 244.64 + + + + + + + + + + + + + + + + + 513188.696 5402553.71 262.656 513188.696 5402553.71 244.64 513188.704 5402553.735 244.64 513188.704 5402553.735 262.658 513188.696 5402553.71 262.656 + + + + + + + + + + + + + + + + + 513188.704 5402553.735 262.658 513188.704 5402553.735 244.64 513188.711 5402553.76 244.64 513188.711 5402553.76 262.66 513188.704 5402553.735 262.658 + + + + + + + + + + + + + + + + + 513188.711 5402553.76 262.66 513188.711 5402553.76 244.64 513188.716 5402553.786 244.64 513188.716 5402553.786 262.662 513188.711 5402553.76 262.66 + + + + + + + + + + + + + + + + + 513188.716 5402553.786 262.662 513188.716 5402553.786 244.64 513188.719 5402553.811 244.64 513188.719 5402553.811 262.663 513188.716 5402553.786 262.662 + + + + + + + + + + + + + + + + + 513188.719 5402553.811 262.663 513188.719 5402553.811 244.64 513188.72 5402553.84 244.64 513188.72 5402553.84 262.665 513188.719 5402553.811 262.663 + + + + + + + + + + + + + + + + + 513192.72 5402552.07 262.662 513188.72 5402553.84 262.665 513188.72 5402553.84 244.64 513192.72 5402552.07 244.64 513192.72 5402552.07 262.662 + + + + + + + + + + + + + + + + + 513192.72 5402552.07 244.64 513192.65 5402551.91 244.64 513192.65 5402551.91 262.65 513192.72 5402552.07 262.662 513192.72 5402552.07 244.64 + + + + + + + + + + + + + + + + + 513192.65 5402551.91 244.64 513192.64 5402551.886 244.64 513192.64 5402551.886 262.648 513192.65 5402551.91 262.65 513192.65 5402551.91 244.64 + + + + + + + + + + + + + + + + + 513192.633 5402551.862 244.64 513192.633 5402551.862 262.646 513192.64 5402551.886 262.648 513192.64 5402551.886 244.64 513192.633 5402551.862 244.64 + + + + + + + + + + + + + + + + + 513192.628 5402551.839 244.64 513192.628 5402551.839 262.645 513192.633 5402551.862 262.646 513192.633 5402551.862 244.64 513192.628 5402551.839 244.64 + + + + + + + + + + + + + + + + + 513192.624 5402551.815 244.64 513192.624 5402551.815 262.643 513192.628 5402551.839 262.645 513192.628 5402551.839 244.64 513192.624 5402551.815 244.64 + + + + + + + + + + + + + + + + + 513192.622 5402551.79 244.64 513192.622 5402551.79 262.641 513192.624 5402551.815 262.643 513192.624 5402551.815 244.64 513192.622 5402551.79 244.64 + + + + + + + + + + + + + + + + + 513192.621 5402551.766 244.64 513192.621 5402551.766 262.64 513192.622 5402551.79 262.641 513192.622 5402551.79 244.64 513192.621 5402551.766 244.64 + + + + + + + + + + + + + + + + + 513192.622 5402551.742 244.64 513192.622 5402551.742 262.638 513192.621 5402551.766 262.64 513192.621 5402551.766 244.64 513192.622 5402551.742 244.64 + + + + + + + + + + + + + + + + + 513192.625 5402551.717 244.64 513192.625 5402551.717 262.637 513192.622 5402551.742 262.638 513192.622 5402551.742 244.64 513192.625 5402551.717 244.64 + + + + + + + + + + + + + + + + + 513192.629 5402551.694 244.64 513192.629 5402551.694 262.635 513192.625 5402551.717 262.637 513192.625 5402551.717 244.64 513192.629 5402551.694 244.64 + + + + + + + + + + + + + + + + + 513192.636 5402551.67 244.64 513192.636 5402551.67 262.634 513192.629 5402551.694 262.635 513192.629 5402551.694 244.64 513192.636 5402551.67 244.64 + + + + + + + + + + + + + + + + + 513192.644 5402551.647 244.64 513192.644 5402551.647 262.633 513192.636 5402551.67 262.634 513192.636 5402551.67 244.64 513192.644 5402551.647 244.64 + + + + + + + + + + + + + + + + + 513192.653 5402551.625 262.632 513192.644 5402551.647 262.633 513192.644 5402551.647 244.64 513192.653 5402551.625 244.64 513192.653 5402551.625 262.632 + + + + + + + + + + + + + + + + + 513192.664 5402551.603 262.63 513192.653 5402551.625 262.632 513192.653 5402551.625 244.64 513192.664 5402551.603 244.64 513192.664 5402551.603 262.63 + + + + + + + + + + + + + + + + + 513192.676 5402551.582 262.629 513192.664 5402551.603 262.63 513192.664 5402551.603 244.64 513192.676 5402551.582 244.64 513192.676 5402551.582 262.629 + + + + + + + + + + + + + + + + + 513192.676 5402551.582 244.64 513192.69 5402551.562 244.64 513192.69 5402551.562 262.629 513192.676 5402551.582 262.629 513192.676 5402551.582 244.64 + + + + + + + + + + + + + + + + + 513192.705 5402551.543 262.628 513192.69 5402551.562 262.629 513192.69 5402551.562 244.64 513192.705 5402551.543 244.64 513192.705 5402551.543 262.628 + + + + + + + + + + + + + + + + + 513192.722 5402551.525 262.627 513192.705 5402551.543 262.628 513192.705 5402551.543 244.64 513192.722 5402551.525 244.64 513192.722 5402551.525 262.627 + + + + + + + + + + + + + + + + + 513192.74 5402551.509 262.626 513192.722 5402551.525 262.627 513192.722 5402551.525 244.64 513192.74 5402551.509 244.64 513192.74 5402551.509 262.626 + + + + + + + + + + + + + + + + + 513192.74 5402551.509 244.64 513192.759 5402551.493 244.64 513192.759 5402551.493 262.626 513192.74 5402551.509 262.626 513192.74 5402551.509 244.64 + + + + + + + + + + + + + + + + + 513192.759 5402551.493 244.64 513192.778 5402551.479 244.64 513192.778 5402551.479 262.626 513192.759 5402551.493 262.626 513192.759 5402551.493 244.64 + + + + + + + + + + + + + + + + + 513192.799 5402551.466 262.625 513192.778 5402551.479 262.626 513192.778 5402551.479 244.64 513192.799 5402551.466 244.64 513192.799 5402551.466 262.625 + + + + + + + + + + + + + + + + + 513192.799 5402551.466 244.64 513192.821 5402551.455 244.64 513192.821 5402551.455 262.625 513192.799 5402551.466 262.625 513192.799 5402551.466 244.64 + + + + + + + + + + + + + + + + + 513192.821 5402551.455 244.64 513192.845 5402551.445 244.64 513192.845 5402551.445 262.625 513192.821 5402551.455 262.625 513192.821 5402551.455 244.64 + + + + + + + + + + + + + + + + + 513192.845 5402551.445 244.64 513192.869 5402551.437 244.64 513192.869 5402551.437 262.625 513192.845 5402551.445 262.625 513192.845 5402551.445 244.64 + + + + + + + + + + + + + + + + + 513192.869 5402551.437 244.64 513192.893 5402551.431 244.64 513192.893 5402551.431 262.626 513192.869 5402551.437 262.625 513192.869 5402551.437 244.64 + + + + + + + + + + + + + + + + + 513192.893 5402551.431 244.64 513192.917 5402551.426 244.64 513192.917 5402551.426 262.626 513192.893 5402551.431 262.626 513192.893 5402551.431 244.64 + + + + + + + + + + + + + + + + + 513192.917 5402551.426 244.64 513192.941 5402551.423 244.64 513192.941 5402551.423 262.627 513192.917 5402551.426 262.626 513192.917 5402551.426 244.64 + + + + + + + + + + + + + + + + + 513192.941 5402551.423 244.64 513192.965 5402551.422 244.64 513192.965 5402551.422 262.627 513192.941 5402551.423 262.627 513192.941 5402551.423 244.64 + + + + + + + + + + + + + + + + + 513192.965 5402551.422 244.64 513192.99 5402551.423 244.64 513192.99 5402551.423 262.628 513192.965 5402551.422 262.627 513192.965 5402551.422 244.64 + + + + + + + + + + + + + + + + + 513192.99 5402551.423 244.64 513193.014 5402551.425 244.64 513193.014 5402551.425 262.629 513192.99 5402551.423 262.628 513192.99 5402551.423 244.64 + + + + + + + + + + + + + + + + + 513193.014 5402551.425 244.64 513193.038 5402551.429 244.64 513193.038 5402551.429 262.63 513193.014 5402551.425 262.629 513193.014 5402551.425 244.64 + + + + + + + + + + + + + + + + + 513193.038 5402551.429 244.64 513193.061 5402551.434 244.64 513193.061 5402551.434 262.631 513193.038 5402551.429 262.63 513193.038 5402551.429 244.64 + + + + + + + + + + + + + + + + + 513193.061 5402551.434 244.64 513193.085 5402551.442 244.64 513193.085 5402551.442 262.632 513193.061 5402551.434 262.631 513193.061 5402551.434 244.64 + + + + + + + + + + + + + + + + + 513193.085 5402551.442 244.64 513193.107 5402551.45 244.64 513193.107 5402551.45 262.633 513193.085 5402551.442 262.632 513193.085 5402551.442 244.64 + + + + + + + + + + + + + + + + + 513193.107 5402551.45 244.64 513193.129 5402551.461 244.64 513193.129 5402551.461 262.634 513193.107 5402551.45 262.633 513193.107 5402551.45 244.64 + + + + + + + + + + + + + + + + + 513193.129 5402551.461 244.64 513193.151 5402551.473 244.64 513193.151 5402551.473 262.636 513193.129 5402551.461 262.634 513193.129 5402551.461 244.64 + + + + + + + + + + + + + + + + + 513193.151 5402551.473 244.64 513193.171 5402551.486 244.64 513193.171 5402551.486 262.637 513193.151 5402551.473 262.636 513193.151 5402551.473 244.64 + + + + + + + + + + + + + + + + + 513193.171 5402551.486 244.64 513193.19 5402551.501 244.64 513193.19 5402551.501 262.639 513193.171 5402551.486 262.637 513193.171 5402551.486 244.64 + + + + + + + + + + + + + + + + + 513193.19 5402551.501 244.64 513193.208 5402551.517 244.64 513193.208 5402551.517 262.64 513193.19 5402551.501 262.639 513193.19 5402551.501 244.64 + + + + + + + + + + + + + + + + + 513193.208 5402551.517 244.64 513193.226 5402551.534 244.64 513193.226 5402551.534 262.642 513193.208 5402551.517 262.64 513193.208 5402551.517 244.64 + + + + + + + + + + + + + + + + + 513193.226 5402551.534 244.64 513193.241 5402551.553 244.64 513193.241 5402551.553 262.643 513193.226 5402551.534 262.642 513193.226 5402551.534 244.64 + + + + + + + + + + + + + + + + + 513193.241 5402551.553 244.64 513193.256 5402551.572 244.64 513193.256 5402551.572 262.645 513193.241 5402551.553 262.643 513193.241 5402551.553 244.64 + + + + + + + + + + + + + + + + + 513193.256 5402551.572 244.64 513193.269 5402551.593 244.64 513193.269 5402551.593 262.647 513193.256 5402551.572 262.645 513193.256 5402551.572 244.64 + + + + + + + + + + + + + + + + + 513193.269 5402551.593 244.64 513193.281 5402551.614 244.64 513193.281 5402551.614 262.648 513193.269 5402551.593 262.647 513193.269 5402551.593 244.64 + + + + + + + + + + + + + + + + + 513193.281 5402551.614 244.64 513193.291 5402551.636 244.64 513193.291 5402551.636 262.65 513193.281 5402551.614 262.648 513193.281 5402551.614 244.64 + + + + + + + + + + + + + + + + + 513193.291 5402551.636 244.64 513193.3 5402551.66 244.64 513193.3 5402551.66 262.652 513193.291 5402551.636 262.65 513193.291 5402551.636 244.64 + + + + + + + + + + + + + + + + + 513193.3 5402551.66 244.64 513193.35 5402551.78 244.64 513193.35 5402551.78 262.661 513193.3 5402551.66 262.652 513193.3 5402551.66 244.64 + + + + + + + + + + + + + + + + + 513193.35 5402551.78 244.64 513196.66 5402550.5 244.64 513196.66 5402550.5 262.671 513193.35 5402551.78 262.661 513193.35 5402551.78 244.64 + + + + + + + + + + + + + + + + + 513149.05 5402569.737 244.64 513149.037 5402569.754 244.64 513149.026 5402569.772 244.64 513149.015 5402569.79 244.64 513149.006 5402569.809 244.64 513148.998 5402569.829 244.64 513148.992 5402569.849 244.64 513148.987 5402569.869 244.64 513148.983 5402569.89 244.64 513148.981 5402569.911 244.64 513148.98 5402569.932 244.64 513148.981 5402569.953 244.64 513148.984 5402569.974 244.64 513148.987 5402569.995 244.64 513148.993 5402570.015 244.64 513148.999 5402570.035 244.64 513149.007 5402570.055 244.64 513149.02 5402570.08 244.64 513149.3 5402570.36 244.64 513146.39 5402572.95 244.64 513146.11 5402572.6 244.64 513146.09 5402572.578 244.64 513146.073 5402572.562 244.64 513146.055 5402572.547 244.64 513146.036 5402572.534 244.64 513146.016 5402572.522 244.64 513145.996 5402572.512 244.64 513145.975 5402572.503 244.64 513145.953 5402572.495 244.64 513145.931 5402572.489 244.64 513145.908 5402572.485 244.64 513145.885 5402572.482 244.64 513145.862 5402572.481 244.64 513145.839 5402572.481 244.64 513145.816 5402572.483 244.64 513145.793 5402572.487 244.64 513145.771 5402572.492 244.64 513145.749 5402572.499 244.64 513145.728 5402572.507 244.64 513145.707 5402572.516 244.64 513145.686 5402572.527 244.64 513145.667 5402572.54 244.64 513145.649 5402572.554 244.64 513145.626 5402572.574 244.64 513145.605 5402572.597 244.64 513145.59 5402572.615 244.64 513145.577 5402572.634 244.64 513145.566 5402572.654 244.64 513145.555 5402572.674 244.64 513145.547 5402572.696 244.64 513145.539 5402572.718 244.64 513145.534 5402572.74 244.64 513145.53 5402572.763 244.64 513145.527 5402572.786 244.64 513145.526 5402572.809 244.64 513145.527 5402572.832 244.64 513145.529 5402572.854 244.64 513145.533 5402572.877 244.64 513145.538 5402572.9 244.64 513145.545 5402572.921 244.64 513145.554 5402572.943 244.64 513145.564 5402572.964 244.64 513145.575 5402572.984 244.64 513145.588 5402573.003 244.64 513145.602 5402573.021 244.64 513145.617 5402573.038 244.64 513145.64 5402573.06 244.64 513145.9 5402573.38 244.64 513142.65 5402576.17 244.64 513142.51 5402575.93 244.64 513142.502 5402575.908 244.64 513142.494 5402575.886 244.64 513142.483 5402575.866 244.64 513142.472 5402575.847 244.64 513142.459 5402575.828 244.64 513142.445 5402575.81 244.64 513142.429 5402575.794 244.64 513142.413 5402575.778 244.64 513142.395 5402575.764 244.64 513142.377 5402575.751 244.64 513142.357 5402575.739 244.64 513142.337 5402575.729 244.64 513142.316 5402575.72 244.64 513142.295 5402575.712 244.64 513142.273 5402575.706 244.64 513142.251 5402575.702 244.64 513142.228 5402575.699 244.64 513142.205 5402575.698 244.64 513142.183 5402575.698 244.64 513142.16 5402575.7 244.64 513142.138 5402575.703 244.64 513142.116 5402575.708 244.64 513142.094 5402575.715 244.64 513142.073 5402575.723 244.64 513142.051 5402575.733 244.64 513142.03 5402575.745 244.64 513142.011 5402575.757 244.64 513141.993 5402575.771 244.64 513141.976 5402575.786 244.64 513141.96 5402575.802 244.64 513141.945 5402575.819 244.64 513141.932 5402575.837 244.64 513141.919 5402575.856 244.64 513141.908 5402575.876 244.64 513141.899 5402575.897 244.64 513141.891 5402575.918 244.64 513141.884 5402575.94 244.64 513141.879 5402575.962 244.64 513141.876 5402575.984 244.64 513141.874 5402576.007 244.64 513141.873 5402576.029 244.64 513141.875 5402576.052 244.64 513141.878 5402576.075 244.64 513141.882 5402576.097 244.64 513141.888 5402576.119 244.64 513141.895 5402576.14 244.64 513141.904 5402576.161 244.64 513141.914 5402576.181 244.64 513141.926 5402576.201 244.64 513141.94 5402576.22 244.64 513142.24 5402576.58 244.64 513138.96 5402579.53 244.64 513138.68 5402579.24 244.64 513138.678 5402579.214 244.64 513138.675 5402579.196 244.64 513138.671 5402579.178 244.64 513138.666 5402579.16 244.64 513138.659 5402579.143 244.64 513138.651 5402579.126 244.64 513138.642 5402579.11 244.64 513138.632 5402579.095 244.64 513138.621 5402579.08 244.64 513138.609 5402579.066 244.64 513138.596 5402579.053 244.64 513138.582 5402579.041 244.64 513138.567 5402579.03 244.64 513138.552 5402579.02 244.64 513138.536 5402579.011 244.64 513138.519 5402579.003 244.64 513138.502 5402578.997 244.64 513138.484 5402578.991 244.64 513138.466 5402578.987 244.64 513138.448 5402578.984 244.64 513138.429 5402578.982 244.64 513138.411 5402578.982 244.64 513138.392 5402578.983 244.64 513138.374 5402578.985 244.64 513138.356 5402578.989 244.64 513138.331 5402578.996 244.64 513138.308 5402579.005 244.64 513138.291 5402579.013 244.64 513138.275 5402579.022 244.64 513138.26 5402579.033 244.64 513138.245 5402579.044 244.64 513138.232 5402579.057 244.64 513138.219 5402579.07 244.64 513138.207 5402579.084 244.64 513138.196 5402579.099 244.64 513138.186 5402579.114 244.64 513138.178 5402579.131 244.64 513138.17 5402579.148 244.64 513138.164 5402579.165 244.64 513138.159 5402579.183 244.64 513138.155 5402579.201 244.64 513138.152 5402579.219 244.64 513138.151 5402579.238 244.64 513138.151 5402579.256 244.64 513138.152 5402579.274 244.64 513138.155 5402579.293 244.64 513138.159 5402579.311 244.64 513138.164 5402579.329 244.64 513138.17 5402579.346 244.64 513138.178 5402579.363 244.64 513138.186 5402579.379 244.64 513138.2 5402579.4 244.64 513138.34 5402579.78 244.64 513133.81 5402581.86 244.64 513133.68 5402581.46 244.64 513133.673 5402581.431 244.64 513133.664 5402581.406 244.64 513133.654 5402581.382 244.64 513133.643 5402581.359 244.64 513133.629 5402581.337 244.64 513133.614 5402581.315 244.64 513133.598 5402581.295 244.64 513133.581 5402581.276 244.64 513133.562 5402581.258 244.64 513133.542 5402581.242 244.64 513133.52 5402581.227 244.64 513133.498 5402581.213 244.64 513133.475 5402581.201 244.64 513133.451 5402581.191 244.64 513133.427 5402581.182 244.64 513133.402 5402581.175 244.64 513133.376 5402581.17 244.64 513133.35 5402581.167 244.64 513133.324 5402581.166 244.64 513133.298 5402581.166 244.64 513133.273 5402581.168 244.64 513133.247 5402581.172 244.64 513133.222 5402581.178 244.64 513133.197 5402581.185 244.64 513133.172 5402581.194 244.64 513133.149 5402581.205 244.64 513133.126 5402581.218 244.64 513133.104 5402581.232 244.64 513133.08 5402581.25 244.64 513133.057 5402581.271 244.64 513133.039 5402581.289 244.64 513133.022 5402581.309 244.64 513133.007 5402581.33 244.64 513132.993 5402581.352 244.64 513132.981 5402581.375 244.64 513132.971 5402581.399 244.64 513132.962 5402581.423 244.64 513132.955 5402581.448 244.64 513132.949 5402581.474 244.64 513132.946 5402581.5 244.64 513132.944 5402581.526 244.64 513132.944 5402581.552 244.64 513132.946 5402581.577 244.64 513132.95 5402581.603 244.64 513132.955 5402581.629 244.64 513132.962 5402581.654 244.64 513132.971 5402581.678 244.64 513132.982 5402581.702 244.64 513132.994 5402581.725 244.64 513133.008 5402581.747 244.64 513133.023 5402581.768 244.64 513133.04 5402581.787 244.64 513133.058 5402581.806 244.64 513133.077 5402581.823 244.64 513133.098 5402581.839 244.64 513133.12 5402581.854 244.64 513133.142 5402581.867 244.64 513133.17 5402581.88 244.64 513133.2 5402581.88 244.64 513134.65 5402585.22 244.64 513129.38 5402587.67 244.64 513130.81 5402590.95 244.64 513130.34 5402591.16 244.64 513130.69 5402591.95 244.64 513131.22 5402591.75 244.64 513132.29 5402594.24 244.64 513131.78 5402594.38 244.64 513132.17 5402595.27 244.64 513132.69 5402595.04 244.64 513133.71 5402597.44 244.64 513133.25 5402597.56 244.64 513133.61 5402598.41 244.64 513134.08 5402598.16 244.64 513135.2 5402600.67 244.64 513134.68 5402600.84 244.64 513135.06 5402601.66 244.64 513135.53 5402601.45 244.64 513136.6 5402603.87 244.64 513136.12 5402604.09 244.64 513136.47 5402604.9 244.64 513136.98 5402604.66 244.64 513138.05 5402607.09 244.64 513137.55 5402607.27 244.64 513137.86 5402608.06 244.64 513138.39 5402607.83 244.64 513139.58 5402610.52 244.64 513139.11 5402610.8 244.64 513139.46 5402611.6 244.64 513139.98 5402611.44 244.64 513141.6 5402614.96 244.64 513139.92 5402616.3 244.64 513138.41 5402617.33 244.64 513136.33 5402618.75 244.64 513137.221 5402619.876 244.64 513140.57 5402624.11 244.64 513144.69 5402622.22 244.64 513150.45 5402619.52 244.64 513152.04 5402622.99 244.64 513161.89 5402618.59 244.64 513161.79 5402618.38 244.64 513160.27 5402615.0 244.64 513210.73 5402592.46 244.64 513212.22 5402595.95 244.64 513212.29 5402596.13 244.64 513222.26 5402591.7 244.64 513220.44 5402587.66 244.64 513220.84 5402587.54 244.64 513219.026 5402583.413 244.64 513207.72 5402557.69 244.64 513204.69 5402559.04 244.64 513201.51 5402552.03 244.64 513201.36 5402551.76 244.64 513201.224 5402551.554 244.64 513201.074 5402551.358 244.64 513200.911 5402551.173 244.64 513200.735 5402551.0 244.64 513200.547 5402550.84 244.64 513200.349 5402550.693 244.64 513200.141 5402550.561 244.64 513199.924 5402550.443 244.64 513199.7 5402550.341 244.64 513199.409 5402550.235 244.64 513199.111 5402550.155 244.64 513198.869 5402550.11 244.64 513198.623 5402550.082 244.64 513198.377 5402550.072 244.64 513198.13 5402550.078 244.64 513197.885 5402550.102 244.64 513197.642 5402550.143 244.64 513197.402 5402550.2 244.64 513197.167 5402550.274 244.64 513196.937 5402550.365 244.64 513196.66 5402550.5 244.64 513193.35 5402551.78 244.64 513193.3 5402551.66 244.64 513193.291 5402551.636 244.64 513193.281 5402551.614 244.64 513193.269 5402551.593 244.64 513193.256 5402551.572 244.64 513193.241 5402551.553 244.64 513193.226 5402551.534 244.64 513193.208 5402551.517 244.64 513193.19 5402551.501 244.64 513193.171 5402551.486 244.64 513193.151 5402551.473 244.64 513193.129 5402551.461 244.64 513193.107 5402551.45 244.64 513193.085 5402551.442 244.64 513193.061 5402551.434 244.64 513193.038 5402551.429 244.64 513193.014 5402551.425 244.64 513192.99 5402551.423 244.64 513192.965 5402551.422 244.64 513192.941 5402551.423 244.64 513192.917 5402551.426 244.64 513192.893 5402551.431 244.64 513192.869 5402551.437 244.64 513192.845 5402551.445 244.64 513192.821 5402551.455 244.64 513192.799 5402551.466 244.64 513192.778 5402551.479 244.64 513192.759 5402551.493 244.64 513192.74 5402551.509 244.64 513192.722 5402551.525 244.64 513192.705 5402551.543 244.64 513192.69 5402551.562 244.64 513192.676 5402551.582 244.64 513192.664 5402551.603 244.64 513192.653 5402551.625 244.64 513192.644 5402551.647 244.64 513192.636 5402551.67 244.64 513192.629 5402551.694 244.64 513192.625 5402551.717 244.64 513192.622 5402551.742 244.64 513192.621 5402551.766 244.64 513192.622 5402551.79 244.64 513192.624 5402551.815 244.64 513192.628 5402551.839 244.64 513192.633 5402551.862 244.64 513192.64 5402551.886 244.64 513192.65 5402551.91 244.64 513192.72 5402552.07 244.64 513188.72 5402553.84 244.64 513188.719 5402553.811 244.64 513188.716 5402553.786 244.64 513188.711 5402553.76 244.64 513188.704 5402553.735 244.64 513188.696 5402553.71 244.64 513188.686 5402553.686 244.64 513188.674 5402553.663 244.64 513188.661 5402553.641 244.64 513188.646 5402553.619 244.64 513188.63 5402553.599 244.64 513188.613 5402553.58 244.64 513188.594 5402553.562 244.64 513188.574 5402553.546 244.64 513188.552 5402553.531 244.64 513188.53 5402553.517 244.64 513188.507 5402553.505 244.64 513188.483 5402553.495 244.64 513188.459 5402553.486 244.64 513188.434 5402553.479 244.64 513188.408 5402553.474 244.64 513188.383 5402553.471 244.64 513188.357 5402553.469 244.64 513188.331 5402553.47 244.64 513188.305 5402553.472 244.64 513188.279 5402553.476 244.64 513188.254 5402553.481 244.64 513188.229 5402553.489 244.64 513188.202 5402553.499 244.64 513188.175 5402553.512 244.64 513188.153 5402553.524 244.64 513188.131 5402553.539 244.64 513188.111 5402553.555 244.64 513188.091 5402553.572 244.64 513188.073 5402553.591 244.64 513188.056 5402553.61 244.64 513188.041 5402553.631 244.64 513188.027 5402553.653 244.64 513188.014 5402553.676 244.64 513188.004 5402553.7 244.64 513187.995 5402553.724 244.64 513187.987 5402553.749 244.64 513187.982 5402553.774 244.64 513187.978 5402553.8 244.64 513187.976 5402553.826 244.64 513187.976 5402553.852 244.64 513187.977 5402553.878 244.64 513187.981 5402553.904 244.64 513187.986 5402553.929 244.64 513187.993 5402553.954 244.64 513188.002 5402553.979 244.64 513188.012 5402554.002 244.64 513188.024 5402554.025 244.64 513188.038 5402554.047 244.64 513188.053 5402554.069 244.64 513188.07 5402554.089 244.64 513188.09 5402554.11 244.64 513184.1 5402555.87 244.64 513184.102 5402555.837 244.64 513184.102 5402555.811 244.64 513184.1 5402555.786 244.64 513184.096 5402555.76 244.64 513184.091 5402555.735 244.64 513184.083 5402555.711 244.64 513184.074 5402555.687 244.64 513184.064 5402555.663 244.64 513184.052 5402555.641 244.64 513184.038 5402555.619 244.64 513184.022 5402555.599 244.64 513184.006 5402555.579 244.64 513183.988 5402555.561 244.64 513183.969 5402555.544 244.64 513183.948 5402555.528 244.64 513183.927 5402555.514 244.64 513183.905 5402555.501 244.64 513183.881 5402555.49 244.64 513183.857 5402555.481 244.64 513183.833 5402555.473 244.64 513183.808 5402555.467 244.64 513183.783 5402555.463 244.64 513183.757 5402555.461 244.64 513183.732 5402555.46 244.64 513183.706 5402555.461 244.64 513183.68 5402555.464 244.64 513183.655 5402555.469 244.64 513183.63 5402555.475 244.64 513183.599 5402555.486 244.64 513183.568 5402555.5 244.64 513183.546 5402555.512 244.64 513183.524 5402555.526 244.64 513183.504 5402555.542 244.64 513183.484 5402555.559 244.64 513183.466 5402555.577 244.64 513183.449 5402555.596 244.64 513183.434 5402555.617 244.64 513183.42 5402555.638 244.64 513183.408 5402555.66 244.64 513183.397 5402555.684 244.64 513183.388 5402555.708 244.64 513183.38 5402555.732 244.64 513183.374 5402555.757 244.64 513183.37 5402555.783 244.64 513183.368 5402555.808 244.64 513183.367 5402555.834 244.64 513183.369 5402555.859 244.64 513183.372 5402555.885 244.64 513183.377 5402555.91 244.64 513183.384 5402555.935 244.64 513183.392 5402555.959 244.64 513183.402 5402555.983 244.64 513183.413 5402556.006 244.64 513183.427 5402556.027 244.64 513183.441 5402556.048 244.64 513183.457 5402556.068 244.64 513183.475 5402556.087 244.64 513183.5 5402556.11 244.64 513179.46 5402557.9 244.64 513179.464 5402557.875 244.64 513179.465 5402557.85 244.64 513179.465 5402557.825 244.64 513179.464 5402557.8 244.64 513179.461 5402557.775 244.64 513179.455 5402557.751 244.64 513179.449 5402557.727 244.64 513179.44 5402557.704 244.64 513179.43 5402557.681 244.64 513179.418 5402557.659 244.64 513179.405 5402557.638 244.64 513179.391 5402557.617 244.64 513179.375 5402557.598 244.64 513179.357 5402557.58 244.64 513179.339 5402557.564 244.64 513179.319 5402557.548 244.64 513179.299 5402557.534 244.64 513179.277 5402557.522 244.64 513179.255 5402557.511 244.64 513179.232 5402557.501 244.64 513179.208 5402557.494 244.64 513179.184 5402557.488 244.64 513179.16 5402557.483 244.64 513179.135 5402557.48 244.64 513179.11 5402557.479 244.64 513179.085 5402557.48 244.64 513179.06 5402557.483 244.64 513179.036 5402557.487 244.64 513179.012 5402557.493 244.64 513178.987 5402557.501 244.64 513178.964 5402557.511 244.64 513178.941 5402557.521 244.64 513178.92 5402557.534 244.64 513178.899 5402557.548 244.64 513178.879 5402557.563 244.64 513178.861 5402557.58 244.64 513178.844 5402557.598 244.64 513178.828 5402557.617 244.64 513178.813 5402557.637 244.64 513178.8 5402557.658 244.64 513178.788 5402557.68 244.64 513178.778 5402557.703 244.64 513178.77 5402557.726 244.64 513178.763 5402557.75 244.64 513178.758 5402557.775 244.64 513178.754 5402557.799 244.64 513178.752 5402557.824 244.64 513178.752 5402557.849 244.64 513178.754 5402557.874 244.64 513178.758 5402557.898 244.64 513178.763 5402557.923 244.64 513178.77 5402557.947 244.64 513178.778 5402557.97 244.64 513178.788 5402557.993 244.64 513178.8 5402558.015 244.64 513178.813 5402558.036 244.64 513178.828 5402558.056 244.64 513178.844 5402558.075 244.64 513178.861 5402558.093 244.64 513178.88 5402558.11 244.64 513174.76 5402559.97 244.64 513174.765 5402559.944 244.64 513174.768 5402559.921 244.64 513174.769 5402559.897 244.64 513174.768 5402559.873 244.64 513174.766 5402559.849 244.64 513174.762 5402559.826 244.64 513174.757 5402559.803 244.64 513174.75 5402559.78 244.64 513174.741 5402559.758 244.64 513174.731 5402559.736 244.64 513174.719 5402559.715 244.64 513174.706 5402559.695 244.64 513174.692 5402559.677 244.64 513174.676 5402559.659 244.64 513174.659 5402559.642 244.64 513174.641 5402559.626 244.64 513174.622 5402559.612 244.64 513174.602 5402559.599 244.64 513174.581 5402559.588 244.64 513174.56 5402559.578 244.64 513174.537 5402559.569 244.64 513174.514 5402559.563 244.64 513174.491 5402559.557 244.64 513174.468 5402559.554 244.64 513174.444 5402559.552 244.64 513174.42 5402559.551 244.64 513174.396 5402559.553 244.64 513174.373 5402559.556 244.64 513174.349 5402559.56 244.64 513174.327 5402559.567 244.64 513174.304 5402559.575 244.64 513174.28 5402559.585 244.64 513174.257 5402559.597 244.64 513174.237 5402559.61 244.64 513174.218 5402559.624 244.64 513174.2 5402559.639 244.64 513174.182 5402559.656 244.64 513174.166 5402559.673 244.64 513174.152 5402559.692 244.64 513174.138 5402559.712 244.64 513174.127 5402559.732 244.64 513174.116 5402559.754 244.64 513174.107 5402559.776 244.64 513174.1 5402559.798 244.64 513174.094 5402559.822 244.64 513174.09 5402559.845 244.64 513174.087 5402559.869 244.64 513174.087 5402559.893 244.64 513174.087 5402559.916 244.64 513174.09 5402559.94 244.64 513174.094 5402559.963 244.64 513174.1 5402559.987 244.64 513174.107 5402560.009 244.64 513174.116 5402560.031 244.64 513174.127 5402560.053 244.64 513174.138 5402560.073 244.64 513174.152 5402560.093 244.64 513174.166 5402560.112 244.64 513174.182 5402560.129 244.64 513174.2 5402560.146 244.64 513174.218 5402560.161 244.64 513174.237 5402560.175 244.64 513174.257 5402560.188 244.64 513174.28 5402560.2 244.64 513170.15 5402562.02 244.64 513170.154 5402561.988 244.64 513170.154 5402561.963 244.64 513170.153 5402561.939 244.64 513170.15 5402561.914 244.64 513170.146 5402561.89 244.64 513170.14 5402561.866 244.64 513170.132 5402561.843 244.64 513170.122 5402561.821 244.64 513170.111 5402561.799 244.64 513170.099 5402561.777 244.64 513170.085 5402561.757 244.64 513170.07 5402561.738 244.64 513170.053 5402561.72 244.64 513170.036 5402561.703 244.64 513170.017 5402561.688 244.64 513169.997 5402561.673 244.64 513169.976 5402561.661 244.64 513169.954 5402561.649 244.64 513169.931 5402561.639 244.64 513169.908 5402561.631 244.64 513169.885 5402561.625 244.64 513169.861 5402561.62 244.64 513169.836 5402561.617 244.64 513169.812 5402561.615 244.64 513169.787 5402561.615 244.64 513169.763 5402561.617 244.64 513169.739 5402561.621 244.64 513169.715 5402561.626 244.64 513169.691 5402561.633 244.64 513169.661 5402561.645 244.64 513169.631 5402561.66 244.64 513169.61 5402561.673 244.64 513169.59 5402561.687 244.64 513169.571 5402561.702 244.64 513169.553 5402561.719 244.64 513169.537 5402561.737 244.64 513169.521 5402561.756 244.64 513169.507 5402561.776 244.64 513169.495 5402561.797 244.64 513169.484 5402561.819 244.64 513169.474 5402561.842 244.64 513169.466 5402561.865 244.64 513169.46 5402561.889 244.64 513169.456 5402561.913 244.64 513169.453 5402561.937 244.64 513169.452 5402561.962 244.64 513169.452 5402561.986 244.64 513169.454 5402562.011 244.64 513169.458 5402562.035 244.64 513169.464 5402562.059 244.64 513169.471 5402562.082 244.64 513169.48 5402562.105 244.64 513169.491 5402562.127 244.64 513169.503 5402562.149 244.64 513169.516 5402562.169 244.64 513169.531 5402562.189 244.64 513169.547 5402562.207 244.64 513169.564 5402562.224 244.64 513169.583 5402562.24 244.64 513169.61 5402562.26 244.64 513165.11 5402564.25 244.64 513162.77 5402561.57 244.64 513160.97 5402559.54 244.64 513160.962 5402559.523 244.64 513160.955 5402559.51 244.64 513160.946 5402559.496 244.64 513160.936 5402559.484 244.64 513160.926 5402559.472 244.64 513160.914 5402559.46 244.64 513160.902 5402559.45 244.64 513160.89 5402559.44 244.64 513160.876 5402559.432 244.64 513160.862 5402559.424 244.64 513160.848 5402559.417 244.64 513160.833 5402559.412 244.64 513160.818 5402559.407 244.64 513160.803 5402559.404 244.64 513160.787 5402559.401 244.64 513160.771 5402559.4 244.64 513160.755 5402559.4 244.64 513160.739 5402559.4 244.64 513160.723 5402559.402 244.64 513160.708 5402559.406 244.64 513160.692 5402559.41 244.64 513160.677 5402559.415 244.64 513160.663 5402559.421 244.64 513160.649 5402559.429 244.64 513160.633 5402559.438 244.64 513160.617 5402559.45 244.64 513160.605 5402559.46 244.64 513160.594 5402559.471 244.64 513160.583 5402559.483 244.64 513160.574 5402559.496 244.64 513160.565 5402559.509 244.64 513160.557 5402559.523 244.64 513160.55 5402559.537 244.64 513160.545 5402559.552 244.64 513160.54 5402559.567 244.64 513160.536 5402559.583 244.64 513160.534 5402559.598 244.64 513160.532 5402559.614 244.64 513160.532 5402559.63 244.64 513160.532 5402559.646 244.64 513160.534 5402559.662 244.64 513160.537 5402559.677 244.64 513160.541 5402559.693 244.64 513160.546 5402559.708 244.64 513160.553 5402559.722 244.64 513160.56 5402559.737 244.64 513160.568 5402559.75 244.64 513160.577 5402559.763 244.64 513160.587 5402559.776 244.64 513160.6 5402559.79 244.64 513160.8 5402560.07 244.64 513157.53 5402562.98 244.64 513157.27 5402562.76 244.64 513157.245 5402562.742 244.64 513157.226 5402562.731 244.64 513157.206 5402562.721 244.64 513157.185 5402562.712 244.64 513157.164 5402562.705 244.64 513157.142 5402562.699 244.64 513157.12 5402562.695 244.64 513157.098 5402562.692 244.64 513157.075 5402562.691 244.64 513157.053 5402562.692 244.64 513157.03 5402562.694 244.64 513157.008 5402562.697 244.64 513156.986 5402562.702 244.64 513156.965 5402562.709 244.64 513156.944 5402562.717 244.64 513156.923 5402562.727 244.64 513156.904 5402562.738 244.64 513156.885 5402562.75 244.64 513156.861 5402562.769 244.64 513156.84 5402562.789 244.64 513156.825 5402562.806 244.64 513156.811 5402562.824 244.64 513156.798 5402562.842 244.64 513156.787 5402562.862 244.64 513156.777 5402562.882 244.64 513156.769 5402562.903 244.64 513156.762 5402562.924 244.64 513156.756 5402562.946 244.64 513156.752 5402562.968 244.64 513156.75 5402562.99 244.64 513156.749 5402563.013 244.64 513156.75 5402563.035 244.64 513156.752 5402563.057 244.64 513156.756 5402563.08 244.64 513156.762 5402563.102 244.64 513156.768 5402563.123 244.64 513156.777 5402563.144 244.64 513156.79 5402563.17 244.64 513157.03 5402563.45 244.64 513153.75 5402566.38 244.64 513153.49 5402566.16 244.64 513153.469 5402566.14 244.64 513153.453 5402566.127 244.64 513153.435 5402566.115 244.64 513153.417 5402566.105 244.64 513153.398 5402566.095 244.64 513153.379 5402566.087 244.64 513153.359 5402566.08 244.64 513153.338 5402566.075 244.64 513153.317 5402566.071 244.64 513153.296 5402566.069 244.64 513153.275 5402566.068 244.64 513153.254 5402566.069 244.64 513153.233 5402566.071 244.64 513153.212 5402566.074 244.64 513153.192 5402566.079 244.64 513153.172 5402566.086 244.64 513153.152 5402566.093 244.64 513153.133 5402566.102 244.64 513153.115 5402566.113 244.64 513153.091 5402566.129 244.64 513153.069 5402566.147 244.64 513153.054 5402566.162 244.64 513153.04 5402566.177 244.64 513153.027 5402566.194 244.64 513153.016 5402566.212 244.64 513153.005 5402566.23 244.64 513152.996 5402566.249 244.64 513152.988 5402566.269 244.64 513152.982 5402566.289 244.64 513152.977 5402566.309 244.64 513152.973 5402566.33 244.64 513152.971 5402566.351 244.64 513152.97 5402566.372 244.64 513152.971 5402566.393 244.64 513152.974 5402566.414 244.64 513152.977 5402566.435 244.64 513152.983 5402566.455 244.64 513152.989 5402566.476 244.64 513152.997 5402566.495 244.64 513153.01 5402566.52 244.64 513153.29 5402566.8 244.64 513149.76 5402569.94 244.64 513149.5 5402569.72 244.64 513149.479 5402569.7 244.64 513149.463 5402569.687 244.64 513149.445 5402569.675 244.64 513149.427 5402569.665 244.64 513149.408 5402569.655 244.64 513149.389 5402569.647 244.64 513149.368 5402569.64 244.64 513149.348 5402569.635 244.64 513149.327 5402569.631 244.64 513149.306 5402569.629 244.64 513149.285 5402569.628 244.64 513149.264 5402569.629 244.64 513149.243 5402569.631 244.64 513149.222 5402569.634 244.64 513149.202 5402569.639 244.64 513149.182 5402569.646 244.64 513149.162 5402569.653 244.64 513149.143 5402569.662 244.64 513149.125 5402569.673 244.64 513149.101 5402569.689 244.64 513149.079 5402569.707 244.64 513149.064 5402569.722 244.64 513149.05 5402569.737 244.64 + + + + + + + + + + + + + + + + + 513133.12 5402581.854 244.64 513133.098 5402581.839 244.64 513133.098 5402581.839 262.925 513133.12 5402581.854 262.927 513133.12 5402581.854 244.64 + + + + + + + + + + + + + + + + + 513133.098 5402581.839 244.64 513133.077 5402581.823 244.64 513133.077 5402581.823 262.924 513133.098 5402581.839 262.925 513133.098 5402581.839 244.64 + + + + + + + + + + + + + + + + + 513133.077 5402581.823 244.64 513133.058 5402581.806 244.64 513133.058 5402581.806 262.922 513133.077 5402581.823 262.924 513133.077 5402581.823 244.64 + + + + + + + + + + + + + + + + + 513133.058 5402581.806 244.64 513133.04 5402581.787 244.64 513133.04 5402581.787 262.92 513133.058 5402581.806 262.922 513133.058 5402581.806 244.64 + + + + + + + + + + + + + + + + + 513133.04 5402581.787 244.64 513133.023 5402581.768 244.64 513133.023 5402581.768 262.918 513133.04 5402581.787 262.92 513133.04 5402581.787 244.64 + + + + + + + + + + + + + + + + + 513133.023 5402581.768 244.64 513133.008 5402581.747 244.64 513133.008 5402581.747 262.917 513133.023 5402581.768 262.918 513133.023 5402581.768 244.64 + + + + + + + + + + + + + + + + + 513133.008 5402581.747 244.64 513132.994 5402581.725 244.64 513132.994 5402581.725 262.915 513133.008 5402581.747 262.917 513133.008 5402581.747 244.64 + + + + + + + + + + + + + + + + + 513132.994 5402581.725 244.64 513132.982 5402581.702 244.64 513132.982 5402581.702 262.913 513132.994 5402581.725 262.915 513132.994 5402581.725 244.64 + + + + + + + + + + + + + + + + + 513132.982 5402581.702 244.64 513132.971 5402581.678 244.64 513132.971 5402581.678 262.911 513132.982 5402581.702 262.913 513132.982 5402581.702 244.64 + + + + + + + + + + + + + + + + + 513132.971 5402581.678 244.64 513132.962 5402581.654 244.64 513132.962 5402581.654 262.909 513132.971 5402581.678 262.911 513132.971 5402581.678 244.64 + + + + + + + + + + + + + + + + + 513132.955 5402581.629 244.64 513132.955 5402581.629 262.908 513132.962 5402581.654 262.909 513132.962 5402581.654 244.64 513132.955 5402581.629 244.64 + + + + + + + + + + + + + + + + + 513132.95 5402581.603 244.64 513132.95 5402581.603 262.906 513132.955 5402581.629 262.908 513132.955 5402581.629 244.64 513132.95 5402581.603 244.64 + + + + + + + + + + + + + + + + + 513132.946 5402581.577 244.64 513132.946 5402581.577 262.904 513132.95 5402581.603 262.906 513132.95 5402581.603 244.64 513132.946 5402581.577 244.64 + + + + + + + + + + + + + + + + + 513132.944 5402581.552 244.64 513132.944 5402581.552 262.902 513132.946 5402581.577 262.904 513132.946 5402581.577 244.64 513132.944 5402581.552 244.64 + + + + + + + + + + + + + + + + + 513132.944 5402581.526 244.64 513132.944 5402581.526 262.901 513132.944 5402581.552 262.902 513132.944 5402581.552 244.64 513132.944 5402581.526 244.64 + + + + + + + + + + + + + + + + + 513132.946 5402581.5 244.64 513132.946 5402581.5 262.899 513132.944 5402581.526 262.901 513132.944 5402581.526 244.64 513132.946 5402581.5 244.64 + + + + + + + + + + + + + + + + + 513132.949 5402581.474 244.64 513132.949 5402581.474 262.897 513132.946 5402581.5 262.899 513132.946 5402581.5 244.64 513132.949 5402581.474 244.64 + + + + + + + + + + + + + + + + + 513132.955 5402581.448 244.64 513132.955 5402581.448 262.896 513132.949 5402581.474 262.897 513132.949 5402581.474 244.64 513132.955 5402581.448 244.64 + + + + + + + + + + + + + + + + + 513132.962 5402581.423 244.64 513132.962 5402581.423 262.894 513132.955 5402581.448 262.896 513132.955 5402581.448 244.64 513132.962 5402581.423 244.64 + + + + + + + + + + + + + + + + + 513132.971 5402581.399 262.893 513132.962 5402581.423 262.894 513132.962 5402581.423 244.64 513132.971 5402581.399 244.64 513132.971 5402581.399 262.893 + + + + + + + + + + + + + + + + + 513132.981 5402581.375 262.892 513132.971 5402581.399 262.893 513132.971 5402581.399 244.64 513132.981 5402581.375 244.64 513132.981 5402581.375 262.892 + + + + + + + + + + + + + + + + + 513132.993 5402581.352 262.891 513132.981 5402581.375 262.892 513132.981 5402581.375 244.64 513132.993 5402581.352 244.64 513132.993 5402581.352 262.891 + + + + + + + + + + + + + + + + + 513133.007 5402581.33 262.89 513132.993 5402581.352 262.891 513132.993 5402581.352 244.64 513133.007 5402581.33 244.64 513133.007 5402581.33 262.89 + + + + + + + + + + + + + + + + + 513133.022 5402581.309 262.889 513133.007 5402581.33 262.89 513133.007 5402581.33 244.64 513133.022 5402581.309 244.64 513133.022 5402581.309 262.889 + + + + + + + + + + + + + + + + + 513133.039 5402581.289 262.888 513133.022 5402581.309 262.889 513133.022 5402581.309 244.64 513133.039 5402581.289 244.64 513133.039 5402581.289 262.888 + + + + + + + + + + + + + + + + + 513133.057 5402581.271 262.887 513133.039 5402581.289 262.888 513133.039 5402581.289 244.64 513133.057 5402581.271 244.64 513133.057 5402581.271 262.887 + + + + + + + + + + + + + + + + + 513133.08 5402581.25 262.886 513133.057 5402581.271 262.887 513133.057 5402581.271 244.64 513133.08 5402581.25 244.64 513133.08 5402581.25 262.886 + + + + + + + + + + + + + + + + + 513133.08 5402581.25 244.64 513133.104 5402581.232 244.64 513133.104 5402581.232 262.886 513133.08 5402581.25 262.886 513133.08 5402581.25 244.64 + + + + + + + + + + + + + + + + + 513133.104 5402581.232 244.64 513133.126 5402581.218 244.64 513133.126 5402581.218 262.886 513133.104 5402581.232 262.886 513133.104 5402581.232 244.64 + + + + + + + + + + + + + + + + + 513133.149 5402581.205 262.885 513133.126 5402581.218 262.886 513133.126 5402581.218 244.64 513133.149 5402581.205 244.64 513133.149 5402581.205 262.885 + + + + + + + + + + + + + + + + + 513133.149 5402581.205 244.64 513133.172 5402581.194 244.64 513133.172 5402581.194 262.885 513133.149 5402581.205 262.885 513133.149 5402581.205 244.64 + + + + + + + + + + + + + + + + + 513133.172 5402581.194 244.64 513133.197 5402581.185 244.64 513133.197 5402581.185 262.886 513133.172 5402581.194 262.885 513133.172 5402581.194 244.64 + + + + + + + + + + + + + + + + + 513133.197 5402581.185 244.64 513133.222 5402581.178 244.64 513133.222 5402581.178 262.886 513133.197 5402581.185 262.886 513133.197 5402581.185 244.64 + + + + + + + + + + + + + + + + + 513133.222 5402581.178 244.64 513133.247 5402581.172 244.64 513133.247 5402581.172 262.886 513133.222 5402581.178 262.886 513133.222 5402581.178 244.64 + + + + + + + + + + + + + + + + + 513133.247 5402581.172 244.64 513133.273 5402581.168 244.64 513133.273 5402581.168 262.887 513133.247 5402581.172 262.886 513133.247 5402581.172 244.64 + + + + + + + + + + + + + + + + + 513133.273 5402581.168 244.64 513133.298 5402581.166 244.64 513133.298 5402581.166 262.887 513133.273 5402581.168 262.887 513133.273 5402581.168 244.64 + + + + + + + + + + + + + + + + + 513133.298 5402581.166 244.64 513133.324 5402581.166 244.64 513133.324 5402581.166 262.888 513133.298 5402581.166 262.887 513133.298 5402581.166 244.64 + + + + + + + + + + + + + + + + + 513133.324 5402581.166 244.64 513133.35 5402581.167 244.64 513133.35 5402581.167 262.889 513133.324 5402581.166 262.888 513133.324 5402581.166 244.64 + + + + + + + + + + + + + + + + + 513133.35 5402581.167 244.64 513133.376 5402581.17 244.64 513133.376 5402581.17 262.89 513133.35 5402581.167 262.889 513133.35 5402581.167 244.64 + + + + + + + + + + + + + + + + + 513133.376 5402581.17 244.64 513133.402 5402581.175 244.64 513133.402 5402581.175 262.891 513133.376 5402581.17 262.89 513133.376 5402581.17 244.64 + + + + + + + + + + + + + + + + + 513133.402 5402581.175 244.64 513133.427 5402581.182 244.64 513133.427 5402581.182 262.892 513133.402 5402581.175 262.891 513133.402 5402581.175 244.64 + + + + + + + + + + + + + + + + + 513133.427 5402581.182 244.64 513133.451 5402581.191 244.64 513133.451 5402581.191 262.893 513133.427 5402581.182 262.892 513133.427 5402581.182 244.64 + + + + + + + + + + + + + + + + + 513133.451 5402581.191 244.64 513133.475 5402581.201 244.64 513133.475 5402581.201 262.894 513133.451 5402581.191 262.893 513133.451 5402581.191 244.64 + + + + + + + + + + + + + + + + + 513133.475 5402581.201 244.64 513133.498 5402581.213 244.64 513133.498 5402581.213 262.896 513133.475 5402581.201 262.894 513133.475 5402581.201 244.64 + + + + + + + + + + + + + + + + + 513133.498 5402581.213 244.64 513133.52 5402581.227 244.64 513133.52 5402581.227 262.897 513133.498 5402581.213 262.896 513133.498 5402581.213 244.64 + + + + + + + + + + + + + + + + + 513133.52 5402581.227 244.64 513133.542 5402581.242 244.64 513133.542 5402581.242 262.899 513133.52 5402581.227 262.897 513133.52 5402581.227 244.64 + + + + + + + + + + + + + + + + + 513133.542 5402581.242 244.64 513133.562 5402581.258 244.64 513133.562 5402581.258 262.9 513133.542 5402581.242 262.899 513133.542 5402581.242 244.64 + + + + + + + + + + + + + + + + + 513133.562 5402581.258 244.64 513133.581 5402581.276 244.64 513133.581 5402581.276 262.902 513133.562 5402581.258 262.9 513133.562 5402581.258 244.64 + + + + + + + + + + + + + + + + + 513133.581 5402581.276 244.64 513133.598 5402581.295 244.64 513133.598 5402581.295 262.904 513133.581 5402581.276 262.902 513133.581 5402581.276 244.64 + + + + + + + + + + + + + + + + + 513133.598 5402581.295 244.64 513133.614 5402581.315 244.64 513133.614 5402581.315 262.906 513133.598 5402581.295 262.904 513133.598 5402581.295 244.64 + + + + + + + + + + + + + + + + + 513133.614 5402581.315 244.64 513133.629 5402581.337 244.64 513133.629 5402581.337 262.907 513133.614 5402581.315 262.906 513133.614 5402581.315 244.64 + + + + + + + + + + + + + + + + + 513133.629 5402581.337 244.64 513133.643 5402581.359 244.64 513133.643 5402581.359 262.909 513133.629 5402581.337 262.907 513133.629 5402581.337 244.64 + + + + + + + + + + + + + + + + + 513133.643 5402581.359 244.64 513133.654 5402581.382 244.64 513133.654 5402581.382 262.911 513133.643 5402581.359 262.909 513133.643 5402581.359 244.64 + + + + + + + + + + + + + + + + + 513133.654 5402581.382 244.64 513133.664 5402581.406 244.64 513133.664 5402581.406 262.913 513133.654 5402581.382 262.911 513133.654 5402581.382 244.64 + + + + + + + + + + + + + + + + + 513133.664 5402581.406 244.64 513133.673 5402581.431 244.64 513133.673 5402581.431 262.915 513133.664 5402581.406 262.913 513133.664 5402581.406 244.64 + + + + + + + + + + + + + + + + + 513133.673 5402581.431 262.915 513133.673 5402581.431 244.64 513133.68 5402581.46 244.64 513133.68 5402581.46 262.917 513133.673 5402581.431 262.915 + + + + + + + + + + + + + + + + + 513133.68 5402581.46 244.64 513133.81 5402581.86 244.64 513133.81 5402581.86 262.946 513133.68 5402581.46 262.917 513133.68 5402581.46 244.64 + + + + + + + + + + + + + + + + + 513138.34 5402579.78 262.938 513133.81 5402581.86 262.946 513133.81 5402581.86 244.64 513138.34 5402579.78 244.64 513138.34 5402579.78 262.938 + + + + + + + + + + + + + + + + + 513138.34 5402579.78 244.64 513138.2 5402579.4 244.64 513138.2 5402579.4 262.91 513138.34 5402579.78 262.938 513138.34 5402579.78 244.64 + + + + + + + + + + + + + + + + + 513138.2 5402579.4 244.64 513138.186 5402579.379 244.64 513138.186 5402579.379 262.908 513138.2 5402579.4 262.91 513138.2 5402579.4 244.64 + + + + + + + + + + + + + + + + + 513138.178 5402579.363 244.64 513138.178 5402579.363 262.907 513138.186 5402579.379 262.908 513138.186 5402579.379 244.64 513138.178 5402579.363 244.64 + + + + + + + + + + + + + + + + + 513138.17 5402579.346 244.64 513138.17 5402579.346 262.905 513138.178 5402579.363 262.907 513138.178 5402579.363 244.64 513138.17 5402579.346 244.64 + + + + + + + + + + + + + + + + + 513138.164 5402579.329 244.64 513138.164 5402579.329 262.904 513138.17 5402579.346 262.905 513138.17 5402579.346 244.64 513138.164 5402579.329 244.64 + + + + + + + + + + + + + + + + + 513138.159 5402579.311 244.64 513138.159 5402579.311 262.903 513138.164 5402579.329 262.904 513138.164 5402579.329 244.64 513138.159 5402579.311 244.64 + + + + + + + + + + + + + + + + + 513138.155 5402579.293 244.64 513138.155 5402579.293 262.901 513138.159 5402579.311 262.903 513138.159 5402579.311 244.64 513138.155 5402579.293 244.64 + + + + + + + + + + + + + + + + + 513138.152 5402579.274 244.64 513138.152 5402579.274 262.9 513138.155 5402579.293 262.901 513138.155 5402579.293 244.64 513138.152 5402579.274 244.64 + + + + + + + + + + + + + + + + + 513138.151 5402579.256 244.64 513138.151 5402579.256 262.899 513138.152 5402579.274 262.9 513138.152 5402579.274 244.64 513138.151 5402579.256 244.64 + + + + + + + + + + + + + + + + + 513138.151 5402579.238 244.64 513138.151 5402579.238 262.898 513138.151 5402579.256 262.899 513138.151 5402579.256 244.64 513138.151 5402579.238 244.64 + + + + + + + + + + + + + + + + + 513138.152 5402579.219 244.64 513138.152 5402579.219 262.897 513138.151 5402579.238 262.898 513138.151 5402579.238 244.64 513138.152 5402579.219 244.64 + + + + + + + + + + + + + + + + + 513138.155 5402579.201 244.64 513138.155 5402579.201 262.896 513138.152 5402579.219 262.897 513138.152 5402579.219 244.64 513138.155 5402579.201 244.64 + + + + + + + + + + + + + + + + + 513138.159 5402579.183 244.64 513138.159 5402579.183 262.894 513138.155 5402579.201 262.896 513138.155 5402579.201 244.64 513138.159 5402579.183 244.64 + + + + + + + + + + + + + + + + + 513138.164 5402579.165 244.64 513138.164 5402579.165 262.893 513138.159 5402579.183 262.894 513138.159 5402579.183 244.64 513138.164 5402579.165 244.64 + + + + + + + + + + + + + + + + + 513138.17 5402579.148 244.64 513138.17 5402579.148 262.892 513138.164 5402579.165 262.893 513138.164 5402579.165 244.64 513138.17 5402579.148 244.64 + + + + + + + + + + + + + + + + + 513138.178 5402579.131 244.64 513138.178 5402579.131 262.892 513138.17 5402579.148 262.892 513138.17 5402579.148 244.64 513138.178 5402579.131 244.64 + + + + + + + + + + + + + + + + + 513138.186 5402579.114 244.64 513138.186 5402579.114 262.891 513138.178 5402579.131 262.892 513138.178 5402579.131 244.64 513138.186 5402579.114 244.64 + + + + + + + + + + + + + + + + + 513138.196 5402579.099 262.89 513138.186 5402579.114 262.891 513138.186 5402579.114 244.64 513138.196 5402579.099 244.64 513138.196 5402579.099 262.89 + + + + + + + + + + + + + + + + + 513138.207 5402579.084 262.889 513138.196 5402579.099 262.89 513138.196 5402579.099 244.64 513138.207 5402579.084 244.64 513138.207 5402579.084 262.889 + + + + + + + + + + + + + + + + + 513138.207 5402579.084 244.64 513138.219 5402579.07 244.64 513138.219 5402579.07 262.889 513138.207 5402579.084 262.889 513138.207 5402579.084 244.64 + + + + + + + + + + + + + + + + + 513138.232 5402579.057 262.888 513138.219 5402579.07 262.889 513138.219 5402579.07 244.64 513138.232 5402579.057 244.64 513138.232 5402579.057 262.888 + + + + + + + + + + + + + + + + + 513138.232 5402579.057 244.64 513138.245 5402579.044 244.64 513138.245 5402579.044 262.888 513138.232 5402579.057 262.888 513138.232 5402579.057 244.64 + + + + + + + + + + + + + + + + + 513138.245 5402579.044 244.64 513138.26 5402579.033 244.64 513138.26 5402579.033 262.888 513138.245 5402579.044 262.888 513138.245 5402579.044 244.64 + + + + + + + + + + + + + + + + + 513138.275 5402579.022 262.887 513138.26 5402579.033 262.888 513138.26 5402579.033 244.64 513138.275 5402579.022 244.64 513138.275 5402579.022 262.887 + + + + + + + + + + + + + + + + + 513138.275 5402579.022 244.64 513138.291 5402579.013 244.64 513138.291 5402579.013 262.887 513138.275 5402579.022 262.887 513138.275 5402579.022 244.64 + + + + + + + + + + + + + + + + + 513138.291 5402579.013 244.64 513138.308 5402579.005 244.64 513138.308 5402579.005 262.887 513138.291 5402579.013 262.887 513138.291 5402579.013 244.64 + + + + + + + + + + + + + + + + + 513138.308 5402579.005 244.64 513138.331 5402578.996 244.64 513138.331 5402578.996 262.887 513138.308 5402579.005 262.887 513138.308 5402579.005 244.64 + + + + + + + + + + + + + + + + + 513138.331 5402578.996 244.64 513138.356 5402578.989 244.64 513138.356 5402578.989 262.887 513138.331 5402578.996 262.887 513138.331 5402578.996 244.64 + + + + + + + + + + + + + + + + + 513138.356 5402578.989 244.64 513138.374 5402578.985 244.64 513138.374 5402578.985 262.888 513138.356 5402578.989 262.887 513138.356 5402578.989 244.64 + + + + + + + + + + + + + + + + + 513138.374 5402578.985 244.64 513138.392 5402578.983 244.64 513138.392 5402578.983 262.888 513138.374 5402578.985 262.888 513138.374 5402578.985 244.64 + + + + + + + + + + + + + + + + + 513138.392 5402578.983 244.64 513138.411 5402578.982 244.64 513138.411 5402578.982 262.888 513138.392 5402578.983 262.888 513138.392 5402578.983 244.64 + + + + + + + + + + + + + + + + + 513138.411 5402578.982 244.64 513138.429 5402578.982 244.64 513138.429 5402578.982 262.889 513138.411 5402578.982 262.888 513138.411 5402578.982 244.64 + + + + + + + + + + + + + + + + + 513138.429 5402578.982 244.64 513138.448 5402578.984 244.64 513138.448 5402578.984 262.89 513138.429 5402578.982 262.889 513138.429 5402578.982 244.64 + + + + + + + + + + + + + + + + + 513138.448 5402578.984 244.64 513138.466 5402578.987 244.64 513138.466 5402578.987 262.89 513138.448 5402578.984 262.89 513138.448 5402578.984 244.64 + + + + + + + + + + + + + + + + + 513138.466 5402578.987 244.64 513138.484 5402578.991 244.64 513138.484 5402578.991 262.891 513138.466 5402578.987 262.89 513138.466 5402578.987 244.64 + + + + + + + + + + + + + + + + + 513138.484 5402578.991 244.64 513138.502 5402578.997 244.64 513138.502 5402578.997 262.892 513138.484 5402578.991 262.891 513138.484 5402578.991 244.64 + + + + + + + + + + + + + + + + + 513138.502 5402578.997 244.64 513138.519 5402579.003 244.64 513138.519 5402579.003 262.893 513138.502 5402578.997 262.892 513138.502 5402578.997 244.64 + + + + + + + + + + + + + + + + + 513138.519 5402579.003 244.64 513138.536 5402579.011 244.64 513138.536 5402579.011 262.894 513138.519 5402579.003 262.893 513138.519 5402579.003 244.64 + + + + + + + + + + + + + + + + + 513138.536 5402579.011 244.64 513138.552 5402579.02 244.64 513138.552 5402579.02 262.895 513138.536 5402579.011 262.894 513138.536 5402579.011 244.64 + + + + + + + + + + + + + + + + + 513138.552 5402579.02 244.64 513138.567 5402579.03 244.64 513138.567 5402579.03 262.896 513138.552 5402579.02 262.895 513138.552 5402579.02 244.64 + + + + + + + + + + + + + + + + + 513138.567 5402579.03 244.64 513138.582 5402579.041 244.64 513138.582 5402579.041 262.897 513138.567 5402579.03 262.896 513138.567 5402579.03 244.64 + + + + + + + + + + + + + + + + + 513138.582 5402579.041 244.64 513138.596 5402579.053 244.64 513138.596 5402579.053 262.898 513138.582 5402579.041 262.897 513138.582 5402579.041 244.64 + + + + + + + + + + + + + + + + + 513138.596 5402579.053 244.64 513138.609 5402579.066 244.64 513138.609 5402579.066 262.899 513138.596 5402579.053 262.898 513138.596 5402579.053 244.64 + + + + + + + + + + + + + + + + + 513138.609 5402579.066 244.64 513138.621 5402579.08 244.64 513138.621 5402579.08 262.901 513138.609 5402579.066 262.899 513138.609 5402579.066 244.64 + + + + + + + + + + + + + + + + + 513138.621 5402579.08 244.64 513138.632 5402579.095 244.64 513138.632 5402579.095 262.902 513138.621 5402579.08 262.901 513138.621 5402579.08 244.64 + + + + + + + + + + + + + + + + + 513138.632 5402579.095 244.64 513138.642 5402579.11 244.64 513138.642 5402579.11 262.903 513138.632 5402579.095 262.902 513138.632 5402579.095 244.64 + + + + + + + + + + + + + + + + + 513138.642 5402579.11 244.64 513138.651 5402579.126 244.64 513138.651 5402579.126 262.905 513138.642 5402579.11 262.903 513138.642 5402579.11 244.64 + + + + + + + + + + + + + + + + + 513138.651 5402579.126 262.905 513138.651 5402579.126 244.64 513138.659 5402579.143 244.64 513138.659 5402579.143 262.906 513138.651 5402579.126 262.905 + + + + + + + + + + + + + + + + + 513138.659 5402579.143 262.906 513138.659 5402579.143 244.64 513138.666 5402579.16 244.64 513138.666 5402579.16 262.907 513138.659 5402579.143 262.906 + + + + + + + + + + + + + + + + + 513138.666 5402579.16 262.907 513138.666 5402579.16 244.64 513138.671 5402579.178 244.64 513138.671 5402579.178 262.908 513138.666 5402579.16 262.907 + + + + + + + + + + + + + + + + + 513138.671 5402579.178 262.908 513138.671 5402579.178 244.64 513138.675 5402579.196 244.64 513138.675 5402579.196 262.91 513138.671 5402579.178 262.908 + + + + + + + + + + + + + + + + + 513138.675 5402579.196 262.91 513138.675 5402579.196 244.64 513138.678 5402579.214 244.64 513138.678 5402579.214 262.911 513138.675 5402579.196 262.91 + + + + + + + + + + + + + + + + + 513138.678 5402579.214 262.911 513138.678 5402579.214 244.64 513138.68 5402579.24 244.64 513138.68 5402579.24 262.913 513138.678 5402579.214 262.911 + + + + + + + + + + + + + + + + + 513138.68 5402579.24 244.64 513138.96 5402579.53 244.64 513138.96 5402579.53 262.939 513138.68 5402579.24 262.913 513138.68 5402579.24 244.64 + + + + + + + + + + + + + + + + + 513142.24 5402576.58 262.84 513138.96 5402579.53 262.939 513138.96 5402579.53 244.64 513142.24 5402576.58 244.64 513142.24 5402576.58 262.84 + + + + + + + + + + + + + + + + + 513142.24 5402576.58 244.64 513141.94 5402576.22 244.64 513141.94 5402576.22 262.808 513142.24 5402576.58 262.84 513142.24 5402576.58 244.64 + + + + + + + + + + + + + + + + + 513141.94 5402576.22 244.64 513141.926 5402576.201 244.64 513141.926 5402576.201 262.806 513141.94 5402576.22 262.808 513141.94 5402576.22 244.64 + + + + + + + + + + + + + + + + + 513141.926 5402576.201 244.64 513141.914 5402576.181 244.64 513141.914 5402576.181 262.805 513141.926 5402576.201 262.806 513141.926 5402576.201 244.64 + + + + + + + + + + + + + + + + + 513141.914 5402576.181 244.64 513141.904 5402576.161 244.64 513141.904 5402576.161 262.803 513141.914 5402576.181 262.805 513141.914 5402576.181 244.64 + + + + + + + + + + + + + + + + + 513141.904 5402576.161 244.64 513141.895 5402576.14 244.64 513141.895 5402576.14 262.802 513141.904 5402576.161 262.803 513141.904 5402576.161 244.64 + + + + + + + + + + + + + + + + + 513141.888 5402576.119 244.64 513141.888 5402576.119 262.8 513141.895 5402576.14 262.802 513141.895 5402576.14 244.64 513141.888 5402576.119 244.64 + + + + + + + + + + + + + + + + + 513141.882 5402576.097 244.64 513141.882 5402576.097 262.799 513141.888 5402576.119 262.8 513141.888 5402576.119 244.64 513141.882 5402576.097 244.64 + + + + + + + + + + + + + + + + + 513141.878 5402576.075 244.64 513141.878 5402576.075 262.797 513141.882 5402576.097 262.799 513141.882 5402576.097 244.64 513141.878 5402576.075 244.64 + + + + + + + + + + + + + + + + + 513141.875 5402576.052 244.64 513141.875 5402576.052 262.795 513141.878 5402576.075 262.797 513141.878 5402576.075 244.64 513141.875 5402576.052 244.64 + + + + + + + + + + + + + + + + + 513141.873 5402576.029 244.64 513141.873 5402576.029 262.794 513141.875 5402576.052 262.795 513141.875 5402576.052 244.64 513141.873 5402576.029 244.64 + + + + + + + + + + + + + + + + + 513141.874 5402576.007 244.64 513141.874 5402576.007 262.792 513141.873 5402576.029 262.794 513141.873 5402576.029 244.64 513141.874 5402576.007 244.64 + + + + + + + + + + + + + + + + + 513141.876 5402575.984 244.64 513141.876 5402575.984 262.791 513141.874 5402576.007 262.792 513141.874 5402576.007 244.64 513141.876 5402575.984 244.64 + + + + + + + + + + + + + + + + + 513141.879 5402575.962 244.64 513141.879 5402575.962 262.79 513141.876 5402575.984 262.791 513141.876 5402575.984 244.64 513141.879 5402575.962 244.64 + + + + + + + + + + + + + + + + + 513141.884 5402575.94 244.64 513141.884 5402575.94 262.788 513141.879 5402575.962 262.79 513141.879 5402575.962 244.64 513141.884 5402575.94 244.64 + + + + + + + + + + + + + + + + + 513141.891 5402575.918 244.64 513141.891 5402575.918 262.787 513141.884 5402575.94 262.788 513141.884 5402575.94 244.64 513141.891 5402575.918 244.64 + + + + + + + + + + + + + + + + + 513141.899 5402575.897 244.64 513141.899 5402575.897 262.786 513141.891 5402575.918 262.787 513141.891 5402575.918 244.64 513141.899 5402575.897 244.64 + + + + + + + + + + + + + + + + + 513141.908 5402575.876 262.785 513141.899 5402575.897 262.786 513141.899 5402575.897 244.64 513141.908 5402575.876 244.64 513141.908 5402575.876 262.785 + + + + + + + + + + + + + + + + + 513141.919 5402575.856 262.784 513141.908 5402575.876 262.785 513141.908 5402575.876 244.64 513141.919 5402575.856 244.64 513141.919 5402575.856 262.784 + + + + + + + + + + + + + + + + + 513141.932 5402575.837 262.783 513141.919 5402575.856 262.784 513141.919 5402575.856 244.64 513141.932 5402575.837 244.64 513141.932 5402575.837 262.783 + + + + + + + + + + + + + + + + + 513141.945 5402575.819 262.782 513141.932 5402575.837 262.783 513141.932 5402575.837 244.64 513141.945 5402575.819 244.64 513141.945 5402575.819 262.782 + + + + + + + + + + + + + + + + + 513141.945 5402575.819 244.64 513141.96 5402575.802 244.64 513141.96 5402575.802 262.782 513141.945 5402575.819 262.782 513141.945 5402575.819 244.64 + + + + + + + + + + + + + + + + + 513141.976 5402575.786 262.781 513141.96 5402575.802 262.782 513141.96 5402575.802 244.64 513141.976 5402575.786 244.64 513141.976 5402575.786 262.781 + + + + + + + + + + + + + + + + + 513141.976 5402575.786 244.64 513141.993 5402575.771 244.64 513141.993 5402575.771 262.781 513141.976 5402575.786 262.781 513141.976 5402575.786 244.64 + + + + + + + + + + + + + + + + + 513142.011 5402575.757 262.78 513141.993 5402575.771 262.781 513141.993 5402575.771 244.64 513142.011 5402575.757 244.64 513142.011 5402575.757 262.78 + + + + + + + + + + + + + + + + + 513142.011 5402575.757 244.64 513142.03 5402575.745 244.64 513142.03 5402575.745 262.78 513142.011 5402575.757 262.78 513142.011 5402575.757 244.64 + + + + + + + + + + + + + + + + + 513142.03 5402575.745 244.64 513142.051 5402575.733 244.64 513142.051 5402575.733 262.78 513142.03 5402575.745 262.78 513142.03 5402575.745 244.64 + + + + + + + + + + + + + + + + + 513142.051 5402575.733 244.64 513142.073 5402575.723 244.64 513142.073 5402575.723 262.78 513142.051 5402575.733 262.78 513142.051 5402575.733 244.64 + + + + + + + + + + + + + + + + + 513142.073 5402575.723 244.64 513142.094 5402575.715 244.64 513142.094 5402575.715 262.78 513142.073 5402575.723 262.78 513142.073 5402575.723 244.64 + + + + + + + + + + + + + + + + + 513142.094 5402575.715 244.64 513142.116 5402575.708 244.64 513142.116 5402575.708 262.78 513142.094 5402575.715 262.78 513142.094 5402575.715 244.64 + + + + + + + + + + + + + + + + + 513142.116 5402575.708 244.64 513142.138 5402575.703 244.64 513142.138 5402575.703 262.78 513142.116 5402575.708 262.78 513142.116 5402575.708 244.64 + + + + + + + + + + + + + + + + + 513142.138 5402575.703 244.64 513142.16 5402575.7 244.64 513142.16 5402575.7 262.781 513142.138 5402575.703 262.78 513142.138 5402575.703 244.64 + + + + + + + + + + + + + + + + + 513142.16 5402575.7 244.64 513142.183 5402575.698 244.64 513142.183 5402575.698 262.781 513142.16 5402575.7 262.781 513142.16 5402575.7 244.64 + + + + + + + + + + + + + + + + + 513142.183 5402575.698 244.64 513142.205 5402575.698 244.64 513142.205 5402575.698 262.782 513142.183 5402575.698 262.781 513142.183 5402575.698 244.64 + + + + + + + + + + + + + + + + + 513142.205 5402575.698 244.64 513142.228 5402575.699 244.64 513142.228 5402575.699 262.782 513142.205 5402575.698 262.782 513142.205 5402575.698 244.64 + + + + + + + + + + + + + + + + + 513142.228 5402575.699 244.64 513142.251 5402575.702 244.64 513142.251 5402575.702 262.783 513142.228 5402575.699 262.782 513142.228 5402575.699 244.64 + + + + + + + + + + + + + + + + + 513142.251 5402575.702 244.64 513142.273 5402575.706 244.64 513142.273 5402575.706 262.784 513142.251 5402575.702 262.783 513142.251 5402575.702 244.64 + + + + + + + + + + + + + + + + + 513142.273 5402575.706 244.64 513142.295 5402575.712 244.64 513142.295 5402575.712 262.785 513142.273 5402575.706 262.784 513142.273 5402575.706 244.64 + + + + + + + + + + + + + + + + + 513142.295 5402575.712 244.64 513142.316 5402575.72 244.64 513142.316 5402575.72 262.786 513142.295 5402575.712 262.785 513142.295 5402575.712 244.64 + + + + + + + + + + + + + + + + + 513142.316 5402575.72 244.64 513142.337 5402575.729 244.64 513142.337 5402575.729 262.787 513142.316 5402575.72 262.786 513142.316 5402575.72 244.64 + + + + + + + + + + + + + + + + + 513142.337 5402575.729 244.64 513142.357 5402575.739 244.64 513142.357 5402575.739 262.789 513142.337 5402575.729 262.787 513142.337 5402575.729 244.64 + + + + + + + + + + + + + + + + + 513142.357 5402575.739 244.64 513142.377 5402575.751 244.64 513142.377 5402575.751 262.79 513142.357 5402575.739 262.789 513142.357 5402575.739 244.64 + + + + + + + + + + + + + + + + + 513142.377 5402575.751 244.64 513142.395 5402575.764 244.64 513142.395 5402575.764 262.791 513142.377 5402575.751 262.79 513142.377 5402575.751 244.64 + + + + + + + + + + + + + + + + + 513142.395 5402575.764 244.64 513142.413 5402575.778 244.64 513142.413 5402575.778 262.793 513142.395 5402575.764 262.791 513142.395 5402575.764 244.64 + + + + + + + + + + + + + + + + + 513142.413 5402575.778 244.64 513142.429 5402575.794 244.64 513142.429 5402575.794 262.794 513142.413 5402575.778 262.793 513142.413 5402575.778 244.64 + + + + + + + + + + + + + + + + + 513142.429 5402575.794 244.64 513142.445 5402575.81 244.64 513142.445 5402575.81 262.796 513142.429 5402575.794 262.794 513142.429 5402575.794 244.64 + + + + + + + + + + + + + + + + + 513142.445 5402575.81 244.64 513142.459 5402575.828 244.64 513142.459 5402575.828 262.797 513142.445 5402575.81 262.796 513142.445 5402575.81 244.64 + + + + + + + + + + + + + + + + + 513142.459 5402575.828 244.64 513142.472 5402575.847 244.64 513142.472 5402575.847 262.799 513142.459 5402575.828 262.797 513142.459 5402575.828 244.64 + + + + + + + + + + + + + + + + + 513142.472 5402575.847 244.64 513142.483 5402575.866 244.64 513142.483 5402575.866 262.8 513142.472 5402575.847 262.799 513142.472 5402575.847 244.64 + + + + + + + + + + + + + + + + + 513142.483 5402575.866 244.64 513142.494 5402575.886 244.64 513142.494 5402575.886 262.802 513142.483 5402575.866 262.8 513142.483 5402575.866 244.64 + + + + + + + + + + + + + + + + + 513142.494 5402575.886 262.802 513142.494 5402575.886 244.64 513142.502 5402575.908 244.64 513142.502 5402575.908 262.804 513142.494 5402575.886 262.802 + + + + + + + + + + + + + + + + + 513142.502 5402575.908 262.804 513142.502 5402575.908 244.64 513142.51 5402575.93 244.64 513142.51 5402575.93 262.805 513142.502 5402575.908 262.804 + + + + + + + + + + + + + + + + + 513142.51 5402575.93 244.64 513142.65 5402576.17 244.64 513142.65 5402576.17 262.825 513142.51 5402575.93 262.805 513142.51 5402575.93 244.64 + + + + + + + + + + + + + + + + + 513145.9 5402573.38 262.735 513142.65 5402576.17 262.825 513142.65 5402576.17 244.64 513145.9 5402573.38 244.64 513145.9 5402573.38 262.735 + + + + + + + + + + + + + + + + + 513145.9 5402573.38 244.64 513145.64 5402573.06 244.64 513145.64 5402573.06 262.707 513145.9 5402573.38 262.735 513145.9 5402573.38 244.64 + + + + + + + + + + + + + + + + + 513145.64 5402573.06 244.64 513145.617 5402573.038 244.64 513145.617 5402573.038 262.705 513145.64 5402573.06 262.707 513145.64 5402573.06 244.64 + + + + + + + + + + + + + + + + + 513145.617 5402573.038 244.64 513145.602 5402573.021 244.64 513145.602 5402573.021 262.703 513145.617 5402573.038 262.705 513145.617 5402573.038 244.64 + + + + + + + + + + + + + + + + + 513145.602 5402573.021 244.64 513145.588 5402573.003 244.64 513145.588 5402573.003 262.702 513145.602 5402573.021 262.703 513145.602 5402573.021 244.64 + + + + + + + + + + + + + + + + + 513145.588 5402573.003 244.64 513145.575 5402572.984 244.64 513145.575 5402572.984 262.7 513145.588 5402573.003 262.702 513145.588 5402573.003 244.64 + + + + + + + + + + + + + + + + + 513145.575 5402572.984 244.64 513145.564 5402572.964 244.64 513145.564 5402572.964 262.698 513145.575 5402572.984 262.7 513145.575 5402572.984 244.64 + + + + + + + + + + + + + + + + + 513145.564 5402572.964 244.64 513145.554 5402572.943 244.64 513145.554 5402572.943 262.697 513145.564 5402572.964 262.698 513145.564 5402572.964 244.64 + + + + + + + + + + + + + + + + + 513145.554 5402572.943 244.64 513145.545 5402572.921 244.64 513145.545 5402572.921 262.695 513145.554 5402572.943 262.697 513145.554 5402572.943 244.64 + + + + + + + + + + + + + + + + + 513145.538 5402572.9 244.64 513145.538 5402572.9 262.694 513145.545 5402572.921 262.695 513145.545 5402572.921 244.64 513145.538 5402572.9 244.64 + + + + + + + + + + + + + + + + + 513145.533 5402572.877 244.64 513145.533 5402572.877 262.692 513145.538 5402572.9 262.694 513145.538 5402572.9 244.64 513145.533 5402572.877 244.64 + + + + + + + + + + + + + + + + + 513145.529 5402572.854 244.64 513145.529 5402572.854 262.69 513145.533 5402572.877 262.692 513145.533 5402572.877 244.64 513145.529 5402572.854 244.64 + + + + + + + + + + + + + + + + + 513145.527 5402572.832 244.64 513145.527 5402572.832 262.689 513145.529 5402572.854 262.69 513145.529 5402572.854 244.64 513145.527 5402572.832 244.64 + + + + + + + + + + + + + + + + + 513145.526 5402572.809 244.64 513145.526 5402572.809 262.687 513145.527 5402572.832 262.689 513145.527 5402572.832 244.64 513145.526 5402572.809 244.64 + + + + + + + + + + + + + + + + + 513145.527 5402572.786 244.64 513145.527 5402572.786 262.686 513145.526 5402572.809 262.687 513145.526 5402572.809 244.64 513145.527 5402572.786 244.64 + + + + + + + + + + + + + + + + + 513145.53 5402572.763 244.64 513145.53 5402572.763 262.684 513145.527 5402572.786 262.686 513145.527 5402572.786 244.64 513145.53 5402572.763 244.64 + + + + + + + + + + + + + + + + + 513145.534 5402572.74 244.64 513145.534 5402572.74 262.683 513145.53 5402572.763 262.684 513145.53 5402572.763 244.64 513145.534 5402572.74 244.64 + + + + + + + + + + + + + + + + + 513145.539 5402572.718 244.64 513145.539 5402572.718 262.682 513145.534 5402572.74 262.683 513145.534 5402572.74 244.64 513145.539 5402572.718 244.64 + + + + + + + + + + + + + + + + + 513145.547 5402572.696 244.64 513145.547 5402572.696 262.681 513145.539 5402572.718 262.682 513145.539 5402572.718 244.64 513145.547 5402572.696 244.64 + + + + + + + + + + + + + + + + + 513145.555 5402572.674 244.64 513145.555 5402572.674 262.679 513145.547 5402572.696 262.681 513145.547 5402572.696 244.64 513145.555 5402572.674 244.64 + + + + + + + + + + + + + + + + + 513145.566 5402572.654 262.678 513145.555 5402572.674 262.679 513145.555 5402572.674 244.64 513145.566 5402572.654 244.64 513145.566 5402572.654 262.678 + + + + + + + + + + + + + + + + + 513145.577 5402572.634 262.677 513145.566 5402572.654 262.678 513145.566 5402572.654 244.64 513145.577 5402572.634 244.64 513145.577 5402572.634 262.677 + + + + + + + + + + + + + + + + + 513145.577 5402572.634 244.64 513145.59 5402572.615 244.64 513145.59 5402572.615 262.677 513145.577 5402572.634 262.677 513145.577 5402572.634 244.64 + + + + + + + + + + + + + + + + + 513145.605 5402572.597 262.676 513145.59 5402572.615 262.677 513145.59 5402572.615 244.64 513145.605 5402572.597 244.64 513145.605 5402572.597 262.676 + + + + + + + + + + + + + + + + + 513145.626 5402572.574 262.675 513145.605 5402572.597 262.676 513145.605 5402572.597 244.64 513145.626 5402572.574 244.64 513145.626 5402572.574 262.675 + + + + + + + + + + + + + + + + + 513145.649 5402572.554 262.674 513145.626 5402572.574 262.675 513145.626 5402572.574 244.64 513145.649 5402572.554 244.64 513145.649 5402572.554 262.674 + + + + + + + + + + + + + + + + + 513145.649 5402572.554 244.64 513145.667 5402572.54 244.64 513145.667 5402572.54 262.674 513145.649 5402572.554 262.674 513145.649 5402572.554 244.64 + + + + + + + + + + + + + + + + + 513145.667 5402572.54 244.64 513145.686 5402572.527 244.64 513145.686 5402572.527 262.674 513145.667 5402572.54 262.674 513145.667 5402572.54 244.64 + + + + + + + + + + + + + + + + + 513145.707 5402572.516 262.673 513145.686 5402572.527 262.674 513145.686 5402572.527 244.64 513145.707 5402572.516 244.64 513145.707 5402572.516 262.673 + + + + + + + + + + + + + + + + + 513145.707 5402572.516 244.64 513145.728 5402572.507 244.64 513145.728 5402572.507 262.673 513145.707 5402572.516 262.673 513145.707 5402572.516 244.64 + + + + + + + + + + + + + + + + + 513145.728 5402572.507 244.64 513145.749 5402572.499 244.64 513145.749 5402572.499 262.673 513145.728 5402572.507 262.673 513145.728 5402572.507 244.64 + + + + + + + + + + + + + + + + + 513145.749 5402572.499 244.64 513145.771 5402572.492 244.64 513145.771 5402572.492 262.674 513145.749 5402572.499 262.673 513145.749 5402572.499 244.64 + + + + + + + + + + + + + + + + + 513145.771 5402572.492 244.64 513145.793 5402572.487 244.64 513145.793 5402572.487 262.674 513145.771 5402572.492 262.674 513145.771 5402572.492 244.64 + + + + + + + + + + + + + + + + + 513145.793 5402572.487 244.64 513145.816 5402572.483 244.64 513145.816 5402572.483 262.674 513145.793 5402572.487 262.674 513145.793 5402572.487 244.64 + + + + + + + + + + + + + + + + + 513145.816 5402572.483 244.64 513145.839 5402572.481 244.64 513145.839 5402572.481 262.675 513145.816 5402572.483 262.674 513145.816 5402572.483 244.64 + + + + + + + + + + + + + + + + + 513145.839 5402572.481 244.64 513145.862 5402572.481 244.64 513145.862 5402572.481 262.675 513145.839 5402572.481 262.675 513145.839 5402572.481 244.64 + + + + + + + + + + + + + + + + + 513145.862 5402572.481 244.64 513145.885 5402572.482 244.64 513145.885 5402572.482 262.676 513145.862 5402572.481 262.675 513145.862 5402572.481 244.64 + + + + + + + + + + + + + + + + + 513145.885 5402572.482 244.64 513145.908 5402572.485 244.64 513145.908 5402572.485 262.677 513145.885 5402572.482 262.676 513145.885 5402572.482 244.64 + + + + + + + + + + + + + + + + + 513145.908 5402572.485 244.64 513145.931 5402572.489 244.64 513145.931 5402572.489 262.678 513145.908 5402572.485 262.677 513145.908 5402572.485 244.64 + + + + + + + + + + + + + + + + + 513145.931 5402572.489 244.64 513145.953 5402572.495 244.64 513145.953 5402572.495 262.679 513145.931 5402572.489 262.678 513145.931 5402572.489 244.64 + + + + + + + + + + + + + + + + + 513145.953 5402572.495 244.64 513145.975 5402572.503 244.64 513145.975 5402572.503 262.68 513145.953 5402572.495 262.679 513145.953 5402572.495 244.64 + + + + + + + + + + + + + + + + + 513145.975 5402572.503 244.64 513145.996 5402572.512 244.64 513145.996 5402572.512 262.681 513145.975 5402572.503 262.68 513145.975 5402572.503 244.64 + + + + + + + + + + + + + + + + + 513145.996 5402572.512 244.64 513146.016 5402572.522 244.64 513146.016 5402572.522 262.682 513145.996 5402572.512 262.681 513145.996 5402572.512 244.64 + + + + + + + + + + + + + + + + + 513146.016 5402572.522 244.64 513146.036 5402572.534 244.64 513146.036 5402572.534 262.684 513146.016 5402572.522 262.682 513146.016 5402572.522 244.64 + + + + + + + + + + + + + + + + + 513146.036 5402572.534 244.64 513146.055 5402572.547 244.64 513146.055 5402572.547 262.685 513146.036 5402572.534 262.684 513146.036 5402572.534 244.64 + + + + + + + + + + + + + + + + + 513146.055 5402572.547 244.64 513146.073 5402572.562 244.64 513146.073 5402572.562 262.687 513146.055 5402572.547 262.685 513146.055 5402572.547 244.64 + + + + + + + + + + + + + + + + + 513146.073 5402572.562 244.64 513146.09 5402572.578 244.64 513146.09 5402572.578 262.688 513146.073 5402572.562 262.687 513146.073 5402572.562 244.64 + + + + + + + + + + + + + + + + + 513146.09 5402572.578 244.64 513146.11 5402572.6 244.64 513146.11 5402572.6 262.69 513146.09 5402572.578 262.688 513146.09 5402572.578 244.64 + + + + + + + + + + + + + + + + + 513146.11 5402572.6 244.64 513146.39 5402572.95 244.64 513146.39 5402572.95 262.721 513146.11 5402572.6 262.69 513146.11 5402572.6 244.64 + + + + + + + + + + + + + + + + + 513149.3 5402570.36 262.634 513146.39 5402572.95 262.721 513146.39 5402572.95 244.64 513149.3 5402570.36 244.64 513149.3 5402570.36 262.634 + + + + + + + + + + + + + + + + + 513149.3 5402570.36 244.64 513149.02 5402570.08 244.64 513149.02 5402570.08 262.608 513149.3 5402570.36 262.634 513149.3 5402570.36 244.64 + + + + + + + + + + + + + + + + + 513149.02 5402570.08 244.64 513149.007 5402570.055 244.64 513149.007 5402570.055 262.606 513149.02 5402570.08 262.608 513149.02 5402570.08 244.64 + + + + + + + + + + + + + + + + + 513148.999 5402570.035 244.64 513148.999 5402570.035 262.605 513149.007 5402570.055 262.606 513149.007 5402570.055 244.64 513148.999 5402570.035 244.64 + + + + + + + + + + + + + + + + + 513148.993 5402570.015 244.64 513148.993 5402570.015 262.603 513148.999 5402570.035 262.605 513148.999 5402570.035 244.64 513148.993 5402570.015 244.64 + + + + + + + + + + + + + + + + + 513148.987 5402569.995 244.64 513148.987 5402569.995 262.602 513148.993 5402570.015 262.603 513148.993 5402570.015 244.64 513148.987 5402569.995 244.64 + + + + + + + + + + + + + + + + + 513148.984 5402569.974 244.64 513148.984 5402569.974 262.6 513148.987 5402569.995 262.602 513148.987 5402569.995 244.64 513148.984 5402569.974 244.64 + + + + + + + + + + + + + + + + + 513148.981 5402569.953 244.64 513148.981 5402569.953 262.599 513148.984 5402569.974 262.6 513148.984 5402569.974 244.64 513148.981 5402569.953 244.64 + + + + + + + + + + + + + + + + + 513148.98 5402569.932 244.64 513148.98 5402569.932 262.597 513148.981 5402569.953 262.599 513148.981 5402569.953 244.64 513148.98 5402569.932 244.64 + + + + + + + + + + + + + + + + + 513148.981 5402569.911 244.64 513148.981 5402569.911 262.596 513148.98 5402569.932 262.597 513148.98 5402569.932 244.64 513148.981 5402569.911 244.64 + + + + + + + + + + + + + + + + + 513148.983 5402569.89 244.64 513148.983 5402569.89 262.595 513148.981 5402569.911 262.596 513148.981 5402569.911 244.64 513148.983 5402569.89 244.64 + + + + + + + + + + + + + + + + + 513148.987 5402569.869 244.64 513148.987 5402569.869 262.594 513148.983 5402569.89 262.595 513148.983 5402569.89 244.64 513148.987 5402569.869 244.64 + + + + + + + + + + + + + + + + + 513148.992 5402569.849 244.64 513148.992 5402569.849 262.592 513148.987 5402569.869 262.594 513148.987 5402569.869 244.64 513148.992 5402569.849 244.64 + + + + + + + + + + + + + + + + + 513148.998 5402569.829 244.64 513148.999 5402569.83 262.591 513148.992 5402569.849 262.592 513148.992 5402569.849 244.64 513148.998 5402569.829 244.64 + + + + + + + + + + + + + + + + + 513149.006 5402569.809 244.64 513149.008 5402569.81 262.59 513148.999 5402569.83 262.591 513148.998 5402569.829 244.64 513149.006 5402569.809 244.64 + + + + + + + + + + + + + + + + + 513149.016 5402569.791 262.589 513149.008 5402569.81 262.59 513149.006 5402569.809 244.64 513149.015 5402569.79 244.64 513149.016 5402569.791 262.589 + + + + + + + + + + + + + + + + + 513149.026 5402569.772 262.588 513149.016 5402569.791 262.589 513149.015 5402569.79 244.64 513149.026 5402569.772 244.64 513149.026 5402569.772 262.588 + + + + + + + + + + + + + + + + + 513149.026 5402569.772 244.64 513149.037 5402569.754 244.64 513149.039 5402569.757 262.588 513149.026 5402569.772 262.588 513149.026 5402569.772 244.64 + + + + + + + + + + + + + + + + + 513149.05 5402569.737 262.587 513149.039 5402569.757 262.588 513149.037 5402569.754 244.64 513149.05 5402569.737 244.64 513149.05 5402569.737 262.587 + + + + + + + + + + + + + + + + + 513149.064 5402569.722 262.586 513149.05 5402569.737 262.587 513149.05 5402569.737 244.64 513149.064 5402569.722 244.64 513149.064 5402569.722 262.586 + + + + + + + + + + + + + + + + + 513149.064 5402569.722 244.64 513149.079 5402569.707 244.64 513149.079 5402569.707 262.586 513149.064 5402569.722 262.586 513149.064 5402569.722 244.64 + + + + + + + + + + + + + + + + + 513149.101 5402569.689 262.585 513149.079 5402569.707 262.586 513149.079 5402569.707 244.64 513149.101 5402569.689 244.64 513149.101 5402569.689 262.585 + + + + + + + + + + + + + + + + + 513149.101 5402569.689 244.64 513149.125 5402569.673 244.64 513149.125 5402569.673 262.585 513149.101 5402569.689 262.585 513149.101 5402569.689 244.64 + + + + + + + + + + + + + + + + + 513149.125 5402569.673 244.64 513149.143 5402569.662 244.64 513149.143 5402569.662 262.585 513149.125 5402569.673 262.585 513149.125 5402569.673 244.64 + + + + + + + + + + + + + + + + + 513149.164 5402569.656 262.585 513149.143 5402569.662 262.585 513149.143 5402569.662 244.64 513149.162 5402569.653 244.64 513149.164 5402569.656 262.585 + + + + + + + + + + + + + + + + + 513149.162 5402569.653 244.64 513149.182 5402569.646 244.64 513149.182 5402569.646 262.585 513149.164 5402569.656 262.585 513149.162 5402569.653 244.64 + + + + + + + + + + + + + + + + + 513149.182 5402569.646 244.64 513149.202 5402569.639 244.64 513149.202 5402569.639 262.585 513149.182 5402569.646 262.585 513149.182 5402569.646 244.64 + + + + + + + + + + + + + + + + + 513149.202 5402569.639 244.64 513149.222 5402569.634 244.64 513149.222 5402569.634 262.585 513149.202 5402569.639 262.585 513149.202 5402569.639 244.64 + + + + + + + + + + + + + + + + + 513149.222 5402569.634 244.64 513149.243 5402569.631 244.64 513149.243 5402569.631 262.585 513149.222 5402569.634 262.585 513149.222 5402569.634 244.64 + + + + + + + + + + + + + + + + + 513149.243 5402569.631 244.64 513149.264 5402569.629 244.64 513149.264 5402569.629 262.586 513149.243 5402569.631 262.585 513149.243 5402569.631 244.64 + + + + + + + + + + + + + + + + + 513149.264 5402569.629 244.64 513149.285 5402569.628 244.64 513149.285 5402569.628 262.586 513149.264 5402569.629 262.586 513149.264 5402569.629 244.64 + + + + + + + + + + + + + + + + + 513149.285 5402569.628 244.64 513149.306 5402569.629 244.64 513149.306 5402569.629 262.587 513149.285 5402569.628 262.586 513149.285 5402569.628 244.64 + + + + + + + + + + + + + + + + + 513149.306 5402569.629 244.64 513149.327 5402569.631 244.64 513149.327 5402569.631 262.588 513149.306 5402569.629 262.587 513149.306 5402569.629 244.64 + + + + + + + + + + + + + + + + + 513149.327 5402569.631 244.64 513149.348 5402569.635 244.64 513149.348 5402569.635 262.589 513149.327 5402569.631 262.588 513149.327 5402569.631 244.64 + + + + + + + + + + + + + + + + + 513149.348 5402569.635 244.64 513149.368 5402569.64 244.64 513149.368 5402569.64 262.589 513149.348 5402569.635 262.589 513149.348 5402569.635 244.64 + + + + + + + + + + + + + + + + + 513149.368 5402569.64 244.64 513149.389 5402569.647 244.64 513149.389 5402569.647 262.59 513149.368 5402569.64 262.589 513149.368 5402569.64 244.64 + + + + + + + + + + + + + + + + + 513149.389 5402569.647 244.64 513149.408 5402569.655 244.64 513149.408 5402569.655 262.591 513149.389 5402569.647 262.59 513149.389 5402569.647 244.64 + + + + + + + + + + + + + + + + + 513149.408 5402569.655 244.64 513149.427 5402569.665 244.64 513149.427 5402569.665 262.593 513149.408 5402569.655 262.591 513149.408 5402569.655 244.64 + + + + + + + + + + + + + + + + + 513149.427 5402569.665 244.64 513149.445 5402569.675 244.64 513149.445 5402569.675 262.594 513149.427 5402569.665 262.593 513149.427 5402569.665 244.64 + + + + + + + + + + + + + + + + + 513149.445 5402569.675 244.64 513149.463 5402569.687 244.64 513149.463 5402569.687 262.595 513149.445 5402569.675 262.594 513149.445 5402569.675 244.64 + + + + + + + + + + + + + + + + + 513149.463 5402569.687 244.64 513149.479 5402569.7 244.64 513149.479 5402569.7 262.596 513149.463 5402569.687 262.595 513149.463 5402569.687 244.64 + + + + + + + + + + + + + + + + + 513149.479 5402569.7 244.64 513149.5 5402569.72 244.64 513149.5 5402569.72 262.598 513149.479 5402569.7 262.596 513149.479 5402569.7 244.64 + + + + + + + + + + + + + + + + + 513149.5 5402569.72 244.64 513149.76 5402569.94 244.64 513149.76 5402569.94 262.62 513149.5 5402569.72 262.598 513149.5 5402569.72 244.64 + + + + + + + + + + + + + + + + + 513153.29 5402566.8 262.515 513149.76 5402569.94 262.62 513149.76 5402569.94 244.64 513153.29 5402566.8 244.64 513153.29 5402566.8 262.515 + + + + + + + + + + + + + + + + + 513153.29 5402566.8 244.64 513153.01 5402566.52 244.64 513153.01 5402566.52 262.489 513153.29 5402566.8 262.515 513153.29 5402566.8 244.64 + + + + + + + + + + + + + + + + + 513153.01 5402566.52 244.64 513152.997 5402566.495 244.64 513152.997 5402566.495 262.487 513153.01 5402566.52 262.489 513153.01 5402566.52 244.64 + + + + + + + + + + + + + + + + + 513152.989 5402566.476 244.64 513152.989 5402566.476 262.486 513152.997 5402566.495 262.487 513152.997 5402566.495 244.64 513152.989 5402566.476 244.64 + + + + + + + + + + + + + + + + + 513152.983 5402566.455 244.64 513152.983 5402566.455 262.484 513152.989 5402566.476 262.486 513152.989 5402566.476 244.64 513152.983 5402566.455 244.64 + + + + + + + + + + + + + + + + + 513152.977 5402566.435 244.64 513152.981 5402566.436 262.483 513152.983 5402566.455 262.484 513152.983 5402566.455 244.64 513152.977 5402566.435 244.64 + + + + + + + + + + + + + + + + + 513152.974 5402566.414 244.64 513152.974 5402566.414 262.481 513152.981 5402566.436 262.483 513152.977 5402566.435 244.64 513152.974 5402566.414 244.64 + + + + + + + + + + + + + + + + + 513152.971 5402566.393 244.64 513152.971 5402566.393 262.48 513152.974 5402566.414 262.481 513152.974 5402566.414 244.64 513152.971 5402566.393 244.64 + + + + + + + + + + + + + + + + + 513152.97 5402566.372 244.64 513152.97 5402566.372 262.478 513152.971 5402566.393 262.48 513152.971 5402566.393 244.64 513152.97 5402566.372 244.64 + + + + + + + + + + + + + + + + + 513152.971 5402566.351 244.64 513152.971 5402566.351 262.477 513152.97 5402566.372 262.478 513152.97 5402566.372 244.64 513152.971 5402566.351 244.64 + + + + + + + + + + + + + + + + + 513152.973 5402566.33 244.64 513152.973 5402566.33 262.476 513152.971 5402566.351 262.477 513152.971 5402566.351 244.64 513152.973 5402566.33 244.64 + + + + + + + + + + + + + + + + + 513152.977 5402566.309 244.64 513152.977 5402566.309 262.474 513152.973 5402566.33 262.476 513152.973 5402566.33 244.64 513152.977 5402566.309 244.64 + + + + + + + + + + + + + + + + + 513152.982 5402566.289 244.64 513152.982 5402566.289 262.473 513152.977 5402566.309 262.474 513152.977 5402566.309 244.64 513152.982 5402566.289 244.64 + + + + + + + + + + + + + + + + + 513152.988 5402566.269 244.64 513152.988 5402566.269 262.472 513152.982 5402566.289 262.473 513152.982 5402566.289 244.64 513152.988 5402566.269 244.64 + + + + + + + + + + + + + + + + + 513152.996 5402566.249 244.64 513152.996 5402566.249 262.471 513152.988 5402566.269 262.472 513152.988 5402566.269 244.64 513152.996 5402566.249 244.64 + + + + + + + + + + + + + + + + + 513153.009 5402566.231 262.47 513152.996 5402566.249 262.471 513152.996 5402566.249 244.64 513153.005 5402566.23 244.64 513153.009 5402566.231 262.47 + + + + + + + + + + + + + + + + + 513153.016 5402566.212 262.469 513153.009 5402566.231 262.47 513153.005 5402566.23 244.64 513153.016 5402566.212 244.64 513153.016 5402566.212 262.469 + + + + + + + + + + + + + + + + + 513153.027 5402566.194 262.468 513153.016 5402566.212 262.469 513153.016 5402566.212 244.64 513153.027 5402566.194 244.64 513153.027 5402566.194 262.468 + + + + + + + + + + + + + + + + + 513153.027 5402566.194 244.64 513153.04 5402566.177 244.64 513153.04 5402566.177 262.468 513153.027 5402566.194 262.468 513153.027 5402566.194 244.64 + + + + + + + + + + + + + + + + + 513153.054 5402566.162 262.467 513153.04 5402566.177 262.468 513153.04 5402566.177 244.64 513153.054 5402566.162 244.64 513153.054 5402566.162 262.467 + + + + + + + + + + + + + + + + + 513153.069 5402566.147 262.466 513153.054 5402566.162 262.467 513153.054 5402566.162 244.64 513153.069 5402566.147 244.64 513153.069 5402566.147 262.466 + + + + + + + + + + + + + + + + + 513153.069 5402566.147 244.64 513153.091 5402566.129 244.64 513153.091 5402566.129 262.466 513153.069 5402566.147 262.466 513153.069 5402566.147 244.64 + + + + + + + + + + + + + + + + + 513153.091 5402566.129 244.64 513153.115 5402566.113 244.64 513153.115 5402566.113 262.466 513153.091 5402566.129 262.466 513153.091 5402566.129 244.64 + + + + + + + + + + + + + + + + + 513153.133 5402566.102 262.465 513153.115 5402566.113 262.466 513153.115 5402566.113 244.64 513153.133 5402566.102 244.64 513153.133 5402566.102 262.465 + + + + + + + + + + + + + + + + + 513153.133 5402566.102 244.64 513153.152 5402566.093 244.64 513153.152 5402566.093 262.465 513153.133 5402566.102 262.465 513153.133 5402566.102 244.64 + + + + + + + + + + + + + + + + + 513153.152 5402566.093 244.64 513153.172 5402566.086 244.64 513153.172 5402566.086 262.465 513153.152 5402566.093 262.465 513153.152 5402566.093 244.64 + + + + + + + + + + + + + + + + + 513153.172 5402566.086 244.64 513153.192 5402566.079 244.64 513153.192 5402566.079 262.466 513153.172 5402566.086 262.465 513153.172 5402566.086 244.64 + + + + + + + + + + + + + + + + + 513153.192 5402566.079 244.64 513153.212 5402566.074 244.64 513153.212 5402566.074 262.466 513153.192 5402566.079 262.466 513153.192 5402566.079 244.64 + + + + + + + + + + + + + + + + + 513153.212 5402566.074 244.64 513153.233 5402566.071 244.64 513153.233 5402566.071 262.466 513153.212 5402566.074 262.466 513153.212 5402566.074 244.64 + + + + + + + + + + + + + + + + + 513153.233 5402566.071 244.64 513153.254 5402566.069 244.64 513153.254 5402566.069 262.467 513153.233 5402566.071 262.466 513153.233 5402566.071 244.64 + + + + + + + + + + + + + + + + + 513153.254 5402566.069 244.64 513153.275 5402566.068 244.64 513153.275 5402566.068 262.467 513153.254 5402566.069 262.467 513153.254 5402566.069 244.64 + + + + + + + + + + + + + + + + + 513153.275 5402566.068 244.64 513153.296 5402566.069 244.64 513153.296 5402566.069 262.468 513153.275 5402566.068 262.467 513153.275 5402566.068 244.64 + + + + + + + + + + + + + + + + + 513153.296 5402566.069 244.64 513153.317 5402566.071 244.64 513153.317 5402566.071 262.469 513153.296 5402566.069 262.468 513153.296 5402566.069 244.64 + + + + + + + + + + + + + + + + + 513153.317 5402566.071 244.64 513153.338 5402566.075 244.64 513153.338 5402566.075 262.469 513153.317 5402566.071 262.469 513153.317 5402566.071 244.64 + + + + + + + + + + + + + + + + + 513153.338 5402566.075 244.64 513153.359 5402566.08 244.64 513153.359 5402566.08 262.47 513153.338 5402566.075 262.469 513153.338 5402566.075 244.64 + + + + + + + + + + + + + + + + + 513153.359 5402566.08 244.64 513153.379 5402566.087 244.64 513153.379 5402566.087 262.471 513153.359 5402566.08 262.47 513153.359 5402566.08 244.64 + + + + + + + + + + + + + + + + + 513153.379 5402566.087 244.64 513153.398 5402566.095 244.64 513153.398 5402566.095 262.472 513153.379 5402566.087 262.471 513153.379 5402566.087 244.64 + + + + + + + + + + + + + + + + + 513153.398 5402566.095 244.64 513153.417 5402566.105 244.64 513153.417 5402566.105 262.473 513153.398 5402566.095 262.472 513153.398 5402566.095 244.64 + + + + + + + + + + + + + + + + + 513153.417 5402566.105 244.64 513153.435 5402566.115 244.64 513153.435 5402566.115 262.475 513153.417 5402566.105 262.473 513153.417 5402566.105 244.64 + + + + + + + + + + + + + + + + + 513153.435 5402566.115 244.64 513153.453 5402566.127 244.64 513153.453 5402566.127 262.476 513153.435 5402566.115 262.475 513153.435 5402566.115 244.64 + + + + + + + + + + + + + + + + + 513153.453 5402566.127 244.64 513153.469 5402566.14 244.64 513153.469 5402566.14 262.477 513153.453 5402566.127 262.476 513153.453 5402566.127 244.64 + + + + + + + + + + + + + + + + + 513153.469 5402566.14 244.64 513153.49 5402566.16 244.64 513153.49 5402566.16 262.479 513153.469 5402566.14 262.477 513153.469 5402566.14 244.64 + + + + + + + + + + + + + + + + + 513153.49 5402566.16 244.64 513153.75 5402566.38 244.64 513153.75 5402566.38 262.501 513153.49 5402566.16 262.479 513153.49 5402566.16 244.64 + + + + + + + + + + + + + + + + + 513157.03 5402563.45 262.402 513153.75 5402566.38 262.501 513153.75 5402566.38 244.64 513157.03 5402563.45 244.64 513157.03 5402563.45 262.402 + + + + + + + + + + + + + + + + + 513157.03 5402563.45 244.64 513156.79 5402563.17 244.64 513156.79 5402563.17 262.378 513157.03 5402563.45 262.402 513157.03 5402563.45 244.64 + + + + + + + + + + + + + + + + + 513156.79 5402563.17 244.64 513156.777 5402563.144 244.64 513156.777 5402563.144 262.376 513156.79 5402563.17 262.378 513156.79 5402563.17 244.64 + + + + + + + + + + + + + + + + + 513156.777 5402563.144 244.64 513156.768 5402563.123 244.64 513156.768 5402563.123 262.374 513156.777 5402563.144 262.376 513156.777 5402563.144 244.64 + + + + + + + + + + + + + + + + + 513156.762 5402563.102 244.64 513156.762 5402563.102 262.372 513156.768 5402563.123 262.374 513156.768 5402563.123 244.64 513156.762 5402563.102 244.64 + + + + + + + + + + + + + + + + + 513156.756 5402563.08 244.64 513156.756 5402563.08 262.371 513156.762 5402563.102 262.372 513156.762 5402563.102 244.64 513156.756 5402563.08 244.64 + + + + + + + + + + + + + + + + + 513156.752 5402563.057 244.64 513156.752 5402563.057 262.369 513156.756 5402563.08 262.371 513156.756 5402563.08 244.64 513156.752 5402563.057 244.64 + + + + + + + + + + + + + + + + + 513156.75 5402563.035 244.64 513156.75 5402563.035 262.368 513156.752 5402563.057 262.369 513156.752 5402563.057 244.64 513156.75 5402563.035 244.64 + + + + + + + + + + + + + + + + + 513156.749 5402563.013 244.64 513156.749 5402563.013 262.366 513156.75 5402563.035 262.368 513156.75 5402563.035 244.64 513156.749 5402563.013 244.64 + + + + + + + + + + + + + + + + + 513156.75 5402562.99 244.64 513156.75 5402562.99 262.365 513156.749 5402563.013 262.366 513156.749 5402563.013 244.64 513156.75 5402562.99 244.64 + + + + + + + + + + + + + + + + + 513156.752 5402562.968 244.64 513156.752 5402562.968 262.363 513156.75 5402562.99 262.365 513156.75 5402562.99 244.64 513156.752 5402562.968 244.64 + + + + + + + + + + + + + + + + + 513156.756 5402562.946 244.64 513156.756 5402562.946 262.362 513156.752 5402562.968 262.363 513156.752 5402562.968 244.64 513156.756 5402562.946 244.64 + + + + + + + + + + + + + + + + + 513156.762 5402562.924 244.64 513156.762 5402562.924 262.361 513156.756 5402562.946 262.362 513156.756 5402562.946 244.64 513156.762 5402562.924 244.64 + + + + + + + + + + + + + + + + + 513156.769 5402562.903 244.64 513156.769 5402562.903 262.36 513156.762 5402562.924 262.361 513156.762 5402562.924 244.64 513156.769 5402562.903 244.64 + + + + + + + + + + + + + + + + + 513156.777 5402562.882 244.64 513156.777 5402562.882 262.359 513156.769 5402562.903 262.36 513156.769 5402562.903 244.64 513156.777 5402562.882 244.64 + + + + + + + + + + + + + + + + + 513156.787 5402562.862 262.358 513156.777 5402562.882 262.359 513156.777 5402562.882 244.64 513156.787 5402562.862 244.64 513156.787 5402562.862 262.358 + + + + + + + + + + + + + + + + + 513156.798 5402562.842 262.357 513156.787 5402562.862 262.358 513156.787 5402562.862 244.64 513156.798 5402562.842 244.64 513156.798 5402562.842 262.357 + + + + + + + + + + + + + + + + + 513156.811 5402562.824 262.356 513156.798 5402562.842 262.357 513156.798 5402562.842 244.64 513156.811 5402562.824 244.64 513156.811 5402562.824 262.356 + + + + + + + + + + + + + + + + + 513156.825 5402562.806 262.355 513156.811 5402562.824 262.356 513156.811 5402562.824 244.64 513156.825 5402562.806 244.64 513156.825 5402562.806 262.355 + + + + + + + + + + + + + + + + + 513156.84 5402562.789 262.354 513156.825 5402562.806 262.355 513156.825 5402562.806 244.64 513156.84 5402562.789 244.64 513156.84 5402562.789 262.354 + + + + + + + + + + + + + + + + + 513156.84 5402562.789 244.64 513156.861 5402562.769 244.64 513156.861 5402562.769 262.354 513156.84 5402562.789 262.354 513156.84 5402562.789 244.64 + + + + + + + + + + + + + + + + + 513156.885 5402562.75 262.353 513156.861 5402562.769 262.354 513156.861 5402562.769 244.64 513156.885 5402562.75 244.64 513156.885 5402562.75 262.353 + + + + + + + + + + + + + + + + + 513156.885 5402562.75 244.64 513156.904 5402562.738 244.64 513156.904 5402562.738 262.353 513156.885 5402562.75 262.353 513156.885 5402562.75 244.64 + + + + + + + + + + + + + + + + + 513156.904 5402562.738 244.64 513156.923 5402562.727 244.64 513156.923 5402562.727 262.353 513156.904 5402562.738 262.353 513156.904 5402562.738 244.64 + + + + + + + + + + + + + + + + + 513156.923 5402562.727 244.64 513156.944 5402562.717 244.64 513156.944 5402562.717 262.353 513156.923 5402562.727 262.353 513156.923 5402562.727 244.64 + + + + + + + + + + + + + + + + + 513156.944 5402562.717 244.64 513156.965 5402562.709 244.64 513156.965 5402562.709 262.353 513156.944 5402562.717 262.353 513156.944 5402562.717 244.64 + + + + + + + + + + + + + + + + + 513156.965 5402562.709 244.64 513156.986 5402562.702 244.64 513156.986 5402562.702 262.353 513156.965 5402562.709 262.353 513156.965 5402562.709 244.64 + + + + + + + + + + + + + + + + + 513156.986 5402562.702 244.64 513157.008 5402562.697 244.64 513157.008 5402562.697 262.353 513156.986 5402562.702 262.353 513156.986 5402562.702 244.64 + + + + + + + + + + + + + + + + + 513157.008 5402562.697 244.64 513157.03 5402562.694 244.64 513157.03 5402562.694 262.353 513157.008 5402562.697 262.353 513157.008 5402562.697 244.64 + + + + + + + + + + + + + + + + + 513157.03 5402562.694 244.64 513157.053 5402562.692 244.64 513157.053 5402562.692 262.354 513157.03 5402562.694 262.353 513157.03 5402562.694 244.64 + + + + + + + + + + + + + + + + + 513157.053 5402562.692 244.64 513157.075 5402562.691 244.64 513157.075 5402562.691 262.355 513157.053 5402562.692 262.354 513157.053 5402562.692 244.64 + + + + + + + + + + + + + + + + + 513157.075 5402562.691 244.64 513157.098 5402562.692 244.64 513157.098 5402562.692 262.355 513157.075 5402562.691 262.355 513157.075 5402562.691 244.64 + + + + + + + + + + + + + + + + + 513157.098 5402562.692 244.64 513157.12 5402562.695 244.64 513157.12 5402562.695 262.356 513157.098 5402562.692 262.355 513157.098 5402562.692 244.64 + + + + + + + + + + + + + + + + + 513157.12 5402562.695 244.64 513157.142 5402562.699 244.64 513157.142 5402562.699 262.357 513157.12 5402562.695 262.356 513157.12 5402562.695 244.64 + + + + + + + + + + + + + + + + + 513157.142 5402562.699 244.64 513157.164 5402562.705 244.64 513157.164 5402562.705 262.358 513157.142 5402562.699 262.357 513157.142 5402562.699 244.64 + + + + + + + + + + + + + + + + + 513157.164 5402562.705 244.64 513157.185 5402562.712 244.64 513157.185 5402562.712 262.359 513157.164 5402562.705 262.358 513157.164 5402562.705 244.64 + + + + + + + + + + + + + + + + + 513157.185 5402562.712 244.64 513157.206 5402562.721 244.64 513157.206 5402562.721 262.36 513157.185 5402562.712 262.359 513157.185 5402562.712 244.64 + + + + + + + + + + + + + + + + + 513157.206 5402562.721 244.64 513157.226 5402562.731 244.64 513157.226 5402562.731 262.361 513157.206 5402562.721 262.36 513157.206 5402562.721 244.64 + + + + + + + + + + + + + + + + + 513157.226 5402562.731 244.64 513157.245 5402562.742 244.64 513157.245 5402562.742 262.363 513157.226 5402562.731 262.361 513157.226 5402562.731 244.64 + + + + + + + + + + + + + + + + + 513157.245 5402562.742 244.64 513157.27 5402562.76 244.64 513157.27 5402562.76 262.364 513157.245 5402562.742 262.363 513157.245 5402562.742 244.64 + + + + + + + + + + + + + + + + + 513157.27 5402562.76 244.64 513157.53 5402562.98 244.64 513157.53 5402562.98 262.386 513157.27 5402562.76 262.364 513157.27 5402562.76 244.64 + + + + + + + + + + + + + + + + + 513160.8 5402560.07 262.289 513157.53 5402562.98 262.386 513157.53 5402562.98 244.64 513160.8 5402560.07 244.64 513160.8 5402560.07 262.289 + + + + + + + + + + + + + + + + + 513160.8 5402560.07 244.64 513160.6 5402559.79 244.64 513160.6 5402559.79 262.265 513160.8 5402560.07 262.289 513160.8 5402560.07 244.64 + + + + + + + + + + + + + + + + + 513160.6 5402559.79 244.64 513160.587 5402559.776 244.64 513160.587 5402559.776 262.264 513160.6 5402559.79 262.265 513160.6 5402559.79 244.64 + + + + + + + + + + + + + + + + + 513160.587 5402559.776 244.64 513160.577 5402559.763 244.64 513160.577 5402559.763 262.263 513160.587 5402559.776 262.264 513160.587 5402559.776 244.64 + + + + + + + + + + + + + + + + + 513160.577 5402559.763 244.64 513160.568 5402559.75 244.64 513160.568 5402559.75 262.262 513160.577 5402559.763 262.263 513160.577 5402559.763 244.64 + + + + + + + + + + + + + + + + + 513160.56 5402559.737 244.64 513160.56 5402559.737 262.26 513160.568 5402559.75 262.262 513160.568 5402559.75 244.64 513160.56 5402559.737 244.64 + + + + + + + + + + + + + + + + + 513160.553 5402559.722 244.64 513160.553 5402559.722 262.259 513160.56 5402559.737 262.26 513160.56 5402559.737 244.64 513160.553 5402559.722 244.64 + + + + + + + + + + + + + + + + + 513160.546 5402559.708 244.64 513160.546 5402559.708 262.258 513160.553 5402559.722 262.259 513160.553 5402559.722 244.64 513160.546 5402559.708 244.64 + + + + + + + + + + + + + + + + + 513160.541 5402559.693 244.64 513160.541 5402559.693 262.257 513160.546 5402559.708 262.258 513160.546 5402559.708 244.64 513160.541 5402559.693 244.64 + + + + + + + + + + + + + + + + + 513160.537 5402559.677 244.64 513160.537 5402559.677 262.256 513160.541 5402559.693 262.257 513160.541 5402559.693 244.64 513160.537 5402559.677 244.64 + + + + + + + + + + + + + + + + + 513160.534 5402559.662 244.64 513160.534 5402559.662 262.255 513160.537 5402559.677 262.256 513160.537 5402559.677 244.64 513160.534 5402559.662 244.64 + + + + + + + + + + + + + + + + + 513160.532 5402559.646 244.64 513160.532 5402559.646 262.254 513160.534 5402559.662 262.255 513160.534 5402559.662 244.64 513160.532 5402559.646 244.64 + + + + + + + + + + + + + + + + + 513160.532 5402559.63 244.64 513160.532 5402559.63 262.253 513160.532 5402559.646 262.254 513160.532 5402559.646 244.64 513160.532 5402559.63 244.64 + + + + + + + + + + + + + + + + + 513160.532 5402559.614 244.64 513160.532 5402559.614 262.252 513160.532 5402559.63 262.253 513160.532 5402559.63 244.64 513160.532 5402559.614 244.64 + + + + + + + + + + + + + + + + + 513160.534 5402559.598 244.64 513160.534 5402559.598 262.251 513160.532 5402559.614 262.252 513160.532 5402559.614 244.64 513160.534 5402559.598 244.64 + + + + + + + + + + + + + + + + + 513160.536 5402559.583 244.64 513160.536 5402559.583 262.25 513160.534 5402559.598 262.251 513160.534 5402559.598 244.64 513160.536 5402559.583 244.64 + + + + + + + + + + + + + + + + + 513160.54 5402559.567 244.64 513160.54 5402559.567 262.249 513160.536 5402559.583 262.25 513160.536 5402559.583 244.64 513160.54 5402559.567 244.64 + + + + + + + + + + + + + + + + + 513160.545 5402559.552 244.64 513160.545 5402559.552 262.248 513160.54 5402559.567 262.249 513160.54 5402559.567 244.64 513160.545 5402559.552 244.64 + + + + + + + + + + + + + + + + + 513160.55 5402559.537 244.64 513160.55 5402559.537 262.247 513160.545 5402559.552 262.248 513160.545 5402559.552 244.64 513160.55 5402559.537 244.64 + + + + + + + + + + + + + + + + + 513160.557 5402559.523 244.64 513160.557 5402559.523 262.247 513160.55 5402559.537 262.247 513160.55 5402559.537 244.64 513160.557 5402559.523 244.64 + + + + + + + + + + + + + + + + + 513160.565 5402559.509 244.64 513160.565 5402559.509 262.246 513160.557 5402559.523 262.247 513160.557 5402559.523 244.64 513160.565 5402559.509 244.64 + + + + + + + + + + + + + + + + + 513160.574 5402559.496 262.245 513160.565 5402559.509 262.246 513160.565 5402559.509 244.64 513160.574 5402559.496 244.64 513160.574 5402559.496 262.245 + + + + + + + + + + + + + + + + + 513160.574 5402559.496 244.64 513160.583 5402559.483 244.64 513160.583 5402559.483 262.245 513160.574 5402559.496 262.245 513160.574 5402559.496 244.64 + + + + + + + + + + + + + + + + + 513160.594 5402559.471 262.244 513160.583 5402559.483 262.245 513160.583 5402559.483 244.64 513160.594 5402559.471 244.64 513160.594 5402559.471 262.244 + + + + + + + + + + + + + + + + + 513160.594 5402559.471 244.64 513160.605 5402559.46 244.64 513160.605 5402559.46 262.244 513160.594 5402559.471 262.244 513160.594 5402559.471 244.64 + + + + + + + + + + + + + + + + + 513160.617 5402559.45 262.243 513160.605 5402559.46 262.244 513160.605 5402559.46 244.64 513160.617 5402559.45 244.64 513160.617 5402559.45 262.243 + + + + + + + + + + + + + + + + + 513160.617 5402559.45 244.64 513160.633 5402559.438 244.64 513160.633 5402559.438 262.243 513160.617 5402559.45 262.243 513160.617 5402559.45 244.64 + + + + + + + + + + + + + + + + + 513160.633 5402559.438 244.64 513160.649 5402559.429 244.64 513160.649 5402559.429 262.243 513160.633 5402559.438 262.243 513160.633 5402559.438 244.64 + + + + + + + + + + + + + + + + + 513160.649 5402559.429 244.64 513160.663 5402559.421 244.64 513160.663 5402559.421 262.243 513160.649 5402559.429 262.243 513160.649 5402559.429 244.64 + + + + + + + + + + + + + + + + + 513160.663 5402559.421 244.64 513160.677 5402559.415 244.64 513160.677 5402559.415 262.243 513160.663 5402559.421 262.243 513160.663 5402559.421 244.64 + + + + + + + + + + + + + + + + + 513160.677 5402559.415 244.64 513160.692 5402559.41 244.64 513160.692 5402559.41 262.243 513160.677 5402559.415 262.243 513160.677 5402559.415 244.64 + + + + + + + + + + + + + + + + + 513160.692 5402559.41 244.64 513160.708 5402559.406 244.64 513160.708 5402559.406 262.243 513160.692 5402559.41 262.243 513160.692 5402559.41 244.64 + + + + + + + + + + + + + + + + + 513160.708 5402559.406 244.64 513160.723 5402559.402 244.64 513160.723 5402559.402 262.243 513160.708 5402559.406 262.243 513160.708 5402559.406 244.64 + + + + + + + + + + + + + + + + + 513160.723 5402559.402 244.64 513160.739 5402559.4 244.64 513160.739 5402559.4 262.244 513160.723 5402559.402 262.243 513160.723 5402559.402 244.64 + + + + + + + + + + + + + + + + + 513160.739 5402559.4 244.64 513160.755 5402559.4 244.64 513160.755 5402559.4 262.244 513160.739 5402559.4 262.244 513160.739 5402559.4 244.64 + + + + + + + + + + + + + + + + + 513160.755 5402559.4 244.64 513160.771 5402559.4 244.64 513160.771 5402559.4 262.245 513160.755 5402559.4 262.244 513160.755 5402559.4 244.64 + + + + + + + + + + + + + + + + + 513160.771 5402559.4 244.64 513160.787 5402559.401 244.64 513160.787 5402559.401 262.245 513160.771 5402559.4 262.245 513160.771 5402559.4 244.64 + + + + + + + + + + + + + + + + + 513160.787 5402559.401 244.64 513160.803 5402559.404 244.64 513160.803 5402559.404 262.246 513160.787 5402559.401 262.245 513160.787 5402559.401 244.64 + + + + + + + + + + + + + + + + + 513160.803 5402559.404 244.64 513160.818 5402559.407 244.64 513160.818 5402559.407 262.246 513160.803 5402559.404 262.246 513160.803 5402559.404 244.64 + + + + + + + + + + + + + + + + + 513160.818 5402559.407 244.64 513160.833 5402559.412 244.64 513160.833 5402559.412 262.247 513160.818 5402559.407 262.246 513160.818 5402559.407 244.64 + + + + + + + + + + + + + + + + + 513160.833 5402559.412 244.64 513160.848 5402559.417 244.64 513160.848 5402559.417 262.248 513160.833 5402559.412 262.247 513160.833 5402559.412 244.64 + + + + + + + + + + + + + + + + + 513160.848 5402559.417 244.64 513160.862 5402559.424 244.64 513160.862 5402559.424 262.249 513160.848 5402559.417 262.248 513160.848 5402559.417 244.64 + + + + + + + + + + + + + + + + + 513160.862 5402559.424 244.64 513160.876 5402559.432 244.64 513160.876 5402559.432 262.25 513160.862 5402559.424 262.249 513160.862 5402559.424 244.64 + + + + + + + + + + + + + + + + + 513160.876 5402559.432 244.64 513160.89 5402559.44 244.64 513160.89 5402559.44 262.251 513160.876 5402559.432 262.25 513160.876 5402559.432 244.64 + + + + + + + + + + + + + + + + + 513160.89 5402559.44 244.64 513160.902 5402559.45 244.64 513160.902 5402559.45 262.251 513160.89 5402559.44 262.251 513160.89 5402559.44 244.64 + + + + + + + + + + + + + + + + + 513160.902 5402559.45 244.64 513160.914 5402559.46 244.64 513160.914 5402559.46 262.253 513160.902 5402559.45 262.251 513160.902 5402559.45 244.64 + + + + + + + + + + + + + + + + + 513160.914 5402559.46 244.64 513160.926 5402559.472 244.64 513160.926 5402559.472 262.254 513160.914 5402559.46 262.253 513160.914 5402559.46 244.64 + + + + + + + + + + + + + + + + + 513160.926 5402559.472 244.64 513160.936 5402559.484 244.64 513160.936 5402559.484 262.255 513160.926 5402559.472 262.254 513160.926 5402559.472 244.64 + + + + + + + + + + + + + + + + + 513160.936 5402559.484 244.64 513160.946 5402559.496 244.64 513160.946 5402559.496 262.256 513160.936 5402559.484 262.255 513160.936 5402559.484 244.64 + + + + + + + + + + + + + + + + + 513160.946 5402559.496 244.64 513160.955 5402559.51 244.64 513160.955 5402559.51 262.257 513160.946 5402559.496 262.256 513160.946 5402559.496 244.64 + + + + + + + + + + + + + + + + + 513160.955 5402559.51 262.257 513160.955 5402559.51 244.64 513160.962 5402559.523 244.64 513160.962 5402559.523 262.258 513160.955 5402559.51 262.257 + + + + + + + + + + + + + + + + + 513160.962 5402559.523 262.258 513160.962 5402559.523 244.64 513160.97 5402559.54 244.64 513160.97 5402559.54 262.259 513160.962 5402559.523 262.258 + + + + + + + + + + + + + + + + + 513160.97 5402559.54 244.64 513162.77 5402561.57 244.64 513162.77 5402561.57 262.441 513160.97 5402559.54 262.259 513160.97 5402559.54 244.64 + + + + + + + + + + + + + + + + + 513162.77 5402561.57 244.64 513165.11 5402564.25 244.64 513165.11 5402564.25 262.68 513162.77 5402561.57 262.441 513162.77 5402561.57 244.64 + + + + + + + + + + + + + + + + + 513169.61 5402562.26 262.677 513165.11 5402564.25 262.68 513165.11 5402564.25 244.64 513169.61 5402562.26 244.64 513169.61 5402562.26 262.677 + + + + + + + + + + + + + + + + + 513169.61 5402562.26 244.64 513169.583 5402562.24 244.64 513169.583 5402562.24 262.675 513169.61 5402562.26 262.677 513169.61 5402562.26 244.64 + + + + + + + + + + + + + + + + + 513169.583 5402562.24 244.64 513169.564 5402562.224 244.64 513169.564 5402562.224 262.673 513169.583 5402562.24 262.675 513169.583 5402562.24 244.64 + + + + + + + + + + + + + + + + + 513169.564 5402562.224 244.64 513169.547 5402562.207 244.64 513169.547 5402562.207 262.672 513169.564 5402562.224 262.673 513169.564 5402562.224 244.64 + + + + + + + + + + + + + + + + + 513169.547 5402562.207 244.64 513169.531 5402562.189 244.64 513169.531 5402562.189 262.67 513169.547 5402562.207 262.672 513169.547 5402562.207 244.64 + + + + + + + + + + + + + + + + + 513169.531 5402562.189 244.64 513169.516 5402562.169 244.64 513169.516 5402562.169 262.668 513169.531 5402562.189 262.67 513169.531 5402562.189 244.64 + + + + + + + + + + + + + + + + + 513169.516 5402562.169 244.64 513169.503 5402562.149 244.64 513169.503 5402562.149 262.667 513169.516 5402562.169 262.668 513169.516 5402562.169 244.64 + + + + + + + + + + + + + + + + + 513169.503 5402562.149 244.64 513169.491 5402562.127 244.64 513169.491 5402562.127 262.665 513169.503 5402562.149 262.667 513169.503 5402562.149 244.64 + + + + + + + + + + + + + + + + + 513169.491 5402562.127 244.64 513169.48 5402562.105 244.64 513169.48 5402562.105 262.663 513169.491 5402562.127 262.665 513169.491 5402562.127 244.64 + + + + + + + + + + + + + + + + + 513169.48 5402562.105 244.64 513169.471 5402562.082 244.64 513169.471 5402562.082 262.661 513169.48 5402562.105 262.663 513169.48 5402562.105 244.64 + + + + + + + + + + + + + + + + + 513169.464 5402562.059 244.64 513169.464 5402562.059 262.66 513169.471 5402562.082 262.661 513169.471 5402562.082 244.64 513169.464 5402562.059 244.64 + + + + + + + + + + + + + + + + + 513169.458 5402562.035 244.64 513169.458 5402562.035 262.658 513169.464 5402562.059 262.66 513169.464 5402562.059 244.64 513169.458 5402562.035 244.64 + + + + + + + + + + + + + + + + + 513169.454 5402562.011 244.64 513169.454 5402562.011 262.656 513169.458 5402562.035 262.658 513169.458 5402562.035 244.64 513169.454 5402562.011 244.64 + + + + + + + + + + + + + + + + + 513169.452 5402561.986 244.64 513169.452 5402561.986 262.655 513169.454 5402562.011 262.656 513169.454 5402562.011 244.64 513169.452 5402561.986 244.64 + + + + + + + + + + + + + + + + + 513169.452 5402561.962 244.64 513169.452 5402561.962 262.653 513169.452 5402561.986 262.655 513169.452 5402561.986 244.64 513169.452 5402561.962 244.64 + + + + + + + + + + + + + + + + + 513169.453 5402561.937 244.64 513169.453 5402561.937 262.651 513169.452 5402561.962 262.653 513169.452 5402561.962 244.64 513169.453 5402561.937 244.64 + + + + + + + + + + + + + + + + + 513169.456 5402561.913 244.64 513169.456 5402561.913 262.65 513169.453 5402561.937 262.651 513169.453 5402561.937 244.64 513169.456 5402561.913 244.64 + + + + + + + + + + + + + + + + + 513169.46 5402561.889 244.64 513169.46 5402561.889 262.649 513169.456 5402561.913 262.65 513169.456 5402561.913 244.64 513169.46 5402561.889 244.64 + + + + + + + + + + + + + + + + + 513169.466 5402561.865 244.64 513169.466 5402561.865 262.647 513169.46 5402561.889 262.649 513169.46 5402561.889 244.64 513169.466 5402561.865 244.64 + + + + + + + + + + + + + + + + + 513169.474 5402561.842 244.64 513169.474 5402561.842 262.646 513169.466 5402561.865 262.647 513169.466 5402561.865 244.64 513169.474 5402561.842 244.64 + + + + + + + + + + + + + + + + + 513169.484 5402561.819 262.645 513169.474 5402561.842 262.646 513169.474 5402561.842 244.64 513169.484 5402561.819 244.64 513169.484 5402561.819 262.645 + + + + + + + + + + + + + + + + + 513169.495 5402561.797 262.644 513169.484 5402561.819 262.645 513169.484 5402561.819 244.64 513169.495 5402561.797 244.64 513169.495 5402561.797 262.644 + + + + + + + + + + + + + + + + + 513169.507 5402561.776 262.643 513169.495 5402561.797 262.644 513169.495 5402561.797 244.64 513169.507 5402561.776 244.64 513169.507 5402561.776 262.643 + + + + + + + + + + + + + + + + + 513169.521 5402561.756 262.642 513169.507 5402561.776 262.643 513169.507 5402561.776 244.64 513169.521 5402561.756 244.64 513169.521 5402561.756 262.642 + + + + + + + + + + + + + + + + + 513169.537 5402561.737 262.641 513169.521 5402561.756 262.642 513169.521 5402561.756 244.64 513169.537 5402561.737 244.64 513169.537 5402561.737 262.641 + + + + + + + + + + + + + + + + + 513169.553 5402561.719 262.64 513169.537 5402561.737 262.641 513169.537 5402561.737 244.64 513169.553 5402561.719 244.64 513169.553 5402561.719 262.64 + + + + + + + + + + + + + + + + + 513169.553 5402561.719 244.64 513169.571 5402561.702 244.64 513169.571 5402561.702 262.64 513169.553 5402561.719 262.64 513169.553 5402561.719 244.64 + + + + + + + + + + + + + + + + + 513169.59 5402561.687 262.639 513169.571 5402561.702 262.64 513169.571 5402561.702 244.64 513169.59 5402561.687 244.64 513169.59 5402561.687 262.639 + + + + + + + + + + + + + + + + + 513169.59 5402561.687 244.64 513169.61 5402561.673 244.64 513169.61 5402561.673 262.639 513169.59 5402561.687 262.639 513169.59 5402561.687 244.64 + + + + + + + + + + + + + + + + + 513169.61 5402561.673 244.64 513169.631 5402561.66 244.64 513169.631 5402561.66 262.639 513169.61 5402561.673 262.639 513169.61 5402561.673 244.64 + + + + + + + + + + + + + + + + + 513169.661 5402561.645 262.638 513169.631 5402561.66 262.639 513169.631 5402561.66 244.64 513169.661 5402561.645 244.64 513169.661 5402561.645 262.638 + + + + + + + + + + + + + + + + + 513169.661 5402561.645 244.64 513169.691 5402561.633 244.64 513169.691 5402561.633 262.638 513169.661 5402561.645 262.638 513169.661 5402561.645 244.64 + + + + + + + + + + + + + + + + + 513169.691 5402561.633 244.64 513169.715 5402561.626 244.64 513169.715 5402561.626 262.639 513169.691 5402561.633 262.638 513169.691 5402561.633 244.64 + + + + + + + + + + + + + + + + + 513169.715 5402561.626 244.64 513169.739 5402561.621 244.64 513169.739 5402561.621 262.639 513169.715 5402561.626 262.639 513169.715 5402561.626 244.64 + + + + + + + + + + + + + + + + + 513169.739 5402561.621 244.64 513169.763 5402561.617 244.64 513169.763 5402561.617 262.639 513169.739 5402561.621 262.639 513169.739 5402561.621 244.64 + + + + + + + + + + + + + + + + + 513169.763 5402561.617 244.64 513169.787 5402561.615 244.64 513169.787 5402561.615 262.64 513169.763 5402561.617 262.639 513169.763 5402561.617 244.64 + + + + + + + + + + + + + + + + + 513169.787 5402561.615 244.64 513169.812 5402561.615 244.64 513169.812 5402561.615 262.641 513169.787 5402561.615 262.64 513169.787 5402561.615 244.64 + + + + + + + + + + + + + + + + + 513169.812 5402561.615 244.64 513169.836 5402561.617 244.64 513169.836 5402561.617 262.641 513169.812 5402561.615 262.641 513169.812 5402561.615 244.64 + + + + + + + + + + + + + + + + + 513169.836 5402561.617 244.64 513169.861 5402561.62 244.64 513169.861 5402561.62 262.642 513169.836 5402561.617 262.641 513169.836 5402561.617 244.64 + + + + + + + + + + + + + + + + + 513169.861 5402561.62 244.64 513169.885 5402561.625 244.64 513169.885 5402561.625 262.643 513169.861 5402561.62 262.642 513169.861 5402561.62 244.64 + + + + + + + + + + + + + + + + + 513169.885 5402561.625 244.64 513169.908 5402561.631 244.64 513169.908 5402561.631 262.644 513169.885 5402561.625 262.643 513169.885 5402561.625 244.64 + + + + + + + + + + + + + + + + + 513169.908 5402561.631 244.64 513169.931 5402561.639 244.64 513169.931 5402561.639 262.646 513169.908 5402561.631 262.644 513169.908 5402561.631 244.64 + + + + + + + + + + + + + + + + + 513169.931 5402561.639 244.64 513169.954 5402561.649 244.64 513169.954 5402561.649 262.647 513169.931 5402561.639 262.646 513169.931 5402561.639 244.64 + + + + + + + + + + + + + + + + + 513169.954 5402561.649 244.64 513169.976 5402561.661 244.64 513169.976 5402561.661 262.648 513169.954 5402561.649 262.647 513169.954 5402561.649 244.64 + + + + + + + + + + + + + + + + + 513169.976 5402561.661 244.64 513169.997 5402561.673 244.64 513169.997 5402561.673 262.65 513169.976 5402561.661 262.648 513169.976 5402561.661 244.64 + + + + + + + + + + + + + + + + + 513169.997 5402561.673 244.64 513170.017 5402561.688 244.64 513170.017 5402561.688 262.651 513169.997 5402561.673 262.65 513169.997 5402561.673 244.64 + + + + + + + + + + + + + + + + + 513170.017 5402561.688 244.64 513170.036 5402561.703 244.64 513170.036 5402561.703 262.653 513170.017 5402561.688 262.651 513170.017 5402561.688 244.64 + + + + + + + + + + + + + + + + + 513170.036 5402561.703 244.64 513170.053 5402561.72 244.64 513170.053 5402561.72 262.654 513170.036 5402561.703 262.653 513170.036 5402561.703 244.64 + + + + + + + + + + + + + + + + + 513170.053 5402561.72 244.64 513170.07 5402561.738 244.64 513170.07 5402561.738 262.656 513170.053 5402561.72 262.654 513170.053 5402561.72 244.64 + + + + + + + + + + + + + + + + + 513170.07 5402561.738 244.64 513170.085 5402561.757 244.64 513170.085 5402561.757 262.657 513170.07 5402561.738 262.656 513170.07 5402561.738 244.64 + + + + + + + + + + + + + + + + + 513170.085 5402561.757 244.64 513170.099 5402561.777 244.64 513170.099 5402561.777 262.659 513170.085 5402561.757 262.657 513170.085 5402561.757 244.64 + + + + + + + + + + + + + + + + + 513170.099 5402561.777 244.64 513170.111 5402561.799 244.64 513170.111 5402561.799 262.661 513170.099 5402561.777 262.659 513170.099 5402561.777 244.64 + + + + + + + + + + + + + + + + + 513170.111 5402561.799 244.64 513170.122 5402561.821 244.64 513170.122 5402561.821 262.663 513170.111 5402561.799 262.661 513170.111 5402561.799 244.64 + + + + + + + + + + + + + + + + + 513170.122 5402561.821 244.64 513170.132 5402561.843 244.64 513170.132 5402561.843 262.664 513170.122 5402561.821 262.663 513170.122 5402561.821 244.64 + + + + + + + + + + + + + + + + + 513170.132 5402561.843 262.664 513170.132 5402561.843 244.64 513170.14 5402561.866 244.64 513170.14 5402561.866 262.666 513170.132 5402561.843 262.664 + + + + + + + + + + + + + + + + + 513170.14 5402561.866 262.666 513170.14 5402561.866 244.64 513170.146 5402561.89 244.64 513170.146 5402561.89 262.668 513170.14 5402561.866 262.666 + + + + + + + + + + + + + + + + + 513170.146 5402561.89 262.668 513170.146 5402561.89 244.64 513170.15 5402561.914 244.64 513170.15 5402561.914 262.669 513170.146 5402561.89 262.668 + + + + + + + + + + + + + + + + + 513170.15 5402561.914 262.669 513170.15 5402561.914 244.64 513170.153 5402561.939 244.64 513170.153 5402561.939 262.671 513170.15 5402561.914 262.669 + + + + + + + + + + + + + + + + + 513170.153 5402561.939 262.671 513170.153 5402561.939 244.64 513170.154 5402561.963 244.64 513170.154 5402561.963 262.673 513170.153 5402561.939 262.671 + + + + + + + + + + + + + + + + + 513170.154 5402561.963 262.673 513170.154 5402561.963 244.64 513170.154 5402561.988 244.64 513170.154 5402561.988 262.674 513170.154 5402561.963 262.673 + + + + + + + + + + + + + + + + + 513170.154 5402561.988 262.674 513170.154 5402561.988 244.64 513170.15 5402562.02 244.64 513170.15 5402562.02 262.676 513170.154 5402561.988 262.674 + + + + + + + + + + + + + + + + + 513174.28 5402560.2 262.674 513170.15 5402562.02 262.676 513170.15 5402562.02 244.64 513174.28 5402560.2 244.64 513174.28 5402560.2 262.674 + + + + + + + + + + + + + + + + + 513174.28 5402560.2 244.64 513174.257 5402560.188 244.64 513174.257 5402560.188 262.672 513174.28 5402560.2 262.674 513174.28 5402560.2 244.64 + + + + + + + + + + + + + + + + + 513174.257 5402560.188 244.64 513174.237 5402560.175 244.64 513174.237 5402560.175 262.671 513174.257 5402560.188 262.672 513174.257 5402560.188 244.64 + + + + + + + + + + + + + + + + + 513174.237 5402560.175 244.64 513174.218 5402560.161 244.64 513174.218 5402560.161 262.67 513174.237 5402560.175 262.671 513174.237 5402560.175 244.64 + + + + + + + + + + + + + + + + + 513174.218 5402560.161 244.64 513174.2 5402560.146 244.64 513174.2 5402560.146 262.668 513174.218 5402560.161 262.67 513174.218 5402560.161 244.64 + + + + + + + + + + + + + + + + + 513174.2 5402560.146 244.64 513174.182 5402560.129 244.64 513174.182 5402560.129 262.667 513174.2 5402560.146 262.668 513174.2 5402560.146 244.64 + + + + + + + + + + + + + + + + + 513174.182 5402560.129 244.64 513174.166 5402560.112 244.64 513174.166 5402560.112 262.665 513174.182 5402560.129 262.667 513174.182 5402560.129 244.64 + + + + + + + + + + + + + + + + + 513174.166 5402560.112 244.64 513174.152 5402560.093 244.64 513174.152 5402560.093 262.663 513174.166 5402560.112 262.665 513174.166 5402560.112 244.64 + + + + + + + + + + + + + + + + + 513174.152 5402560.093 244.64 513174.138 5402560.073 244.64 513174.138 5402560.073 262.662 513174.152 5402560.093 262.663 513174.152 5402560.093 244.64 + + + + + + + + + + + + + + + + + 513174.138 5402560.073 244.64 513174.127 5402560.053 244.64 513174.127 5402560.053 262.66 513174.138 5402560.073 262.662 513174.138 5402560.073 244.64 + + + + + + + + + + + + + + + + + 513174.127 5402560.053 244.64 513174.116 5402560.031 244.64 513174.116 5402560.031 262.658 513174.127 5402560.053 262.66 513174.127 5402560.053 244.64 + + + + + + + + + + + + + + + + + 513174.116 5402560.031 244.64 513174.107 5402560.009 244.64 513174.107 5402560.009 262.657 513174.116 5402560.031 262.658 513174.116 5402560.031 244.64 + + + + + + + + + + + + + + + + + 513174.1 5402559.987 244.64 513174.1 5402559.987 262.655 513174.107 5402560.009 262.657 513174.107 5402560.009 244.64 513174.1 5402559.987 244.64 + + + + + + + + + + + + + + + + + 513174.094 5402559.963 244.64 513174.094 5402559.963 262.653 513174.1 5402559.987 262.655 513174.1 5402559.987 244.64 513174.094 5402559.963 244.64 + + + + + + + + + + + + + + + + + 513174.09 5402559.94 244.64 513174.09 5402559.94 262.652 513174.094 5402559.963 262.653 513174.094 5402559.963 244.64 513174.09 5402559.94 244.64 + + + + + + + + + + + + + + + + + 513174.087 5402559.916 244.64 513174.087 5402559.916 262.65 513174.09 5402559.94 262.652 513174.09 5402559.94 244.64 513174.087 5402559.916 244.64 + + + + + + + + + + + + + + + + + 513174.087 5402559.893 244.64 513174.087 5402559.893 262.648 513174.087 5402559.916 262.65 513174.087 5402559.916 244.64 513174.087 5402559.893 244.64 + + + + + + + + + + + + + + + + + 513174.087 5402559.869 244.64 513174.087 5402559.869 262.647 513174.087 5402559.893 262.648 513174.087 5402559.893 244.64 513174.087 5402559.869 244.64 + + + + + + + + + + + + + + + + + 513174.09 5402559.845 244.64 513174.09 5402559.845 262.645 513174.087 5402559.869 262.647 513174.087 5402559.869 244.64 513174.09 5402559.845 244.64 + + + + + + + + + + + + + + + + + 513174.094 5402559.822 244.64 513174.094 5402559.822 262.644 513174.09 5402559.845 262.645 513174.09 5402559.845 244.64 513174.094 5402559.822 244.64 + + + + + + + + + + + + + + + + + 513174.1 5402559.798 244.64 513174.1 5402559.798 262.643 513174.094 5402559.822 262.644 513174.094 5402559.822 244.64 513174.1 5402559.798 244.64 + + + + + + + + + + + + + + + + + 513174.107 5402559.776 244.64 513174.107 5402559.776 262.641 513174.1 5402559.798 262.643 513174.1 5402559.798 244.64 513174.107 5402559.776 244.64 + + + + + + + + + + + + + + + + + 513174.116 5402559.754 262.64 513174.107 5402559.776 262.641 513174.107 5402559.776 244.64 513174.116 5402559.754 244.64 513174.116 5402559.754 262.64 + + + + + + + + + + + + + + + + + 513174.127 5402559.732 262.639 513174.116 5402559.754 262.64 513174.116 5402559.754 244.64 513174.127 5402559.732 244.64 513174.127 5402559.732 262.639 + + + + + + + + + + + + + + + + + 513174.138 5402559.712 262.638 513174.127 5402559.732 262.639 513174.127 5402559.732 244.64 513174.138 5402559.712 244.64 513174.138 5402559.712 262.638 + + + + + + + + + + + + + + + + + 513174.152 5402559.692 262.637 513174.138 5402559.712 262.638 513174.138 5402559.712 244.64 513174.152 5402559.692 244.64 513174.152 5402559.692 262.637 + + + + + + + + + + + + + + + + + 513174.166 5402559.673 262.636 513174.152 5402559.692 262.637 513174.152 5402559.692 244.64 513174.166 5402559.673 244.64 513174.166 5402559.673 262.636 + + + + + + + + + + + + + + + + + 513174.166 5402559.673 244.64 513174.182 5402559.656 244.64 513174.182 5402559.656 262.636 513174.166 5402559.673 262.636 513174.166 5402559.673 244.64 + + + + + + + + + + + + + + + + + 513174.2 5402559.639 262.635 513174.182 5402559.656 262.636 513174.182 5402559.656 244.64 513174.2 5402559.639 244.64 513174.2 5402559.639 262.635 + + + + + + + + + + + + + + + + + 513174.2 5402559.639 244.64 513174.218 5402559.624 244.64 513174.218 5402559.624 262.635 513174.2 5402559.639 262.635 513174.2 5402559.639 244.64 + + + + + + + + + + + + + + + + + 513174.237 5402559.61 262.634 513174.218 5402559.624 262.635 513174.218 5402559.624 244.64 513174.237 5402559.61 244.64 513174.237 5402559.61 262.634 + + + + + + + + + + + + + + + + + 513174.237 5402559.61 244.64 513174.257 5402559.597 244.64 513174.257 5402559.597 262.634 513174.237 5402559.61 262.634 513174.237 5402559.61 244.64 + + + + + + + + + + + + + + + + + 513174.257 5402559.597 244.64 513174.28 5402559.585 244.64 513174.28 5402559.585 262.634 513174.257 5402559.597 262.634 513174.257 5402559.597 244.64 + + + + + + + + + + + + + + + + + 513174.28 5402559.585 244.64 513174.304 5402559.575 244.64 513174.304 5402559.575 262.634 513174.28 5402559.585 262.634 513174.28 5402559.585 244.64 + + + + + + + + + + + + + + + + + 513174.304 5402559.575 244.64 513174.327 5402559.567 244.64 513174.327 5402559.567 262.634 513174.304 5402559.575 262.634 513174.304 5402559.575 244.64 + + + + + + + + + + + + + + + + + 513174.327 5402559.567 244.64 513174.349 5402559.56 244.64 513174.349 5402559.56 262.634 513174.327 5402559.567 262.634 513174.327 5402559.567 244.64 + + + + + + + + + + + + + + + + + 513174.349 5402559.56 244.64 513174.373 5402559.556 244.64 513174.373 5402559.556 262.635 513174.349 5402559.56 262.634 513174.349 5402559.56 244.64 + + + + + + + + + + + + + + + + + 513174.373 5402559.556 244.64 513174.396 5402559.553 244.64 513174.396 5402559.553 262.635 513174.373 5402559.556 262.635 513174.373 5402559.556 244.64 + + + + + + + + + + + + + + + + + 513174.396 5402559.553 244.64 513174.42 5402559.551 244.64 513174.42 5402559.551 262.636 513174.396 5402559.553 262.635 513174.396 5402559.553 244.64 + + + + + + + + + + + + + + + + + 513174.42 5402559.551 244.64 513174.444 5402559.552 244.64 513174.444 5402559.552 262.636 513174.42 5402559.551 262.636 513174.42 5402559.551 244.64 + + + + + + + + + + + + + + + + + 513174.444 5402559.552 244.64 513174.468 5402559.554 244.64 513174.468 5402559.554 262.637 513174.444 5402559.552 262.636 513174.444 5402559.552 244.64 + + + + + + + + + + + + + + + + + 513174.468 5402559.554 244.64 513174.491 5402559.557 244.64 513174.491 5402559.557 262.638 513174.468 5402559.554 262.637 513174.468 5402559.554 244.64 + + + + + + + + + + + + + + + + + 513174.491 5402559.557 244.64 513174.514 5402559.563 244.64 513174.514 5402559.563 262.639 513174.491 5402559.557 262.638 513174.491 5402559.557 244.64 + + + + + + + + + + + + + + + + + 513174.514 5402559.563 244.64 513174.537 5402559.569 244.64 513174.537 5402559.569 262.64 513174.514 5402559.563 262.639 513174.514 5402559.563 244.64 + + + + + + + + + + + + + + + + + 513174.537 5402559.569 244.64 513174.56 5402559.578 244.64 513174.56 5402559.578 262.641 513174.537 5402559.569 262.64 513174.537 5402559.569 244.64 + + + + + + + + + + + + + + + + + 513174.56 5402559.578 244.64 513174.581 5402559.588 244.64 513174.581 5402559.588 262.643 513174.56 5402559.578 262.641 513174.56 5402559.578 244.64 + + + + + + + + + + + + + + + + + 513174.581 5402559.588 244.64 513174.602 5402559.599 244.64 513174.602 5402559.599 262.644 513174.581 5402559.588 262.643 513174.581 5402559.588 244.64 + + + + + + + + + + + + + + + + + 513174.602 5402559.599 244.64 513174.622 5402559.612 244.64 513174.622 5402559.612 262.645 513174.602 5402559.599 262.644 513174.602 5402559.599 244.64 + + + + + + + + + + + + + + + + + 513174.622 5402559.612 244.64 513174.641 5402559.626 244.64 513174.641 5402559.626 262.647 513174.622 5402559.612 262.645 513174.622 5402559.612 244.64 + + + + + + + + + + + + + + + + + 513174.641 5402559.626 244.64 513174.659 5402559.642 244.64 513174.659 5402559.642 262.648 513174.641 5402559.626 262.647 513174.641 5402559.626 244.64 + + + + + + + + + + + + + + + + + 513174.659 5402559.642 244.64 513174.676 5402559.659 244.64 513174.676 5402559.659 262.65 513174.659 5402559.642 262.648 513174.659 5402559.642 244.64 + + + + + + + + + + + + + + + + + 513174.676 5402559.659 244.64 513174.692 5402559.677 244.64 513174.692 5402559.677 262.651 513174.676 5402559.659 262.65 513174.676 5402559.659 244.64 + + + + + + + + + + + + + + + + + 513174.692 5402559.677 244.64 513174.706 5402559.695 244.64 513174.706 5402559.695 262.653 513174.692 5402559.677 262.651 513174.692 5402559.677 244.64 + + + + + + + + + + + + + + + + + 513174.706 5402559.695 244.64 513174.719 5402559.715 244.64 513174.719 5402559.715 262.655 513174.706 5402559.695 262.653 513174.706 5402559.695 244.64 + + + + + + + + + + + + + + + + + 513174.719 5402559.715 244.64 513174.731 5402559.736 244.64 513174.731 5402559.736 262.656 513174.719 5402559.715 262.655 513174.719 5402559.715 244.64 + + + + + + + + + + + + + + + + + 513174.731 5402559.736 244.64 513174.741 5402559.758 244.64 513174.741 5402559.758 262.658 513174.731 5402559.736 262.656 513174.731 5402559.736 244.64 + + + + + + + + + + + + + + + + + 513174.741 5402559.758 244.64 513174.75 5402559.78 244.64 513174.75 5402559.78 262.66 513174.741 5402559.758 262.658 513174.741 5402559.758 244.64 + + + + + + + + + + + + + + + + + 513174.75 5402559.78 262.66 513174.75 5402559.78 244.64 513174.757 5402559.803 244.64 513174.757 5402559.803 262.661 513174.75 5402559.78 262.66 + + + + + + + + + + + + + + + + + 513174.757 5402559.803 262.661 513174.757 5402559.803 244.64 513174.762 5402559.826 244.64 513174.762 5402559.826 262.663 513174.757 5402559.803 262.661 + + + + + + + + + + + + + + + + + 513174.762 5402559.826 262.663 513174.762 5402559.826 244.64 513174.766 5402559.849 244.64 513174.766 5402559.849 262.665 513174.762 5402559.826 262.663 + + + + + + + + + + + + + + + + + 513174.766 5402559.849 262.665 513174.766 5402559.849 244.64 513174.768 5402559.873 244.64 513174.768 5402559.873 262.666 513174.766 5402559.849 262.665 + + + + + + + + + + + + + + + + + 513174.768 5402559.873 262.666 513174.768 5402559.873 244.64 513174.769 5402559.897 244.64 513174.769 5402559.897 262.668 513174.768 5402559.873 262.666 + + + + + + + + + + + + + + + + + 513174.769 5402559.897 262.668 513174.769 5402559.897 244.64 513174.768 5402559.921 244.64 513174.768 5402559.921 262.669 513174.769 5402559.897 262.668 + + + + + + + + + + + + + + + + + 513174.768 5402559.921 262.669 513174.768 5402559.921 244.64 513174.765 5402559.944 244.64 513174.765 5402559.944 262.671 513174.768 5402559.921 262.669 + + + + + + + + + + + + + + + + + 513174.765 5402559.944 262.671 513174.765 5402559.944 244.64 513174.76 5402559.97 244.64 513174.76 5402559.97 262.672 513174.765 5402559.944 262.671 + + + + + + + + + + + + + + + + + 513178.88 5402558.11 262.667 513174.76 5402559.97 262.672 513174.76 5402559.97 244.64 513178.88 5402558.11 244.64 513178.88 5402558.11 262.667 + + + + + + + + + + + + + + + + + 513178.88 5402558.11 244.64 513178.861 5402558.093 244.64 513178.861 5402558.093 262.665 513178.88 5402558.11 262.667 513178.88 5402558.11 244.64 + + + + + + + + + + + + + + + + + 513178.861 5402558.093 244.64 513178.844 5402558.075 244.64 513178.844 5402558.075 262.664 513178.861 5402558.093 262.665 513178.861 5402558.093 244.64 + + + + + + + + + + + + + + + + + 513178.844 5402558.075 244.64 513178.828 5402558.056 244.64 513178.828 5402558.056 262.662 513178.844 5402558.075 262.664 513178.844 5402558.075 244.64 + + + + + + + + + + + + + + + + + 513178.828 5402558.056 244.64 513178.813 5402558.036 244.64 513178.813 5402558.036 262.66 513178.828 5402558.056 262.662 513178.828 5402558.056 244.64 + + + + + + + + + + + + + + + + + 513178.813 5402558.036 244.64 513178.8 5402558.015 244.64 513178.8 5402558.015 262.659 513178.813 5402558.036 262.66 513178.813 5402558.036 244.64 + + + + + + + + + + + + + + + + + 513178.8 5402558.015 244.64 513178.788 5402557.993 244.64 513178.788 5402557.993 262.657 513178.8 5402558.015 262.659 513178.8 5402558.015 244.64 + + + + + + + + + + + + + + + + + 513178.788 5402557.993 244.64 513178.778 5402557.97 244.64 513178.778 5402557.97 262.655 513178.788 5402557.993 262.657 513178.788 5402557.993 244.64 + + + + + + + + + + + + + + + + + 513178.77 5402557.947 244.64 513178.77 5402557.947 262.653 513178.778 5402557.97 262.655 513178.778 5402557.97 244.64 513178.77 5402557.947 244.64 + + + + + + + + + + + + + + + + + 513178.763 5402557.923 244.64 513178.763 5402557.923 262.652 513178.77 5402557.947 262.653 513178.77 5402557.947 244.64 513178.763 5402557.923 244.64 + + + + + + + + + + + + + + + + + 513178.758 5402557.898 244.64 513178.758 5402557.898 262.65 513178.763 5402557.923 262.652 513178.763 5402557.923 244.64 513178.758 5402557.898 244.64 + + + + + + + + + + + + + + + + + 513178.754 5402557.874 244.64 513178.754 5402557.874 262.648 513178.758 5402557.898 262.65 513178.758 5402557.898 244.64 513178.754 5402557.874 244.64 + + + + + + + + + + + + + + + + + 513178.752 5402557.849 244.64 513178.752 5402557.849 262.646 513178.754 5402557.874 262.648 513178.754 5402557.874 244.64 513178.752 5402557.849 244.64 + + + + + + + + + + + + + + + + + 513178.752 5402557.824 244.64 513178.752 5402557.824 262.645 513178.752 5402557.849 262.646 513178.752 5402557.849 244.64 513178.752 5402557.824 244.64 + + + + + + + + + + + + + + + + + 513178.754 5402557.799 244.64 513178.754 5402557.799 262.643 513178.752 5402557.824 262.645 513178.752 5402557.824 244.64 513178.754 5402557.799 244.64 + + + + + + + + + + + + + + + + + 513178.758 5402557.775 244.64 513178.758 5402557.775 262.642 513178.754 5402557.799 262.643 513178.754 5402557.799 244.64 513178.758 5402557.775 244.64 + + + + + + + + + + + + + + + + + 513178.763 5402557.75 244.64 513178.763 5402557.75 262.64 513178.758 5402557.775 262.642 513178.758 5402557.775 244.64 513178.763 5402557.75 244.64 + + + + + + + + + + + + + + + + + 513178.77 5402557.726 244.64 513178.77 5402557.726 262.639 513178.763 5402557.75 262.64 513178.763 5402557.75 244.64 513178.77 5402557.726 244.64 + + + + + + + + + + + + + + + + + 513178.778 5402557.703 244.64 513178.778 5402557.703 262.638 513178.77 5402557.726 262.639 513178.77 5402557.726 244.64 513178.778 5402557.703 244.64 + + + + + + + + + + + + + + + + + 513178.788 5402557.68 262.636 513178.778 5402557.703 262.638 513178.778 5402557.703 244.64 513178.788 5402557.68 244.64 513178.788 5402557.68 262.636 + + + + + + + + + + + + + + + + + 513178.8 5402557.658 262.635 513178.788 5402557.68 262.636 513178.788 5402557.68 244.64 513178.8 5402557.658 244.64 513178.8 5402557.658 262.635 + + + + + + + + + + + + + + + + + 513178.813 5402557.637 262.634 513178.8 5402557.658 262.635 513178.8 5402557.658 244.64 513178.813 5402557.637 244.64 513178.813 5402557.637 262.634 + + + + + + + + + + + + + + + + + 513178.813 5402557.637 244.64 513178.828 5402557.617 244.64 513178.828 5402557.617 262.634 513178.813 5402557.637 262.634 513178.813 5402557.637 244.64 + + + + + + + + + + + + + + + + + 513178.844 5402557.598 262.633 513178.828 5402557.617 262.634 513178.828 5402557.617 244.64 513178.844 5402557.598 244.64 513178.844 5402557.598 262.633 + + + + + + + + + + + + + + + + + 513178.861 5402557.58 262.632 513178.844 5402557.598 262.633 513178.844 5402557.598 244.64 513178.861 5402557.58 244.64 513178.861 5402557.58 262.632 + + + + + + + + + + + + + + + + + 513178.879 5402557.563 262.631 513178.861 5402557.58 262.632 513178.861 5402557.58 244.64 513178.879 5402557.563 244.64 513178.879 5402557.563 262.631 + + + + + + + + + + + + + + + + + 513178.879 5402557.563 244.64 513178.899 5402557.548 244.64 513178.899 5402557.548 262.631 513178.879 5402557.563 262.631 513178.879 5402557.563 244.64 + + + + + + + + + + + + + + + + + 513178.899 5402557.548 244.64 513178.92 5402557.534 244.64 513178.92 5402557.534 262.631 513178.899 5402557.548 262.631 513178.899 5402557.548 244.64 + + + + + + + + + + + + + + + + + 513178.941 5402557.521 262.63 513178.92 5402557.534 262.631 513178.92 5402557.534 244.64 513178.941 5402557.521 244.64 513178.941 5402557.521 262.63 + + + + + + + + + + + + + + + + + 513178.941 5402557.521 244.64 513178.964 5402557.511 244.64 513178.964 5402557.511 262.63 513178.941 5402557.521 262.63 513178.941 5402557.521 244.64 + + + + + + + + + + + + + + + + + 513178.964 5402557.511 244.64 513178.987 5402557.501 244.64 513178.987 5402557.501 262.63 513178.964 5402557.511 262.63 513178.964 5402557.511 244.64 + + + + + + + + + + + + + + + + + 513178.987 5402557.501 244.64 513179.012 5402557.493 244.64 513179.012 5402557.493 262.631 513178.987 5402557.501 262.63 513178.987 5402557.501 244.64 + + + + + + + + + + + + + + + + + 513179.012 5402557.493 244.64 513179.036 5402557.487 244.64 513179.036 5402557.487 262.631 513179.012 5402557.493 262.631 513179.012 5402557.493 244.64 + + + + + + + + + + + + + + + + + 513179.036 5402557.487 244.64 513179.06 5402557.483 244.64 513179.06 5402557.483 262.631 513179.036 5402557.487 262.631 513179.036 5402557.487 244.64 + + + + + + + + + + + + + + + + + 513179.06 5402557.483 244.64 513179.085 5402557.48 244.64 513179.085 5402557.48 262.632 513179.06 5402557.483 262.631 513179.06 5402557.483 244.64 + + + + + + + + + + + + + + + + + 513179.085 5402557.48 244.64 513179.11 5402557.479 244.64 513179.11 5402557.479 262.632 513179.085 5402557.48 262.632 513179.085 5402557.48 244.64 + + + + + + + + + + + + + + + + + 513179.11 5402557.479 244.64 513179.135 5402557.48 244.64 513179.135 5402557.48 262.633 513179.11 5402557.479 262.632 513179.11 5402557.479 244.64 + + + + + + + + + + + + + + + + + 513179.135 5402557.48 244.64 513179.16 5402557.483 244.64 513179.16 5402557.483 262.634 513179.135 5402557.48 262.633 513179.135 5402557.48 244.64 + + + + + + + + + + + + + + + + + 513179.16 5402557.483 244.64 513179.184 5402557.488 244.64 513179.184 5402557.488 262.635 513179.16 5402557.483 262.634 513179.16 5402557.483 244.64 + + + + + + + + + + + + + + + + + 513179.184 5402557.488 244.64 513179.208 5402557.494 244.64 513179.208 5402557.494 262.636 513179.184 5402557.488 262.635 513179.184 5402557.488 244.64 + + + + + + + + + + + + + + + + + 513179.208 5402557.494 244.64 513179.232 5402557.501 244.64 513179.232 5402557.501 262.637 513179.208 5402557.494 262.636 513179.208 5402557.494 244.64 + + + + + + + + + + + + + + + + + 513179.232 5402557.501 244.64 513179.255 5402557.511 244.64 513179.255 5402557.511 262.639 513179.232 5402557.501 262.637 513179.232 5402557.501 244.64 + + + + + + + + + + + + + + + + + 513179.255 5402557.511 244.64 513179.277 5402557.522 244.64 513179.277 5402557.522 262.64 513179.255 5402557.511 262.639 513179.255 5402557.511 244.64 + + + + + + + + + + + + + + + + + 513179.277 5402557.522 244.64 513179.299 5402557.534 244.64 513179.299 5402557.534 262.641 513179.277 5402557.522 262.64 513179.277 5402557.522 244.64 + + + + + + + + + + + + + + + + + 513179.299 5402557.534 244.64 513179.319 5402557.548 244.64 513179.319 5402557.548 262.643 513179.299 5402557.534 262.641 513179.299 5402557.534 244.64 + + + + + + + + + + + + + + + + + 513179.319 5402557.548 244.64 513179.339 5402557.564 244.64 513179.339 5402557.564 262.644 513179.319 5402557.548 262.643 513179.319 5402557.548 244.64 + + + + + + + + + + + + + + + + + 513179.339 5402557.564 244.64 513179.357 5402557.58 244.64 513179.357 5402557.58 262.646 513179.339 5402557.564 262.644 513179.339 5402557.564 244.64 + + + + + + + + + + + + + + + + + 513179.357 5402557.58 244.64 513179.375 5402557.598 244.64 513179.375 5402557.598 262.648 513179.357 5402557.58 262.646 513179.357 5402557.58 244.64 + + + + + + + + + + + + + + + + + 513179.375 5402557.598 244.64 513179.391 5402557.617 244.64 513179.391 5402557.617 262.649 513179.375 5402557.598 262.648 513179.375 5402557.598 244.64 + + + + + + + + + + + + + + + + + 513179.391 5402557.617 244.64 513179.405 5402557.638 244.64 513179.405 5402557.638 262.651 513179.391 5402557.617 262.649 513179.391 5402557.617 244.64 + + + + + + + + + + + + + + + + + 513179.405 5402557.638 244.64 513179.418 5402557.659 244.64 513179.418 5402557.659 262.653 513179.405 5402557.638 262.651 513179.405 5402557.638 244.64 + + + + + + + + + + + + + + + + + 513179.418 5402557.659 244.64 513179.43 5402557.681 244.64 513179.43 5402557.681 262.654 513179.418 5402557.659 262.653 513179.418 5402557.659 244.64 + + + + + + + + + + + + + + + + + 513179.43 5402557.681 244.64 513179.44 5402557.704 244.64 513179.44 5402557.704 262.656 513179.43 5402557.681 262.654 513179.43 5402557.681 244.64 + + + + + + + + + + + + + + + + + 513179.44 5402557.704 244.64 513179.449 5402557.727 244.64 513179.449 5402557.727 262.658 513179.44 5402557.704 262.656 513179.44 5402557.704 244.64 + + + + + + + + + + + + + + + + + 513179.449 5402557.727 262.658 513179.449 5402557.727 244.64 513179.455 5402557.751 244.64 513179.455 5402557.751 262.66 513179.449 5402557.727 262.658 + + + + + + + + + + + + + + + + + 513179.455 5402557.751 262.66 513179.455 5402557.751 244.64 513179.461 5402557.775 244.64 513179.461 5402557.775 262.661 513179.455 5402557.751 262.66 + + + + + + + + + + + + + + + + + 513179.461 5402557.775 262.661 513179.461 5402557.775 244.64 513179.464 5402557.8 244.64 513179.464 5402557.8 262.663 513179.461 5402557.775 262.661 + + + + + + + + + + + + + + + + + 513179.464 5402557.8 262.663 513179.464 5402557.8 244.64 513179.465 5402557.825 244.64 513179.465 5402557.825 262.665 513179.464 5402557.8 262.663 + + + + + + + + + + + + + + + + + 513179.465 5402557.825 262.665 513179.465 5402557.825 244.64 513179.465 5402557.85 244.64 513179.465 5402557.85 262.666 513179.465 5402557.825 262.665 + + + + + + + + + + + + + + + + + 513179.465 5402557.85 262.666 513179.465 5402557.85 244.64 513179.464 5402557.875 244.64 513179.464 5402557.875 262.668 513179.465 5402557.85 262.666 + + + + + + + + + + + + + + + + + 513179.464 5402557.875 262.668 513179.464 5402557.875 244.64 513179.46 5402557.9 244.64 513179.46 5402557.9 262.67 513179.464 5402557.875 262.668 + + + + + + + + + + + + + + + + + 513183.5 5402556.11 262.666 513179.46 5402557.9 262.67 513179.46 5402557.9 244.64 513183.5 5402556.11 244.64 513183.5 5402556.11 262.666 + + + + + + + + + + + + + + + + + 513183.5 5402556.11 244.64 513183.475 5402556.087 244.64 513183.475 5402556.087 262.664 513183.5 5402556.11 262.666 513183.5 5402556.11 244.64 + + + + + + + + + + + + + + + + + 513183.475 5402556.087 244.64 513183.457 5402556.068 244.64 513183.457 5402556.068 262.663 513183.475 5402556.087 262.664 513183.475 5402556.087 244.64 + + + + + + + + + + + + + + + + + 513183.457 5402556.068 244.64 513183.441 5402556.048 244.64 513183.441 5402556.048 262.661 513183.457 5402556.068 262.663 513183.457 5402556.068 244.64 + + + + + + + + + + + + + + + + + 513183.441 5402556.048 244.64 513183.427 5402556.027 244.64 513183.427 5402556.027 262.659 513183.441 5402556.048 262.661 513183.441 5402556.048 244.64 + + + + + + + + + + + + + + Deutschland + + Stuttgart + + 4 + Dorotheenstraße + + + + + + + + + + \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive3.gml b/CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh2.gml similarity index 100% rename from CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive3.gml rename to CityDoctorParent/CityDoctorValidation/src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh2.gml -- GitLab From de010bd60e08c5031539355c45486e21a0143d85 Mon Sep 17 00:00:00 2001 From: Alex <22rial1mpg@hft-stuttgart.de> Date: Fri, 26 Jul 2024 09:33:26 +0200 Subject: [PATCH 06/62] Reworked JUnit test and disabled some of the False-Positive tests which induced a massive memory load --- .../checks/geometry/SolidSelfIntCheckTest.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java index 7e001ce..9842449 100644 --- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java @@ -123,6 +123,7 @@ public class SolidSelfIntCheckTest { check.check(buildingGeom); CheckResult cr = buildingGeom.getCheckResult(check); assertNotNull(cr); + //Ensure that checker did not find the false-positive self intersection assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); } @@ -130,10 +131,10 @@ public class SolidSelfIntCheckTest { } @Test - public void testKnownFalsePositiveExample3() throws CityGmlParseException, InvalidGmlFileException { + public void testKnownFalsePositiveExample_BigMesh1() throws CityGmlParseException, InvalidGmlFileException { ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); config.setSchematronFilePathInGlobalParameters(null); - CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive3.gml", config.getParserConfiguration()); + CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh1.gml", config.getParserConfiguration()); Checker c = new Checker(config, m); c.runChecks(); Building building = m.getBuildings().get(0); @@ -145,7 +146,6 @@ public class SolidSelfIntCheckTest { check.check(buildingGeom); CheckResult cr = buildingGeom.getCheckResult(check); assertNotNull(cr); - //Ensure that checker did not find the false-positive self intersection assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); } @@ -153,10 +153,10 @@ public class SolidSelfIntCheckTest { } @Test - public void testKnownFalsePositiveExample4() throws CityGmlParseException, InvalidGmlFileException { + public void testKnownFalsePositiveExample_BigMesh2() throws CityGmlParseException, InvalidGmlFileException { ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); config.setSchematronFilePathInGlobalParameters(null); - CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive4.gml", config.getParserConfiguration()); + CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh2.gml", config.getParserConfiguration()); Checker c = new Checker(config, m); c.runChecks(); Building building = m.getBuildings().get(0); @@ -174,5 +174,7 @@ public class SolidSelfIntCheckTest { } + + } -- GitLab From 5a615b7cd81b3d78ae62eb75415068479fcd3de9 Mon Sep 17 00:00:00 2001 From: Alex <22rial1mpg@hft-stuttgart.de> Date: Fri, 26 Jul 2024 10:16:39 +0200 Subject: [PATCH 07/62] Adding missed @Ignore Tags by last commit --- .../citydoctor2/checks/geometry/SolidSelfIntCheckTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java index 9842449..f4b3a21 100644 --- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java @@ -28,6 +28,7 @@ import java.util.List; import org.apache.logging.log4j.core.util.internal.Status; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; import de.hft.stuttgart.citydoctor2.check.CheckResult; @@ -130,6 +131,7 @@ public class SolidSelfIntCheckTest { } + @Ignore("Only run this test locally. The big mesh causes the CI/CD-Runner to crash due to running out of RAM") @Test public void testKnownFalsePositiveExample_BigMesh1() throws CityGmlParseException, InvalidGmlFileException { ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); @@ -152,6 +154,7 @@ public class SolidSelfIntCheckTest { } + @Ignore("Only run this test locally. The big mesh causes the CI/CD-Runner to crash due to running out of RAM") @Test public void testKnownFalsePositiveExample_BigMesh2() throws CityGmlParseException, InvalidGmlFileException { ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); -- GitLab From 006bb2b09ea103808a438a8a5bb83497283f279f Mon Sep 17 00:00:00 2001 From: Alex <22rial1mpg@hft-stuttgart.de> Date: Fri, 26 Jul 2024 16:25:52 +0200 Subject: [PATCH 08/62] Code cleanup --- .../stuttgart/citydoctor2/edge/PolyLine.java | 16 ++-- .../citydoctor2/edge/PolyLineSegment.java | 3 +- .../geometry/SolidSelfIntCheckTest.java | 93 +++---------------- 3 files changed, 23 insertions(+), 89 deletions(-) diff --git a/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLine.java b/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLine.java index dff20ee..5cea520 100644 --- a/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLine.java +++ b/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLine.java @@ -78,21 +78,21 @@ public class PolyLine extends BaseEntity { return mpLast; } - public Boolean isNullLine() { + public boolean isNullLine() { return isNullLine(0.00); } - public Boolean isNullLine(Double tolerance) { + public boolean isNullLine(double tolerance) { // If either start or end Segment is null, return immediately if (mpFirst == null || mpLast == null) { return true; } PolyLineSegment currentSegment = mpFirst; - Double length = 0.00; + double length = 0.00; // Add length of all segments, starting from mpFirst do { - Double segmentLength = currentSegment.getLengthVector().getLength(); + double segmentLength = currentSegment.getLengthVector().getLength(); if (segmentLength > tolerance) { length += segmentLength; } @@ -103,15 +103,13 @@ public class PolyLine extends BaseEntity { } while (currentSegment.getNext() != null); // Since mpLast will be missed due to loop condition add its length afterwards - Double segmentLength = mpLast.getLengthVector().getLength(); + double segmentLength = mpLast.getLengthVector().getLength(); if (segmentLength > tolerance) { length += segmentLength; } // Check if total length is less than the set tolerance - if (length <= tolerance) { - return true; - } - return false; + return length <= tolerance; + } diff --git a/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLineSegment.java b/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLineSegment.java index 5af8039..fd69514 100644 --- a/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLineSegment.java +++ b/CityDoctorParent/CityDoctorEdge/src/main/java/de/hft/stuttgart/citydoctor2/edge/PolyLineSegment.java @@ -59,8 +59,7 @@ public class PolyLineSegment extends BaseEntity { } public Vector3d getLengthVector() { - Vector3d representation = mpEnd.getPoint().minus(mpStart.getPoint()); - return representation; + return mpEnd.getPoint().minus(mpStart.getPoint()); } @Override diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java index f4b3a21..e6cff8e 100644 --- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java @@ -21,14 +21,8 @@ package de.hft.stuttgart.citydoctor2.checks.geometry; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import java.util.ArrayList; -import java.util.List; - -import org.apache.logging.log4j.core.util.internal.Status; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; import de.hft.stuttgart.citydoctor2.check.CheckResult; @@ -84,16 +78,20 @@ public class SolidSelfIntCheckTest { assertFalse(m.getBuildings().get(0).containsAnyError()); } - @Test - public void testKnownFalsePositiveExample1() throws CityGmlParseException, InvalidGmlFileException { + + private void testFalsePositiveExample(String gml_filepath) throws CityGmlParseException, InvalidGmlFileException { ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); config.setSchematronFilePathInGlobalParameters(null); - CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive1.gml", config.getParserConfiguration()); + CityDoctorModel m = CityGmlParser.parseCityGmlFile(gml_filepath, config.getParserConfiguration()); Checker c = new Checker(config, m); c.runChecks(); Building building = m.getBuildings().get(0); System.out.println(building.containsAnyError()); - // Example1 Building has some BuildingInstallations, which throw semantic errors + /* + * The examples have no actual self-intersections, but can contain other actual model defects. + * If an error is detected, it is thus required to check if the + * False-Positive self-intersection triggered it. + */ if (building.containsAnyError()) { Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); buildingGeom.clearCheckResults(); @@ -101,83 +99,22 @@ public class SolidSelfIntCheckTest { check.check(buildingGeom); CheckResult cr = buildingGeom.getCheckResult(check); assertNotNull(cr); - //Ensure that checker did not find a self intersection + //Ensure that the found error is not a self-intersection error assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); } - - } @Test - public void testKnownFalsePositiveExample2() throws CityGmlParseException, InvalidGmlFileException { - ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); - config.setSchematronFilePathInGlobalParameters(null); - CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive2.gml", config.getParserConfiguration()); - Checker c = new Checker(config, m); - c.runChecks(); - Building building = m.getBuildings().get(0); - // If an error was found, check if error is SolidSelfInt - if (building.containsAnyError()) { - Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); - buildingGeom.clearCheckResults(); - SolidSelfIntCheck check = new SolidSelfIntCheck(); - check.check(buildingGeom); - CheckResult cr = buildingGeom.getCheckResult(check); - assertNotNull(cr); - //Ensure that checker did not find the false-positive self intersection - assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); - } - - + public void testKnownFalsePositiveExample1() throws CityGmlParseException, InvalidGmlFileException { + testFalsePositiveExample("src/test/resources/SolidSelfIntTest-known_false_positive1.gml"); } - @Ignore("Only run this test locally. The big mesh causes the CI/CD-Runner to crash due to running out of RAM") @Test - public void testKnownFalsePositiveExample_BigMesh1() throws CityGmlParseException, InvalidGmlFileException { - ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); - config.setSchematronFilePathInGlobalParameters(null); - CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh1.gml", config.getParserConfiguration()); - Checker c = new Checker(config, m); - c.runChecks(); - Building building = m.getBuildings().get(0); - // If an error was found, check if error is SolidSelfInt - if (building.containsAnyError()) { - Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); - buildingGeom.clearCheckResults(); - SolidSelfIntCheck check = new SolidSelfIntCheck(); - check.check(buildingGeom); - CheckResult cr = buildingGeom.getCheckResult(check); - assertNotNull(cr); - assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); - } - - + public void testKnownFalsePositiveExample2() throws CityGmlParseException, InvalidGmlFileException { + testFalsePositiveExample("src/test/resources/SolidSelfIntTest-known_false_positive2.gml"); } - - @Ignore("Only run this test locally. The big mesh causes the CI/CD-Runner to crash due to running out of RAM") - @Test - public void testKnownFalsePositiveExample_BigMesh2() throws CityGmlParseException, InvalidGmlFileException { - ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); - config.setSchematronFilePathInGlobalParameters(null); - CityDoctorModel m = CityGmlParser.parseCityGmlFile("src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh2.gml", config.getParserConfiguration()); - Checker c = new Checker(config, m); - c.runChecks(); - Building building = m.getBuildings().get(0); - // If an error was found, check if error is SolidSelfInt - if (building.containsAnyError()) { - Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); - buildingGeom.clearCheckResults(); - SolidSelfIntCheck check = new SolidSelfIntCheck(); - check.check(buildingGeom); - CheckResult cr = buildingGeom.getCheckResult(check); - assertNotNull(cr); - //Ensure that checker did not find the false-positive self intersection - assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); - } + - - } - - } + -- GitLab From f9f4046f8eeb621c5386fc2486bf45af936238e8 Mon Sep 17 00:00:00 2001 From: Alex <22rial1mpg@hft-stuttgart.de> Date: Fri, 26 Jul 2024 16:30:16 +0200 Subject: [PATCH 09/62] Excluded the false-positive self-intersection tests with big meshes from Maven --- ...dSelfIntCheckFalsePositiveBigMeshTest.java | 67 +++++++++++++++++++ CityDoctorParent/pom.xml | 3 + 2 files changed, 70 insertions(+) create mode 100644 CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckFalsePositiveBigMeshTest.java diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckFalsePositiveBigMeshTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckFalsePositiveBigMeshTest.java new file mode 100644 index 0000000..5d9a00a --- /dev/null +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckFalsePositiveBigMeshTest.java @@ -0,0 +1,67 @@ +package de.hft.stuttgart.citydoctor2.checks.geometry; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; + +import de.hft.stuttgart.citydoctor2.check.CheckResult; +import de.hft.stuttgart.citydoctor2.check.Checker; +import de.hft.stuttgart.citydoctor2.check.ResultStatus; +import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration; +import de.hft.stuttgart.citydoctor2.datastructure.Building; +import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; +import de.hft.stuttgart.citydoctor2.datastructure.Geometry; +import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; +import de.hft.stuttgart.citydoctor2.datastructure.Lod; +import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; +import de.hft.stuttgart.citydoctor2.parser.CityGmlParser; +import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; + +/** + * Additional Test-Cases for known False-Positives for self intersection. + * These tests use building models which have big meshes. + * Excluded from Maven test-phase due to the limited memory of the + * CI/CD-Runners. + * + * @author Riegel + */ +public class SolidSelfIntCheckFalsePositiveBigMeshTest { + + + private void testFalsePositiveExample(String gml_filepath) throws CityGmlParseException, InvalidGmlFileException { + ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); + config.setSchematronFilePathInGlobalParameters(null); + CityDoctorModel m = CityGmlParser.parseCityGmlFile(gml_filepath, config.getParserConfiguration()); + Checker c = new Checker(config, m); + c.runChecks(); + Building building = m.getBuildings().get(0); + System.out.println(building.containsAnyError()); + /* + * The examples have no actual self-intersections, but can contain other actual model defects. + * If an error is detected, it is thus required to check if the + * False-Positive self-intersection triggered it. + */ + if (building.containsAnyError()) { + Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); + buildingGeom.clearCheckResults(); + SolidSelfIntCheck check = new SolidSelfIntCheck(); + check.check(buildingGeom); + CheckResult cr = buildingGeom.getCheckResult(check); + assertNotNull(cr); + //Ensure that the found error is not a self-intersection error + assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); + } + } + + @Test + public void testKnownFalsePositiveExample_BigMesh1() throws CityGmlParseException, InvalidGmlFileException { + testFalsePositiveExample("src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh1.gml"); + } + + @Test + public void testKnownFalsePositiveExample_BigMesh2() throws CityGmlParseException, InvalidGmlFileException { + testFalsePositiveExample("src/test/resources/SolidSelfIntTest-known_false_positive_Big_Mesh2.gml"); + } + +} diff --git a/CityDoctorParent/pom.xml b/CityDoctorParent/pom.xml index 34cc7cd..356a8cd 100644 --- a/CityDoctorParent/pom.xml +++ b/CityDoctorParent/pom.xml @@ -35,6 +35,9 @@ 2.22.0 false + + **/SolidSelfIntCheckFalsePositiveBigMeshTest.java + -- GitLab From 12d96d95ffd83382e6657369e11c5782e484a3f4 Mon Sep 17 00:00:00 2001 From: Alex <22rial1mpg@hft-stuttgart.de> Date: Mon, 29 Jul 2024 09:56:32 +0200 Subject: [PATCH 10/62] Minor corrections to comments and test-case messages --- .../SolidSelfIntCheckFalsePositiveBigMeshTest.java | 13 +++++++------ .../checks/geometry/SolidSelfIntCheckTest.java | 5 +++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckFalsePositiveBigMeshTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckFalsePositiveBigMeshTest.java index 5d9a00a..d83aa85 100644 --- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckFalsePositiveBigMeshTest.java +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckFalsePositiveBigMeshTest.java @@ -19,10 +19,10 @@ import de.hft.stuttgart.citydoctor2.parser.CityGmlParser; import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; /** - * Additional Test-Cases for known False-Positives for self intersection. - * These tests use building models which have big meshes. - * Excluded from Maven test-phase due to the limited memory of the - * CI/CD-Runners. + * Additional test-cases for testing found false positive self-intersection errors. + * The building models in these tests have big meshes, + * and thus induce a spike in memory usage when loaded or on starting a check. + * Excluded from Maven tests due to the limited memory of the CI/CD-Runners. * * @author Riegel */ @@ -40,7 +40,7 @@ public class SolidSelfIntCheckFalsePositiveBigMeshTest { /* * The examples have no actual self-intersections, but can contain other actual model defects. * If an error is detected, it is thus required to check if the - * False-Positive self-intersection triggered it. + * false positive self-intersection triggered it. */ if (building.containsAnyError()) { Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); @@ -50,7 +50,8 @@ public class SolidSelfIntCheckFalsePositiveBigMeshTest { CheckResult cr = buildingGeom.getCheckResult(check); assertNotNull(cr); //Ensure that the found error is not a self-intersection error - assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); + assertEquals("False-positive self-intersection should not be detected by self-intersection check", + ResultStatus.OK, cr.getResultStatus()); } } diff --git a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java index e6cff8e..1aacfc9 100644 --- a/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java +++ b/CityDoctorParent/CityDoctorValidation/src/test/java/de/hft/stuttgart/citydoctor2/checks/geometry/SolidSelfIntCheckTest.java @@ -90,7 +90,7 @@ public class SolidSelfIntCheckTest { /* * The examples have no actual self-intersections, but can contain other actual model defects. * If an error is detected, it is thus required to check if the - * False-Positive self-intersection triggered it. + * false positive self-intersection triggered it. */ if (building.containsAnyError()) { Geometry buildingGeom = building.getGeometry(GeometryType.SOLID, Lod.LOD2); @@ -100,7 +100,8 @@ public class SolidSelfIntCheckTest { CheckResult cr = buildingGeom.getCheckResult(check); assertNotNull(cr); //Ensure that the found error is not a self-intersection error - assertEquals("Known False-Positive self-intersection was detected as error", ResultStatus.OK, cr.getResultStatus()); + assertEquals("False-positive self-intersection should not be detected by self-intersection check", + ResultStatus.OK, cr.getResultStatus()); } } -- GitLab From 7a22ca9c2c8fb3f952751c0b48abf765a9069be4 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 30 Jul 2024 15:13:12 +0200 Subject: [PATCH 11/62] Updated .gitignore --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0419d7a --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/CityDoctorParent/.idea/.gitignore +/CityDoctorParent/.idea/compiler.xml +/CityDoctorParent/.idea/encodings.xml +/CityDoctorParent/.idea/jarRepositories.xml +/CityDoctorParent/.idea/misc.xml +/CityDoctorParent/.idea/vcs.xml -- GitLab From a5a82382851142bf7d8426c94fe89a224bf7a988 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 31 Jul 2024 10:31:19 +0200 Subject: [PATCH 12/62] Open Source release of CityDoctor-GUI --- CityDoctorParent/CityDoctorGUI/.gitignore | 2 + .../CityDoctorGUI/checkForSolid.xml | 14 + CityDoctorParent/CityDoctorGUI/pom.xml | 190 +++ .../src/assembly/common/checkForSolid.xml | 14 + .../src/assembly/lin/assembly.xml | 42 + .../CityDoctorGUI/src/assembly/lin/start.sh | 2 + .../src/assembly/mac/assembly.xml | 42 + .../src/assembly/no_runtime/assembly.xml | 34 + .../src/assembly/no_runtime/start.bat | 2 + .../src/assembly/no_runtime/start.sh | 2 + .../src/assembly/win/assembly.xml | 42 + .../CityDoctorGUI/src/assembly/win/start.bat | 2 + .../citydoctor2/gui/AboutDialog.java | 101 ++ .../citydoctor2/gui/CheckDialog.java | 592 +++++++++ .../citydoctor2/gui/CheckStatus.java | 7 + .../citydoctor2/gui/CityDoctorController.java | 1086 +++++++++++++++++ .../citydoctor2/gui/CityDoctorGUIStarter.java | 27 + .../citydoctor2/gui/ClickDispatcher.java | 9 + .../citydoctor2/gui/ClickHandler.java | 13 + .../citydoctor2/gui/ExceptionDialog.java | 56 + .../stuttgart/citydoctor2/gui/FilterPane.java | 305 +++++ .../citydoctor2/gui/GlobalParameter.java | 103 ++ .../citydoctor2/gui/HighlightController.java | 223 ++++ .../citydoctor2/gui/LanguageSelectorCell.java | 49 + .../citydoctor2/gui/ListErrorVisitor.java | 263 ++++ .../citydoctor2/gui/LoadingInfoDialog.java | 38 + .../citydoctor2/gui/MainToolBar.java | 349 ++++++ .../stuttgart/citydoctor2/gui/MainWindow.java | 980 +++++++++++++++ .../citydoctor2/gui/ModelProvider.java | 17 + .../citydoctor2/gui/OpenFileDialog.java | 204 ++++ .../gui/PolygonClickDispatcher.java | 19 + .../stuttgart/citydoctor2/gui/Renderer.java | 780 ++++++++++++ .../stuttgart/citydoctor2/gui/Settings.java | 66 + .../citydoctor2/gui/TableEditCell.java | 148 +++ .../citydoctor2/gui/TreeEditCell.java | 121 ++ .../citydoctor2/gui/TriangulatedGeometry.java | 340 ++++++ .../citydoctor2/gui/ValidationView.java | 77 ++ .../gui/VertexClickDispatcher.java | 19 + .../citydoctor2/gui/VertexClickHandler.java | 71 ++ .../hft/stuttgart/citydoctor2/gui/View.java | 32 + .../citydoctor2/gui/ViewRegistration.java | 31 + .../citydoctor2/gui/WriteReportDialog.java | 262 ++++ .../gui/filter/TypeFilterSelection.java | 24 + .../citydoctor2/gui/filter/ViewFilter.java | 35 + .../citydoctor2/gui/logger/GuiLogger.java | 104 ++ .../citydoctor2/gui/table/ErrorStat.java | 65 + .../gui/tree/AllBoundarySurfacesNode.java | 46 + .../AllBridgeConstructiveElementsNode.java | 64 + .../gui/tree/AllBridgePartsNode.java | 64 + .../citydoctor2/gui/tree/AllBridgesNode.java | 30 + .../gui/tree/AllBuildingPartsNode.java | 46 + .../gui/tree/AllBuildingsNode.java | 31 + .../gui/tree/AllInstallationsNode.java | 46 + .../citydoctor2/gui/tree/AllOpeningsNode.java | 38 + .../citydoctor2/gui/tree/AllTerrainNode.java | 31 + .../citydoctor2/gui/tree/AllTinNode.java | 49 + .../gui/tree/AllTransportationNode.java | 31 + .../gui/tree/AllVegetationNode.java | 31 + .../citydoctor2/gui/tree/AllWaterNode.java | 31 + .../gui/tree/BoundarySurfaceNode.java | 35 + .../tree/BridgeConstructiveElementNode.java | 54 + .../citydoctor2/gui/tree/BridgeNode.java | 55 + .../citydoctor2/gui/tree/BuildingNode.java | 40 + .../gui/tree/BuildingPartNode.java | 36 + .../gui/tree/ButtonRenderable.java | 50 + .../citydoctor2/gui/tree/CityObjectNode.java | 36 + .../citydoctor2/gui/tree/Displayable.java | 9 + .../citydoctor2/gui/tree/EdgeNode.java | 62 + .../citydoctor2/gui/tree/ErrorCell.java | 20 + .../gui/tree/ErrorItemVisitor.java | 410 +++++++ .../citydoctor2/gui/tree/ErrorNode.java | 29 + .../citydoctor2/gui/tree/GeometryNode.java | 49 + .../gui/tree/InstallationNode.java | 35 + .../citydoctor2/gui/tree/LandUseNode.java | 54 + .../citydoctor2/gui/tree/LinearRingNode.java | 41 + .../citydoctor2/gui/tree/OpeningNode.java | 36 + .../citydoctor2/gui/tree/PolygonNode.java | 41 + .../citydoctor2/gui/tree/ReliefNode.java | 55 + .../citydoctor2/gui/tree/Renderable.java | 34 + .../gui/tree/RenderableTreeCell.java | 58 + .../citydoctor2/gui/tree/TextNode.java | 28 + .../citydoctor2/gui/tree/TinNode.java | 55 + .../citydoctor2/gui/tree/TreeRequirement.java | 67 + .../citydoctor2/gui/tree/VegetationNode.java | 61 + .../citydoctor2/gui/tree/VertexNode.java | 53 + .../src/main/resources/citydoctor_logo.ico | Bin 0 -> 4286 bytes .../citydoctor2/gui/AboutDialog.fxml | 35 + .../citydoctor2/gui/CheckDialog.fxml | 129 ++ .../gui/CreateRenderDataDialog.fxml | 22 + .../stuttgart/citydoctor2/gui/FilterPane.fxml | 89 ++ .../citydoctor2/gui/MainToolBar.fxml | 85 ++ .../stuttgart/citydoctor2/gui/MainWindow.fxml | 179 +++ .../citydoctor2/gui/OpenFileDialog.fxml | 124 ++ .../citydoctor2/gui/WriteReportDialog.fxml | 89 ++ .../stuttgart/citydoctor2/gui/icons/Add.png | Bin 0 -> 1346 bytes .../citydoctor2/gui/icons/BMBF_Logo.png | Bin 0 -> 9830 bytes .../gui/icons/Beuth-Logo_basis.png | Bin 0 -> 38623 bytes .../gui/icons/CityDoctor-Logo-rot_klein.jpg | Bin 0 -> 42616 bytes .../gui/icons/CityDoctor-Logo-rot_klein.png | Bin 0 -> 121420 bytes .../citydoctor2/gui/icons/Culling.png | Bin 0 -> 1438 bytes .../citydoctor2/gui/icons/Delete.png | Bin 0 -> 4742 bytes .../citydoctor2/gui/icons/Delete3.png | Bin 0 -> 1226 bytes .../stuttgart/citydoctor2/gui/icons/Globe.png | Bin 0 -> 6728 bytes .../stuttgart/citydoctor2/gui/icons/about.png | Bin 0 -> 1454 bytes .../citydoctor2/gui/icons/autopro32x32.png | Bin 0 -> 1995 bytes .../citydoctor2/gui/icons/check32x32.png | Bin 0 -> 1118 bytes .../citydoctor2/gui/icons/citydoctor_logo.png | Bin 0 -> 1140 bytes .../citydoctor2/gui/icons/error_stat32x32.png | Bin 0 -> 3947 bytes .../citydoctor2/gui/icons/healing.png | Bin 0 -> 5098 bytes .../citydoctor2/gui/icons/hft_logo.png | Bin 0 -> 14528 bytes .../citydoctor2/gui/icons/icon_de.png | Bin 0 -> 195 bytes .../citydoctor2/gui/icons/icon_en.png | Bin 0 -> 1146 bytes .../citydoctor2/gui/icons/lod1_32x32.png | Bin 0 -> 1381 bytes .../citydoctor2/gui/icons/lod2_32x32.png | Bin 0 -> 1816 bytes .../citydoctor2/gui/icons/lod3_32x32.png | Bin 0 -> 2011 bytes .../citydoctor2/gui/icons/lod4_32x32.png | Bin 0 -> 2127 bytes .../citydoctor2/gui/icons/openFolderIcon.png | Bin 0 -> 995 bytes .../stuttgart/citydoctor2/gui/icons/save.png | Bin 0 -> 869 bytes .../stuttgart/citydoctor2/gui/icons/scene.png | Bin 0 -> 1468 bytes .../citydoctor2/gui/icons/validation.png | Bin 0 -> 5916 bytes .../citydoctor2/gui/icons/wireframe32x32.png | Bin 0 -> 2147 bytes .../stuttgart/citydoctor2/gui/statistics.fxml | 35 + .../src/main/resources/log4j2.xml | 23 + ...impleSolid_SrefBS-GE-gml-LR-0001-T0001.gml | 187 +++ .../resources/testConfigWithStreaming.yml | 46 + CityDoctorParent/pom.xml | 1 + 126 files changed, 10089 insertions(+) create mode 100644 CityDoctorParent/CityDoctorGUI/.gitignore create mode 100644 CityDoctorParent/CityDoctorGUI/checkForSolid.xml create mode 100644 CityDoctorParent/CityDoctorGUI/pom.xml create mode 100644 CityDoctorParent/CityDoctorGUI/src/assembly/common/checkForSolid.xml create mode 100644 CityDoctorParent/CityDoctorGUI/src/assembly/lin/assembly.xml create mode 100644 CityDoctorParent/CityDoctorGUI/src/assembly/lin/start.sh create mode 100644 CityDoctorParent/CityDoctorGUI/src/assembly/mac/assembly.xml create mode 100644 CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/assembly.xml create mode 100644 CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/start.bat create mode 100644 CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/start.sh create mode 100644 CityDoctorParent/CityDoctorGUI/src/assembly/win/assembly.xml create mode 100644 CityDoctorParent/CityDoctorGUI/src/assembly/win/start.bat create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/AboutDialog.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CheckDialog.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CheckStatus.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorGUIStarter.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ClickDispatcher.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ClickHandler.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ExceptionDialog.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/FilterPane.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/GlobalParameter.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/HighlightController.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/LanguageSelectorCell.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ListErrorVisitor.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/LoadingInfoDialog.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainToolBar.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ModelProvider.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/OpenFileDialog.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/PolygonClickDispatcher.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Renderer.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Settings.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TableEditCell.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TreeEditCell.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TriangulatedGeometry.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ValidationView.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickDispatcher.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickHandler.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/View.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ViewRegistration.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/WriteReportDialog.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/filter/TypeFilterSelection.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/filter/ViewFilter.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/logger/GuiLogger.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/table/ErrorStat.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBoundarySurfacesNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgeConstructiveElementsNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgePartsNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgesNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBuildingPartsNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBuildingsNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllInstallationsNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllOpeningsNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTerrainNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTinNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTransportationNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllVegetationNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllWaterNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BoundarySurfaceNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BridgeConstructiveElementNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BridgeNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BuildingNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BuildingPartNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ButtonRenderable.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/CityObjectNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/Displayable.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/EdgeNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorCell.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/GeometryNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/InstallationNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/LandUseNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/LinearRingNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/OpeningNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/PolygonNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ReliefNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/Renderable.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/RenderableTreeCell.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TextNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TinNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TreeRequirement.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VegetationNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VertexNode.java create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/citydoctor_logo.ico create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/AboutDialog.fxml create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/CheckDialog.fxml create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/CreateRenderDataDialog.fxml create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/FilterPane.fxml create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/MainToolBar.fxml create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/MainWindow.fxml create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/OpenFileDialog.fxml create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/WriteReportDialog.fxml create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/Add.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/BMBF_Logo.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/Beuth-Logo_basis.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/CityDoctor-Logo-rot_klein.jpg create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/CityDoctor-Logo-rot_klein.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/Culling.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/Delete.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/Delete3.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/Globe.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/about.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/autopro32x32.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/check32x32.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/citydoctor_logo.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/error_stat32x32.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/healing.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/hft_logo.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/icon_de.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/icon_en.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/lod1_32x32.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/lod2_32x32.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/lod3_32x32.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/lod4_32x32.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/openFolderIcon.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/save.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/scene.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/validation.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/icons/wireframe32x32.png create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/statistics.fxml create mode 100644 CityDoctorParent/CityDoctorGUI/src/main/resources/log4j2.xml create mode 100644 CityDoctorParent/CityDoctorGUI/src/test/resources/SimpleSolid_SrefBS-GE-gml-LR-0001-T0001.gml create mode 100644 CityDoctorParent/CityDoctorGUI/src/test/resources/testConfigWithStreaming.yml diff --git a/CityDoctorParent/CityDoctorGUI/.gitignore b/CityDoctorParent/CityDoctorGUI/.gitignore new file mode 100644 index 0000000..b2e3a61 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/.gitignore @@ -0,0 +1,2 @@ +GUISettings.properties +/.gradle/ diff --git a/CityDoctorParent/CityDoctorGUI/checkForSolid.xml b/CityDoctorParent/CityDoctorGUI/checkForSolid.xml new file mode 100644 index 0000000..165be4b --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/checkForSolid.xml @@ -0,0 +1,14 @@ + + + + + + + + ||||SE_ATTRIBUTE_MISSING||any solid + + + ||||SE_ATTRIBUTE_MISSING||any solid + + + diff --git a/CityDoctorParent/CityDoctorGUI/pom.xml b/CityDoctorParent/CityDoctorGUI/pom.xml new file mode 100644 index 0000000..c9a35d4 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/pom.xml @@ -0,0 +1,190 @@ + + + 4.0.0 + + de.hft.stuttgart + CityDoctorParent + 3.14.1 + + + CityDoctorGUI + CityDoctorGUI + Graphical User Interface for CityDoctor + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + + + de.hft.stuttgart + CityDoctorModel + + + de.hft.stuttgart + CityDoctorValidation + + + org.apache.logging.log4j + log4j-api + + + org.apache.logging.log4j + log4j-core + + + junit + junit + test + + + org.apache.logging.log4j + log4j-slf4j18-impl + + + + + create-binaries + + jre-${jre-version-short}-full + ${win-jre} + ${win-jre}.jre + + + + + com.googlecode.maven-download-plugin + download-maven-plugin + 1.7.0 + + + downloadWindowsJre + install + + wget + + + https://download.bell-sw.com/java/${jre-version}/bellsoft-jre${jre-version}-windows-amd64-full.zip + false + ${project.build.directory}/jre/jre-win + win-runtime.zip + + + + downloadLinuxJre + install + + wget + + + https://download.bell-sw.com/java/${jre-version}/bellsoft-jre${jre-version}-linux-amd64-full.tar.gz + false + ${project.build.directory}/jre/jre-lin + lin-runtime.tar.gz + + + + downloadMacJre + install + + wget + + + https://download.bell-sw.com/java/${jre-version}/bellsoft-jre${jre-version}-macos-amd64-full.zip + false + ${project.build.directory}/jre/jre-mac + mac-runtime.zip + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 3.1.0 + + + unpack + install + + + + + + + + + run + + + + + + maven-assembly-plugin + + false + + + + create-archive-no-runtime + install + + single + + + ${project.artifactId}-${project.version}-no-runtime + + ${project.basedir}/src/assembly/no_runtime/assembly.xml + + + + + create-archive-win + install + + single + + + ${project.artifactId}-${project.version}-win + + ${project.basedir}/src/assembly/win/assembly.xml + + + + + create-archive-lin + install + + single + + + ${project.artifactId}-${project.version}-lin + + ${project.basedir}/src/assembly/lin/assembly.xml + + + + + create-archive-mac + install + + single + + + ${project.artifactId}-${project.version}-mac + + ${project.basedir}/src/assembly/mac/assembly.xml + + + + + + + + + + \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/assembly/common/checkForSolid.xml b/CityDoctorParent/CityDoctorGUI/src/assembly/common/checkForSolid.xml new file mode 100644 index 0000000..165be4b --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/assembly/common/checkForSolid.xml @@ -0,0 +1,14 @@ + + + + + + + + ||||SE_ATTRIBUTE_MISSING||any solid + + + ||||SE_ATTRIBUTE_MISSING||any solid + + + diff --git a/CityDoctorParent/CityDoctorGUI/src/assembly/lin/assembly.xml b/CityDoctorParent/CityDoctorGUI/src/assembly/lin/assembly.xml new file mode 100644 index 0000000..169bf5e --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/assembly/lin/assembly.xml @@ -0,0 +1,42 @@ + + zip + + zip + + false + + + app + + + + + ${project.basedir}/src/assembly/lin + / + + start.sh + + true + + + ${project.basedir}/src/assembly/common + / + + checkForSolid.xml + + false + + + ${project.build.directory}/jre/jre-lin/runtime/${lin-jre}/ + + /runtime + + **/* + + false + + + \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/assembly/lin/start.sh b/CityDoctorParent/CityDoctorGUI/src/assembly/lin/start.sh new file mode 100644 index 0000000..7066c34 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/assembly/lin/start.sh @@ -0,0 +1,2 @@ +#!/bin/sh +./runtime/bin/java -classpath app/*:plugin/* de.hft.stuttgart.citydoctor2.gui.CityDoctorGUIStarter \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/assembly/mac/assembly.xml b/CityDoctorParent/CityDoctorGUI/src/assembly/mac/assembly.xml new file mode 100644 index 0000000..59ea8a6 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/assembly/mac/assembly.xml @@ -0,0 +1,42 @@ + + zip + + zip + + false + + + app + + + + + ${project.basedir}/src/assembly/lin + / + + start.sh + + true + + + ${project.basedir}/src/assembly/common + / + + checkForSolid.xml + + false + + + ${project.build.directory}/jre/jre-mac/runtime/${mac-jre}/ + + /runtime + + **/* + + false + + + \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/assembly.xml b/CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/assembly.xml new file mode 100644 index 0000000..fd5f0a7 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/assembly.xml @@ -0,0 +1,34 @@ + + zip + + zip + + false + + + app + + + + + ${project.basedir}/src/assembly/no_runtime + / + + start.bat + start.sh + + true + + + ${project.basedir}/src/assembly/common + / + + checkForSolid.xml + + false + + + \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/start.bat b/CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/start.bat new file mode 100644 index 0000000..2da095d --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/start.bat @@ -0,0 +1,2 @@ +java -classpath app/*;plugins/* de.hft.stuttgart.citydoctor2.gui.CityDoctorGUIStarter +pause \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/start.sh b/CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/start.sh new file mode 100644 index 0000000..a8f20ec --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/assembly/no_runtime/start.sh @@ -0,0 +1,2 @@ +#!/bin/sh +java -classpath app/*:plugin/* de.hft.stuttgart.citydoctor2.gui.CityDoctorGUIStarter \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/assembly/win/assembly.xml b/CityDoctorParent/CityDoctorGUI/src/assembly/win/assembly.xml new file mode 100644 index 0000000..8a74907 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/assembly/win/assembly.xml @@ -0,0 +1,42 @@ + + zip + + zip + + false + + + app + + + + + ${project.basedir}/src/assembly/win + / + + start.bat + + true + + + ${project.basedir}/src/assembly/common + / + + checkForSolid.xml + + false + + + ${project.build.directory}/jre/jre-win/runtime/${win-jre}/ + + /runtime + + **/* + + false + + + \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/assembly/win/start.bat b/CityDoctorParent/CityDoctorGUI/src/assembly/win/start.bat new file mode 100644 index 0000000..70d8a6a --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/assembly/win/start.bat @@ -0,0 +1,2 @@ +"runtime/bin/java.exe" -classpath app/*;plugins/* de.hft.stuttgart.citydoctor2.gui.CityDoctorGUIStarter +pause \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/AboutDialog.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/AboutDialog.java new file mode 100644 index 0000000..b45b342 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/AboutDialog.java @@ -0,0 +1,101 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.IOException; +import java.io.InputStream; + +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.VBox; +import javafx.stage.Modality; +import javafx.stage.Stage; +import javafx.stage.StageStyle; +import javafx.stage.Window; + +public class AboutDialog { + + @FXML + private ImageView logoView; + + @FXML + private ImageView beuthView; + + @FXML + private ImageView minisView; + + @FXML + private ImageView hftView; + + @FXML + private Button closeBtn; + + @FXML + private Label cdLabel; + + private Stage stage; + + public AboutDialog(Window parent) throws IOException { + FXMLLoader loader = new FXMLLoader(AboutDialog.class.getResource("AboutDialog.fxml")); + loader.setController(this); + VBox box = loader.load(); + + + stage = new Stage(StageStyle.UTILITY); + stage.setTitle(Localization.getText("AboutDialog.title")); + stage.setResizable(false); + Scene scene = new Scene(box); + stage.setScene(scene); + stage.initOwner(parent); + stage.initModality(Modality.APPLICATION_MODAL); + } + + public void initialize() { + String developedBy = Localization.getText("AboutDialog.developedBy"); + String contact = Localization.getText("AboutDialog.contact"); + closeBtn.setText(Localization.getText("AboutDialog.closeBtn")); + cdLabel.setText("CityDoctor Version " + Localization.getText(Localization.VERSION) + "\n\n" + + developedBy + ":\n" + + "Hochschule für Technik\n" + + "Beuth Hochschule Berlin\n\n" + + contact + ":\n" + + "Matthias Betz\n" + + "matthias.betz@hft-stuttgart.de"); + + + closeBtn.setOnAction(ae -> hide()); + try { + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/CityDoctor-Logo-rot_klein.png")) { + Image img = new Image(inStream); + logoView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/hft_logo.png")) { + Image img = new Image(inStream); + hftView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/Beuth-Logo_basis.png")) { + Image img = new Image(inStream); + beuthView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/BMBF_Logo.png")) { + Image img = new Image(inStream); + minisView.setImage(img); + } + } catch (IOException e) { + // ignore close exception + } + } + + public void show() { + stage.show(); + } + + public void hide() { + stage.hide(); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CheckDialog.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CheckDialog.java new file mode 100644 index 0000000..9af4319 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CheckDialog.java @@ -0,0 +1,592 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import de.hft.stuttgart.citydoctor2.check.DefaultParameter; +import de.hft.stuttgart.citydoctor2.check.FilterConfiguration; +import de.hft.stuttgart.citydoctor2.check.GlobalParameters; +import de.hft.stuttgart.citydoctor2.check.Requirement; +import de.hft.stuttgart.citydoctor2.check.RequirementConfiguration; +import de.hft.stuttgart.citydoctor2.check.RequirementType; +import de.hft.stuttgart.citydoctor2.check.Unit; +import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration; +import de.hft.stuttgart.citydoctor2.checks.Checks; +import de.hft.stuttgart.citydoctor2.gui.tree.TreeRequirement; +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.application.Platform; +import javafx.event.Event; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.ProgressBar; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.TextField; +import javafx.scene.control.TreeItem; +import javafx.scene.control.TreeTableColumn; +import javafx.scene.control.TreeTableView; +import javafx.scene.control.cell.CheckBoxTreeTableCell; +import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.control.cell.TextFieldTableCell; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.VBox; +import javafx.stage.FileChooser; +import javafx.stage.FileChooser.ExtensionFilter; +import javafx.stage.Modality; +import javafx.stage.Stage; +import javafx.stage.Window; +import javafx.util.StringConverter; +import javafx.util.converter.DefaultStringConverter; + +public class CheckDialog { + + private static final String NUMBER_OF_ROUNDING_PLACES = "numberOfRoundingPlaces"; + + private static final Logger logger = LogManager.getLogger(CheckDialog.class); + + private static final String CHECK_ENABLED = Localization.getText("CheckDialog.checkEnabled"); + private static final String NAME = Localization.getText("CheckDialog.checkName"); + private static final String VALUE = Localization.getText("CheckDialog.parameterValue"); + private static final String UNIT = Localization.getText("CheckDialog.parameterUnit"); + + private Stage stage; + + @FXML + private TreeTableView geometricTable; + + @FXML + private TreeTableView semanticTable; + + @FXML + private TableView globalParametersTable; + + @FXML + private ScrollPane scrollPane; + + @FXML + private Button cancelBtn; + + @FXML + private Button checkBtn; + + @FXML + private ProgressBar progress; + + @FXML + private Tab filterTab; + + @FXML + private TabPane tabPane; + + @FXML + private Button loadBtn; + + @FXML + private ImageView loadView; + + @FXML + private Button saveBtn; + + @FXML + private ImageView saveView; + + @FXML + private Button selectBtn; + + @FXML + private TextField schematronField; + + @FXML + private Tab checksTab; + + @FXML + private Label globalParametersLabel; + + @FXML + private Label availableChecksLabel; + + @FXML + private Label geometricChecksLabel; + + @FXML + private Label semanticChecksLabel; + + @FXML + private Label schematronFileLabel; + + private CityDoctorController controller; + private FilterPane filterPane; + private MainWindow window; + + public CheckDialog(MainWindow window, Window parent, CityDoctorController controller) throws IOException { + this.window = window; + this.controller = controller; + + FXMLLoader loader = new FXMLLoader(CheckDialog.class.getResource("CheckDialog.fxml")); + loader.setController(this); + VBox box = loader.load(); + + stage = new Stage(); + stage.getIcons().add(new Image(MainWindow.class.getResourceAsStream("icons/CityDoctor-Logo-rot_klein.jpg"))); + Scene scene = new Scene(box); + stage.setScene(scene); + stage.initOwner(parent); + stage.initModality(Modality.APPLICATION_MODAL); + stage.setTitle(Localization.getText("CheckDialog.title")); + } + + public void initialize() { + createEnableColumn(geometricTable); + createNameColumn(geometricTable); + createValueColumn(geometricTable); + createUnitColumn(geometricTable); + + createEnableColumn(semanticTable); + createNameColumn(semanticTable); + createValueColumn(semanticTable); + createUnitColumn(semanticTable); + + checksTab.setText(Localization.getText("CheckDialog.checksTab")); + filterTab.setText(Localization.getText("CheckDialog.filterTab")); + globalParametersLabel.setText(Localization.getText("CheckDialog.globalParametersLabel")); + availableChecksLabel.setText(Localization.getText("CheckDialog.availableChecksLabel")); + geometricChecksLabel.setText(Localization.getText("CheckDialog.geometricChecksLabel")); + semanticChecksLabel.setText(Localization.getText("CheckDialog.semanticChecksLabel")); + schematronFileLabel.setText(Localization.getText("CheckDialog.schematronFileLabel")); + selectBtn.setText(Localization.getText("CheckDialog.selectBtn")); + checkBtn.setText(Localization.getText("CheckDialog.checkBtn")); + cancelBtn.setText(Localization.getText("CheckDialog.cancelBtn")); + + List> columns = globalParametersTable.getColumns(); + TableColumn nameCol = new TableColumn<>(NAME); + columns.add(nameCol); + nameCol.setMinWidth(200); + nameCol.setPrefWidth(325); + nameCol.setCellValueFactory(new PropertyValueFactory<>("name")); + + setupValueColumns(columns); + + TableColumn unitCol = new TableColumn<>(UNIT); + columns.add(unitCol); + unitCol.setMinWidth(50); + unitCol.setPrefWidth(75); + unitCol.setMaxWidth(100); + unitCol.setEditable(false); + unitCol.setCellValueFactory(new PropertyValueFactory<>("unit")); + unitCol.setCellFactory(TextFieldTableCell.forTableColumn(new StringConverter() { + + @Override + public String toString(Unit object) { + return object.getRepresentation(); + } + + @Override + public Unit fromString(String string) { + return Unit.valueOf(string); + } + })); + + loadImages(); + + setupSelectButton(); + setupSaveButton(); + setupLoadButton(); + + populateTreeWithChecks(geometricTable, RequirementType.GEOMETRY, true); + populateTreeWithChecks(semanticTable, RequirementType.SEMANTIC, false); + + globalParametersTable.getItems().add(new GlobalParameter(NUMBER_OF_ROUNDING_PLACES, "8", Unit.NONE)); + globalParametersTable.getItems().add(new GlobalParameter("minVertexDistance", "0.0001", Unit.METER)); + + cancelBtn.setOnAction(ea -> stage.close()); + setupCheckButton(); + + tabPane.getSelectionModel().selectedIndexProperty().addListener((v, old, newV) -> { + if (newV.intValue() == 1 && filterPane == null) { + try { + getFilterPane(); + } catch (IOException e) { + window.showExceptionDialog(e); + } + } + }); + + schematronField.setText(ValidationConfiguration.CHECK_FOR_SOLID_XML); + } + + private void setupValueColumns(List> columns) { + TableColumn valueCol = new TableColumn<>(VALUE); + columns.add(valueCol); + valueCol.setMinWidth(150); + valueCol.setPrefWidth(200); + valueCol.setEditable(true); + valueCol.setCellValueFactory(new PropertyValueFactory<>("value")); + valueCol.setCellFactory(column -> new TableEditCell(new DefaultStringConverter()) { + @Override + public void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + GlobalParameter row = (GlobalParameter) getTableRow().getItem(); + if (row == null) { + return; + } + row.setValue(item); + if (NUMBER_OF_ROUNDING_PLACES.equals(row.getName())) { + setEditable(false); + } + } + } + }); + } + + private void setupSelectButton() { + selectBtn.setOnAction(ae -> { + FileChooser chooser = new FileChooser(); + List extensions = new ArrayList<>(); + extensions.add("*.xml"); + String schematronFiles = Localization.getText("CheckDialog.schematronFiles"); + chooser.getExtensionFilters().add(new ExtensionFilter(schematronFiles, extensions)); + File dir = new File(Settings.get(Settings.LAST_OPEN_FOLDER, "")); + if (dir.exists() && dir.isDirectory()) { + chooser.setInitialDirectory(dir); + } + String schematronChooserTitle = Localization.getText("CheckDialog.schematronChooserTitle"); + chooser.setTitle(schematronChooserTitle); + File file = chooser.showOpenDialog(stage); + if (file != null) { + schematronField.setText(file.getAbsolutePath()); + } + }); + } + + private void setupLoadButton() { + loadBtn.setOnAction(ae -> { + FileChooser fc = new FileChooser(); + String validationConfiguration = Localization.getText("CheckDialog.validationConfiguration"); + fc.getExtensionFilters().add(new ExtensionFilter(validationConfiguration, "*.yml")); + File dir = new File(Settings.get(Settings.LAST_OPEN_FOLDER, "")); + if (dir.exists() && dir.isDirectory()) { + fc.setInitialDirectory(dir); + } else { + Settings.set(Settings.LAST_OPEN_FOLDER, ""); + } + File f = fc.showOpenDialog(stage); + if (f != null) { + Settings.set(Settings.LAST_OPEN_FOLDER, f.getParent()); + try { + ValidationConfiguration config = ValidationConfiguration.loadValidationConfig(f.getAbsolutePath()); + applyConfig(config); + } catch (IOException e) { + window.showExceptionDialog(e); + } + } + + }); + } + + private void setupSaveButton() { + saveBtn.setOnAction(ae -> { + ValidationConfiguration config = createConfig(); + FileChooser fc = new FileChooser(); + fc.getExtensionFilters() + .add(new ExtensionFilter(Localization.getText("CheckDialog.validationConfiguration"), "*.yml")); + File dir = new File(Settings.get(Settings.LAST_OPEN_FOLDER, "")); + if (dir.exists() && dir.isDirectory()) { + fc.setInitialDirectory(dir); + } else { + Settings.set(Settings.LAST_OPEN_FOLDER, ""); + } + File f = fc.showSaveDialog(stage); + if (f != null) { + Settings.set(Settings.LAST_OPEN_FOLDER, f.getParent()); + try { + config.saveAs(f); + } catch (IOException e) { + window.showExceptionDialog(e); + } + } + }); + } + + private void applyConfig(ValidationConfiguration config) throws IOException { + FilterConfiguration filter = config.getFilter(); + if (filter != null) { + getFilterPane().applyFilterConfig(filter); + } + Map checks = config.getRequirements(); + for (Entry e : checks.entrySet()) { + for (TreeItem ti : geometricTable.getRoot().getChildren()) { + applyCheckConfig(e, ti); + } + } + globalParametersTable.getItems().clear(); + globalParametersTable.getItems().add(new GlobalParameter(GlobalParameters.NUMBER_OF_ROUNDING_PLACES, + config.getNumberOfRoundingPlacesAsString(), Unit.NONE)); + globalParametersTable.getItems().add(new GlobalParameter(GlobalParameters.MIN_VERTEX_DISTANCE, + config.getMinVertexDistanceAsString(), Unit.METER)); + schematronField.setText(config.getSchematronFilePath()); + } + + private FilterPane getFilterPane() throws IOException { + if (filterPane == null) { + filterPane = new FilterPane(); + Platform.runLater(() -> filterTab.setContent(filterPane.getPane())); + } + return filterPane; + } + + private void applyCheckConfig(Entry e, TreeItem ti) { + Requirement r = ti.getValue().getRequirement(); + RequirementConfiguration cConfig = e.getValue(); + if (r.getId().equals(e.getKey())) { + ti.getValue().getEnabledProperty().set(cConfig.isEnabled()); + for (Entry paramEntry : cConfig.getParameters().entrySet()) { + String name = paramEntry.getKey(); + String value = paramEntry.getValue(); + for (TreeItem configItem : ti.getChildren()) { + TreeRequirement parameterCheck = configItem.getValue(); + if (name.equals(parameterCheck.getNameProperty().getValue())) { + parameterCheck.setValue(value); + } + } + } + } + } + + private boolean collectCheckConfiguration(ValidationConfiguration config) { + collectCheckInformationFromTree(config, geometricTable); + collectCheckInformationFromTree(config, semanticTable); + config.setSchematronFilePathInGlobalParameters(schematronField.getText()); + config.setMinVertexDistanceInGlobalParameters( + Double.parseDouble(globalParametersTable.getItems().get(1).getValue())); + // check if everything is okay with the configuration + config.validateConfiguration(); + return true; + } + + private void collectCheckInformationFromTree(ValidationConfiguration config, TreeTableView table) { + for (TreeItem ti : table.getRoot().getChildren()) { + Requirement r = ti.getValue().getRequirement(); + if (ti.getValue().getEnabledProperty().getValue().booleanValue()) { + RequirementConfiguration cc = config.getRequirements().get(r.getId()); + cc.setEnabled(ti.getValue().isEnabled()); + // collect parameters + collectParameters(cc, ti); + } else { + config.getRequirements().get(r.getId()).setEnabled(false); + } + } + } + + private void loadImages() { + try { + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/openFolderIcon.png")) { + Image img = new Image(inStream); + loadView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/save.png")) { + Image img = new Image(inStream); + saveView.setImage(img); + } + } catch (IOException e) { + // ignore close exception + } + } + + private void setupCheckButton() { + checkBtn.setOnAction(ea -> { + ValidationConfiguration config = createConfig(); + checkBtn.setDisable(true); + cancelBtn.setDisable(true); + stage.setOnCloseRequest(Event::consume); + Thread t = new Thread(() -> { + try { + if (logger.isInfoEnabled()) { + String startingChecks = Localization.getText("CheckDialog.startingChecks"); + logger.info(startingChecks); + } + controller.startChecks(config, progress::setProgress); + if (logger.isInfoEnabled()) { + String checksDone = Localization.getText("CheckDialog.checksDone"); + logger.info(checksDone); + } + } catch (Exception e) { + if (logger.isErrorEnabled()) { + String failedChecks = Localization.getText("CheckDialog.failedChecks"); + logger.error(failedChecks, e); + } + Platform.runLater(() -> { + ExceptionDialog dialog = new ExceptionDialog(); + dialog.show(e); + }); + } finally { + Platform.runLater(() -> { + checkBtn.setDisable(false); + cancelBtn.setDisable(false); + stage.setOnCloseRequest(null); + stage.close(); + }); + } + }); + t.start(); + }); + } + + private ValidationConfiguration createConfig() { + ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); + config.setMinVertexDistanceInGlobalParameters( + Double.parseDouble(globalParametersTable.getItems().get(1).getValue())); + if (filterPane != null) { + config.setFilter(filterPane.getConfiguration()); + } + collectCheckConfiguration(config); + if (schematronField.getText().isEmpty()) { + return config; + } + File f = new File(schematronField.getText()); + if (!f.exists() || f.isDirectory() && logger.isWarnEnabled()) { + String schematronFileNotExisting = Localization.getText("CheckDialog.schematronFileNotExisting"); + logger.warn(schematronFileNotExisting); + } else { + config.setSchematronFilePathInGlobalParameters(schematronField.getText()); + } + return config; + } + + private void collectParameters(RequirementConfiguration cc, TreeItem ti) { + Map parameters = new HashMap<>(); + for (TreeItem paramTi : ti.getChildren()) { + String name = paramTi.getValue().getNameProperty().getValue(); + String value = paramTi.getValue().getValueProperty().getValue(); + parameters.put(name, value); + } + cc.setParameters(parameters); + } + + private void createEnableColumn(TreeTableView view) { + TreeTableColumn enableColumn = new TreeTableColumn<>(CHECK_ENABLED); + view.getColumns().add(enableColumn); + enableColumn.setCellValueFactory(param -> { + TreeRequirement check = param.getValue().getValue(); + if (check != null) { + return check.getEnabledProperty(); + } + return null; + }); + + StringConverter converter = new StringConverter() { + + @Override + public String toString(Boolean object) { + return " "; + } + + @Override + public Boolean fromString(String string) { + return Boolean.parseBoolean(string); + } + }; + + enableColumn.setCellFactory(list -> new CheckBoxTreeTableCell(null, converter) { + + @Override + public void updateItem(Boolean item, boolean empty) { + super.updateItem(item, empty); + if (empty || item == null) { + setGraphic(null); + setText(null); + } + } + }); + } + + private void createNameColumn(TreeTableView view) { + TreeTableColumn nameColumn = new TreeTableColumn<>(NAME); + nameColumn.setEditable(false); + view.getColumns().add(nameColumn); + nameColumn.setCellValueFactory(param -> { + if (param.getValue().getValue() != null) { + return param.getValue().getValue().getNameProperty(); + } + return null; + }); + } + + private void createValueColumn(TreeTableView view) { + TreeTableColumn valueColumn = new TreeTableColumn<>(VALUE); + view.getColumns().add(valueColumn); + valueColumn.setCellValueFactory(param -> { + if (param.getValue().getValue() != null) { + return param.getValue().getValue().getValueProperty(); + } + return null; + }); + valueColumn.setCellFactory(col -> new TreeEditCell<>(new DefaultStringConverter())); + valueColumn.setPrefWidth(100); + } + + private void createUnitColumn(TreeTableView view) { + TreeTableColumn unitColumn = new TreeTableColumn<>(UNIT); + unitColumn.setEditable(false); + view.getColumns().add(unitColumn); + unitColumn.setCellValueFactory(param -> { + if (param.getValue().getValue() != null) { + return param.getValue().getValue().getUnitProperty(); + } + return null; + }); + } + + private void populateTreeWithChecks(TreeTableView view, RequirementType type, boolean enabled) { + view.setRoot(new TreeItem<>()); + List requirements = new ArrayList<>(Checks.getAvailableRequirements().values()); + Collections.sort(requirements, (r1, r2) -> r1.getId().compareTo(r2.getId())); + for (Requirement r : requirements) { + if (r.getType() != type) { + continue; + } + TreeRequirement treeCheck = new TreeRequirement(r); + treeCheck.setEnabled(enabled); + TreeItem ti = new TreeItem<>(treeCheck); + view.getRoot().getChildren().add(ti); + for (DefaultParameter dp : r.getDefaultParameter()) { + TreeItem dpTi = new TreeItem<>(new TreeRequirement(dp)); + ti.getChildren().add(dpTi); + } + ti.setExpanded(true); + } + } + + public void show() { + Platform.runLater(() -> { + if (controller.getCurrentConfig() != null) { + for (GlobalParameter parameter : globalParametersTable.getItems()) { + if (parameter.getName().equals(NUMBER_OF_ROUNDING_PLACES)) { + parameter.setValue("" + controller.getCurrentConfig().getNumberOfRoundingPlaces()); + } + } + } + globalParametersTable.refresh(); + progress.setProgress(0d); + stage.showAndWait(); + }); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CheckStatus.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CheckStatus.java new file mode 100644 index 0000000..615a77d --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CheckStatus.java @@ -0,0 +1,7 @@ +package de.hft.stuttgart.citydoctor2.gui; + +public enum CheckStatus { + + ERROR, OK, NOT_CHECKED + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java new file mode 100644 index 0000000..fd85e67 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorController.java @@ -0,0 +1,1086 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.StringJoiner; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.citygml4j.core.model.core.CityModel; +import org.xml.sax.SAXParseException; + +import de.hft.stuttgart.citydoctor2.check.CheckError; +import de.hft.stuttgart.citydoctor2.check.Checker; +import de.hft.stuttgart.citydoctor2.check.ErrorId; +import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration; +import de.hft.stuttgart.citydoctor2.check.error.SchematronError; +import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; +import de.hft.stuttgart.citydoctor2.datastructure.BridgeConstructiveElement; +import de.hft.stuttgart.citydoctor2.datastructure.BridgeObject; +import de.hft.stuttgart.citydoctor2.datastructure.Building; +import de.hft.stuttgart.citydoctor2.datastructure.Installation; +import de.hft.stuttgart.citydoctor2.datastructure.BuildingPart; +import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; +import de.hft.stuttgart.citydoctor2.datastructure.CityObject; +import de.hft.stuttgart.citydoctor2.datastructure.FeatureType; +import de.hft.stuttgart.citydoctor2.datastructure.Geometry; +import de.hft.stuttgart.citydoctor2.datastructure.LandObject; +import de.hft.stuttgart.citydoctor2.datastructure.Opening; +import de.hft.stuttgart.citydoctor2.datastructure.ReliefObject; +import de.hft.stuttgart.citydoctor2.datastructure.TinObject; +import de.hft.stuttgart.citydoctor2.datastructure.TransportationObject; +import de.hft.stuttgart.citydoctor2.datastructure.Vegetation; +import de.hft.stuttgart.citydoctor2.exceptions.CityDoctorWriteException; +import de.hft.stuttgart.citydoctor2.gui.table.ErrorStat; +import de.hft.stuttgart.citydoctor2.gui.tree.AllBoundarySurfacesNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllBridgeConstructiveElementsNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllBridgePartsNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllBridgesNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllInstallationsNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllBuildingPartsNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllBuildingsNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllOpeningsNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllTerrainNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllTinNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllTransportationNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllVegetationNode; +import de.hft.stuttgart.citydoctor2.gui.tree.AllWaterNode; +import de.hft.stuttgart.citydoctor2.gui.tree.BoundarySurfaceNode; +import de.hft.stuttgart.citydoctor2.gui.tree.BridgeConstructiveElementNode; +import de.hft.stuttgart.citydoctor2.gui.tree.BridgeNode; +import de.hft.stuttgart.citydoctor2.gui.tree.InstallationNode; +import de.hft.stuttgart.citydoctor2.gui.tree.BuildingNode; +import de.hft.stuttgart.citydoctor2.gui.tree.BuildingPartNode; +import de.hft.stuttgart.citydoctor2.gui.tree.ButtonRenderable; +import de.hft.stuttgart.citydoctor2.gui.tree.CityObjectNode; +import de.hft.stuttgart.citydoctor2.gui.tree.GeometryNode; +import de.hft.stuttgart.citydoctor2.gui.tree.LandUseNode; +import de.hft.stuttgart.citydoctor2.gui.tree.OpeningNode; +import de.hft.stuttgart.citydoctor2.gui.tree.ReliefNode; +import de.hft.stuttgart.citydoctor2.gui.tree.Renderable; +import de.hft.stuttgart.citydoctor2.gui.tree.TinNode; +import de.hft.stuttgart.citydoctor2.gui.tree.VegetationNode; +import de.hft.stuttgart.citydoctor2.mapper.citygml3.GMLValidationHandler; +import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; +import de.hft.stuttgart.citydoctor2.parser.CityGmlParser; +import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; +import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; +import de.hft.stuttgart.citydoctor2.parser.ProgressListener; +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.application.Platform; +import javafx.scene.chart.XYChart.Data; +import javafx.scene.chart.XYChart.Series; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Dialog; +import javafx.scene.control.TreeItem; +import javafx.scene.control.TreeView; +import javafx.stage.FileChooser; +import javafx.stage.FileChooser.ExtensionFilter; + +public class CityDoctorController { + + private static final int MAX_FEATURES_PER_CHUNK = 200; + + private static final Logger logger = LogManager.getLogger(CityDoctorController.class); + + private MainWindow mainWindow; + + private CityDoctorModel model; + private ParserConfiguration currentConfig; + private String sourceFile; + + private Checker currentChecker; + + private HighlightController highlightController; + private Renderer renderer; + + private AtomicInteger buildingChunkNr = new AtomicInteger(0); + private AtomicInteger vegetationChunkNr = new AtomicInteger(0); + private AtomicInteger transportationChunkNr = new AtomicInteger(0); + private AtomicInteger bridgeChunkNr = new AtomicInteger(0); + private AtomicInteger waterChunkNr = new AtomicInteger(0); + private AtomicInteger landChunkNr = new AtomicInteger(0); + + public CityDoctorController(MainWindow mainWindow, HighlightController highlightController, Renderer renderer) { + this.mainWindow = mainWindow; + this.highlightController = highlightController; + this.renderer = renderer; + } + + public void loadCityGml(String path, int numberOfRoundingPlaces, ProgressListener l, boolean useValidation) + throws CityGmlParseException, InvalidGmlFileException { + loadCityGml(path, numberOfRoundingPlaces, l, useValidation, false); + } + + public void loadCityGml(String path, int numberOfRoundingPlaces, ProgressListener l, boolean useValidation, + boolean lowMemory) throws CityGmlParseException, InvalidGmlFileException { + try { + Platform.runLater(() -> { + mainWindow.getOpenBtn().setDisable(true); + mainWindow.getWriteReportButton().setDisable(true); + mainWindow.getMeshGroup().getChildren().clear(); + + clearTrees(); + mainWindow.resetSearchBar(); + mainWindow.resetFilterComboBox(); + }); + currentChecker = null; + currentConfig = new ParserConfiguration(numberOfRoundingPlaces, useValidation, lowMemory); + GMLValidationHandler handler = null; + List validationIssues = new ArrayList<>(); + if (useValidation) { + handler = new GMLValidationHandler() { + @Override + public void error(SAXParseException exception) { + if (exception.getLineNumber() >= 0) { + String s = "In line " + exception.getLineNumber() + ":"; + validationIssues.add(s); + } + validationIssues.add(exception.getMessage()); + } + + @Override + public void warning(SAXParseException exception) { + error(exception); + } + + @Override + public void fatalError(SAXParseException exception) { + error(exception); + } + }; + } + model = CityGmlParser.parseCityGmlFile(path, currentConfig, l, handler); + if (!validationIssues.isEmpty()) { + StringJoiner sj = new StringJoiner("\n"); + validationIssues.stream().forEach(sj::add); + throw new InvalidGmlFileException(sj.toString()); + } + mainWindow.getClickHandler().setConfig(currentConfig); + sourceFile = path; + renderer.reset(); + Platform.runLater(() -> { + mainWindow.addFileNameToTitle(path); + mainWindow.getCheckButton().setDisable(false); + mainWindow.getLod1Btn().setDisable(false); + mainWindow.getLod2Btn().setDisable(false); + mainWindow.getLod3Btn().setDisable(false); + mainWindow.getLod4Btn().setDisable(false); + mainWindow.getWorldBtn().setDisable(false); + mainWindow.getSaveBtn().setDisable(false); + buildTrees(); + }); + } finally { + Platform.runLater(() -> mainWindow.getOpenBtn().setDisable(false)); + } + } + + public void buildTrees() { + resetFeatureChunks(); + buildBuildings(model); + buildVegetation(model.getVegetation()); + buildTransportation(model.getTransportation()); + buildBridges(model); + buildWater(model); + buildLand(model); + } + + private void resetFeatureChunks() { + buildingChunkNr.set(0); + vegetationChunkNr.set(0); + transportationChunkNr.set(0); + bridgeChunkNr.set(0); + waterChunkNr.set(0); + landChunkNr.set(0); + } + + private void buildLand(CityDoctorModel model) { + if (model.getLand().isEmpty()) { + return; + } + TreeView landView = mainWindow.getTerrainView(); + TreeItem landRoot = new TreeItem<>(new AllTerrainNode(model.getLand())); + landRoot.setExpanded(true); + landView.setRoot(landRoot); + buildLandFromList(model.getLand(), landView.getRoot()); + addMoreButtonIfNecessary(model.getLand(), landView, landRoot, landChunkNr); + } + + private void buildLandFromList(List list, TreeItem root) { + int landChunk = landChunkNr.get(); + for (int i = landChunk * MAX_FEATURES_PER_CHUNK; i < (landChunk + 1) * MAX_FEATURES_PER_CHUNK + && i < list.size(); i++) { + CityObject land = list.get(i); + Renderable node; + if (land instanceof ReliefObject relief) { + node = new ReliefNode(relief); + } else if (land instanceof TinObject tin) { + node = new TinNode(tin); + } else { + node = new LandUseNode((LandObject) land); + } + TreeItem item = new TreeItem<>(node); + item.setExpanded(true); + root.getChildren().add(item); + createGeometryNodes(land, item); + if (land instanceof ReliefObject relief) { + createTinNodes(relief, item); + } + } + } + + private void createTinNodes(ReliefObject relief, TreeItem item) { + if (relief.getComponents().isEmpty()) { + return; + } + AllTinNode allTinText = new AllTinNode(relief.getComponents()); + TreeItem allBpsTextItem = new TreeItem<>(allTinText); + item.getChildren().add(allBpsTextItem); + + for (TinObject tin : relief.getComponents()) { + TinNode tinNode = new TinNode(tin); + TreeItem tinNodeItem = new TreeItem<>(tinNode); + tinNodeItem.setExpanded(true); + allBpsTextItem.getChildren().add(tinNodeItem); + createGeometryNodes(tin, tinNodeItem); + } + } + + private void buildWater(CityDoctorModel model) { + if (model.getWater().isEmpty()) { + return; + } + TreeView waterView = mainWindow.getWaterView(); + TreeItem waterRoot = new TreeItem<>(new AllWaterNode(model.getWater())); + waterRoot.setExpanded(true); + waterView.setRoot(waterRoot); + buildTreeFromList(model.getWater(), waterView.getRoot(), waterChunkNr); + addMoreButtonIfNecessary(model.getWater(), waterView, waterRoot, waterChunkNr); + } + + private void buildBridges(CityDoctorModel model) { + if (model.getBridges().isEmpty()) { + return; + } + TreeView bridgeView = mainWindow.getBridgeView(); + TreeItem bridgeRoot = new TreeItem<>(new AllBridgesNode(model.getBridges())); + bridgeRoot.setExpanded(true); + bridgeView.setRoot(bridgeRoot); + buildBridgeTreeFromList(model.getBridges(), bridgeView.getRoot()); + addMoreButtonIfNecessary(model.getBridges(), bridgeView, bridgeRoot, bridgeChunkNr); + } + + private void buildTransportation(List trans) { + if (trans.isEmpty()) { + return; + } + TreeView transView = mainWindow.getTransportationView(); + TreeItem transRoot = new TreeItem<>(new AllTransportationNode(model.getTransportation())); + transRoot.setExpanded(true); + transView.setRoot(transRoot); + buildTreeFromList(trans, transView.getRoot(), transportationChunkNr); + addMoreButtonIfNecessary(trans, transView, transRoot, transportationChunkNr); + } + + private void buildVegetation(List veg) { + if (veg.isEmpty()) { + return; + } + TreeView vegetationsView = mainWindow.getVegetationView(); + TreeItem vegRoot = new TreeItem<>(new AllVegetationNode(model.getVegetation())); + vegRoot.setExpanded(true); + vegetationsView.setRoot(vegRoot); + buildTreeFromListWithProducer(veg, vegetationsView.getRoot(), vegetationChunkNr, VegetationNode::new); + addMoreButtonIfNecessary(veg, vegetationsView, vegRoot, vegetationChunkNr); + } + + private void addMoreButtonIfNecessary(List list, TreeView view, + TreeItem root, AtomicInteger chunkCounter) { + if ((chunkCounter.get() + 1) * MAX_FEATURES_PER_CHUNK < list.size()) { + Runnable run = new Runnable() { + public void run() { + // 29 is the height of one item + int numberOfDisplayedItems = (int) (view.getHeight() / 29); + int selectedIndex = view.getSelectionModel().getSelectedIndex(); + // remove button node + root.getChildren().remove(root.getChildren().size() - 1); + chunkCounter.incrementAndGet(); + int visibleFeatures = countVisibleNodes(view); + buildTreeFromList(list, root, chunkCounter); + updateTree(root); + if (selectedIndex >= 0) { + view.getSelectionModel().select(selectedIndex); + } + if ((chunkCounter.get() + 1) * MAX_FEATURES_PER_CHUNK < list.size()) { + root.getChildren().add(new TreeItem<>(new ButtonRenderable(this))); + } + view.scrollTo(visibleFeatures - numberOfDisplayedItems + 1); + } + }; + // add button for expansion + root.getChildren().add(new TreeItem<>(new ButtonRenderable(run))); + } + } + + private void buildBuildings(CityDoctorModel model) { + if (model.getBuildings().isEmpty()) { + return; + } + TreeView buildingsView = mainWindow.getBuildingsView(); + TreeItem root = new TreeItem<>(new AllBuildingsNode(model.getBuildings())); + root.setExpanded(true); + buildBuildingTreeFromList(model.getBuildings(), root); + addMoreButtonToBuildingsIfNecessary(model.getBuildings(), buildingsView, root, buildingChunkNr); + buildingsView.setRoot(root); + } + + private void addMoreButtonToBuildingsIfNecessary(List list, TreeView view, + TreeItem root, AtomicInteger chunkCounter) { + if ((chunkCounter.get() + 1) * MAX_FEATURES_PER_CHUNK < list.size()) { + Runnable run = new Runnable() { + public void run() { + // 29 is the height of one item + int numberOfDisplayedItems = (int) (view.getHeight() / 29); + int selectedIndex = view.getSelectionModel().getSelectedIndex(); + // remove button node + root.getChildren().remove(root.getChildren().size() - 1); + chunkCounter.getAndIncrement(); + int visibleFeatures = countVisibleNodes(view); + buildBuildingTreeFromList(list, root); + updateTree(root); + if (selectedIndex >= 0) { + view.getSelectionModel().select(selectedIndex); + } + if ((chunkCounter.get() + 1) * MAX_FEATURES_PER_CHUNK < list.size()) { + root.getChildren().add(new TreeItem<>(new ButtonRenderable(this))); + } + view.scrollTo(visibleFeatures - numberOfDisplayedItems + 1); + } + }; + // add button for expansion + root.getChildren().add(new TreeItem<>(new ButtonRenderable(run))); + } + } + + private static int countVisibleNodes(TreeView view) { + return countVisibleNodes(view.getRoot()) + 1; + } + + private static int countVisibleNodes(TreeItem root) { + int visibleFeatures = root.getChildren().size(); + for (TreeItem child : root.getChildren()) { + if (!child.getChildren().isEmpty() && child.isExpanded()) { + visibleFeatures += countVisibleNodes(child); + } + } + return visibleFeatures; + } + + private void buildTreeFromList(List cos, TreeItem root, + AtomicInteger chunkCounter) { + int chunk = chunkCounter.get(); + for (int i = chunk * MAX_FEATURES_PER_CHUNK; i < (chunk + 1) * MAX_FEATURES_PER_CHUNK && i < cos.size(); i++) { + CityObject co = cos.get(i); + CityObjectNode node = new CityObjectNode(co); + TreeItem nodeItem = new TreeItem<>(node); + nodeItem.setExpanded(true); + root.getChildren().add(nodeItem); + createGeometryNodes(co, nodeItem); + } + } + + private void buildTreeFromListWithProducer(List cos, TreeItem root, + AtomicInteger chunkCounter, Function nodeProducer) { + int chunk = chunkCounter.get(); + for (int i = chunk * MAX_FEATURES_PER_CHUNK; i < (chunk + 1) * MAX_FEATURES_PER_CHUNK && i < cos.size(); i++) { + T co = cos.get(i); + Renderable node = nodeProducer.apply(co); + TreeItem nodeItem = new TreeItem<>(node); + nodeItem.setExpanded(true); + root.getChildren().add(nodeItem); + createGeometryNodes(co, nodeItem); + } + } + + private void clearTrees() { + mainWindow.getBuildingsView().setRoot(null); + mainWindow.getVegetationView().setRoot(null); + mainWindow.getTransportationView().setRoot(null); + mainWindow.getBridgeView().setRoot(null); + mainWindow.getWaterView().setRoot(null); + mainWindow.getTerrainView().setRoot(null); + mainWindow.getErrorTree().getRoot().getChildren().clear(); + mainWindow.getGlobalErrorsView().getItems().clear(); + clearGeometryTrees(); + } + + private void clearGeometryTrees() { + highlightController.clearHighlights(); + mainWindow.getPolygonsView().getRoot().getChildren().clear(); + mainWindow.getEdgeView().getRoot().getChildren().clear(); + mainWindow.getVertexView().getRoot().getChildren().clear(); + } + + private void buildBuildingTreeFromList(List list, TreeItem root) { + int buildingChunk = buildingChunkNr.get(); + for (int i = buildingChunk * MAX_FEATURES_PER_CHUNK; i < (buildingChunk + 1) * MAX_FEATURES_PER_CHUNK + && i < list.size(); i++) { + Building b = list.get(i); + BuildingNode node = new BuildingNode(b); + TreeItem item = new TreeItem<>(node); + item.setExpanded(true); + root.getChildren().add(item); + createGeometryNodes(b, item); + createBoundarySurfaceNodes(b.getBoundarySurfaces(), item); + createBuildingInstallationNodes(b, item); + createBuildingPartNodes(b, item); + } + } + + private void buildBridgeTreeFromList(List list, TreeItem root) { + int bridgeChunk = bridgeChunkNr.get(); + for (int i = bridgeChunk * MAX_FEATURES_PER_CHUNK; i < (bridgeChunk + 1) * MAX_FEATURES_PER_CHUNK + && i < list.size(); i++) { + BridgeObject bridge = list.get(i); + BridgeNode node = new BridgeNode(bridge); + TreeItem item = new TreeItem<>(node); + item.setExpanded(true); + root.getChildren().add(item); + createGeometryNodes(bridge, item); + createBoundarySurfaceNodes(bridge.getBoundarySurfaces(), item); + createBridgeInstallationNodes(bridge, item); + createConstructiveElementsNodes(bridge, item); + createBridgePartNodes(bridge, item); + } + + } + + private void createBridgeInstallationNodes(BridgeObject bridge, TreeItem root) { + createInstallationNodes(bridge.getBridgeInstallations(), root); + } + + private void createConstructiveElementsNodes(BridgeObject bridge, TreeItem item) { + if (bridge.getConstructiveElements().isEmpty()) { + return; + } + AllBridgeConstructiveElementsNode allBceNode = new AllBridgeConstructiveElementsNode( + bridge.getConstructiveElements()); + TreeItem allBceNodeTextItem = new TreeItem<>(allBceNode); + item.getChildren().add(allBceNodeTextItem); + + for (BridgeConstructiveElement bce : bridge.getConstructiveElements()) { + BridgeConstructiveElementNode bceNode = new BridgeConstructiveElementNode(bce); + TreeItem bpNodeItem = new TreeItem<>(bceNode); + bpNodeItem.setExpanded(true); + allBceNodeTextItem.getChildren().add(bpNodeItem); + createGeometryNodes(bce, bpNodeItem); + createBoundarySurfaceNodes(bce.getBoundarySurfaces(), bpNodeItem); + } + } + + private void createBridgePartNodes(BridgeObject bridge, TreeItem item) { + if (bridge.getParts().isEmpty()) { + return; + } + AllBridgePartsNode allBpsText = new AllBridgePartsNode(bridge.getParts()); + TreeItem allBpsTextItem = new TreeItem<>(allBpsText); + item.getChildren().add(allBpsTextItem); + + for (BridgeObject bp : bridge.getParts()) { + BridgeNode bpNode = new BridgeNode(bp); + TreeItem bpNodeItem = new TreeItem<>(bpNode); + bpNodeItem.setExpanded(true); + allBpsTextItem.getChildren().add(bpNodeItem); + createGeometryNodes(bp, bpNodeItem); + createBoundarySurfaceNodes(bp.getBoundarySurfaces(), bpNodeItem); + } + } + + private void createBuildingInstallationNodes(Building ab, TreeItem root) { + createInstallationNodes(ab.getBuildingInstallations(), root); + } + + private void createInstallationNodes(List installations, TreeItem root) { + if (installations.isEmpty()) { + return; + } + + AllInstallationsNode allBiNode = new AllInstallationsNode(installations); + TreeItem allBpsTextItem = new TreeItem<>(allBiNode); + root.getChildren().add(allBpsTextItem); + for (Installation bi : installations) { + InstallationNode biNode = new InstallationNode(bi); + TreeItem biItem = new TreeItem<>(biNode); + biItem.setExpanded(true); + allBpsTextItem.getChildren().add(biItem); + createGeometryNodes(bi, biItem); + createBoundarySurfaceNodes(bi.getBoundarySurfaces(), biItem); + } + } + + private void createBoundarySurfaceNodes(List bsList, TreeItem root) { + if (bsList.isEmpty()) { + return; + } + AllBoundarySurfacesNode allBsText = new AllBoundarySurfacesNode(bsList); + TreeItem allBpsTextItem = new TreeItem<>(allBsText); + root.getChildren().add(allBpsTextItem); + + allBpsTextItem.getChildren().add(new TreeItem<>()); + + allBpsTextItem.expandedProperty().addListener((obs, old, newV) -> { + if (Boolean.TRUE.equals(newV) && allBpsTextItem.getChildren().size() == 1) { + Platform.runLater(() -> { + allBpsTextItem.getChildren().clear(); + for (BoundarySurface bs : bsList) { + BoundarySurfaceNode bsText = new BoundarySurfaceNode(bs); + TreeItem bsTextItem = new TreeItem<>(bsText); + bsTextItem.setExpanded(true); + allBpsTextItem.getChildren().add(bsTextItem); + createGeometryNodes(bs, bsTextItem); + createOpeningNodes(bs.getOpenings(), bsTextItem); + } + updateTree(allBpsTextItem); + }); + } + }); + } + + private void createOpeningNodes(List openings, TreeItem root) { + if (openings == null || openings.isEmpty()) { + return; + } + AllOpeningsNode allOpeningsNode = new AllOpeningsNode(openings); + TreeItem allOpeningsItem = new TreeItem<>(allOpeningsNode); + for (Opening o : openings) { + OpeningNode openingNode = new OpeningNode(o); + TreeItem openingsItem = new TreeItem<>(openingNode); + allOpeningsItem.getChildren().add(openingsItem); + } + root.getChildren().add(allOpeningsItem); + } + + private void createBuildingPartNodes(Building ab, TreeItem item) { + if (ab.getBuildingParts().isEmpty()) { + return; + } + AllBuildingPartsNode allBpsText = new AllBuildingPartsNode(ab.getBuildingParts()); + TreeItem allBpsTextItem = new TreeItem<>(allBpsText); + item.getChildren().add(allBpsTextItem); + + for (BuildingPart bp : ab.getBuildingParts()) { + BuildingPartNode bpNode = new BuildingPartNode(bp); + TreeItem bpNodeItem = new TreeItem<>(bpNode); + bpNodeItem.setExpanded(true); + allBpsTextItem.getChildren().add(bpNodeItem); + createGeometryNodes(bp, bpNodeItem); + createBoundarySurfaceNodes(bp.getBoundarySurfaces(), bpNodeItem); + } + } + + private void createGeometryNodes(CityObject co, TreeItem item) { + for (Geometry geom : co.getGeometries()) { + GeometryNode geomNode = new GeometryNode(geom); + TreeItem geomItem = new TreeItem<>(geomNode); + item.getChildren().add(geomItem); + } + } + + public void startChecks(ValidationConfiguration config, ProgressListener l) { + if (model == null) { + logger.warn(Localization.getText("CityDoctorController.noDatamodel")); + return; + } + if (sourceFile == null) { + logger.warn(Localization.getText("CityDoctorController.noSourceFile")); + return; + } + try { + Platform.runLater(() -> { + mainWindow.getCheckButton().setDisable(true); + mainWindow.getErrorTree().getRoot().getChildren().clear(); + mainWindow.getGlobalErrorsView().getItems().clear(); + }); + config.setNumberOfRoundingPlacesInGlobalParameters(currentConfig.getNumberOfRoundingPlaces()); + config.setParserConfig(currentConfig); + currentChecker = new Checker(config, model); + currentChecker.runChecks(l); + + Platform.runLater(() -> { + // apply check results to tree views + updateFeatureTrees(); + updateTree(mainWindow.getPolygonsView().getRoot()); + for (CheckError e : model.getGlobalErrors()) { + if (e instanceof SchematronError se) { + mainWindow.getGlobalErrorsView().getItems().add(se.getErrorIdString()); + } + } + renderer.refresh(); + mainWindow.getWriteReportButton().setDisable(false); + }); + } finally { + Platform.runLater(() -> mainWindow.getCheckButton().setDisable(false)); + } + } + + void updateFeatureTrees() { + updateTree(mainWindow.getBuildingsView().getRoot()); + updateTree(mainWindow.getVegetationView().getRoot()); + updateTree(mainWindow.getBridgeView().getRoot()); + updateTree(mainWindow.getTerrainView().getRoot()); + updateTree(mainWindow.getTransportationView().getRoot()); + updateTree(mainWindow.getWaterView().getRoot()); + renderer.updateErrors(); + } + + private void updateTree(TreeItem root) { + if (root == null) { + return; + } + for (TreeItem item : root.getChildren()) { + updateItem(item); + } + } + + private void updateItem(TreeItem item) { + if (item.getValue() == null) { + return; + } + item.getValue().refreshTextColor(); + for (TreeItem child : item.getChildren()) { + updateItem(child); + } + } + + public void writePdfReport(File pdfFile) { + if (currentChecker == null) { + return; + } + currentChecker.writePdfReport(pdfFile.getAbsolutePath()); + } + + public void writeXmlReport(File xmlFile) { + if (currentChecker == null) { + return; + } + currentChecker.writeXmlReport(xmlFile.getAbsolutePath()); + } + + private Map getErrorStats() { + Map stats = new HashMap<>(); + addErrorStats(stats, model.getBridges()); + addErrorStats(stats, model.getBuildings()); + addErrorStats(stats, model.getLand()); + addErrorStats(stats, model.getTransportation()); + addErrorStats(stats, model.getVegetation()); + addErrorStats(stats, model.getWater()); + return stats; + } + + private void addErrorStats(Map stats, List cos) { + List errors = new ArrayList<>(); + for (CityObject co : cos) { + co.collectContainedErrors(errors); + } + Set filteredErrors = new HashSet<>(errors); + for (CheckError error : filteredErrors) { + ErrorStat stat = stats.computeIfAbsent(error.getErrorId(), ErrorStat::new); + stat.incrementCount(); + } + } + + public void export(Building b) { + if (model == null) { + return; + } + CityDoctorModel newModel = new CityDoctorModel(model.getParserConfig(), model.getFile()); + newModel.setCityModel(new CityModel()); + newModel.addBuilding(b); + + FileChooser fc = new FileChooser(); + fc.getExtensionFilters().add(new ExtensionFilter("CityGML", "*.gml")); + fc.getExtensionFilters().add(new ExtensionFilter("OFF - Object File Format", "*.off")); + File dir = new File(Settings.get(Settings.LAST_OPEN_FOLDER, "")); + if (dir.exists() && dir.isDirectory()) { + fc.setInitialDirectory(dir); + } else { + Settings.set(Settings.LAST_OPEN_FOLDER, ""); + } + File f = fc.showSaveDialog(mainWindow.getMainStage()); + if (f != null) { + Settings.set(Settings.LAST_OPEN_FOLDER, f.getParent()); + try { + + newModel.saveAs(f.getAbsolutePath(), true); + } catch (CityDoctorWriteException e) { + logger.error(e); + } + } + } + + public void showWorld() { + if (model != null) { + renderer.render(model); + } + } + + public void storeModel(File f, boolean saveQualityAde) throws CityDoctorWriteException { + if (model == null) { + return; + } + model.saveAs(f.getAbsolutePath(), saveQualityAde); + } + + public void searchFeature(String searchString, FeatureType selectedTab) { + if (model == null || searchString == null || searchString.trim().isEmpty()) { + return; + } + mainWindow.unselectEverything(); + resetFeatureChunks(); + if (selectedTab == FeatureType.BUILDING) { + List foundBuildings = filterFeatures(searchString, model.getBuildings()); + TreeView buildingsView = mainWindow.getBuildingsView(); + TreeItem root = buildingsView.getRoot(); + root.getChildren().clear(); + buildBuildingTreeFromList(foundBuildings, root); + updateTree(root); + addMoreButtonToBuildingsIfNecessary(foundBuildings, buildingsView, root, buildingChunkNr); + } else { + TreeView view; + List cos; + AtomicInteger chunkCounter; + switch (selectedTab) { + case VEGETATION: + view = mainWindow.getVegetationView(); + cos = filterFeatures(searchString, model.getVegetation()); + chunkCounter = vegetationChunkNr; + break; + case BRIDGE: + view = mainWindow.getBridgeView(); + cos = filterFeatures(searchString, model.getBridges()); + chunkCounter = bridgeChunkNr; + break; + case TRANSPORTATION: + view = mainWindow.getTransportationView(); + cos = filterFeatures(searchString, model.getTransportation()); + chunkCounter = transportationChunkNr; + break; + case WATER: + view = mainWindow.getWaterView(); + cos = filterFeatures(searchString, model.getWater()); + chunkCounter = waterChunkNr; + break; + case LAND: + view = mainWindow.getTerrainView(); + cos = filterFeatures(searchString, model.getLand()); + chunkCounter = landChunkNr; + break; + default: + throw new IllegalStateException("Unknown selected feature tab"); + } + TreeItem root = view.getRoot(); + root.getChildren().clear(); + buildTreeFromList(cos, root, chunkCounter); + updateTree(root); + addMoreButtonIfNecessary(cos, view, root, chunkCounter); + } + } + + private List filterFeatures(String searchString, List features) { + List foundFeatures = new ArrayList<>(); + for (T t : features) { + if (t.getGmlId().getGmlString().contains(searchString)) { + foundFeatures.add(t); + } + } + return foundFeatures; + } + + public void resetSearch(FeatureType selectedTab) { + if (model == null) { + return; + } + resetFeatureChunks(); + if (selectedTab == FeatureType.BUILDING) { + // buildings are handled differently, because of surface and building + // installations + TreeItem root = mainWindow.getBuildingsView().getRoot(); + if (root != null) { + root.getChildren().clear(); + buildBuildingTreeFromList(model.getBuildings(), root); + updateTree(root); + addMoreButtonToBuildingsIfNecessary(model.getBuildings(), mainWindow.getBuildingsView(), root, + buildingChunkNr); + } + } else { + TreeView view; + List cos; + AtomicInteger chunkCounter; + switch (selectedTab) { + case VEGETATION: + view = mainWindow.getVegetationView(); + cos = model.getVegetation(); + chunkCounter = vegetationChunkNr; + break; + case BRIDGE: + view = mainWindow.getBridgeView(); + cos = model.getBridges(); + chunkCounter = bridgeChunkNr; + break; + case TRANSPORTATION: + view = mainWindow.getTransportationView(); + cos = model.getTransportation(); + chunkCounter = transportationChunkNr; + break; + case WATER: + view = mainWindow.getWaterView(); + cos = model.getWater(); + chunkCounter = waterChunkNr; + break; + case LAND: + view = mainWindow.getTerrainView(); + cos = model.getLand(); + chunkCounter = landChunkNr; + break; + default: + throw new IllegalStateException("Unknown selected feature tab"); + } + TreeItem root = view.getRoot(); + root.getChildren().clear(); + buildTreeFromList(cos, root, chunkCounter); + updateTree(root); + addMoreButtonIfNecessary(cos, view, root, chunkCounter); + } + } + + public Series createErrorSeries() { + Series series = new Series<>(); + if (model == null) { + return series; + } + Map errorStats = getErrorStats(); + for (ErrorStat es : errorStats.values()) { + series.getData().add(new Data<>(es.getErrorId().toString(), es.getCount())); + } + return series; + } + + public String getFileName() { + return model.getFileName(); + } + + public void fillTreeViewWithErrorBuildings() { + TreeView buildingsView = mainWindow.getBuildingsView(); + TreeItem root = buildingsView.getRoot(); + if (model == null) { + return; + } + if (root == null) { + return; + } + mainWindow.resetSearchBar(); + root.getChildren().clear(); + List errorBuildings = new ArrayList<>(); + for (Building b : model.getBuildings()) { + if (b.containsAnyError()) { + errorBuildings.add(b); + } + } + resetFeatureChunks(); + buildBuildingTreeFromList(errorBuildings, root); + updateTree(root); + addMoreButtonToBuildingsIfNecessary(errorBuildings, buildingsView, root, buildingChunkNr); + } + + public void fillTreeViewWithErrorVegetation() { + if (model == null) { + return; + } + fillTreeViewWithErrorCityObjects(mainWindow.getVegetationView(), model.getVegetation(), vegetationChunkNr); + } + + public void fillTreeViewWithErrorBridges() { + if (model == null) { + return; + } + fillTreeViewWithErrorCityObjects(mainWindow.getBridgeView(), model.getBridges(), bridgeChunkNr); + } + + public void fillTreeViewWithErrorLand() { + if (model == null) { + return; + } + fillTreeViewWithErrorCityObjects(mainWindow.getTerrainView(), model.getLand(), landChunkNr); + } + + public void fillTreeViewWithErrorTransportation() { + if (model == null) { + return; + } + fillTreeViewWithErrorCityObjects(mainWindow.getTransportationView(), model.getTransportation(), + transportationChunkNr); + } + + public void fillTreeViewWithErrorWater() { + if (model == null) { + return; + } + fillTreeViewWithErrorCityObjects(mainWindow.getWaterView(), model.getWater(), waterChunkNr); + } + + private void fillTreeViewWithErrorCityObjects(TreeView treeView, List objects, + AtomicInteger chunkCounter) { + TreeItem root = treeView.getRoot(); + if (root == null) { + return; + } + mainWindow.resetSearchBar(); + root.getChildren().clear(); + List errorObjects = new ArrayList<>(); + for (CityObject co : objects) { + if (co.containsAnyError()) { + errorObjects.add(co); + } + } + buildTreeFromList(errorObjects, root, chunkCounter); + updateTree(root); + addMoreButtonIfNecessary(errorObjects, treeView, root, chunkCounter); + } + + public void fillTreeViewFromFeatures(FeatureType selectedTab) { + if (model == null) { + return; + } + mainWindow.resetSearchBar(); + switch (selectedTab) { + case BUILDING: + buildBuildings(model); + updateTree(mainWindow.getBuildingsView().getRoot()); + break; + case VEGETATION: + buildVegetation(model.getVegetation()); + updateTree(mainWindow.getVegetationView().getRoot()); + break; + case BRIDGE: + buildBridges(model); + updateTree(mainWindow.getBridgeView().getRoot()); + break; + case LAND: + buildLand(model); + updateTree(mainWindow.getTerrainView().getRoot()); + break; + case TRANSPORTATION: + buildTransportation(model.getTransportation()); + updateTree(mainWindow.getTransportationView().getRoot()); + break; + case WATER: + buildWater(model); + updateTree(mainWindow.getWaterView().getRoot()); + break; + default: + throw new IllegalStateException(); + } + } + + public CityDoctorModel getModel() { + return model; + } + + public void showView(View v) { + v.fireOnShowEvent(model, currentChecker, mainWindow); + } + + public void askAndSave() { + boolean saveWithQualityAde = true; + if (model.isValidated()) { + ButtonType yesBtn = ButtonType.YES; + ButtonType noBtn = ButtonType.NO; + Dialog dialog = new Dialog<>(); + dialog.setTitle("Save with QualityADE?"); + dialog.setContentText("Save with QualityADE information?"); + dialog.getDialogPane().getButtonTypes().add(yesBtn); + dialog.getDialogPane().getButtonTypes().add(noBtn); + + Optional result = dialog.showAndWait(); + if (result.isPresent() && result.get() == ButtonType.NO) { + saveWithQualityAde = false; + } + } + + FileChooser fc = new FileChooser(); + fc.getExtensionFilters().add(new ExtensionFilter("CityGML", "*.gml")); + fc.getExtensionFilters().add(new ExtensionFilter("OFF - Object File Format", "*.off")); + File dir = new File(Settings.get(Settings.LAST_OPEN_FOLDER, "")); + if (dir.exists() && dir.isDirectory()) { + fc.setInitialDirectory(dir); + } else { + Settings.set(Settings.LAST_OPEN_FOLDER, ""); + } + File f = fc.showSaveDialog(mainWindow.getMainStage()); + if (f != null) { + Settings.set(Settings.LAST_OPEN_FOLDER, f.getParent()); + try { + storeModel(f, saveWithQualityAde); + } catch (CityDoctorWriteException e) { + mainWindow.showExceptionDialog(e); + } + } + } + + public void delete(TreeItem selectedItem) { + if (model == null) { + return; + } + Renderable render = selectedItem.getValue(); + if (render instanceof BuildingNode node) { + model.getBuildings().remove(node.getBuilding()); + mainWindow.getBuildingsView().getRoot().getChildren().remove(selectedItem); + } + + } + + public void errorFilterIndexChanged(Number newV) { + mainWindow.getMeshGroup().getChildren().clear(); + mainWindow.unselectEverything(); + if (newV.intValue() == 0) { + fillTreeViewFromFeatures(mainWindow.getSelectedTab()); + } else if (newV.intValue() == 1) { + switch (mainWindow.getSelectedTab()) { + case BUILDING: + fillTreeViewWithErrorBuildings(); + break; + case VEGETATION: + fillTreeViewWithErrorVegetation(); + break; + case BRIDGE: + fillTreeViewWithErrorBridges(); + break; + case LAND: + fillTreeViewWithErrorLand(); + break; + case TRANSPORTATION: + fillTreeViewWithErrorTransportation(); + break; + case WATER: + fillTreeViewWithErrorWater(); + break; + default: + throw new IllegalStateException("Unknown selected feature tab: " + mainWindow.getSelectedTab()); + } + } else { + throw new IllegalStateException("Unknown filter index selected: " + newV); + } + } + + public ParserConfiguration getCurrentConfig() { + return currentConfig; + } +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorGUIStarter.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorGUIStarter.java new file mode 100644 index 0000000..e15c9f7 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/CityDoctorGUIStarter.java @@ -0,0 +1,27 @@ +/*- + * Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui; + +public class CityDoctorGUIStarter { + + public static void main(String[] args) { + MainWindow.main(args); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ClickDispatcher.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ClickDispatcher.java new file mode 100644 index 0000000..bff71d1 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ClickDispatcher.java @@ -0,0 +1,9 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import javafx.scene.input.MouseEvent; + +public interface ClickDispatcher { + + public void click(MouseEvent me, ClickHandler handler); + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ClickHandler.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ClickHandler.java new file mode 100644 index 0000000..1211ca9 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ClickHandler.java @@ -0,0 +1,13 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import javafx.scene.input.MouseEvent; + +public interface ClickHandler { + + public void onPolygonClick(Polygon p, MouseEvent me); + + public void onVertexClick(Vertex v, MouseEvent me); + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ExceptionDialog.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ExceptionDialog.java new file mode 100644 index 0000000..56d6b8d --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ExceptionDialog.java @@ -0,0 +1,56 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.PrintWriter; +import java.io.StringWriter; + +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.scene.control.Alert; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.Label; +import javafx.scene.control.TextArea; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.Priority; + +public class ExceptionDialog { + + private Alert alert; + + private TextArea textArea; + + public ExceptionDialog() { + alert = new Alert(AlertType.ERROR); + alert.setTitle("Exception Dialog"); + alert.getDialogPane().setPrefWidth(800); + Label label = new Label(Localization.getText("ExceptionDialog.stacktrace")); + + textArea = new TextArea(); + textArea.setEditable(false); + textArea.setWrapText(true); + + textArea.setMaxWidth(Double.MAX_VALUE); + textArea.setMaxHeight(Double.MAX_VALUE); + GridPane.setVgrow(textArea, Priority.ALWAYS); + GridPane.setHgrow(textArea, Priority.ALWAYS); + + GridPane expContent = new GridPane(); + expContent.setMaxWidth(Double.MAX_VALUE); + expContent.add(label, 0, 0); + expContent.add(textArea, 0, 1); + + // Set expandable Exception into the dialog pane. + alert.getDialogPane().setExpandableContent(expContent); + } + + public void show(Throwable ex) { + // Create expandable Exception. + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + ex.printStackTrace(pw); + String exceptionText = sw.toString(); + textArea.setText(exceptionText); + alert.setContentText(ex.getMessage()); + alert.setHeaderText(ex.getClass().getSimpleName()); + alert.showAndWait(); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/FilterPane.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/FilterPane.java new file mode 100644 index 0000000..a82b30a --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/FilterPane.java @@ -0,0 +1,305 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +import de.hft.stuttgart.citydoctor2.check.ExcludeFilterConfiguration; +import de.hft.stuttgart.citydoctor2.check.FilterConfiguration; +import de.hft.stuttgart.citydoctor2.check.IncludeFilterConfiguration; +import de.hft.stuttgart.citydoctor2.datastructure.FeatureType; +import de.hft.stuttgart.citydoctor2.gui.filter.TypeFilterSelection; +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.control.Button; +import javafx.scene.control.ComboBox; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.TextField; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; + +public class FilterPane { + + @FXML + private VBox inclFeatureBox; + + @FXML + private ImageView addInclFeatureView; + + @FXML + private VBox inclMatchBox; + + @FXML + private ImageView addInclMatchView; + + @FXML + private Button addInclFeatureBtn; + + @FXML + private Button addInclMatchBtn; + + @FXML + private VBox exclFeatureBox; + + @FXML + private ImageView addExclFeatureView; + + @FXML + private VBox exclMatchBox; + + @FXML + private ImageView addExclMatchView; + + @FXML + private Button addExclFeatureBtn; + + @FXML + private Button addExclMatchBtn; + + private ScrollPane pane; + private Image deleteImg; + + private List> includeTypeBoxes = new ArrayList<>(); + private List includeMatcherFields = new ArrayList<>(); + + private List excludeMatcherFields = new ArrayList<>(); + + private List> excludeTypeBoxes = new ArrayList<>(); + + private List availableFilters; + + public FilterPane() throws IOException { + FXMLLoader fxmlLoader = new FXMLLoader(FilterPane.class.getResource("FilterPane.fxml")); + fxmlLoader.setController(this); + pane = fxmlLoader.load(); + } + + public void initialize() { + loadImages(); + + availableFilters = new ArrayList<>(); + availableFilters.add(new TypeFilterSelection(FeatureType.BUILDING, Localization.getText("FilterPane.buildings"))); + availableFilters.add(new TypeFilterSelection(FeatureType.BRIDGE, Localization.getText("FilterPane.bridges"))); + availableFilters.add(new TypeFilterSelection(FeatureType.LAND, Localization.getText("FilterPane.landUse"))); + availableFilters.add(new TypeFilterSelection(FeatureType.TRANSPORTATION, Localization.getText("FilterPane.transportation"))); + availableFilters.add(new TypeFilterSelection(FeatureType.VEGETATION, Localization.getText("FilterPane.vegetation"))); + availableFilters.add(new TypeFilterSelection(FeatureType.WATER, Localization.getText("FilterPane.water"))); + setupIncludeFeatureButton(); + setupIncludeMatchButton(); + setupExcludeFeatureButton(); + setupExcludeMatchButton(); + } + + private void setupExcludeMatchButton() { + addExclMatchBtn.setOnAction(ae -> addExcludeMatchField()); + } + + private TextField addExcludeMatchField() { + TextField tf = new TextField(); + tf.setPrefWidth(400); + excludeMatcherFields.add(tf); + + HBox box = new HBox(10); + box.getChildren().add(tf); + + ImageView imgView = new ImageView(deleteImg); + imgView.setFitHeight(25); + imgView.setFitWidth(25); + box.getChildren().add(imgView); + imgView.setOnMouseClicked(me2 -> { + excludeMatcherFields.remove(tf); + exclMatchBox.getChildren().remove(box); + }); + + exclMatchBox.getChildren().add(box); + return tf; + } + + private void setupExcludeFeatureButton() { + addExclFeatureBtn.setOnAction(ae -> addExcludeTypeFilterBox()); + } + + private ComboBox addExcludeTypeFilterBox() { + ComboBox cBox = new ComboBox<>(); + cBox.setPrefWidth(400); + cBox.getItems().addAll(availableFilters); + cBox.getSelectionModel().select(0); + excludeTypeBoxes.add(cBox); + + HBox box = new HBox(10); + box.getChildren().add(cBox); + + ImageView imgView = new ImageView(deleteImg); + imgView.setFitHeight(25); + imgView.setFitWidth(25); + box.getChildren().add(imgView); + imgView.setOnMouseClicked(me2 -> { + excludeTypeBoxes.remove(cBox); + exclFeatureBox.getChildren().remove(box); + }); + + exclFeatureBox.getChildren().add(box); + return cBox; + } + + private void setupIncludeMatchButton() { + addInclMatchBtn.setOnAction(ae -> addIncludeMatchField()); + } + + private TextField addIncludeMatchField() { + TextField tf = new TextField(); + tf.setPrefWidth(400); + includeMatcherFields.add(tf); + + HBox box = new HBox(10); + box.getChildren().add(tf); + + ImageView imgView = new ImageView(deleteImg); + imgView.setFitHeight(25); + imgView.setFitWidth(25); + box.getChildren().add(imgView); + imgView.setOnMouseClicked(me2 -> { + includeMatcherFields.remove(tf); + inclMatchBox.getChildren().remove(box); + }); + + inclMatchBox.getChildren().add(box); + return tf; + } + + public void applyFilterConfig(FilterConfiguration filter) { + includeMatcherFields.clear(); + inclMatchBox.getChildren().clear(); + includeTypeBoxes.clear(); + inclFeatureBox.getChildren().clear(); + + excludeMatcherFields.clear(); + exclMatchBox.getChildren().clear(); + excludeTypeBoxes.clear(); + exclFeatureBox.getChildren().clear(); + applyExcludeFilters(filter); + applyIncludeFilters(filter); + } + + private void applyIncludeFilters(FilterConfiguration filter) { + IncludeFilterConfiguration include = filter.getInclude(); + if (include != null) { + for (String s : include.getIds()) { + addIncludeMatchField().setText(s); + } + for (FeatureType type : include.getTypes()) { + ComboBox box = addIncludeTypeFilterBox(); + for (TypeFilterSelection tfs : box.getItems()) { + if (tfs.getType() == type) { + box.getSelectionModel().select(tfs); + } + } + } + } + } + + private void applyExcludeFilters(FilterConfiguration filter) { + ExcludeFilterConfiguration exclude = filter.getExclude(); + if (exclude != null) { + for (String s : exclude.getIds()) { + addExcludeMatchField().setText(s); + } + for (FeatureType type : exclude.getTypes()) { + ComboBox box = addExcludeTypeFilterBox(); + for (TypeFilterSelection tfs : box.getItems()) { + if (tfs.getType() == type) { + box.getSelectionModel().select(tfs); + } + } + } + } + } + + private void setupIncludeFeatureButton() { + addInclFeatureBtn.setOnAction(ae -> addIncludeTypeFilterBox()); + } + + private ComboBox addIncludeTypeFilterBox() { + ComboBox cBox = new ComboBox<>(); + cBox.setPrefWidth(400); + cBox.getItems().addAll(availableFilters); + cBox.getSelectionModel().select(0); + includeTypeBoxes.add(cBox); + + HBox box = new HBox(10); + box.getChildren().add(cBox); + + ImageView imgView = new ImageView(deleteImg); + imgView.setFitHeight(25); + imgView.setFitWidth(25); + box.getChildren().add(imgView); + imgView.setOnMouseClicked(me2 -> { + includeTypeBoxes.remove(cBox); + inclFeatureBox.getChildren().remove(box); + }); + + inclFeatureBox.getChildren().add(box); + return cBox; + } + + public FilterConfiguration getConfiguration() { + IncludeFilterConfiguration includeFilters = new IncludeFilterConfiguration(); + List featureTypes = new ArrayList<>(); + for (ComboBox box : includeTypeBoxes) { + featureTypes.add(box.getSelectionModel().getSelectedItem().getType()); + } + includeFilters.setTypes(featureTypes); + + List ids = new ArrayList<>(); + for (TextField tf : includeMatcherFields) { + ids.add(tf.getText()); + } + includeFilters.setIds(ids); + + ExcludeFilterConfiguration excludeFilters = new ExcludeFilterConfiguration(); + + List excludeFeatureTypes = new ArrayList<>(); + for (ComboBox box : excludeTypeBoxes) { + excludeFeatureTypes.add(box.getSelectionModel().getSelectedItem().getType()); + } + excludeFilters.setTypes(excludeFeatureTypes); + + List excludeIds = new ArrayList<>(); + for (TextField tf : excludeMatcherFields) { + excludeIds.add(tf.getText()); + } + excludeFilters.setIds(excludeIds); + + + FilterConfiguration fConfig = new FilterConfiguration(); + fConfig.setInclude(includeFilters); + fConfig.setExclude(excludeFilters); + return fConfig; + } + + private void loadImages() { + try { + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/Add.png")) { + Image img = new Image(inStream); + addInclFeatureView.setImage(img); + addInclMatchView.setImage(img); + addExclFeatureView.setImage(img); + addExclMatchView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/Delete.png")) { + deleteImg = new Image(inStream); + } + } catch (IOException e) { + // ignore close exception + } + } + + public ScrollPane getPane() { + return pane; + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/GlobalParameter.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/GlobalParameter.java new file mode 100644 index 0000000..ef4309d --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/GlobalParameter.java @@ -0,0 +1,103 @@ +/*- + * Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.Serializable; + +import de.hft.stuttgart.citydoctor2.check.Unit; + +public class GlobalParameter implements Serializable { + + private static final long serialVersionUID = 1423983452743345752L; + + private String name; + private String value; + private Unit unit; + + public GlobalParameter(String name, String value, Unit unit) { + super(); + this.name = name; + this.value = value; + this.unit = unit; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((unit == null) ? 0 : unit.hashCode()); + result = prime * result + ((value == null) ? 0 : value.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GlobalParameter other = (GlobalParameter) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (unit != other.unit) + return false; + if (value == null) { + if (other.value != null) + return false; + } else if (!value.equals(other.value)) + return false; + return true; + } + + @Override + public String toString() { + return "GlobalParameter [name=" + name + ", value=" + value + ", unit=" + unit + "]"; + } + + public Unit getUnit() { + return unit; + } + + public void setUnit(Unit unit) { + this.unit = unit; + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/HighlightController.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/HighlightController.java new file mode 100644 index 0000000..5d398a0 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/HighlightController.java @@ -0,0 +1,223 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.Edge; +import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType; +import de.hft.stuttgart.citydoctor2.math.Triangle3d; +import de.hft.stuttgart.citydoctor2.math.Vector3d; +import javafx.application.Platform; +import javafx.geometry.Point3D; +import javafx.scene.Group; +import javafx.scene.Node; +import javafx.scene.paint.Color; +import javafx.scene.paint.PhongMaterial; +import javafx.scene.shape.Cylinder; +import javafx.scene.shape.Sphere; +import javafx.scene.transform.Rotate; +import javafx.scene.transform.Translate; + +public class HighlightController { + + + private double scale; + private Group points; + private Group edges; + + private Group highlights; + + public HighlightController(Group world) { + highlights = new Group(); + points = new Group(); + edges = new Group(); + highlights.getChildren().add(edges); + highlights.getChildren().add(points); + Platform.runLater(() -> world.getChildren().add(highlights)); + } + + public void clearHighlights() { + points.getChildren().clear(); + edges.getChildren().clear(); + } + + public void changeScaling(double translateZ) { + scale = Math.abs(translateZ); + scale = Math.min(150, scale); + scale = Math.max(10, scale); + scale = scale * 0.01; + for (Node n : points.getChildren()) { + n.setScaleX(scale); + n.setScaleY(scale); + n.setScaleZ(scale); + } + double edgeSize = scale / 10; + for (Node n : edges.getChildren()) { + if (n instanceof Cylinder) { + Cylinder cy = (Cylinder) n; + cy.setRadius(edgeSize); + } + } + } + + public void highlight(Polygon p, TriangulatedGeometry currentTriGeom) { + clearHighlights(); + addHighlight(p, currentTriGeom, Color.RED, Color.BLUE); + } + + private void addHighlight(Polygon p, TriangulatedGeometry currentTriGeom, Color extColor, Color intColor) { + if (currentTriGeom == null || p == null) { + return; + } + addHighlight(p.getExteriorRing(), currentTriGeom, extColor); + for (LinearRing intRing : p.getInnerRings()) { + addHighlight(intRing, currentTriGeom, intColor); + } + } + + public void highlight(LinearRing ring, TriangulatedGeometry currentTriGeom) { + clearHighlights(); + if (ring.getType() == LinearRingType.EXTERIOR) { + addHighlight(ring, currentTriGeom, Color.RED); + } else { + addHighlight(ring, currentTriGeom, Color.BLUE); + } + } + + public void highlight(List rings, TriangulatedGeometry currentTriGeom) { + clearHighlights(); + for (LinearRing lr : rings) { + if (lr.getType() == LinearRingType.EXTERIOR) { + addHighlight(lr, currentTriGeom, Color.RED); + } else { + addHighlight(lr, currentTriGeom, Color.BLUE); + } + } + } + + private void addHighlight(LinearRing ring, TriangulatedGeometry currentTriGeom, Color pointColor) { + if (currentTriGeom == null || ring == null) { + return; + } + Vector3d movedBy = currentTriGeom.getMovedBy(); + for (Vertex v : ring.getVertices()) { + highlightPoint(movedBy, v, pointColor); + } + for (int i = 0; i < ring.getVertices().size() - 1; i++) { + Vertex v1 = ring.getVertices().get(i + 0); + Vertex v2 = ring.getVertices().get(i + 1); + highlightEdge(v1, v2, movedBy); + } + } + + public void highlight(Edge e, TriangulatedGeometry currentTriGeom) { + clearHighlights(); + addHighlight(e, currentTriGeom); + } + + private void addHighlight(Edge e, TriangulatedGeometry currentTriGeom) { + if (currentTriGeom == null || e == null) { + return; + } + Vector3d movedBy = currentTriGeom.getMovedBy(); + highlightEdge(e.getFrom(), e.getTo(), movedBy); + highlightPoint(movedBy, e.getFrom(), Color.RED); + highlightPoint(movedBy, e.getTo(), Color.RED); + } + + public void highlight(Vertex v, TriangulatedGeometry currentTriGeom) { + clearHighlights(); + addHighlight(v, currentTriGeom, Color.RED); + } + + public void addHighlight(Vertex v, TriangulatedGeometry currentTriGeom, Color c) { + if (currentTriGeom == null || v == null) { + return; + } + Vector3d movedBy = currentTriGeom.getMovedBy(); + highlightPoint(movedBy, v, c); + } + + private void highlightPoint(Vector3d movedBy, Vertex v, Color color) { + Sphere sp = new Sphere(0.5); + sp.setMaterial(new PhongMaterial(color)); + sp.setTranslateX(v.getX() - movedBy.getX()); + sp.setTranslateY(v.getY() - movedBy.getY()); + sp.setTranslateZ(v.getZ() - movedBy.getZ()); + sp.setScaleX(scale); + sp.setScaleY(scale); + sp.setScaleZ(scale); + + sp.setUserData(new VertexClickDispatcher(v)); + + points.getChildren().add(sp); + } + + private void highlightEdge(Vector3d v1, Vector3d v2, Vector3d movedBy) { + Point3D origin = new Point3D(v1.getX() - movedBy.getX(), v1.getY() - movedBy.getY(), + v1.getZ() - movedBy.getZ()); + Point3D target = new Point3D(v2.getX() - movedBy.getX(), v2.getY() - movedBy.getY(), + v2.getZ() - movedBy.getZ()); + + Point3D yAxis = new Point3D(0, 1, 0); + Point3D diff = target.subtract(origin); + double height = diff.magnitude(); + + Point3D mid = target.midpoint(origin); + Translate moveToMidpoint = new Translate(mid.getX(), mid.getY(), mid.getZ()); + + Point3D axisOfRotation = diff.crossProduct(yAxis); + double angle = Math.acos(diff.normalize().dotProduct(yAxis)); + Rotate rotateAroundCenter = new Rotate(-Math.toDegrees(angle), axisOfRotation); + + Cylinder cy = new Cylinder(scale / 10, height); + cy.setMaterial(new PhongMaterial(Color.ORANGE)); + cy.getTransforms().addAll(moveToMidpoint, rotateAroundCenter); + edges.getChildren().add(cy); + } + + public void highlightEdges(List errorEdges, TriangulatedGeometry currentTriGeom) { + clearHighlights(); + for (Edge e : errorEdges) { + addHighlight(e, currentTriGeom); + } + } + + public void highlightPolygons(List> components, TriangulatedGeometry currentTriGeom) { + clearHighlights(); + for (int i = 0; i < components.size(); i++) { + Color extColor; + Color intColor; + // select some color pairs for exterior and inner rings + switch (i % 3) { + case 1: + extColor = Color.GREEN; + intColor = Color.YELLOW; + break; + case 2: + extColor = Color.BROWN; + intColor = Color.VIOLET; + break; + default: + extColor = Color.RED; + intColor = Color.BLUE; + } + List component = components.get(i); + for (Polygon p : component) { + addHighlight(p, currentTriGeom, extColor, intColor); + } + } + } + + public void addHighlight(Polygon p, TriangulatedGeometry currentTriGeom) { + addHighlight(p, currentTriGeom, Color.RED, Color.BLUE); + } + + public void highlight(Triangle3d t, TriangulatedGeometry currentTriGeom) { + highlightEdge(t.getP1(), t.getP2(), currentTriGeom.getMovedBy()); + highlightEdge(t.getP2(), t.getP3(), currentTriGeom.getMovedBy()); + highlightEdge(t.getP3(), t.getP1(), currentTriGeom.getMovedBy()); + } +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/LanguageSelectorCell.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/LanguageSelectorCell.java new file mode 100644 index 0000000..0d9a928 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/LanguageSelectorCell.java @@ -0,0 +1,49 @@ +/*- + * Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui; + +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +import javafx.scene.control.ListCell; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; + +public class LanguageSelectorCell extends ListCell { + + private static Map imageCache = new HashMap<>(); + + @Override + protected void updateItem(Locale item, boolean empty) { + super.updateItem(item, empty); + if (item == null || empty) { + setGraphic(null); + } else { + String country = item.getLanguage().toLowerCase(Locale.US); + Image iconRef = imageCache.computeIfAbsent(country, key -> { + String iconPath = "icons/icon_" + country + ".png"; + return new Image(MainWindow.class.getResourceAsStream(iconPath)); + }); + ImageView iconImageView = new ImageView(iconRef); + setGraphic(iconImageView); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ListErrorVisitor.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ListErrorVisitor.java new file mode 100644 index 0000000..65b7cc1 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ListErrorVisitor.java @@ -0,0 +1,263 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.util.ArrayList; +import java.util.List; + +import de.hft.stuttgart.citydoctor2.check.CheckError; +import de.hft.stuttgart.citydoctor2.check.ErrorVisitor; +import de.hft.stuttgart.citydoctor2.check.error.AllPolygonsWrongOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.AttributeInvalidError; +import de.hft.stuttgart.citydoctor2.check.error.AttributeMissingError; +import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError; +import de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError; +import de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError; +import de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError; +import de.hft.stuttgart.citydoctor2.check.error.NestedRingError; +import de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError; +import de.hft.stuttgart.citydoctor2.check.error.NonManifoldVertexError; +import de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonDistancePlaneError; +import de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonNormalsDeviation; +import de.hft.stuttgart.citydoctor2.check.error.NotCeilingError; +import de.hft.stuttgart.citydoctor2.check.error.NotFloorError; +import de.hft.stuttgart.citydoctor2.check.error.NotGroundError; +import de.hft.stuttgart.citydoctor2.check.error.NotWallError; +import de.hft.stuttgart.citydoctor2.check.error.NullAreaError; +import de.hft.stuttgart.citydoctor2.check.error.PointTouchesEdgeError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonHoleOutsideError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonInteriorDisconnectedError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonIntersectingRingsError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonSameOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonWithoutSurfaceError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonWrongOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.RingDuplicatePointError; +import de.hft.stuttgart.citydoctor2.check.error.RingEdgeIntersectionError; +import de.hft.stuttgart.citydoctor2.check.error.RingNotClosedError; +import de.hft.stuttgart.citydoctor2.check.error.RingTooFewPointsError; +import de.hft.stuttgart.citydoctor2.check.error.SchematronError; +import de.hft.stuttgart.citydoctor2.check.error.SolidNotClosedError; +import de.hft.stuttgart.citydoctor2.check.error.SolidSelfIntError; +import de.hft.stuttgart.citydoctor2.check.error.SurfaceUnfragmentedError; +import de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError; +import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError; +import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError; +import de.hft.stuttgart.citydoctor2.datastructure.Edge; +import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import javafx.scene.paint.Color; + +public class ListErrorVisitor implements ErrorVisitor { + + private HighlightController controller; + private TriangulatedGeometry geom; + + public ListErrorVisitor(HighlightController controller) { + this.controller = controller; + } + + public void setGeometry(TriangulatedGeometry geom) { + this.geom = geom; + } + + @Override + public void visit(PolygonHoleOutsideError err) { + List highlightedRings = new ArrayList<>(); + highlightedRings.add(err.getPolygon().getExteriorRing()); + highlightedRings.addAll(err.getHolesOutside()); + controller.highlight(highlightedRings, geom); + } + + @Override + public void visit(NonManifoldEdgeError err) { + controller.highlightEdges(err.getEdges(), geom); + } + + @Override + public void visit(MultipleConnectedComponentsError err) { + controller.highlightPolygons(err.getComponents(), geom); + } + + @Override + public void visit(NestedRingError err) { + List highlightedRings = new ArrayList<>(); + highlightedRings.add(err.getPolygon().getExteriorRing()); + highlightedRings.add(err.getInnerRing()); + controller.highlight(highlightedRings, geom); + } + + @Override + public void visit(NonManifoldVertexError err) { + controller.highlightPolygons(err.getComponents(), geom); + controller.addHighlight(err.getVertex(), geom, Color.BLUEVIOLET); + } + + @Override + public void visit(PolygonWrongOrientationError err) { + controller.highlightEdges(err.getEdges(), geom); + } + + @Override + public void visit(PolygonSameOrientationError err) { + List highlightedRings = new ArrayList<>(); + highlightedRings.add(err.getPolygon().getExteriorRing()); + highlightedRings.add(err.getInnerRing()); + controller.highlight(highlightedRings, geom); + } + + @Override + public void visit(SolidNotClosedError err) { + controller.highlightEdges(err.getErrorEdges(), geom); + } + + @Override + public void visit(DependenciesNotMetError err) { + // don't display + } + + @Override + public void visit(UnknownCheckError err) { + // don't display + } + + @Override + public void visit(RingNotClosedError err) { + controller.highlight(err.getRing(), geom); + } + + @Override + public void visit(ConsecutivePointSameError err) { + controller.highlight(err.getRing(), geom); + controller.addHighlight(err.getVertex1(), geom, Color.BLACK); + controller.addHighlight(err.getVertex2(), geom, Color.BLACK); + } + + @Override + public void visit(AllPolygonsWrongOrientationError err) { + // don't display + } + + @Override + public void visit(PolygonInteriorDisconnectedError err) { + controller.highlight(err.getConnectedRings(), geom); + } + + @Override + public void visit(NullAreaError err) { + // don't display + } + + @Override + public void visit(RingTooFewPointsError err) { + controller.highlight(err.getRing(), geom); + } + + @Override + public void visit(NonPlanarPolygonNormalsDeviation err) { + controller.highlight(err.getPolygon(), geom); + } + + @Override + public void visit(NonPlanarPolygonDistancePlaneError err) { + controller.highlight(err.getPolygon(), geom); + controller.addHighlight(err.getVertex(), geom, Color.BLACK); + } + + @Override + public void visit(PolygonIntersectingRingsError err) { + List rings = new ArrayList<>(); + rings.add(err.getIntersectingRings().getValue0()); + rings.add(err.getIntersectingRings().getValue1()); + controller.highlight(rings, geom); + } + + @Override + public void visit(SolidSelfIntError err) { + // nothing to display for now + } + + @Override + public void visit(TooFewPolygonsError err) { + // don't display + } + + @Override + public void visit(RingDuplicatePointError err) { + controller.highlight(err.getRing(), geom); + controller.addHighlight(err.getVertex1(), geom, Color.BLACK); + controller.addHighlight(err.getVertex2(), geom, Color.BLACK); + } + + @Override + public void visit(RingEdgeIntersectionError err) { + List list = new ArrayList<>(); + list.add(err.getEdge1()); + list.add(err.getEdge2()); + controller.highlightEdges(list, geom); + controller.addHighlight(new Vertex(err.getIntersection()), geom, Color.BLACK); + } + + @Override + public void visit(PointTouchesEdgeError err) { + controller.highlight(err.getEdge(), geom); + controller.addHighlight(err.getVertex(), geom, Color.BLACK); + } + + @Override + public void visit(CheckError err) { + // nothing to display + } + + @Override + public void visit(NotCeilingError err) { + // nothing to display + } + + @Override + public void visit(NotFloorError err) { + // nothing to display + } + + @Override + public void visit(NotWallError err) { + // nothing to display + } + + @Override + public void visit(NotGroundError err) { + // nothing to display + } + + @Override + public void visit(SchematronError err) { + // nothing to display + } + + @Override + public void visit(SurfaceUnfragmentedError err) { + // nothing to display + } + + @Override + public void visit(DegeneratedRingError err) { + controller.highlight(err.getRing(), geom); + } + + @Override + public void visit(AttributeMissingError err) { + // nothing to display + } + + @Override + public void visit(AttributeValueWrongError err) { + // nothing to display + } + + @Override + public void visit(AttributeInvalidError err) { + // nothing to display + } + + @Override + public void visit(PolygonWithoutSurfaceError err) { + controller.highlight(err.getPolygon(), geom); + } +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/LoadingInfoDialog.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/LoadingInfoDialog.java new file mode 100644 index 0000000..fb5064c --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/LoadingInfoDialog.java @@ -0,0 +1,38 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.IOException; + +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.scene.layout.VBox; +import javafx.stage.Modality; +import javafx.stage.Stage; +import javafx.stage.StageStyle; +import javafx.stage.Window; + +public class LoadingInfoDialog { + + private Stage stage; + + public LoadingInfoDialog(Window parent) throws IOException { + FXMLLoader loader = new FXMLLoader(LoadingInfoDialog.class.getResource("CreateRenderDataDialog.fxml")); + loader.setController(this); + VBox box = loader.load(); + + stage = new Stage(StageStyle.UNDECORATED); + Scene scene = new Scene(box); + scene.setFill(null); + stage.setScene(scene); + stage.initOwner(parent); + stage.initModality(Modality.APPLICATION_MODAL); + } + + public void show() { + stage.show(); + } + + public void hide() { + stage.hide(); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainToolBar.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainToolBar.java new file mode 100644 index 0000000..9ad3a38 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainToolBar.java @@ -0,0 +1,349 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.IOException; +import java.io.InputStream; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import de.hft.stuttgart.citydoctor2.gui.tree.Renderable; +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.control.Button; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.ToggleButton; +import javafx.scene.control.Tooltip; +import javafx.scene.control.TreeView; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.HBox; +import javafx.stage.Stage; + +public class MainToolBar { + + private static final Logger logger = LogManager.getLogger(MainToolBar.class); + + @FXML + private Button saveBtn; + + @FXML + private ImageView saveView; + + @FXML + private Button openBtn; + + @FXML + private ImageView openImageView; + + @FXML + private Button checkBtn; + + @FXML + private ImageView checkImageView; + + @FXML + private Button showWorldBtn; + + @FXML + private ImageView showWorldImageView; + + @FXML + private Button schematronBtn; + + @FXML + private ImageView schematronImgView; + + @FXML + private ToggleButton lod1Btn; + + @FXML + private ImageView lod1View; + + @FXML + private ToggleButton lod2Btn; + + @FXML + private ImageView lod2View; + + @FXML + private ToggleButton lod3Btn; + + @FXML + private ImageView lod3View; + + @FXML + private ToggleButton lod4Btn; + + @FXML + private ImageView lod4View; + + @FXML + private Button aboutBtn; + + @FXML + private ImageView aboutImgView; + + @FXML + private ToggleButton gridButton; + + @FXML + private ToggleButton cullingButton; + + @FXML + private ImageView cullingImageView; + + @FXML + private ImageView gridImageView; + + @FXML + private Button reportBtn; + + @FXML + private ImageView reportImageView; + + private OpenFileDialog fileDialog; + private CheckDialog checkDialog; + private WriteReportDialog writeDialog; + private AboutDialog aboutDialog; + + private CityDoctorController controller; + private TabPane featurePane; + private Stage stage; + private Renderer renderer; + private MainWindow mainWindow; + + private HBox toolBar; + + public MainToolBar(Stage stage, CityDoctorController controller, TabPane featurePane, Renderer renderer, + MainWindow mainWindow) throws IOException { + this.controller = controller; + this.featurePane = featurePane; + this.renderer = renderer; + this.stage = stage; + this.mainWindow = mainWindow; + + FXMLLoader loader = new FXMLLoader(MainToolBar.class.getResource("MainToolBar.fxml")); + loader.setController(this); + toolBar = loader.load(); + + fileDialog = new OpenFileDialog(stage, controller); + } + + public void initialize() { + openBtn.setOnAction(ae -> fileDialog.show()); + + setupSaveBtn(); + setupCheckButton(); + setupLodButtons(); + setupAboutButton(); + setupReportButton(); + + loadImages(); + + gridButton.setOnAction(ae -> renderer.showWireFrame(gridButton.isSelected())); + gridButton.setTooltip(new Tooltip(Localization.getText("MainToolBar.wireframe"))); + cullingButton.setOnAction(ae -> renderer.enableCulling(cullingButton.isSelected())); + cullingButton.setTooltip(new Tooltip(Localization.getText("MainToolBar.culling"))); + + showWorldBtn.setOnAction(ar -> { + Tab selectedItem = featurePane.getSelectionModel().getSelectedItem(); + if (selectedItem.getContent() instanceof TreeView) { + @SuppressWarnings("unchecked") + TreeView content = (TreeView) selectedItem.getContent(); + content.getSelectionModel().clearSelection(); + } + controller.showWorld(); + }); + } + + private void loadImages() { + try { + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/openFolderIcon.png")) { + Image img = new Image(inStream); + openImageView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/check32x32.png")) { + Image img = new Image(inStream); + checkImageView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/wireframe32x32.png")) { + Image img = new Image(inStream); + gridImageView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/Culling.png")) { + Image img = new Image(inStream); + cullingImageView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/error_stat32x32.png")) { + Image img = new Image(inStream); + reportImageView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/scene.png")) { + Image img = new Image(inStream); + showWorldImageView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/lod1_32x32.png")) { + Image img = new Image(inStream); + lod1View.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/lod2_32x32.png")) { + Image img = new Image(inStream); + lod2View.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/lod3_32x32.png")) { + Image img = new Image(inStream); + lod3View.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/lod4_32x32.png")) { + Image img = new Image(inStream); + lod4View.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/about.png")) { + Image img = new Image(inStream); + aboutImgView.setImage(img); + } + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/save.png")) { + Image img = new Image(inStream); + saveView.setImage(img); + } + } catch (IOException e) { + // ignore close exception + } + } + + private void setupReportButton() { + reportBtn.setDisable(true); + reportBtn.setTooltip(new Tooltip(Localization.getText("MainToolBar.writeReports"))); + reportBtn.setOnAction(ae -> { + if (writeDialog == null) { + try { + writeDialog = new WriteReportDialog(stage, controller, mainWindow); + } catch (IOException e) { + logger.catching(e); + mainWindow.showExceptionDialog(e); + } + } + if (writeDialog != null) { + // writeDialog can be null if creation of said dialog fails + writeDialog.show(); + } + }); + } + + private void setupAboutButton() { + aboutBtn.setOnAction(ae -> { + if (aboutDialog == null) { + try { + aboutDialog = new AboutDialog(stage); + aboutDialog.show(); + } catch (IOException e) { + logger.error("Could not load about dialog.", e); + } + } else { + aboutDialog.show(); + } + }); + } + + private void setupLodButtons() { + lod1Btn.setOnAction(ae -> { + if (lod1Btn.isSelected()) { + renderer.enableLod1(); + } else { + renderer.disableLod1(); + } + }); + lod2Btn.setOnAction(ae -> { + if (lod2Btn.isSelected()) { + renderer.enableLod2(); + } else { + renderer.disableLod2(); + } + }); + lod3Btn.setOnAction(ae -> { + if (lod3Btn.isSelected()) { + renderer.enableLod3(); + } else { + renderer.disableLod3(); + } + }); + lod4Btn.setOnAction(ae -> { + if (lod4Btn.isSelected()) { + renderer.enableLod4(); + } else { + renderer.disableLod4(); + } + }); + } + + private void setupSaveBtn() { + saveBtn.setOnAction(ae -> controller.askAndSave()); + } + + private void setupCheckButton() { + checkBtn.setDisable(true); + checkBtn.setTooltip(new Tooltip(Localization.getText("MainToolBar.executeChecks"))); + checkBtn.setOnAction(ae -> { + if (checkDialog == null) { + try { + checkDialog = new CheckDialog(mainWindow, stage, controller); + } catch (IOException e) { + mainWindow.showExceptionDialog(e); + logger.catching(e); + } + } + checkDialog.show(); + }); + } + + public Button getCheckButton() { + return checkBtn; + } + + public ToggleButton getGridButton() { + return gridButton; + } + + public ToggleButton getCullingButton() { + return cullingButton; + } + + public Button getWriteReportButton() { + return reportBtn; + } + + public ToggleButton getLod1Btn() { + return lod1Btn; + } + + public ToggleButton getLod2Btn() { + return lod2Btn; + } + + public ToggleButton getLod3Btn() { + return lod3Btn; + } + + public ToggleButton getLod4Btn() { + return lod4Btn; + } + + public Button getWorldBtn() { + return showWorldBtn; + } + + public Button getSaveBtn() { + return saveBtn; + } + + public HBox getToolBar() { + return toolBar; + } + + public Button getOpenBtn() { + return openBtn; + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java new file mode 100644 index 0000000..4ba6762 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/MainWindow.java @@ -0,0 +1,980 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.List; +import java.util.Locale; +import java.util.Optional; +import java.util.Timer; +import java.util.TimerTask; + +import javax.imageio.ImageIO; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import de.hft.stuttgart.citydoctor2.CityDoctorValidation; +import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration; +import de.hft.stuttgart.citydoctor2.datastructure.BoundingBox; +import de.hft.stuttgart.citydoctor2.datastructure.FeatureType; +import de.hft.stuttgart.citydoctor2.gui.logger.GuiLogger; +import de.hft.stuttgart.citydoctor2.gui.tree.BuildingNode; +import de.hft.stuttgart.citydoctor2.gui.tree.Renderable; +import de.hft.stuttgart.citydoctor2.gui.tree.RenderableTreeCell; +import de.hft.stuttgart.citydoctor2.parameter.ArgumentParser; +import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; +import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; +import de.hft.stuttgart.citydoctor2.parser.ProgressListener; +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.application.Application; +import javafx.application.Platform; +import javafx.beans.value.ChangeListener; +import javafx.embed.swing.SwingFXUtils; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.AmbientLight; +import javafx.scene.Group; +import javafx.scene.Node; +import javafx.scene.PerspectiveCamera; +import javafx.scene.Scene; +import javafx.scene.SceneAntialiasing; +import javafx.scene.SubScene; +import javafx.scene.control.Alert; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.ComboBox; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.Label; +import javafx.scene.control.ListCell; +import javafx.scene.control.ListView; +import javafx.scene.control.MenuItem; +import javafx.scene.control.ProgressBar; +import javafx.scene.control.RadioButton; +import javafx.scene.control.SplitPane; +import javafx.scene.control.Tab; +import javafx.scene.control.TabPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.scene.control.ToggleButton; +import javafx.scene.control.ToggleGroup; +import javafx.scene.control.ToolBar; +import javafx.scene.control.TreeItem; +import javafx.scene.control.TreeView; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.image.WritableImage; +import javafx.scene.input.Dragboard; +import javafx.scene.input.MouseButton; +import javafx.scene.input.MouseEvent; +import javafx.scene.input.TransferMode; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; +import javafx.scene.layout.Priority; +import javafx.scene.paint.Color; +import javafx.scene.transform.Rotate; +import javafx.stage.Stage; + +public class MainWindow extends Application { + + private static final Logger logger = LogManager.getLogger(MainWindow.class); + + private static final double CAMERA_TRANSLATE_Z = -100.0; + private static final double CAMERA_INITIAL_X_ANGLE = 20.0; + private static final double CAMERA_INITIAL_Y_ANGLE = 120.0; + + @FXML + private TreeView buildingsView; + + @FXML + private TreeView vegetationView; + + @FXML + private TreeView transView; + + @FXML + private TreeView bridgeView; + + @FXML + private TreeView waterView; + + @FXML + private TreeView terrainView; + + @FXML + private TreeView polygonView; + + @FXML + private TreeView edgeView; + + @FXML + private TreeView vertexView; + + @FXML + private Pane meshView; + + @FXML + private SplitPane mainContainer; + + @FXML + private TabPane detailsTabPane; + + @FXML + private TabPane featurePane; + + @FXML + private TextField searchField; + + @FXML + private TreeView errorView; + + @FXML + private Button clearBtn; + + @FXML + private Button searchBtn; + + @FXML + private ToggleButton allButton; + + @FXML + private ToggleButton errorButton; + + @FXML + private ComboBox showCityObjectsCombo; + + @FXML + private HBox viewPane; + + @FXML + private ListView globalErrorsView; + + @FXML + private BorderPane mainPane; + + @FXML + private HBox viewButtonBox; + + @FXML + private ComboBox languageSelector; + + @FXML + private Tab buildingsTab; + + @FXML + private Tab vegetationTab; + + @FXML + private Tab transportationTab; + + @FXML + private Tab bridgeTab; + + @FXML + private Tab waterTab; + + @FXML + private Tab terrainTab; + + @FXML + private Tab errorsTab; + + @FXML + private Tab polygonsTab; + + @FXML + private Tab edgesTab; + + @FXML + private Tab verticesTab; + + @FXML + private Tab logTab; + + @FXML + private Tab globalErrorsTab; + + @FXML + private Label viewLabel; + + @FXML + private Label showLabel; + + @FXML + private Label searchLabel; + + @FXML + private Label memoryLabel; + + @FXML + private ProgressBar memoryBar; + + @FXML + private Label memoryConsumptionLabel; + + @FXML + private Label availableLabel; + + private Group meshGroup; + + private Group world; + private PerspectiveCamera camera; + private Rotate cameraXRotation = new Rotate(); + private Rotate cameraZRotation = new Rotate(); + + private double dragX; + private double dragY; + + private double cameraXRot = CAMERA_INITIAL_X_ANGLE; + private double cameraYRot = CAMERA_INITIAL_Y_ANGLE; + private double translateZ = CAMERA_TRANSLATE_Z; + private double[] clickStart = new double[2]; + + @FXML + private TextArea logArea; + + @FXML + private ToolBar viewBar; + + private Stage stage; + private ExceptionDialog exceptionDialog; + + private Renderer renderer; + private CityDoctorController controller; + private HighlightController highlightController; + + private FeatureType selectedTab = FeatureType.BUILDING; + + private MainToolBar mainToolBar; + private SubScene geomScene; + + private static boolean loadFileAtStartup = false; + private static String inputFile; + private static String xmlOutput; + private static String pdfOutput; + private static ValidationConfiguration config; + + private VertexClickHandler clickHandler; + + private ChangeListener filterChangeListener; + + public static void main(String[] args) { + setLocaleFromSettings(); + ArgumentParser argParser = new ArgumentParser(args); + inputFile = CityDoctorValidation.getInputFile(argParser, true); + if (inputFile != null) { + loadFileAtStartup = true; + xmlOutput = CityDoctorValidation.getXmlOutput(argParser); + pdfOutput = CityDoctorValidation.getPdfOutput(argParser); + try { + config = CityDoctorValidation.getValidationConfig(argParser, true); + } catch (FileNotFoundException e) { + Platform.runLater(() -> { + List configFiles = argParser.getValues("config"); + Alert alert = new Alert(AlertType.ERROR); + alert.setContentText(Localization.getText("MainWindow.missingConfig") + configFiles); + alert.showAndWait(); + }); + System.exit(4); + } + } + Application.launch(args); + } + + private static void setLocaleFromSettings() { + String localeString = Settings.get(Settings.LANGUAGE); + if (localeString != null) { + try { + Locale loc = new Locale(localeString); + Locale.setDefault(loc); + } catch (Exception e) { + logger.warn("Could not set language to {}, using system language", localeString); + } + } + } + + @Override + public void start(Stage stage) throws IOException { + this.stage = stage; + stage.getIcons().add(new Image(MainWindow.class.getResourceAsStream("icons/citydoctor_logo.png"))); + FXMLLoader loader = new FXMLLoader(MainWindow.class.getResource("MainWindow.fxml")); + loader.setController(this); + BorderPane bp = loader.load(); + highlightController = new HighlightController(world); + renderer = new Renderer(this, highlightController); + clickHandler = new VertexClickHandler(errorView, renderer, stage); + controller = new CityDoctorController(this, highlightController, renderer); + mainToolBar = new MainToolBar(stage, controller, featurePane, renderer, this); + viewPane.getChildren().add(mainToolBar.getToolBar()); + HBox.setHgrow(mainToolBar.getToolBar(), Priority.ALWAYS); + + ValidationView valView = new ValidationView(this, controller); + ViewRegistration.registerView(valView); + setupViews(valView); + + createLanguageSelector(); + setLabelsInCorrectLanguage(); + + Scene scene = new Scene(bp, 1280, 800); + createDropTarget(scene, valView); + String version = Localization.getText(Localization.VERSION); + stage.setTitle("CityDoctor " + version); + stage.setScene(scene); + stage.show(); + checkForStartupLoading(); + + memoryBar.setOnMouseClicked(me -> System.gc()); + Timer timer = new Timer(true); + // check memory every second + TimerTask task = new TimerTask() { + + Runtime runtime = Runtime.getRuntime(); + + @Override + public void run() { + long totalMemory = runtime.totalMemory(); + long freeMemory = runtime.freeMemory(); + long usedMemory = totalMemory - freeMemory; + double percentage = usedMemory / (double) totalMemory; + if (totalMemory / 1024 / 1024 >= 1024) { + // gb + double totalMemoryGb = totalMemory / (1024d * 1024d * 1024d); + double usedMemoryGb = usedMemory / (1024d * 1024d * 1024d); + String memoryString = String.format("%.1f GB / %.1f GB", usedMemoryGb, totalMemoryGb); + Platform.runLater(() -> { + memoryConsumptionLabel.setText(memoryString); + memoryBar.setProgress(percentage); + }); + } else if (totalMemory / 1024 >= 1024) { + // mb + double totalMemoryMb = totalMemory / (1024d * 1024d); + double usedMemoryMb = usedMemory / (1024d * 1024d); + String memoryString = String.format("%.1f MB / %.1f MB", usedMemoryMb, totalMemoryMb); + Platform.runLater(() -> { + memoryConsumptionLabel.setText(memoryString); + memoryBar.setProgress(percentage); + }); + } + } + }; + timer.schedule(task, 0, 1000); + } + + private void createDropTarget(Scene scene, ValidationView valView) { + setDragOverInteraction(scene, valView); + scene.setOnDragDropped(event -> { + if (ViewRegistration.getCurrentActiveView() != valView) { + return; + } + Dragboard db = event.getDragboard(); + boolean success = false; + if (db.hasFiles() && db.getFiles().size() == 1) { + File f = db.getFiles().get(0); + Thread t = new Thread(() -> { + try { + controller.loadCityGml(f.getAbsolutePath(), 8, (ProgressListener) null, false); + } catch (Exception e) { + if (logger.isErrorEnabled()) { + logger.error(Localization.getText("OpenFileDialog.loadFailed"), e); + } + Platform.runLater(() -> { + ExceptionDialog exDialog = new ExceptionDialog(); + exDialog.show(e); + }); + } + }); + t.start(); + success = true; + } + // let the source know whether the string was successfully transferred and used + event.setDropCompleted(success); + + event.consume(); + }); + } + + private void setDragOverInteraction(Scene scene, ValidationView valView) { + scene.setOnDragOver(event -> { + if (ViewRegistration.getCurrentActiveView() != valView) { + return; + } + if (event.getGestureSource() != scene && event.getDragboard().hasFiles() + && event.getDragboard().getFiles().size() == 1) { + // allow for both copying and moving, whatever user chooses + event.acceptTransferModes(TransferMode.LINK); + } + event.consume(); + }); + } + + private void setLabelsInCorrectLanguage() { + buildingsTab.setText(Localization.getText("MainWindow.buildingsTab")); + vegetationTab.setText(Localization.getText("MainWindow.vegetationTab")); + transportationTab.setText(Localization.getText("MainWindow.transportationTab")); + bridgeTab.setText(Localization.getText("MainWindow.bridgeTab")); + waterTab.setText(Localization.getText("MainWindow.waterTab")); + terrainTab.setText(Localization.getText("MainWindow.terrainTab")); + viewLabel.setText(Localization.getText("MainWindow.viewLabel")); + showLabel.setText(Localization.getText("MainWindow.showLabel")); + searchLabel.setText(Localization.getText("MainWindow.searchLabel")); + searchBtn.setText(Localization.getText("MainWindow.searchBtn")); + clearBtn.setText(Localization.getText("MainWindow.clearBtn")); + errorsTab.setText(Localization.getText("MainWindow.errorsTab")); + polygonsTab.setText(Localization.getText("MainWindow.polygonsTab")); + edgesTab.setText(Localization.getText("MainWindow.edgesTab")); + verticesTab.setText(Localization.getText("MainWindow.verticesTab")); + logTab.setText(Localization.getText("MainWindow.logTab")); + globalErrorsTab.setText(Localization.getText("MainWindow.globalErrorsTab")); + memoryLabel.setText(Localization.getText("MainWindow.memoryLabel")); + availableLabel.setText(String.format("%s %.1f GB", Localization.getText("MainWindow.availableLabel"), + Runtime.getRuntime().maxMemory() / 1024d / 1024d / 1024d)); + } + + private void createLanguageSelector() { + languageSelector.setButtonCell(new LanguageSelectorCell()); + languageSelector.setCellFactory(view -> new LanguageSelectorCell()); + languageSelector.getItems().add(Locale.GERMAN); + languageSelector.getItems().add(Locale.ENGLISH); + if (Locale.getDefault().getLanguage().equals(Locale.GERMAN.getLanguage())) { + languageSelector.getSelectionModel().select(Locale.GERMAN); + } else if (Locale.getDefault().getLanguage().equals(Locale.ENGLISH.getLanguage())) { + languageSelector.getSelectionModel().select(Locale.ENGLISH); + } else { + languageSelector.getSelectionModel().select(Locale.ENGLISH); + Settings.set(Settings.LANGUAGE, Locale.ENGLISH.getLanguage()); + } + languageSelector.getSelectionModel().selectedItemProperty().addListener((obs, oldV, newV) -> { + Alert alert = new Alert(AlertType.CONFIRMATION, Localization.getText("MainWindow.languageChange"), + ButtonType.OK); + alert.showAndWait(); + Settings.set(Settings.LANGUAGE, newV.getLanguage()); + }); + } + + private void checkForStartupLoading() { + if (loadFileAtStartup) { + logger.info(Localization.getText("MainWindow.loadGivenFile")); + Thread t = new Thread(() -> { + try { + // wait a bit for the gui to show + Thread.sleep(500); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + try { + controller.loadCityGml(inputFile, config.getNumberOfRoundingPlaces(), null, + config.isXmlValidation()); + logger.info(Localization.getText("MainWindow.finishedLoading")); + logger.info(Localization.getText("MainWindow.checking")); + controller.startChecks(config, null); + if (xmlOutput != null) { + logger.info(Localization.getText("MainWindow.writeXml")); + controller.writeXmlReport(new File(xmlOutput)); + logger.info(Localization.getText("MainWindow.finishedXml")); + } + if (pdfOutput != null) { + logger.info(Localization.getText("MainWindow.writePdf")); + controller.writePdfReport(new File(pdfOutput)); + logger.info(Localization.getText("MainWindow.finishedPdf")); + } + } catch (CityGmlParseException | InvalidGmlFileException e) { + logger.error(Localization.getText("MainWindow.loadFailed"), e.getMessage()); + } + }); + t.start(); + } + } + + private void setupViews(ValidationView valView) { + ToggleGroup group = new ToggleGroup(); + for (View v : ViewRegistration.getRegisteredViews()) { + + RadioButton radioButton = new RadioButton(); + radioButton.getStyleClass().remove("radio-button"); + radioButton.getStyleClass().add("toggle-button"); + ImageView view = new ImageView(v.getViewLogo()); + view.setFitHeight(32); + view.setFitWidth(32); + radioButton.setGraphic(view); + group.getToggles().add(radioButton); + if (v == valView) { + ViewRegistration.setCurrentActiveView(valView); + group.selectToggle(radioButton); + } + viewButtonBox.getChildren().add(radioButton); + radioButton.selectedProperty().addListener((obs, oldV, newV) -> { + if (Boolean.TRUE.equals(newV)) { + showView(v); + ViewRegistration.setCurrentActiveView(v); + } else { + v.onHide(); + } + }); + } + } + + private void showView(View v) { + viewPane.getChildren().clear(); + controller.showView(v); + Optional toolbar = v.getToolbar(); + if (toolbar.isPresent()) { + viewPane.getChildren().add(toolbar.get()); + HBox.setHgrow(toolbar.get(), Priority.ALWAYS); + } else { + HBox placeHolderToolbar = new HBox(); + placeHolderToolbar.setMaxHeight(Double.MAX_VALUE); + viewPane.getChildren().add(placeHolderToolbar); + HBox.setHgrow(placeHolderToolbar, Priority.ALWAYS); + } + mainPane.setCenter(v.getMainScreen()); + } + + public void initialize() { + GuiLogger.setTextArea(logArea); + + loadFrameConfig(); + + setup3dView(); + setupTrees(); + + setupSearchField(); + setupSearchButtons(); + + setupShowCityComboBox(); + + detailsTabPane.getSelectionModel().selectedIndexProperty() + .addListener((ov, oldI, newI) -> Platform.runLater(() -> { + if (newI.intValue() == 0 && errorView.getSelectionModel().getSelectedItem() != null) { + // the first tab is selected, meaning the error tab + // redisplay the selected error + errorView.getSelectionModel().getSelectedItem().getValue().visit(renderer); + } + })); + } + + private void setupShowCityComboBox() { + showCityObjectsCombo.getItems().addAll(Localization.getText("MainWindow.all"), + Localization.getText("MainWindow.withErrors")); + showCityObjectsCombo.getSelectionModel().selectFirst(); + + showCityObjectsCombo.setCellFactory(param -> new ListCell() { + @Override + public void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + if (item != null) { + setText(item); + if (item.contentEquals(Localization.getText("MainWindow.withErrors"))) { + setTextFill(Color.RED); + } + } else { + setText(null); + } + } + }); + + filterChangeListener = setupFilterSelectionListener(); + showCityObjectsCombo.getSelectionModel().selectedIndexProperty().addListener(filterChangeListener); + } + + public void resetFilterComboBox() { + showCityObjectsCombo.getSelectionModel().selectedIndexProperty().removeListener(filterChangeListener); + showCityObjectsCombo.getSelectionModel().selectFirst(); + showCityObjectsCombo.getSelectionModel().selectedIndexProperty().addListener(filterChangeListener); + } + + private ChangeListener setupFilterSelectionListener() { + return (obs, oldV, newV) -> controller.errorFilterIndexChanged(newV); + } + + private void setupSearchButtons() { + searchBtn.setOnAction(ae -> controller.searchFeature(searchField.getText(), selectedTab)); + clearBtn.setOnAction(ae -> { + if (searchField.getText().isEmpty()) { + // do not reset search if nothing has bee searched + return; + } + controller.resetSearch(selectedTab); + searchField.setText(""); + }); + } + + private void setupSearchField() { + searchField.textProperty().addListener((obs, oldV, newV) -> { + if (newV.isEmpty()) { + controller.resetSearch(selectedTab); + } + }); + featurePane.getSelectionModel().selectedIndexProperty().addListener((obs, oldV, newV) -> { + if (!searchField.getText().isEmpty()) { + resetSearchBar(); + controller.resetSearch(selectedTab); + } + int index = newV.intValue(); + switch (index) { + case 0: + selectedTab = FeatureType.BUILDING; + break; + case 1: + selectedTab = FeatureType.VEGETATION; + break; + case 2: + selectedTab = FeatureType.TRANSPORTATION; + break; + case 3: + selectedTab = FeatureType.BRIDGE; + break; + case 4: + selectedTab = FeatureType.WATER; + break; + case 5: + selectedTab = FeatureType.LAND; + break; + default: + throw new IllegalStateException("Unknown tab index: " + index); + } + }); + } + + public void resetSearchBar() { + searchField.setText(""); + } + + private void loadFrameConfig() { + stage.setMaximized(Boolean.valueOf(Settings.get(Settings.MAXIMIZED, Boolean.FALSE.toString()))); + stage.maximizedProperty() + .addListener((obs, oldV, newV) -> Settings.set(Settings.MAXIMIZED, Boolean.toString(newV))); + + String widthString = Settings.get(Settings.FRAME_WIDTH); + if (widthString != null) { + stage.setWidth(Double.parseDouble(widthString)); + } + stage.widthProperty().addListener( + (obs, oldV, newV) -> Settings.set(Settings.FRAME_WIDTH, Double.toString(newV.doubleValue()))); + + String heightString = Settings.get(Settings.FRAME_HEIGHT); + if (heightString != null) { + stage.setHeight(Double.parseDouble(heightString)); + } + stage.heightProperty().addListener( + (obs, oldV, newV) -> Settings.set(Settings.FRAME_HEIGHT, Double.toString(newV.doubleValue()))); + } + + public void showExceptionDialog(Throwable e) { + if (exceptionDialog == null) { + exceptionDialog = new ExceptionDialog(); + } + exceptionDialog.show(e); + } + + private void setupTrees() { + setupSelectListener(errorView); + errorView.setRoot(new TreeItem<>()); + errorView.setCellFactory(param -> new RenderableTreeCell()); + + buildingsView.setShowRoot(true); + setupSelectListener(buildingsView); + buildingsView.setCellFactory(param -> new RenderableTreeCell()); + ContextMenu cMenu = new ContextMenu(); + MenuItem mi = new MenuItem(Localization.getText("MainWindow.export")); + mi.setOnAction(ea -> { + Renderable render = buildingsView.getSelectionModel().getSelectedItem().getValue(); + if (render instanceof BuildingNode) { + BuildingNode node = (BuildingNode) render; + controller.export(node.getBuilding()); + } + }); + cMenu.getItems().add(mi); + + MenuItem deleteMi = new MenuItem("Delete"); + deleteMi.setOnAction(ae -> controller.delete(buildingsView.getSelectionModel().getSelectedItem())); + cMenu.getItems().add(deleteMi); + + buildingsView.setContextMenu(cMenu); + + vegetationView.setShowRoot(true); + setupSelectListener(vegetationView); + vegetationView.setCellFactory(param -> new RenderableTreeCell()); + + transView.setShowRoot(true); + setupSelectListener(transView); + transView.setCellFactory(param -> new RenderableTreeCell()); + + bridgeView.setShowRoot(true); + setupSelectListener(bridgeView); + bridgeView.setCellFactory(param -> new RenderableTreeCell()); + + waterView.setShowRoot(true); + setupSelectListener(waterView); + waterView.setCellFactory(param -> new RenderableTreeCell()); + + terrainView.setShowRoot(true); + setupSelectListener(terrainView); + terrainView.setCellFactory(param -> new RenderableTreeCell()); + + setupSelectListener(vertexView); + vertexView.setRoot(new TreeItem<>()); + vertexView.setCellFactory(param -> new RenderableTreeCell()); + + setupSelectListener(polygonView); + polygonView.setRoot(new TreeItem<>()); + polygonView.setCellFactory(param -> new RenderableTreeCell()); + + setupSelectListener(edgeView); + edgeView.setRoot(new TreeItem<>()); + edgeView.setCellFactory(param -> new RenderableTreeCell()); + } + + private void setupSelectListener(TreeView view) { + view.getSelectionModel().selectedItemProperty().addListener((obs, oldI, newI) -> { + if (newI != null) { + newI.getValue().visit(renderer); + } + }); + } + + private void setup3dView() { + Group root = new Group(); + geomScene = new SubScene(root, 500, 300, true, SceneAntialiasing.BALANCED); + geomScene.heightProperty().bind(meshView.heightProperty()); + geomScene.widthProperty().bind(meshView.widthProperty()); + geomScene.setFill(Color.AZURE); + meshView.getChildren().add(geomScene); + + geomScene.addEventFilter(MouseEvent.MOUSE_PRESSED, me -> { + clickStart[0] = me.getScreenX(); + clickStart[1] = me.getScreenY(); + }); + + geomScene.addEventFilter(MouseEvent.MOUSE_RELEASED, me -> { + if (Math.abs(clickStart[0] - me.getScreenX()) > 3 || Math.abs(clickStart[1] - me.getScreenY()) > 3) { + // skip when mouse moved too much + return; + } + Node node = me.getPickResult().getIntersectedNode(); + if (node != null) { + Object o = node.getUserData(); + if (o instanceof ClickDispatcher) { + ClickDispatcher cd = (ClickDispatcher) o; + cd.click(me, clickHandler); + } + } + }); + + world = new Group(); + root.getChildren().add(world); + meshGroup = new Group(); + world.getChildren().add(meshGroup); + + AmbientLight al = new AmbientLight(Color.WHITE); + root.getChildren().add(al); + + buildCamera(); + cameraXRotation.setAxis(Rotate.X_AXIS); + cameraZRotation.setAxis(Rotate.Z_AXIS); + world.getTransforms().add(cameraXRotation); + world.getTransforms().add(cameraZRotation); + root.getChildren().add(camera); + geomScene.setCamera(camera); + + setupMeshViewControls(); + } + + private void setupMeshViewControls() { + meshView.setOnMousePressed(me -> { + if (me.getButton() == MouseButton.PRIMARY) { + dragX = me.getScreenX(); + dragY = me.getScreenY(); + } + }); + + meshView.setOnScroll(se -> { + if (se.getDeltaY() < 0) { + translateZ += translateZ * 0.05; + } else { + translateZ -= translateZ * 0.05; + } + camera.setTranslateZ(translateZ); + highlightController.changeScaling(translateZ); + }); + + meshView.setOnMouseDragged(me -> { + if (me.getButton() == MouseButton.PRIMARY) { + double deltaX = me.getScreenX() - dragX; + double deltaY = me.getScreenY() - dragY; + dragX = me.getScreenX(); + dragY = me.getScreenY(); + + cameraXRot += (deltaX / 3d) % 360; + cameraYRot += (deltaY / 3d) % 360; + + cameraZRotation.setAngle(cameraXRot); + cameraXRotation.setAngle(cameraYRot); + } + }); + } + + private void buildCamera() { + camera = new PerspectiveCamera(true); + camera.setNearClip(0.1); + camera.setFarClip(10000d); + camera.setTranslateZ(translateZ); + cameraZRotation.setAngle(cameraXRot); + cameraXRotation.setAngle(cameraYRot); + } + + public void addFileNameToTitle(String fileName) { + String version = Localization.getText(Localization.VERSION); + stage.setTitle("CityDoctor " + version + " - " + fileName); + } + + public TreeView getBuildingsView() { + return buildingsView; + } + + public TreeView getVegetationView() { + return vegetationView; + } + + public TreeView getTransportationView() { + return transView; + } + + public TreeView getBridgeView() { + return bridgeView; + } + + public TreeView getWaterView() { + return waterView; + } + + public TreeView getTerrainView() { + return terrainView; + } + + public TreeView getPolygonsView() { + return polygonView; + } + + public TreeView getEdgeView() { + return edgeView; + } + + public TreeView getVertexView() { + return vertexView; + } + + public Button getCheckButton() { + return mainToolBar.getCheckButton(); + } + + public ToggleButton getGridButton() { + return mainToolBar.getGridButton(); + } + + public Group getMeshGroup() { + return meshGroup; + } + + public ToggleButton getCullingButton() { + return mainToolBar.getCullingButton(); + } + + public Button getWriteReportButton() { + return mainToolBar.getWriteReportButton(); + } + + public TreeView getErrorTree() { + return errorView; + } + + public Stage getMainStage() { + return stage; + } + + public void unselectEverything() { + buildingsView.getSelectionModel().clearSelection(); + vegetationView.getSelectionModel().clearSelection(); + transView.getSelectionModel().clearSelection(); + waterView.getSelectionModel().clearSelection(); + terrainView.getSelectionModel().clearSelection(); + bridgeView.getSelectionModel().clearSelection(); + polygonView.getSelectionModel().clearSelection(); + edgeView.getSelectionModel().clearSelection(); + vertexView.getSelectionModel().clearSelection(); + errorView.getSelectionModel().clearSelection(); + } + + public ToggleButton getLod1Btn() { + return mainToolBar.getLod1Btn(); + } + + public ToggleButton getLod2Btn() { + return mainToolBar.getLod2Btn(); + } + + public ToggleButton getLod3Btn() { + return mainToolBar.getLod3Btn(); + } + + public ToggleButton getLod4Btn() { + return mainToolBar.getLod4Btn(); + } + + public Button getWorldBtn() { + return mainToolBar.getWorldBtn(); + } + + public Button getSaveBtn() { + return mainToolBar.getSaveBtn(); + } + + public SplitPane getMainContainer() { + return mainContainer; + } + + public ListView getGlobalErrorsView() { + return globalErrorsView; + } + + public void takeViewScreenshot() throws IOException { + WritableImage snapshot = geomScene.snapshot(null, null); + File outputFile = new File("img.png"); + BufferedImage bImage = SwingFXUtils.fromFXImage(snapshot, null); + ImageIO.write(bImage, "png", outputFile); + } + + public void zoomOutForBoundingBox(BoundingBox b) { + double longestSide = b.getDiagonalLength() * 0.4; + double d = longestSide / Math.tan(Math.toRadians(30) / 2); + translateZ = -d; + camera.setTranslateZ(translateZ); + highlightController.changeScaling(-translateZ); + } + + public MainToolBar getMainToolbar() { + return mainToolBar; + } + + public void clearHighlights() { + highlightController.clearHighlights(); + } + + public CityDoctorController getController() { + return controller; + } + + public Button getOpenBtn() { + return mainToolBar.getOpenBtn(); + } + + public VertexClickHandler getClickHandler() { + return clickHandler; + } + + public FeatureType getSelectedTab() { + return selectedTab; + } +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ModelProvider.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ModelProvider.java new file mode 100644 index 0000000..83d7be1 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ModelProvider.java @@ -0,0 +1,17 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; + +public class ModelProvider { + + private CityDoctorController controller; + + public ModelProvider(CityDoctorController controller) { + this.controller = controller; + } + + public CityDoctorModel getModel() { + return controller.getModel(); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/OpenFileDialog.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/OpenFileDialog.java new file mode 100644 index 0000000..ccd3d58 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/OpenFileDialog.java @@ -0,0 +1,204 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.File; +import java.io.IOException; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.application.Platform; +import javafx.event.Event; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.ProgressBar; +import javafx.scene.control.TextField; +import javafx.scene.control.TextFormatter; +import javafx.scene.control.TitledPane; +import javafx.scene.image.Image; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; +import javafx.scene.layout.VBox; +import javafx.stage.FileChooser; +import javafx.stage.FileChooser.ExtensionFilter; +import javafx.stage.Modality; +import javafx.stage.Stage; +import javafx.stage.Window; + +public class OpenFileDialog { + + private static final Logger logger = LogManager.getLogger(OpenFileDialog.class); + + private Stage stage; + + @FXML + private Button loadBtn; + + @FXML + private Button cancelBtn; + + @FXML + private Button selectBtn; + + @FXML + private TextField precisionField; + + @FXML + private TextField pathField; + + @FXML + private ProgressBar progress; + + @FXML + private CheckBox useValidationBox; + + @FXML + private Label fileLabel; + + @FXML + private TitledPane settingsPane; + + @FXML + private Label roundingPlacesLabel; + + @FXML + private Label xmlValidationLabel; + + @FXML + private Label lowMemoryLabel; + + @FXML + private CheckBox lowMemoryBox; + + private CityDoctorController controller; + private ExceptionDialog exDialog; + private FileChooser fc; + + public OpenFileDialog(Window parent, CityDoctorController controller) throws IOException { + FXMLLoader loader = new FXMLLoader(OpenFileDialog.class.getResource("OpenFileDialog.fxml")); + loader.setController(this); + VBox box = loader.load(); + this.controller = controller; + stage = new Stage(); + stage.getIcons().add(new Image(MainWindow.class.getResourceAsStream("icons/CityDoctor-Logo-rot_klein.jpg"))); + stage.setScene(new Scene(box)); + stage.initOwner(parent); + stage.initModality(Modality.APPLICATION_MODAL); + stage.setTitle("Open File"); + stage.getScene().addEventFilter(KeyEvent.KEY_PRESSED, (KeyEvent event) -> { + if (event.getCode() == KeyCode.ESCAPE) { + stage.close(); + } + }); + } + + public void initialize() { + cancelBtn.setOnAction(ae -> stage.close()); + setupPrecisionField(); + setupLoadButton(); + setupSelectButton(); + applyLanguageToControls(); + } + + private void applyLanguageToControls() { + fileLabel.setText(Localization.getText("OpenFileDialog.fileLabel")); + selectBtn.setText(Localization.getText("OpenFileDialog.selectBtn")); + loadBtn.setText(Localization.getText("OpenFileDialog.loadBtn")); + settingsPane.setText(Localization.getText("OpenFileDialog.settingsPane")); + roundingPlacesLabel.setText(Localization.getText("OpenFileDialog.roundingPlacesLabel")); + xmlValidationLabel.setText(Localization.getText("OpenFileDialog.xmlValidationLabel")); + cancelBtn.setText(Localization.getText("OpenFileDialog.cancelBtn")); + lowMemoryLabel.setText(Localization.getText("OpenFileDialog.lowMemoryLabel")); + } + + private void setupSelectButton() { + selectBtn.setOnAction(ae -> { + if (fc == null) { + fc = new FileChooser(); + fc.setTitle(Localization.getText("OpenFileDialog.select")); + fc.getExtensionFilters().add(new ExtensionFilter("GML/XML", "*.gml", "*.xml")); + fc.getExtensionFilters().add(new ExtensionFilter(Localization.getText("MainWindow.all"), "*.*")); + } + File dir = new File(Settings.get(Settings.LAST_OPEN_FOLDER, "")); + if (dir.exists() && dir.isDirectory()) { + fc.setInitialDirectory(dir); + } else { + String userDir = System.getProperty("user.dir"); + Settings.set(Settings.LAST_OPEN_FOLDER, userDir); + fc.setInitialDirectory(new File(userDir)); + } + File f = fc.showOpenDialog(stage); + if (f != null) { + Settings.set(Settings.LAST_OPEN_FOLDER, f.getParent()); + pathField.setText(f.getAbsolutePath()); + } + }); + } + + private void setupLoadButton() { + loadBtn.setOnAction(ae -> { + int numberOfRoundingPlaces = Integer.parseInt(precisionField.getText()); + boolean useValidation = useValidationBox.isSelected(); + boolean lowMemory = lowMemoryBox.isSelected(); + String path = pathField.getText(); + cancelBtn.setDisable(true); + loadBtn.setDisable(true); + pathField.setDisable(true); + selectBtn.setDisable(true); + stage.setOnCloseRequest(Event::consume); + Thread t = new Thread(() -> { + try { + controller.loadCityGml(path, numberOfRoundingPlaces, progress::setProgress, useValidation, + lowMemory); + Platform.runLater(() -> stage.close()); + } catch (Exception e) { + if (logger.isErrorEnabled()) { + logger.error(Localization.getText("OpenFileDialog.loadFailed"), e); + } + Platform.runLater(() -> { + if (exDialog == null) { + exDialog = new ExceptionDialog(); + } + exDialog.show(e); + }); + } finally { + selectBtn.setDisable(false); + pathField.setDisable(false); + cancelBtn.setDisable(false); + loadBtn.setDisable(false); + stage.setOnCloseRequest(null); + } + }); + t.start(); + }); + } + + private void setupPrecisionField() { + TextFormatter formatter = new TextFormatter<>(change -> { + if (!change.isContentChange()) { + return change; + } + + String text = change.getControlNewText(); + try { + Integer.parseInt(text); + return change; + } catch (NumberFormatException e) { + return null; + } + }); + precisionField.setTextFormatter(formatter); + } + + public void show() { + Platform.runLater(() -> { + progress.setProgress(0d); + stage.showAndWait(); + }); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/PolygonClickDispatcher.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/PolygonClickDispatcher.java new file mode 100644 index 0000000..7bbecfd --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/PolygonClickDispatcher.java @@ -0,0 +1,19 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; +import javafx.scene.input.MouseEvent; + +public class PolygonClickDispatcher implements ClickDispatcher { + + private Polygon p; + + public PolygonClickDispatcher(Polygon p) { + this.p = p; + } + + @Override + public void click(MouseEvent me, ClickHandler handler) { + handler.onPolygonClick(p, me); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Renderer.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Renderer.java new file mode 100644 index 0000000..91d542d --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Renderer.java @@ -0,0 +1,780 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import de.hft.stuttgart.citydoctor2.check.CheckError; +import de.hft.stuttgart.citydoctor2.check.Checkable; +import de.hft.stuttgart.citydoctor2.datastructure.AbstractBuilding; +import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; +import de.hft.stuttgart.citydoctor2.datastructure.BoundingBox; +import de.hft.stuttgart.citydoctor2.datastructure.BridgeConstructiveElement; +import de.hft.stuttgart.citydoctor2.datastructure.BridgeObject; +import de.hft.stuttgart.citydoctor2.datastructure.Building; +import de.hft.stuttgart.citydoctor2.datastructure.Installation; +import de.hft.stuttgart.citydoctor2.datastructure.BuildingPart; +import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; +import de.hft.stuttgart.citydoctor2.datastructure.CityObject; +import de.hft.stuttgart.citydoctor2.datastructure.ConcretePolygon; +import de.hft.stuttgart.citydoctor2.datastructure.Edge; +import de.hft.stuttgart.citydoctor2.datastructure.Geometry; +import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; +import de.hft.stuttgart.citydoctor2.datastructure.Lod; +import de.hft.stuttgart.citydoctor2.datastructure.Opening; +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; +import de.hft.stuttgart.citydoctor2.datastructure.ReliefObject; +import de.hft.stuttgart.citydoctor2.datastructure.TinObject; +import de.hft.stuttgart.citydoctor2.datastructure.TransportationObject; +import de.hft.stuttgart.citydoctor2.datastructure.Vegetation; +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import de.hft.stuttgart.citydoctor2.datastructure.WaterObject; +import de.hft.stuttgart.citydoctor2.gui.filter.ViewFilter; +import de.hft.stuttgart.citydoctor2.gui.tree.EdgeNode; +import de.hft.stuttgart.citydoctor2.gui.tree.ErrorItemVisitor; +import de.hft.stuttgart.citydoctor2.gui.tree.ErrorNode; +import de.hft.stuttgart.citydoctor2.gui.tree.LinearRingNode; +import de.hft.stuttgart.citydoctor2.gui.tree.PolygonNode; +import de.hft.stuttgart.citydoctor2.gui.tree.Renderable; +import de.hft.stuttgart.citydoctor2.gui.tree.VertexNode; +import de.hft.stuttgart.citydoctor2.math.Triangle3d; +import javafx.application.Platform; +import javafx.scene.control.TreeItem; +import javafx.scene.paint.Color; +import javafx.scene.shape.CullFace; +import javafx.scene.shape.DrawMode; + +public class Renderer { + + private static final Logger logger = LogManager.getLogger(Renderer.class); + + private TriangulatedGeometry currentTriGeom; + private Geometry currentGeometry; + + private CullFace currentCulling = CullFace.BACK; + private DrawMode currentDrawMode = DrawMode.FILL; + + private MainWindow mainWindow; + private HighlightController highlightController; + private ListErrorVisitor errVisitor; + + private LoadingInfoDialog loadingDialog; + + private List lodFilters = new ArrayList<>(); + + private Runnable refresher; + private Runnable errorUpdater; + + public Renderer(MainWindow mainWindow, HighlightController highlightController) throws IOException { + this.mainWindow = mainWindow; + this.highlightController = highlightController; + loadingDialog = new LoadingInfoDialog(mainWindow.getMainStage()); + errVisitor = new ListErrorVisitor(highlightController); + setupLodFilters(); + } + + private void setupLodFilters() { + lodFilters.add(new ViewFilter() { + + @Override + public boolean useGeometry(CityObject co, Geometry geom) { + return geom.getLod() == Lod.LOD1; + } + + }); + lodFilters.add(new ViewFilter() { + + @Override + public boolean useGeometry(CityObject co, Geometry geom) { + return geom.getLod() == Lod.LOD2; + } + + }); + lodFilters.add(new ViewFilter() { + + @Override + public boolean useGeometry(CityObject co, Geometry geom) { + return geom.getLod() == Lod.LOD3; + } + + }); + lodFilters.add(new ViewFilter() { + + @Override + protected boolean useGeometry(CityObject co, Geometry geom) { + return geom.getLod() == Lod.LOD0; + } + + }); + lodFilters.add(new ViewFilter() { + + @Override + public boolean useGeometry(CityObject co, Geometry geom) { + return geom.getLod() == Lod.LOD4; + } + }); + } + + public void enableLod1() { + lodFilters.get(0).enable(); + if (refresher != null) { + refresher.run(); + } + } + + public void disableLod1() { + lodFilters.get(0).disable(); + if (refresher != null) { + refresher.run(); + } + } + + public void enableLod2() { + lodFilters.get(1).enable(); + if (refresher != null) { + refresher.run(); + } + } + + public void disableLod2() { + lodFilters.get(1).disable(); + if (refresher != null) { + refresher.run(); + } + } + + public void enableLod3() { + lodFilters.get(2).enable(); + if (refresher != null) { + refresher.run(); + } + } + + public void disableLod3() { + lodFilters.get(2).disable(); + if (refresher != null) { + refresher.run(); + } + } + + public void enableLod4() { + lodFilters.get(3).enable(); + if (refresher != null) { + refresher.run(); + } + } + + public void disableLod4() { + lodFilters.get(3).disable(); + if (refresher != null) { + refresher.run(); + } + } + + public void render(Building building) { + refresher = () -> { + Set setupBuildingPolygons = setupBuildingPolygons(building); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(setupBuildingPolygons)); + render(setupBuildingPolygons); + Platform.runLater(() -> { + errorUpdater = () -> displayErrors(building); + errorUpdater.run(); + }); + }; + refresher.run(); + } + + private Set setupBuildingPolygons(Building b) { + Set polygons = new HashSet<>(); + addPolygons(b, polygons); + for (BoundarySurface bs : b.getBoundarySurfaces()) { + addPolygons(bs, polygons); + for (Opening op : bs.getOpenings()) { + addPolygons(op, polygons); + } + } + for (Installation bi : b.getBuildingInstallations()) { + addPolygons(bi, polygons); + for (BoundarySurface bs : bi.getBoundarySurfaces()) { + addPolygons(bs, polygons); + for (Opening op : bs.getOpenings()) { + addPolygons(op, polygons); + } + } + } + for (BuildingPart bp : b.getBuildingParts()) { + polygons.addAll(setupBuildingPartPolygons(bp)); + } + return polygons; + } + + public void render(BuildingPart bp) { + refresher = () -> { + Set setupBuildingPartPolygons = setupBuildingPartPolygons(bp); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(setupBuildingPartPolygons)); + render(setupBuildingPartPolygons); + Platform.runLater(() -> { + errorUpdater = () -> displayErrors(bp); + errorUpdater.run(); + }); + }; + refresher.run(); + } + + private Set setupBuildingPartPolygons(BuildingPart bp) { + Set polygons = new HashSet<>(); + addPolygons(bp, polygons); + for (BoundarySurface bs : bp.getBoundarySurfaces()) { + addPolygons(bs, polygons); + for (Opening op : bs.getOpenings()) { + addPolygons(op, polygons); + } + } + for (Installation bi : bp.getBuildingInstallations()) { + addPolygons(bi, polygons); + for (BoundarySurface bs : bi.getBoundarySurfaces()) { + addPolygons(bs, polygons); + for (Opening op : bs.getOpenings()) { + addPolygons(op, polygons); + } + } + } + return polygons; + } + + public void render(BridgeObject bridge) { + refresher = () -> { + Set setupBridgePolygons = setupBridgePolygons(bridge); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(setupBridgePolygons)); + render(setupBridgePolygons); + Platform.runLater(() -> { + errorUpdater = () -> displayErrors(bridge); + errorUpdater.run(); + }); + }; + refresher.run(); + } + + private Set setupBridgePolygons(BridgeObject bridge) { + Set polygons = new HashSet<>(); + addPolygons(bridge, polygons); + for (BoundarySurface bs : bridge.getBoundarySurfaces()) { + addPolygons(bs, polygons); + } + for (BridgeConstructiveElement consElement : bridge.getConstructiveElements()) { + addPolygons(consElement, polygons); + for (BoundarySurface bs : consElement.getBoundarySurfaces()) { + addPolygons(bs, polygons); + } + } + for (Installation inst : bridge.getBridgeInstallations()) { + addPolygons(inst, polygons); + for (BoundarySurface bs : inst.getBoundarySurfaces()) { + addPolygons(bs, polygons); + } + } + return polygons; + } + + public void render(CityObject co) { + refresher = () -> { + Set setupCityObjectPolygons = setupCityObjectPolygons(co); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(setupCityObjectPolygons)); + render(setupCityObjectPolygons); + Platform.runLater(() -> { + errorUpdater = () -> displayErrors(co); + errorUpdater.run(); + }); + }; + refresher.run(); + } + + public void render(ReliefObject relief) { + refresher = () -> { + Set setupCityObjectPolygons = setupReliefPolygons(relief); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(setupCityObjectPolygons)); + render(setupCityObjectPolygons); + Platform.runLater(() -> { + errorUpdater = () -> displayErrors(relief); + errorUpdater.run(); + }); + }; + refresher.run(); + } + + private Set setupReliefPolygons(ReliefObject relief) { + Set polygons = new HashSet<>(); + addPolygons(relief, polygons); + for (TinObject tin : relief.getComponents()) { + addPolygons(tin, polygons); + } + return polygons; + } + + public void render(Installation bi) { + refresher = () -> { + Set setupCityObjectPolygons = setupBuildingInstallationPolygons(bi); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(setupCityObjectPolygons)); + render(setupCityObjectPolygons); + Platform.runLater(() -> { + errorUpdater = () -> displayErrors(bi); + errorUpdater.run(); + }); + }; + refresher.run(); + } + + private Set setupBuildingInstallationPolygons(Installation bi) { + Set polygons = new HashSet<>(); + addPolygons(bi, polygons); + for (BoundarySurface bs : bi.getBoundarySurfaces()) { + addPolygons(bs, polygons); + for (Opening op : bs.getOpenings()) { + addPolygons(op, polygons); + } + } + return polygons; + } + + public void render(BoundarySurface bs) { + refresher = () -> { + Set setupBoundarySurfacePolygons = setupBoundarySurfacePolygons(bs); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(setupBoundarySurfacePolygons)); + render(setupBoundarySurfacePolygons); + Platform.runLater(() -> { + errorUpdater = () -> displayErrors(bs); + errorUpdater.run(); + }); + }; + refresher.run(); + } + + private Set setupBoundarySurfacePolygons(BoundarySurface bs) { + Set polygons = new HashSet<>(); + addPolygons(bs, polygons); + for (Opening op : bs.getOpenings()) { + addPolygons(op, polygons); + } + return polygons; + } + + private Set setupCityObjectPolygons(CityObject co) { + Set polygons = new HashSet<>(); + addPolygons(co, polygons); + return polygons; + } + + private void addPolygons(CityObject co, Set polygons) { + for (Geometry geom : co.getGeometries()) { + boolean used = false; + for (ViewFilter filter : lodFilters) { + if (filter.allowedToUse(co, geom)) { + used = true; + break; + } + } + if (used) { + addConcretePolygons(polygons, geom); + } + } + } + + private void displayErrors(Checkable c) { + if (!c.isValidated()) { + return; + } + List errors = new ArrayList<>(); + c.collectContainedErrors(errors); + + // filter out duplicate errors (polygon can be contained in multiple geometries) + Set errorSet = new HashSet<>(errors); + for (CheckError err : errorSet) { + ErrorNode node = new ErrorNode(err); + TreeItem errItem = new TreeItem<>(node); + ErrorItemVisitor visitor = new ErrorItemVisitor(errItem); + err.accept(visitor); + mainWindow.getErrorTree().getRoot().getChildren().add(errItem); + + } + } + + public void render(Geometry geom) { + refresher = () -> { + Platform.runLater(this::clearGeometryTrees); + currentTriGeom = TriangulatedGeometry.of(geom); + if (geom.getEdges() == null && currentGeometry != null) { + // if there are no edges available low memory mode is enabled + // clear the old geometry of all meta information + currentGeometry.clearMetaInformation(); + } + errVisitor.setGeometry(currentTriGeom); + Platform.runLater(() -> { + setupRenderState(); + if (geom.getEdges() == null) { + // create edges and vertices so they can be listed in the gui + geom.prepareForChecking(); + // remember the geometry, so it can be cleared if another is displayed + currentGeometry = geom; + } + addGeometryDataToView(geom); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(geom.getPolygons())); + errorUpdater = () -> displayErrors(geom); + errorUpdater.run(); + }); + }; + refresher.run(); + } + + private void addGeometryDataToView(Geometry geom) { + for (Polygon p : geom.getPolygons()) { + addPolygonToView(p); + } + for (Edge e : geom.getEdges()) { + addEdgeToView(e); + } + for (Vertex v : geom.getVertices()) { + addVertexToView(v); + } + } + + private void addVertexToView(Vertex v) { + Renderable cf = new VertexNode(v); + TreeItem ti = new TreeItem<>(cf); + mainWindow.getVertexView().getRoot().getChildren().add(ti); + } + + private void addEdgeToView(Edge e) { + EdgeNode cf = new EdgeNode(e); + TreeItem ti = new TreeItem<>(cf); + mainWindow.getEdgeView().getRoot().getChildren().add(ti); + } + + private void addPolygonToView(Polygon p) { + CheckStatus cs = determineCheckStatus(p); + PolygonNode cf = new PolygonNode(p, cs); + TreeItem ti = new TreeItem<>(cf); + mainWindow.getPolygonsView().getRoot().getChildren().add(ti); + + // add linear rings + CheckStatus csRing = determineCheckStatus(p.getExteriorRing()); + Renderable ccRing = new LinearRingNode(p.getExteriorRing(), csRing); + TreeItem tiRing = new TreeItem<>(ccRing); + ti.getChildren().add(tiRing); + + for (Vertex v : p.getExteriorRing().getVertices()) { + VertexNode vn = new VertexNode(v); + TreeItem tiV = new TreeItem<>(vn); + tiRing.getChildren().add(tiV); + } + + for (LinearRing lr : p.getInnerRings()) { + CheckStatus csInteriorRing = determineCheckStatus(lr); + Renderable ccInteriorRing = new LinearRingNode(lr, csInteriorRing); + TreeItem tiInteriorRing = new TreeItem<>(ccInteriorRing); + ti.getChildren().add(tiInteriorRing); + for (Vertex v : lr.getVertices()) { + VertexNode vn = new VertexNode(v); + TreeItem tiV = new TreeItem<>(vn); + tiRing.getChildren().add(tiV); + } + } + } + + private CheckStatus determineCheckStatus(Checkable c) { + if (!c.isValidated()) { + return CheckStatus.NOT_CHECKED; + } + if (c.containsAnyError()) { + return CheckStatus.ERROR; + } + return CheckStatus.OK; + } + + private void render(Collection polygons) { + Platform.runLater(this::clearGeometryTrees); + currentTriGeom = TriangulatedGeometry.of(polygons); + errVisitor.setGeometry(currentTriGeom); + setupRenderState(); + } + + private void clearGeometryTrees() { + highlightController.clearHighlights(); + mainWindow.getErrorTree().getRoot().getChildren().clear(); + mainWindow.getPolygonsView().getRoot().getChildren().clear(); + mainWindow.getEdgeView().getRoot().getChildren().clear(); + mainWindow.getVertexView().getRoot().getChildren().clear(); + } + + public void renderBuildings(List objects) { + errorUpdater = null; + refresher = () -> { + Platform.runLater(() -> { + loadingDialog.show(); + clearGeometryTrees(); + }); + Thread t = new Thread(() -> { + Set polygons = new HashSet<>(); + for (Building b : objects) { + collectPolygons(polygons, b); + for (BuildingPart bp : b.getBuildingParts()) { + collectPolygons(polygons, bp); + } + } + currentTriGeom = TriangulatedGeometry.of(polygons); + errVisitor.setGeometry(currentTriGeom); + Platform.runLater(() -> { + setupRenderState(); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(polygons)); + loadingDialog.hide(); + }); + }); + t.setUncaughtExceptionHandler((thread, e) -> { + Platform.runLater(() -> loadingDialog.hide()); + logger.catching(e); + }); + t.start(); + }; + refresher.run(); + } + + public void render(CityDoctorModel model) { + errorUpdater = null; + refresher = () -> { + Platform.runLater(() -> { + loadingDialog.show(); + clearGeometryTrees(); + }); + Thread t = new Thread(() -> { + currentTriGeom = TriangulatedGeometry.of(model, lodFilters); + errVisitor.setGeometry(currentTriGeom); + Platform.runLater(() -> { + setupRenderState(); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(model)); + loadingDialog.hide(); + }); + }); + t.setUncaughtExceptionHandler((thread, e) -> { + Platform.runLater(() -> loadingDialog.hide()); + logger.catching(e); + }); + t.start(); + }; + refresher.run(); + } + + public void renderVegetation(List vegetation) { + renderCityObjects(vegetation, Color.LIGHTGREEN); + } + + public void renderTransportation(List transportation) { + renderCityObjects(transportation, Color.YELLOW); + } + + public void renderBridges(List bridges) { + renderCityObjects(bridges, Color.CORAL); + } + + public void renderWater(List water) { + renderCityObjects(water, Color.LIGHTSKYBLUE); + } + + public void renderTerrain(List land) { + renderLandObjects(land, Color.BROWN); + } + + private void renderLandObjects(List cos, Color baseColor) { + errorUpdater = null; + refresher = () -> { + Platform.runLater(() -> { + loadingDialog.show(); + clearGeometryTrees(); + }); + Thread t = new Thread(() -> { + Set polygons = new HashSet<>(); + for (CityObject co : cos) { + addPolygons(co, polygons); + if (co instanceof ReliefObject) { + ReliefObject relief = (ReliefObject) co; + for (TinObject tin : relief.getComponents()) { + addPolygons(tin, polygons); + } + } + } + currentTriGeom = TriangulatedGeometry.of(polygons, baseColor); + errVisitor.setGeometry(currentTriGeom); + Platform.runLater(() -> { + setupRenderState(); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(polygons)); + loadingDialog.hide(); + }); + }); + t.setUncaughtExceptionHandler((thread, e) -> Platform.runLater(() -> loadingDialog.hide())); + t.start(); + }; + refresher.run(); + } + + public void renderCityObjects(List cos, Color baseColor) { + errorUpdater = null; + refresher = () -> { + Platform.runLater(() -> { + loadingDialog.show(); + clearGeometryTrees(); + }); + Thread t = new Thread(() -> { + Set polygons = new HashSet<>(); + for (CityObject co : cos) { + addPolygons(co, polygons); + } + currentTriGeom = TriangulatedGeometry.of(polygons, baseColor); + errVisitor.setGeometry(currentTriGeom); + Platform.runLater(() -> { + setupRenderState(); + mainWindow.zoomOutForBoundingBox(BoundingBox.of(polygons)); + loadingDialog.hide(); + }); + }); + t.setUncaughtExceptionHandler((thread, e) -> Platform.runLater(() -> loadingDialog.hide())); + t.start(); + }; + refresher.run(); + } + + private void collectPolygons(Set polygons, AbstractBuilding ab) { + addPolygons(ab, polygons); + for (Installation bi : ab.getBuildingInstallations()) { + addPolygons(bi, polygons); + for (BoundarySurface bs : bi.getBoundarySurfaces()) { + addPolygons(bs, polygons); + for (Opening o : bs.getOpenings()) { + addPolygons(o, polygons); + } + } + } + for (BoundarySurface bs : ab.getBoundarySurfaces()) { + addPolygons(bs, polygons); + for (Opening o : bs.getOpenings()) { + addPolygons(o, polygons); + } + } + } + + private void addConcretePolygons(Set polygons, Geometry geom) { + for (Polygon p : geom.getPolygons()) { + polygons.add(p.getOriginal()); + } + } + + private void setupRenderState() { + currentTriGeom.setCullFace(currentCulling); + currentTriGeom.setDrawMode(currentDrawMode); + Platform.runLater(() -> { + mainWindow.getMeshGroup().getChildren().clear(); + mainWindow.getMeshGroup().getChildren().addAll(currentTriGeom.getMeshes()); + }); + mainWindow.getGridButton().setDisable(false); + mainWindow.getCullingButton().setDisable(false); + } + + public void showWireFrame(boolean show) { + if (currentTriGeom != null) { + if (show) { + currentDrawMode = DrawMode.LINE; + } else { + currentDrawMode = DrawMode.FILL; + } + currentTriGeom.setDrawMode(currentDrawMode); + } + } + + public void enableCulling(boolean enable) { + if (currentTriGeom != null) { + if (enable) { + currentCulling = CullFace.BACK; + } else { + currentCulling = CullFace.NONE; + } + currentTriGeom.setCullFace(currentCulling); + } + } + + public void clearCurrentRender() { + // don't render anything + Platform.runLater(() -> { + mainWindow.getMeshGroup().getChildren().clear(); + clearGeometryTrees(); + }); + } + + public void highlight(Polygon p) { + highlightController.highlight(p, currentTriGeom); + } + + public void highlight(LinearRing lr) { + highlightController.highlight(lr, currentTriGeom); + } + + public void highlight(Edge e) { + highlightController.highlight(e, currentTriGeom); + } + + public void highlight(Vertex v) { + highlightController.highlight(v, currentTriGeom); + } + + public void highlight(List highlightedRings) { + highlightController.highlight(highlightedRings, currentTriGeom); + } + + public void highlightEdges(List edges) { + highlightController.highlightEdges(edges, currentTriGeom); + } + + public void highlightPolygons(List> components) { + highlightController.highlightPolygons(components, currentTriGeom); + } + + public void addHighlight(Vertex vertex, Color c) { + highlightController.addHighlight(vertex, currentTriGeom, c); + } + + public void highlight(CheckError err) { + err.accept(errVisitor); + } + + public void refresh() { + if (refresher != null) { + refresher.run(); + } + } + + public void updateErrors() { + if (errorUpdater != null) { + errorUpdater.run(); + } + } + + public void clearHighlights() { + highlightController.clearHighlights(); + } + + public void addHighlight(Polygon p) { + highlightController.addHighlight(p, currentTriGeom); + } + + public void addHighlight(Triangle3d t) { + highlightController.highlight(t, currentTriGeom); + } + + public void reset() { + errorUpdater = null; + refresher = null; + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Settings.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Settings.java new file mode 100644 index 0000000..3b87dc0 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/Settings.java @@ -0,0 +1,66 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Properties; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class Settings { + + private static Logger logger = LogManager.getLogger(Settings.class); + + public static final String LAST_OPEN_FOLDER = "lastOpenFolder"; + public static final String MAXIMIZED = "maximized"; + public static final String FRAME_HEIGHT = "frameHeight"; + public static final String FRAME_WIDTH = "frameWidth"; + public static final String FRAME_X = "frameX"; + public static final String FRAME_Y = "frameY"; + public static final String LANGUAGE = "language"; + + private static Properties props; + + static { + props = new Properties(); + + File propFile = new File("GUISettings.properties"); + if (propFile.exists()) { + try (BufferedReader bis = new BufferedReader(new FileReader(propFile))) { + props.load(bis); + } catch (IOException e) { + logger.error("Failed to load settings", e); + } + } + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + try (BufferedWriter bw = new BufferedWriter(new FileWriter(propFile))) { + props.store(bw, "GUI configuration"); + } catch (IOException e) { + logger.error("Failed to save settings", e); + } + })); + } + + private Settings() { + + } + + public static String get(String name) { + return props.getProperty(name); + } + + public static void set(String name, String value) { + props.setProperty(name, value); + } + + public static String get(String name, String defaultV) { + return props.getProperty(name, defaultV); + } + + + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TableEditCell.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TableEditCell.java new file mode 100644 index 0000000..13266ab --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TableEditCell.java @@ -0,0 +1,148 @@ +/*- + * Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui; + +import javafx.event.Event; +import javafx.scene.control.ContentDisplay; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableColumn.CellEditEvent; +import javafx.scene.control.TablePosition; +import javafx.scene.control.TableView; +import javafx.scene.control.TextField; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; +import javafx.util.StringConverter; + +public class TableEditCell extends TableCell { + + // Text field for editing + private final TextField textField = new TextField(); + + // Converter for converting the text in the text field to the user type, and + // vice-versa: + private final StringConverter converter; + + public TableEditCell(StringConverter converter) { + this.converter = converter; + + itemProperty().addListener((obx, oldItem, newItem) -> { + if (newItem == null) { + setText(null); + } else { + setText(converter.toString(newItem)); + } + }); + setGraphic(textField); + setContentDisplay(ContentDisplay.TEXT_ONLY); + + textField.setOnAction(evt -> commitEdit(this.converter.fromString(textField.getText()))); + textField.focusedProperty().addListener((obs, wasFocused, isNowFocused) -> { + if (Boolean.FALSE.equals(isNowFocused)) { + commitEdit(this.converter.fromString(textField.getText())); + } + }); + textField.addEventFilter(KeyEvent.KEY_PRESSED, event -> { + if (event.getCode() == KeyCode.ESCAPE) { + textField.setText(converter.toString(getItem())); + cancelEdit(); + event.consume(); + } else if (event.getCode() == KeyCode.RIGHT) { + getTableView().getSelectionModel().selectRightCell(); + event.consume(); + } else if (event.getCode() == KeyCode.LEFT) { + getTableView().getSelectionModel().selectLeftCell(); + event.consume(); + } else if (event.getCode() == KeyCode.UP) { + getTableView().getSelectionModel().selectAboveCell(); + event.consume(); + } else if (event.getCode() == KeyCode.DOWN) { + getTableView().getSelectionModel().selectBelowCell(); + event.consume(); + } + }); + } + + /** + * Convenience converter that does nothing (converts Strings to themselves and + * vice-versa...). + */ + public static final StringConverter IDENTITY_CONVERTER = new StringConverter() { + + @Override + public String toString(String object) { + return object; + } + + @Override + public String fromString(String string) { + return string; + } + + }; + + /** + * Convenience method for creating an EditCell for a String value. + * + * @return + */ + public static TableEditCell createStringEditCell() { + return new TableEditCell<>(IDENTITY_CONVERTER); + } + + // set the text of the text field and display the graphic + @Override + public void startEdit() { + super.startEdit(); + textField.setText(converter.toString(getItem())); + setContentDisplay(ContentDisplay.GRAPHIC_ONLY); + textField.requestFocus(); + } + + // revert to text display + @Override + public void cancelEdit() { + super.cancelEdit(); + setContentDisplay(ContentDisplay.TEXT_ONLY); + } + + // commits the edit. Update property if possible and revert to text display + @Override + public void commitEdit(T item) { + + // This block is necessary to support commit on losing focus, because the + // baked-in mechanism + // sets our editing state to false before we can intercept the loss of focus. + // The default commitEdit(...) method simply bails if we are not editing... + if (!isEditing() && !item.equals(getItem())) { + TableView table = getTableView(); + if (table != null) { + TableColumn column = getTableColumn(); + CellEditEvent event = new CellEditEvent<>(table, + new TablePosition<>(table, getIndex(), column), TableColumn.editCommitEvent(), item); + Event.fireEvent(column, event); + } + } + + super.commitEdit(item); + + setContentDisplay(ContentDisplay.TEXT_ONLY); + } + +} \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TreeEditCell.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TreeEditCell.java new file mode 100644 index 0000000..dcc5263 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TreeEditCell.java @@ -0,0 +1,121 @@ +/*- + * Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui; + +import javafx.event.Event; +import javafx.scene.control.ContentDisplay; +import javafx.scene.control.TextField; +import javafx.scene.control.TreeTableCell; +import javafx.scene.control.TreeTableColumn; +import javafx.scene.control.TreeTableColumn.CellEditEvent; +import javafx.scene.control.TreeTablePosition; +import javafx.scene.control.TreeTableView; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; +import javafx.util.StringConverter; + +public class TreeEditCell extends TreeTableCell { + + // Text field for editing + private final TextField textField = new TextField(); + + // Converter for converting the text in the text field to the user type, and + // vice-versa: + private final StringConverter converter; + + public TreeEditCell(StringConverter converter) { + this.converter = converter; + + itemProperty().addListener((obx, oldItem, newItem) -> { + if (newItem == null) { + setText(null); + } else { + setText(converter.toString(newItem)); + } + }); + setGraphic(textField); + setContentDisplay(ContentDisplay.TEXT_ONLY); + + textField.setOnAction(evt -> commitEdit(this.converter.fromString(textField.getText()))); + textField.focusedProperty().addListener((obs, wasFocused, isNowFocused) -> { + if (Boolean.FALSE.equals(isNowFocused)) { + commitEdit(this.converter.fromString(textField.getText())); + } + }); + textField.addEventFilter(KeyEvent.KEY_PRESSED, event -> { + if (event.getCode() == KeyCode.ESCAPE) { + textField.setText(converter.toString(getItem())); + cancelEdit(); + event.consume(); + } else if (event.getCode() == KeyCode.RIGHT) { + getTreeTableView().getSelectionModel().selectRightCell(); + event.consume(); + } else if (event.getCode() == KeyCode.LEFT) { + getTreeTableView().getSelectionModel().selectLeftCell(); + event.consume(); + } else if (event.getCode() == KeyCode.UP) { + getTreeTableView().getSelectionModel().selectAboveCell(); + event.consume(); + } else if (event.getCode() == KeyCode.DOWN) { + getTreeTableView().getSelectionModel().selectBelowCell(); + event.consume(); + } + }); + } + + // set the text of the text field and display the graphic + @Override + public void startEdit() { + super.startEdit(); + textField.setText(converter.toString(getItem())); + setContentDisplay(ContentDisplay.GRAPHIC_ONLY); + textField.requestFocus(); + } + + // revert to text display + @Override + public void cancelEdit() { + super.cancelEdit(); + setContentDisplay(ContentDisplay.TEXT_ONLY); + } + + // commits the edit. Update property if possible and revert to text display + @Override + public void commitEdit(T item) { + + // This block is necessary to support commit on losing focus, because the + // baked-in mechanism + // sets our editing state to false before we can intercept the loss of focus. + // The default commitEdit(...) method simply bails if we are not editing... + if (!isEditing() && !item.equals(getItem())) { + TreeTableView table = getTreeTableView(); + if (table != null) { + TreeTableColumn column = getTableColumn(); + CellEditEvent event = new CellEditEvent<>(table, + new TreeTablePosition<>(table, getIndex(), column), TreeTableColumn.editCommitEvent(), item); + Event.fireEvent(column, event); + } + } + + super.commitEdit(item); + + setContentDisplay(ContentDisplay.TEXT_ONLY); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TriangulatedGeometry.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TriangulatedGeometry.java new file mode 100644 index 0000000..2732b55 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/TriangulatedGeometry.java @@ -0,0 +1,340 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; +import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType; +import de.hft.stuttgart.citydoctor2.datastructure.Building; +import de.hft.stuttgart.citydoctor2.datastructure.Installation; +import de.hft.stuttgart.citydoctor2.datastructure.BuildingPart; +import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; +import de.hft.stuttgart.citydoctor2.datastructure.CityObject; +import de.hft.stuttgart.citydoctor2.datastructure.Geometry; +import de.hft.stuttgart.citydoctor2.datastructure.Opening; +import de.hft.stuttgart.citydoctor2.datastructure.OpeningType; +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import de.hft.stuttgart.citydoctor2.gui.filter.ViewFilter; +import de.hft.stuttgart.citydoctor2.math.Triangle3d; +import de.hft.stuttgart.citydoctor2.math.UnitVector3d; +import de.hft.stuttgart.citydoctor2.math.Vector3d; +import de.hft.stuttgart.citydoctor2.tesselation.TesselatedPolygon; +import javafx.scene.paint.Color; +import javafx.scene.paint.PhongMaterial; +import javafx.scene.shape.CullFace; +import javafx.scene.shape.DrawMode; +import javafx.scene.shape.MeshView; +import javafx.scene.shape.TriangleMesh; +import javafx.scene.shape.VertexFormat; + +public class TriangulatedGeometry { + + private static final PhongMaterial GRID_MAT = new PhongMaterial(Color.BLACK); + + // random vector for calculating normal angles, for color determination + private static final UnitVector3d AXIS = new Vector3d(19, 0.8, 1.5).normalize(); + + private Vector3d movedBy; + private List meshes; + private List materials; + + public static TriangulatedGeometry of(Geometry geom) { + return of(geom.getPolygons()); + } + + public static TriangulatedGeometry of(Collection polygons, Color basePolygonColor) { + TriangulatedGeometry triGeom = new TriangulatedGeometry(); + triGeom.materials = new ArrayList<>(); + triGeom.meshes = new ArrayList<>(); + List points = new ArrayList<>(); + for (Polygon p : polygons) { + for (Vertex v : p.getExteriorRing().getVertices()) { + points.add(v); + } + } + triGeom.movedBy = triGeom.findCenter(points); + + addPolygonDataToTriGeom(polygons, basePolygonColor, triGeom); + return triGeom; + } + + private static void addPolygonDataToTriGeom(Collection polygons, Color basePolygonColor, + TriangulatedGeometry triGeom) { + for (Polygon p : polygons) { + TesselatedPolygon tp = p.tesselate(); + TriangleMesh triMesh = new TriangleMesh(VertexFormat.POINT_TEXCOORD); + Map indexMap = new HashMap<>(); + List vertices = new ArrayList<>(); + int index = 0; + for (Triangle3d t : tp.getTriangles()) { + index = triGeom.filterDuplicates(triMesh, indexMap, vertices, index, t.getP1()); + index = triGeom.filterDuplicates(triMesh, indexMap, vertices, index, t.getP2()); + index = triGeom.filterDuplicates(triMesh, indexMap, vertices, index, t.getP3()); + } + + for (Vector3d point : vertices) { + float x = (float) (point.getX() - triGeom.movedBy.getX()); + float y = (float) (point.getY() - triGeom.movedBy.getY()); + float z = (float) (point.getZ() - triGeom.movedBy.getZ()); + triMesh.getPoints().addAll(x, y, z); + } + triMesh.getTexCoords().addAll(0, 0); + + MeshView view = new MeshView(triMesh); + view.setUserData(new PolygonClickDispatcher(p)); + + PhongMaterial mat = triGeom.calculateMaterial(p, basePolygonColor); + triGeom.materials.add(mat); + triGeom.meshes.add(view); + } + } + + public static TriangulatedGeometry of(CityDoctorModel model, List filters) { + List points = new ArrayList<>(); + addPointsFromBuildings(model.getBuildings(), points); + addPointsFromCityObject(model.getBridges(), points); + addPointsFromCityObject(model.getLand(), points); + addPointsFromCityObject(model.getTransportation(), points); + addPointsFromCityObject(model.getVegetation(), points); + addPointsFromCityObject(model.getWater(), points); + + TriangulatedGeometry triGeom = new TriangulatedGeometry(); + triGeom.materials = new ArrayList<>(); + triGeom.meshes = new ArrayList<>(); + triGeom.movedBy = triGeom.findCenter(points); + + addPolygonDataFromBuildings(model.getBuildings(), triGeom, filters); + addPolygonDataFromCityObjects(model.getBridges(), triGeom, Color.CORAL, filters); + addPolygonDataFromCityObjects(model.getLand(), triGeom, Color.BROWN, filters); + addPolygonDataFromCityObjects(model.getTransportation(), triGeom, Color.YELLOW, filters); + addPolygonDataFromCityObjects(model.getVegetation(), triGeom, Color.LIGHTGREEN, filters); + addPolygonDataFromCityObjects(model.getWater(), triGeom, Color.LIGHTSKYBLUE, filters); + + return triGeom; + } + + private static void addPolygonDataFromBuildings(List buildings, TriangulatedGeometry triGeom, List filters) { + for (Building b : buildings) { + addPolygonData(b, triGeom, Color.WHITE, filters); + addPolygonDataFromBoundarySurfaces(b.getBoundarySurfaces(), triGeom, filters); + addPolygonDataFromCityObjects(b.getBuildingInstallations(), triGeom, Color.WHITE, filters); + for (Installation bi : b.getBuildingInstallations()) { + addPolygonDataFromCityObjects(bi.getBoundarySurfaces(), triGeom, Color.WHITE, filters); + } + for (BuildingPart bp : b.getBuildingParts()) { + addPolygonData(bp, triGeom, Color.WHITE, filters); + addPolygonDataFromBoundarySurfaces(bp.getBoundarySurfaces(), triGeom, filters); + addPolygonDataFromCityObjects(bp.getBuildingInstallations(), triGeom, Color.WHITE, filters); + } + } + } + + private static void addPolygonDataFromBoundarySurfaces(List boundarySurfaces, + TriangulatedGeometry triGeom, List filters) { + for (BoundarySurface bs : boundarySurfaces) { + addPolygonData(bs, triGeom, Color.WHITE, filters); + for (Opening o : bs.getOpenings()) { + addPolygonData(o, triGeom, Color.WHITE, filters); + } + } + } + + private static void addPolygonDataFromCityObjects(List cos, + TriangulatedGeometry triGeom, Color color, List filters) { + for (CityObject co : cos) { + addPolygonData(co, triGeom, color, filters); + } + } + + private static void addPolygonData(CityObject co, TriangulatedGeometry triGeom, Color color, List filters) { + for (Geometry geom : co.getGeometries()) { + if (isGeometryFiltered(co, geom, filters)) { + continue; + } + List polygons = new ArrayList<>(); + for (Polygon p : geom.getPolygons()) { + if (p.isLink()) { + continue; + } + polygons.add(p); + } + addPolygonDataToTriGeom(polygons, color, triGeom); + } + } + + private static boolean isGeometryFiltered(CityObject co, Geometry geom, List filters) { + for (ViewFilter filter : filters) { + if (filter.allowedToUse(co, geom)) { + return false; + } + } + return true; + } + + private static void addPointsFromBuildings(List buildings, List points) { + for (Building b : buildings) { + addPoints(b, points); + for (BuildingPart bp : b.getBuildingParts()) { + addPoints(bp, points); + addPointsFromCityObject(bp.getBoundarySurfaces(), points); + addPointsFromCityObject(bp.getBuildingInstallations(), points); + } + addPointsFromCityObject(b.getBoundarySurfaces(), points); + addPointsFromCityObject(b.getBuildingInstallations(), points); + } + } + + private static void addPointsFromCityObject(List cos, List points) { + for (CityObject co : cos) { + addPoints(co, points); + } + } + + private static void addPoints(CityObject co, List points) { + for (Geometry geom : co.getGeometries()) { + for (Polygon p : geom.getPolygons()) { + if (p.isLink()) { + continue; + } + for (Vertex v : p.getExteriorRing().getVertices()) { + points.add(v); + } + } + } + } + + public static TriangulatedGeometry of(Collection polygons) { + return of(polygons, Color.WHITE); + } + + private int filterDuplicates(TriangleMesh triMesh, Map indexMap, List vertices, + int index, Vector3d v) { + Integer vertexIndex = indexMap.get(v); + if (vertexIndex == null) { + indexMap.put(v, index); + vertices.add(v); + vertexIndex = index; + index++; + } + triMesh.getFaces().addAll(vertexIndex, 0); + return index; + } + + private PhongMaterial calculateMaterial(Polygon p, Color baseColor) { + Vector3d normal = p.calculateNormalNormalized(); + + BoundarySurface bs = p.getPartOfSurface(); + if (bs != null) { + if (bs.getType() == BoundarySurfaceType.ROOF) { + baseColor = Color.RED; + } else if (bs.getType() == BoundarySurfaceType.GROUND) { + baseColor = Color.KHAKI; + } + } + + baseColor = determineColorDependingOnParentType(p, baseColor); + + double cos = normal.dot(AXIS); + double acos = Math.acos(cos); + // normalize to range [0.3, 0.9] + acos = acos / Math.PI; + acos = acos * 0.6 + 0.3; + + Color derivedColor = baseColor.deriveColor(0, 1.0, acos, 1.0); + return new PhongMaterial(derivedColor); + } + + private Color determineColorDependingOnParentType(Polygon p, Color baseColor) { + p = p.getOriginal(); + Polygon p1 = p.getLinkedFromPolygon(); + baseColor = changeBaseColorIfPolygonHasOpeningParent(p1, baseColor); + baseColor = changeBaseColorIfPolygonHasOpeningParent(p, baseColor); + return baseColor; + } + + private Color changeBaseColorIfPolygonHasOpeningParent(Polygon p, Color baseColor) { + if (p == null) { + return baseColor; + } + CityObject parent = p.getParent().getParent(); + if (parent instanceof Opening) { + Opening op = (Opening) parent; + if (op.getType() == OpeningType.DOOR) { + baseColor = Color.ORANGE; + } else { + baseColor = Color.TEAL; + } + } + return baseColor; + } + + private Vector3d findCenter(List points) { + double xMin = Double.MAX_VALUE; + double yMin = Double.MAX_VALUE; + double zMin = Double.MAX_VALUE; + + double xMax = Double.NEGATIVE_INFINITY; + double yMax = Double.NEGATIVE_INFINITY; + double zMax = Double.NEGATIVE_INFINITY; + + for (Vector3d point : points) { + if (point.getX() < xMin) { + xMin = point.getX(); + } + if (point.getX() > xMax) { + xMax = point.getX(); + } + if (point.getY() < yMin) { + yMin = point.getY(); + } + if (point.getY() > yMax) { + yMax = point.getY(); + } + if (point.getZ() < zMin) { + zMin = point.getZ(); + } + if (point.getZ() > zMax) { + zMax = point.getZ(); + } + } + + // center + double x = (xMax - xMin) / 2 + xMin; + double y = (yMax - yMin) / 2 + yMin; + double z = (zMax - zMin) / 2 + zMin; + return new Vector3d(x, y, z); + } + + public Vector3d getMovedBy() { + return movedBy; + } + + public void setCullFace(CullFace currentCulling) { + for (MeshView mesh : meshes) { + mesh.setCullFace(currentCulling); + } + } + + public void setDrawMode(DrawMode currentDrawMode) { + if (currentDrawMode == DrawMode.LINE) { + for (MeshView mesh : meshes) { + mesh.setDrawMode(currentDrawMode); + mesh.setMaterial(GRID_MAT); + } + } else if (currentDrawMode == DrawMode.FILL) { + for (int i = 0; i < meshes.size(); i++) { + MeshView mesh = meshes.get(i); + mesh.setDrawMode(currentDrawMode); + mesh.setMaterial(materials.get(i)); + } + } + } + + public List getMeshes() { + return meshes; + } +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ValidationView.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ValidationView.java new file mode 100644 index 0000000..2699d1c --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ValidationView.java @@ -0,0 +1,77 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Optional; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import de.hft.stuttgart.citydoctor2.check.Checker; +import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; +import javafx.application.Platform; +import javafx.scene.Node; +import javafx.scene.image.Image; +import javafx.scene.layout.HBox; + +public class ValidationView extends View { + + private static final Logger logger = LogManager.getLogger(ValidationView.class); + + private Image viewLogo; + private MainWindow mainWindow; + private CityDoctorController controller; + + public ValidationView(MainWindow mainWindow, CityDoctorController controller) { + this.mainWindow = mainWindow; + this.controller = controller; + try (InputStream inStream = MainWindow.class.getResourceAsStream("icons/error_stat32x32.png")) { + viewLogo = new Image(inStream); + } catch (IOException e) { + logger.catching(e); + } + } + + @Override + public Node getMainScreen() { + return mainWindow.getMainContainer(); + } + + @Override + public Optional getToolbar() { + return Optional.of(mainWindow.getMainToolbar().getToolBar()); + } + + @Override + public void onHide() { + Platform.runLater(() -> { + mainWindow.unselectEverything(); + mainWindow.getMeshGroup().getChildren().clear(); + mainWindow.clearHighlights(); + mainWindow.getErrorTree().getRoot().getChildren().clear(); + mainWindow.getPolygonsView().getRoot().getChildren().clear(); + mainWindow.getVertexView().getRoot().getChildren().clear(); + mainWindow.getEdgeView().getRoot().getChildren().clear(); + }); + } + + @Override + public void onShow(CityDoctorModel model, Checker checker) { + if (model == null) { + return; + } + controller.buildTrees(); + controller.updateFeatureTrees(); + } + + @Override + public Image getViewLogo() { + return viewLogo; + } + + @Override + public void initializeView(MainWindow mainWindow) { + // already initialized + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickDispatcher.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickDispatcher.java new file mode 100644 index 0000000..010e631 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickDispatcher.java @@ -0,0 +1,19 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import javafx.scene.input.MouseEvent; + +public class VertexClickDispatcher implements ClickDispatcher { + + private Vertex v; + + public VertexClickDispatcher(Vertex v) { + this.v = v; + } + + @Override + public void click(MouseEvent me, ClickHandler handler) { + handler.onVertexClick(v, me); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickHandler.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickHandler.java new file mode 100644 index 0000000..1939527 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/VertexClickHandler.java @@ -0,0 +1,71 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import org.locationtech.proj4j.ProjCoordinate; + +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import de.hft.stuttgart.citydoctor2.gui.tree.Renderable; +import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; +import javafx.scene.control.ContextMenu; +import javafx.scene.control.CustomMenuItem; +import javafx.scene.control.Label; +import javafx.scene.control.MenuItem; +import javafx.scene.control.TreeView; +import javafx.scene.input.MouseButton; +import javafx.scene.input.MouseEvent; +import javafx.stage.Stage; + +public class VertexClickHandler implements ClickHandler { + + private TreeView errorView; + private Renderer renderer; + private Stage stage; + private ParserConfiguration config; + + public VertexClickHandler(TreeView errorView, Renderer renderer, Stage stage) { + this.errorView = errorView; + this.renderer = renderer; + this.stage = stage; + } + + public void setConfig(ParserConfiguration config) { + this.config = config; + } + + @Override + public void onPolygonClick(Polygon p, MouseEvent me) { + if (me.getButton() == MouseButton.PRIMARY) { + errorView.getSelectionModel().clearSelection(); + renderer.highlight(p); + } else if (me.getButton() == MouseButton.SECONDARY) { + MenuItem mi = new MenuItem(p.getGmlId().getGmlString()); + ContextMenu cMenu = new ContextMenu(mi); + cMenu.show(stage, me.getScreenX(), me.getScreenY()); + } + } + + @Override + public void onVertexClick(Vertex v, MouseEvent me) { + if (me.getButton() == MouseButton.SECONDARY) { + MenuItem mi1 = new CustomMenuItem(new Label("Vertex")); + double x = v.getX(); + double y = v.getY(); + if (config.getOriginalTransform() != null) { + ProjCoordinate p1 = new ProjCoordinate(); + ProjCoordinate p2 = new ProjCoordinate(); + p1.x = v.getX(); + p1.y = v.getY(); + config.getOriginalTransform().transform(p1, p2); + x = p2.x; + y = p2.y; + } + + MenuItem mi2 = new MenuItem("x = " + x); + MenuItem mi3 = new MenuItem("y = " + y); + MenuItem mi4 = new MenuItem("z = " + v.getZ()); + ContextMenu cMenu = new ContextMenu(mi1, mi2, mi3, mi4); + cMenu.show(stage, me.getScreenX(), me.getScreenY()); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/View.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/View.java new file mode 100644 index 0000000..71f6ce4 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/View.java @@ -0,0 +1,32 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.util.Optional; + +import de.hft.stuttgart.citydoctor2.check.Checker; +import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; +import javafx.scene.Node; +import javafx.scene.image.Image; +import javafx.scene.layout.HBox; + +public abstract class View { + + private boolean firstTime = true; + + public abstract Optional getToolbar(); + public abstract Node getMainScreen(); + public abstract Image getViewLogo(); + + public abstract void initializeView(MainWindow mainWindow); + + public void fireOnShowEvent(CityDoctorModel model, Checker checker, MainWindow mainWindow) { + if (firstTime) { + firstTime = false; + initializeView(mainWindow); + } + onShow(model, checker); + } + + public abstract void onHide(); + public abstract void onShow(CityDoctorModel model, Checker checker); + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ViewRegistration.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ViewRegistration.java new file mode 100644 index 0000000..9161d18 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/ViewRegistration.java @@ -0,0 +1,31 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.util.LinkedHashSet; +import java.util.Set; + +public class ViewRegistration { + + private static Set registeredViews = new LinkedHashSet<>(); + private static View currentActiveView; + + private ViewRegistration() { + // only static use + } + + public static void registerView(View v) { + registeredViews.add(v); + } + + public static Set getRegisteredViews() { + return registeredViews; + } + + static void setCurrentActiveView(View v) { + currentActiveView = v; + } + + public static View getCurrentActiveView() { + return currentActiveView; + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/WriteReportDialog.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/WriteReportDialog.java new file mode 100644 index 0000000..56f0477 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/WriteReportDialog.java @@ -0,0 +1,262 @@ +package de.hft.stuttgart.citydoctor2.gui; + +import java.io.File; +import java.io.IOException; + +import javax.imageio.ImageIO; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import de.hft.stuttgart.citydoctor2.utils.Localization; +import javafx.application.Platform; +import javafx.embed.swing.SwingFXUtils; +import javafx.event.Event; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.scene.SnapshotParameters; +import javafx.scene.chart.BarChart; +import javafx.scene.chart.CategoryAxis; +import javafx.scene.chart.NumberAxis; +import javafx.scene.chart.XYChart; +import javafx.scene.control.Button; +import javafx.scene.control.CheckBox; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.image.Image; +import javafx.scene.image.WritableImage; +import javafx.scene.layout.VBox; +import javafx.stage.FileChooser; +import javafx.stage.FileChooser.ExtensionFilter; +import javafx.stage.Modality; +import javafx.stage.Stage; +import javafx.util.StringConverter; + +public class WriteReportDialog { + + private static Logger logger = LogManager.getLogger(WriteReportDialog.class); + + private Stage stage; + private CityDoctorController controller; + private MainWindow mainWindow; + + @FXML + private CheckBox pdfCheckBox; + + @FXML + private TextField pdfFileField; + + @FXML + private Button selectPdfBtn; + + @FXML + private CheckBox xmlCheckBox; + + @FXML + private TextField xmlFileField; + + @FXML + private Button selectXmlFile; + + @FXML + private Button cancelBtn; + + @FXML + private Button writeBtn; + + @FXML + private BarChart barChart; + + @FXML + private Button saveImageBtn; + + @FXML + private Label errorStatisticsLabel; + + public WriteReportDialog(Stage parent, CityDoctorController controller, MainWindow mainWindow) throws IOException { + FXMLLoader loader = new FXMLLoader(WriteReportDialog.class.getResource("WriteReportDialog.fxml")); + loader.setController(this); + VBox box = loader.load(); + this.controller = controller; + this.mainWindow = mainWindow; + stage = new Stage(); + stage.getIcons().add(new Image(MainWindow.class.getResourceAsStream("icons/CityDoctor-Logo-rot_klein.jpg"))); + stage.setScene(new Scene(box)); + stage.initOwner(parent); + stage.initModality(Modality.APPLICATION_MODAL); + stage.setTitle("Write Reports"); + stage.setOnHidden(we -> barChart.getData().clear()); + setMaximumWidthOfBarChartColumns(); + } + + private void setMaximumWidthOfBarChartColumns() { + double maxBarWidth = 40; + double minCategoryGap = 10; + + // setting maximum width of columns in bar chart + // from https://stackoverflow.com/questions/27302875/set-bar-chart-column-width-size + stage.getScene().widthProperty().addListener((obs, n, n1) -> { + if (barChart.getData().isEmpty()) + return; + + setCategoryWidthWhenWindowIsBigger(maxBarWidth, n, n1); + if (n != null && (n1.doubleValue() < n.doubleValue()) && barChart.getCategoryGap() > minCategoryGap) { + double barWidth = 0; + CategoryAxis xAxis = (CategoryAxis) barChart.getXAxis(); + do { + double catSpace = xAxis.getCategorySpacing(); + double avilableBarSpace = catSpace - (minCategoryGap + barChart.getBarGap()); + barWidth = Math.min(maxBarWidth, + (avilableBarSpace / barChart.getData().size()) - barChart.getBarGap()); + avilableBarSpace = (barWidth + barChart.getBarGap()) * barChart.getData().size(); + barChart.setCategoryGap(catSpace - avilableBarSpace - barChart.getBarGap()); + } while (barWidth < maxBarWidth && barChart.getCategoryGap() > minCategoryGap); + } + }); + } + + private void setCategoryWidthWhenWindowIsBigger(double maxBarWidth, Number n, Number n1) { + if (n != null && (n1.doubleValue() > n.doubleValue())) { + double barWidth = 0; + CategoryAxis xAxis = (CategoryAxis) barChart.getXAxis(); + do { + double catSpace = xAxis.getCategorySpacing(); + double avilableBarSpace = catSpace - (barChart.getCategoryGap() + barChart.getBarGap()); + barWidth = (avilableBarSpace / barChart.getData().size()) - barChart.getBarGap(); + if (barWidth > maxBarWidth) { + avilableBarSpace = (maxBarWidth + barChart.getBarGap()) * barChart.getData().size(); + barChart.setCategoryGap(catSpace - avilableBarSpace - barChart.getBarGap()); + } + } while (barWidth > maxBarWidth); + } + } + + public void initialize() { + writeBtn.setText(Localization.getText("WriteReportDialog.writeBtn")); + cancelBtn.setText(Localization.getText("WriteReportDialog.cancelBtn")); + errorStatisticsLabel.setText(Localization.getText("WriteReportDialog.errorStatisticsLabel")); + saveImageBtn.setText(Localization.getText("WriteReportDialog.saveImageBtn")); + selectPdfBtn.setText(Localization.getText("WriteReportDialog.selectPdfBtn")); + selectXmlFile.setText(Localization.getText("WriteReportDialog.selectXmlFile")); + barChart.getXAxis().setLabel(Localization.getText("WriteReportDialog.xAxisLabel")); + barChart.getYAxis().setLabel(Localization.getText("WriteReportDialog.yAxisLabel")); + + // formatter to display only whole numbers + NumberAxis yAxis = (NumberAxis) barChart.getYAxis(); + yAxis.setTickLabelFormatter(new StringConverter() { + + @Override + public String toString(Number object) { + if (object.doubleValue() % 1 < 0.00000001) { + return String.valueOf(object.intValue()); + } else { + return ""; + } + } + + @Override + public Number fromString(String string) { + return Integer.parseInt(string); + } + }); + saveImageBtn.setOnAction(ae -> { + FileChooser chooser = new FileChooser(); + chooser.setInitialDirectory(new File(".")); + chooser.getExtensionFilters().add(new ExtensionFilter("PNG-Image", "*.png")); + String fName = controller.getFileName(); + fName = fName.substring(0, fName.lastIndexOf('.')); + chooser.setInitialFileName(fName + "_errors.png"); + File imageFile = chooser.showSaveDialog(stage); + if (imageFile != null) { + WritableImage snapshot = barChart.snapshot(new SnapshotParameters(), null); + try { + ImageIO.write(SwingFXUtils.fromFXImage(snapshot, null), "png", imageFile); + } catch (IOException e) { + logger.error("Failed to save image", e); + mainWindow.showExceptionDialog(e); + } + } + }); + + pdfCheckBox.selectedProperty().addListener((obs, oldV, newV) -> { + selectPdfBtn.setDisable(!newV); + pdfFileField.setDisable(!newV); + }); + + xmlCheckBox.selectedProperty().addListener((obs, oldV, newV) -> { + selectXmlFile.setDisable(!newV); + xmlFileField.setDisable(!newV); + }); + + selectPdfBtn.setOnAction(ae -> { + FileChooser chooser = new FileChooser(); + chooser.setTitle("Select PDF File"); + chooser.getExtensionFilters().add(new ExtensionFilter("PDF-Files", ".pdf")); + File pdfFile = chooser.showSaveDialog(stage); + if (pdfFile != null) { + pdfFileField.setText(pdfFile.getAbsolutePath()); + } + }); + + selectXmlFile.setOnAction(ae -> { + FileChooser chooser = new FileChooser(); + chooser.setTitle("Select XML File"); + chooser.getExtensionFilters().add(new ExtensionFilter("XML-Files", ".xml")); + File xmlFile = chooser.showSaveDialog(stage); + if (xmlFile != null) { + xmlFileField.setText(xmlFile.getAbsolutePath()); + } + }); + + initWriteButton(); + + cancelBtn.setOnAction(ae -> stage.close()); + } + + private void initWriteButton() { + writeBtn.setOnAction(ae -> { + stage.setOnCloseRequest(Event::consume); + cancelBtn.setDisable(true); + writeBtn.setDisable(true); + Thread t = new Thread(() -> { + try { + if (pdfCheckBox.isSelected()) { + String file = pdfFileField.getText(); + File pdfFile = new File(file); + File parentFile = pdfFile.getParentFile(); + if (parentFile != null) { + parentFile.mkdirs(); + } + controller.writePdfReport(pdfFile); + } + if (xmlCheckBox.isSelected()) { + String file = xmlFileField.getText(); + File xmlFile = new File(file); + File parentFile = xmlFile.getParentFile(); + if (parentFile != null) { + parentFile.mkdirs(); + } + controller.writeXmlReport(xmlFile); + } + } finally { + Platform.runLater(() -> { + stage.setOnCloseRequest(null); + cancelBtn.setDisable(false); + writeBtn.setDisable(false); + stage.close(); + }); + } + }); + t.start(); + }); + } + + public void show() { + XYChart.Series series = controller.createErrorSeries(); + barChart.getData().clear(); + barChart.getData().add(series); + stage.show(); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/filter/TypeFilterSelection.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/filter/TypeFilterSelection.java new file mode 100644 index 0000000..4d203cf --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/filter/TypeFilterSelection.java @@ -0,0 +1,24 @@ +package de.hft.stuttgart.citydoctor2.gui.filter; + +import de.hft.stuttgart.citydoctor2.datastructure.FeatureType; + +public class TypeFilterSelection { + + private FeatureType type; + private String name; + + public TypeFilterSelection(FeatureType type, String name) { + this.type = type; + this.name = name; + } + + public FeatureType getType() { + return type; + } + + @Override + public String toString() { + return name; + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/filter/ViewFilter.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/filter/ViewFilter.java new file mode 100644 index 0000000..7211f54 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/filter/ViewFilter.java @@ -0,0 +1,35 @@ +package de.hft.stuttgart.citydoctor2.gui.filter; + +import de.hft.stuttgart.citydoctor2.datastructure.CityObject; +import de.hft.stuttgart.citydoctor2.datastructure.Geometry; + +public abstract class ViewFilter { + + private boolean enabled = true; + + protected abstract boolean useGeometry(CityObject co, Geometry geom); + + public boolean allowedToUse(CityObject co, Geometry geom) { + if (!enabled) { + return false; + } + return useGeometry(co, geom); + } + + public boolean isEnabled() { + return enabled; + } + + public void enable() { + enabled = true; + } + + public void disable() { + enabled = false; + } + + public void setEnable(boolean enabled) { + this.enabled = enabled; + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/logger/GuiLogger.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/logger/GuiLogger.java new file mode 100644 index 0000000..7b65872 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/logger/GuiLogger.java @@ -0,0 +1,104 @@ +package de.hft.stuttgart.citydoctor2.gui.logger; + +import java.io.Serializable; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import org.apache.logging.log4j.core.Filter; +import org.apache.logging.log4j.core.Layout; +import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.appender.AbstractAppender; +import org.apache.logging.log4j.core.config.Property; +import org.apache.logging.log4j.core.config.plugins.Plugin; +import org.apache.logging.log4j.core.config.plugins.PluginAttribute; +import org.apache.logging.log4j.core.config.plugins.PluginElement; +import org.apache.logging.log4j.core.config.plugins.PluginFactory; +import org.apache.logging.log4j.core.layout.PatternLayout; + +import javafx.application.Platform; +import javafx.scene.control.TextArea; + +@Plugin(name="GuiLogger", category="Core", elementType="appender", printObject=true) +public class GuiLogger extends AbstractAppender { + + private static TextArea area; + + private final ReadWriteLock rwLock = new ReentrantReadWriteLock(); + private final Lock readLock = rwLock.readLock(); + + private static final int CAPACITY = 20000; + + private StringBuilder buffer = new StringBuilder(CAPACITY); + private Thread daemonLoggerThread; + private boolean dirty = false; + + public static void setTextArea(TextArea area) { + GuiLogger.area = area; + } + + @PluginFactory + public static GuiLogger createAppender( + @PluginAttribute("name") String name, + @PluginAttribute("ignoreExceptions") boolean ignoreExceptions, + @PluginElement("Layout") Layout layout, + @PluginElement("Filter") final Filter filter) { + if (name == null) { + LOGGER.error("No name provided for GuiLogger"); + return null; + } + if (layout == null) { + layout = PatternLayout.createDefaultLayout(); + } + GuiLogger guiLogger = new GuiLogger(name, filter, layout, ignoreExceptions, new Property[0]); + guiLogger.daemonLoggerThread = new Thread(() -> { + while (!Thread.interrupted()) { + if (guiLogger.dirty) { + Platform.runLater(() -> { + // set text doesn't scroll + // workaround with clear -> append + area.clear(); + area.appendText(guiLogger.buffer.toString()); + }); + guiLogger.dirty = false; + } + try { + Thread.sleep(200); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + }); + guiLogger.daemonLoggerThread.setDaemon(true); + guiLogger.daemonLoggerThread.start(); + return guiLogger; + } + + protected GuiLogger(String name, Filter filter, Layout layout, boolean ignoreExceptions, + Property[] properties) { + super(name, filter, layout, ignoreExceptions, properties); + } + + @Override + public void append(LogEvent event) { + if (area == null) { + return; + } + readLock.lock(); + try { + String s = new String(getLayout().toByteArray(event)); + int capacityLeft = CAPACITY - buffer.length(); + if (capacityLeft < s.length()) { + int delete = s.length() - capacityLeft; + buffer.delete(0, delete - 1); + } + buffer.append(s); + dirty = true; + } finally { + readLock.unlock(); + } + } + + + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/table/ErrorStat.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/table/ErrorStat.java new file mode 100644 index 0000000..0bca03a --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/table/ErrorStat.java @@ -0,0 +1,65 @@ +package de.hft.stuttgart.citydoctor2.gui.table; + +import de.hft.stuttgart.citydoctor2.check.ErrorId; +import javafx.beans.property.IntegerProperty; +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleIntegerProperty; +import javafx.beans.property.SimpleObjectProperty; + +public class ErrorStat { + + private final SimpleObjectProperty errorId = new SimpleObjectProperty<>(); + private final SimpleIntegerProperty count = new SimpleIntegerProperty(); + + public ErrorStat(ErrorId errorId) { + this(errorId, 0); + } + + public ErrorStat(ErrorId errorId, int count) { + this.errorId.set(errorId); + this.count.set(count); + } + + public int getCount() { + return count.get(); + } + + public IntegerProperty getCountProperty() { + return count; + } + + public ObjectProperty getErrorIdProperty() { + return errorId; + } + + public void setCount(int count) { + this.count.set(count); + } + + public void incrementCount() { + count.set(count.get() + 1); + } + + public ErrorId getErrorId() { + return errorId.get(); + } + + public void setErrorId(ErrorId errorId) { + this.errorId.set(errorId); + } + + /* (non-Javadoc) + * @see java.lang.Object#toString() + */ + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("ErrorStat [errorId="); + builder.append(errorId); + builder.append(", count="); + builder.append(count); + builder.append("]"); + return builder.toString(); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBoundarySurfacesNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBoundarySurfacesNode.java new file mode 100644 index 0000000..cf02482 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBoundarySurfacesNode.java @@ -0,0 +1,46 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllBoundarySurfacesNode extends Renderable { + + private List boundarySurfaces; + + public AllBoundarySurfacesNode(List boundarySurfaces) { + this.boundarySurfaces = boundarySurfaces; + } + + @Override + public String getText() { + return "Boundary Surfaces"; + } + + @Override + public void visit(Renderer renderer) { + renderer.clearCurrentRender(); + } + + @Override + public void refreshTextColor() { + boolean isValidated = false; + for (BoundarySurface bs : boundarySurfaces) { + if (bs.isValidated()) { + isValidated = true; + } + if (bs.containsAnyError()) { + setStatus(CheckStatus.ERROR); + return; + } + } + if (isValidated) { + setStatus(CheckStatus.OK); + } else { + setStatus(CheckStatus.NOT_CHECKED); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgeConstructiveElementsNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgeConstructiveElementsNode.java new file mode 100644 index 0000000..d99a6cc --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgeConstructiveElementsNode.java @@ -0,0 +1,64 @@ +/*- + * Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.BridgeConstructiveElement; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllBridgeConstructiveElementsNode extends Renderable { + + private List constructiveElements; + + public AllBridgeConstructiveElementsNode(List constructiveElements) { + this.constructiveElements = constructiveElements; + } + + @Override + public String getText() { + return "Constructive Elements"; + } + + @Override + public void visit(Renderer renderer) { + renderer.clearCurrentRender(); + } + + @Override + public void refreshTextColor() { + boolean isValidated = false; + for (BridgeConstructiveElement bce : constructiveElements) { + if (bce.isValidated()) { + isValidated = true; + } + if (bce.containsAnyError()) { + setStatus(CheckStatus.ERROR); + return; + } + } + if (isValidated) { + setStatus(CheckStatus.OK); + } else { + setStatus(CheckStatus.NOT_CHECKED); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgePartsNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgePartsNode.java new file mode 100644 index 0000000..23bce24 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgePartsNode.java @@ -0,0 +1,64 @@ +/*- + * Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.BridgeObject; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllBridgePartsNode extends Renderable { + + private List bridgeParts; + + public AllBridgePartsNode(List bridgeParts) { + this.bridgeParts = bridgeParts; + } + + @Override + public String getText() { + return "Bridge Parts"; + } + + @Override + public void visit(Renderer renderer) { + renderer.clearCurrentRender(); + } + + @Override + public void refreshTextColor() { + boolean wasChecked = false; + for (BridgeObject bp : bridgeParts) { + if (bp.isValidated()) { + wasChecked = true; + if (bp.containsAnyError()) { + setStatus(CheckStatus.ERROR); + return; + } + } + } + if (wasChecked) { + setStatus(CheckStatus.OK); + } else { + setStatus(CheckStatus.NOT_CHECKED); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgesNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgesNode.java new file mode 100644 index 0000000..0e6ea54 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBridgesNode.java @@ -0,0 +1,30 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.BridgeObject; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllBridgesNode extends Renderable { + + private List bridges; + + public AllBridgesNode(List bridges) { + this.bridges = bridges; + } + + @Override + public void refreshTextColor() { + // no color changes + } + + @Override + public String getText() { + return "Bridges"; + } + + @Override + public void visit(Renderer renderer) { + renderer.renderBridges(bridges); + } +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBuildingPartsNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBuildingPartsNode.java new file mode 100644 index 0000000..c64aac1 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBuildingPartsNode.java @@ -0,0 +1,46 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.BuildingPart; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllBuildingPartsNode extends Renderable { + + private List buildingParts; + + public AllBuildingPartsNode(List buildingParts) { + this.buildingParts = buildingParts; + } + + @Override + public String getText() { + return "Building Parts"; + } + + @Override + public void visit(Renderer renderer) { + renderer.clearCurrentRender(); + } + + @Override + public void refreshTextColor() { + boolean wasChecked = false; + for (BuildingPart bp : buildingParts) { + if (bp.isValidated()) { + wasChecked = true; + if (bp.containsAnyError()) { + setStatus(CheckStatus.ERROR); + return; + } + } + } + if (wasChecked) { + setStatus(CheckStatus.OK); + } else { + setStatus(CheckStatus.NOT_CHECKED); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBuildingsNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBuildingsNode.java new file mode 100644 index 0000000..8a156c4 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllBuildingsNode.java @@ -0,0 +1,31 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.Building; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllBuildingsNode extends Renderable { + + private List buildings; + + public AllBuildingsNode(List buildings) { + this.buildings = buildings; + } + + @Override + public void refreshTextColor() { + // no color changes + } + + @Override + public String getText() { + return "Buildings"; + } + + @Override + public void visit(Renderer renderer) { + renderer.renderBuildings(buildings); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllInstallationsNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllInstallationsNode.java new file mode 100644 index 0000000..1256534 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllInstallationsNode.java @@ -0,0 +1,46 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.Installation; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllInstallationsNode extends Renderable { + + private List buildingInstallations; + + public AllInstallationsNode(List bis) { + this.buildingInstallations = bis; + } + + @Override + public String getText() { + return "Building Installations"; + } + + @Override + public void visit(Renderer renderer) { + renderer.clearCurrentRender(); + } + + @Override + public void refreshTextColor() { + boolean wasChecked = false; + for (Installation bp : buildingInstallations) { + if (bp.isValidated()) { + wasChecked = true; + if (bp.containsAnyError()) { + setStatus(CheckStatus.ERROR); + return; + } + } + } + if (wasChecked) { + setStatus(CheckStatus.OK); + } else { + setStatus(CheckStatus.NOT_CHECKED); + } + } + +} \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllOpeningsNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllOpeningsNode.java new file mode 100644 index 0000000..f91bd7f --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllOpeningsNode.java @@ -0,0 +1,38 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.Opening; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllOpeningsNode extends Renderable { + + private List openings; + + public AllOpeningsNode(List openings) { + this.openings = openings; + } + + @Override + public void refreshTextColor() { + for (Opening bp : openings) { + if (bp.containsAnyError()) { + setStatus(CheckStatus.ERROR); + return; + } + } + setStatus(CheckStatus.OK); + } + + @Override + public String getText() { + return "Openings"; + } + + @Override + public void visit(Renderer renderer) { + renderer.clearCurrentRender(); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTerrainNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTerrainNode.java new file mode 100644 index 0000000..e4006a4 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTerrainNode.java @@ -0,0 +1,31 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.CityObject; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllTerrainNode extends Renderable { + + private List land; + + public AllTerrainNode(List land) { + this.land = land; + } + + @Override + public void refreshTextColor() { + // no use + } + + @Override + public String getText() { + return "Terrain"; + } + + @Override + public void visit(Renderer renderer) { + renderer.renderTerrain(land); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTinNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTinNode.java new file mode 100644 index 0000000..59bfa3a --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTinNode.java @@ -0,0 +1,49 @@ +/*- + * Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.TinObject; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllTinNode extends Renderable { + + public AllTinNode(List components) { + // TODO Auto-generated constructor stub + } + + @Override + public void refreshTextColor() { + // TODO Auto-generated method stub + + } + + @Override + public String getText() { + return "Components"; + } + + @Override + public void visit(Renderer renderer) { + // TODO Auto-generated method stub + + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTransportationNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTransportationNode.java new file mode 100644 index 0000000..b7a57e2 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllTransportationNode.java @@ -0,0 +1,31 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.TransportationObject; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllTransportationNode extends Renderable { + + private List transportation; + + public AllTransportationNode(List transportation) { + this.transportation = transportation; + } + + @Override + public void refreshTextColor() { + // no use + } + + @Override + public String getText() { + return "Transportation"; + } + + @Override + public void visit(Renderer renderer) { + renderer.renderTransportation(transportation); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllVegetationNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllVegetationNode.java new file mode 100644 index 0000000..b2b8a6e --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllVegetationNode.java @@ -0,0 +1,31 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.Vegetation; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllVegetationNode extends Renderable { + + private List vegetation; + + public AllVegetationNode(List vegetation) { + this.vegetation = vegetation; + } + + @Override + public void refreshTextColor() { + // no use + } + + @Override + public String getText() { + return "Vegetation"; + } + + @Override + public void visit(Renderer renderer) { + renderer.renderVegetation(vegetation); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllWaterNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllWaterNode.java new file mode 100644 index 0000000..f4255fe --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/AllWaterNode.java @@ -0,0 +1,31 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.datastructure.WaterObject; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class AllWaterNode extends Renderable { + + private List water; + + public AllWaterNode(List water) { + this.water = water; + } + + @Override + public void refreshTextColor() { + // no use + } + + @Override + public String getText() { + return "Water"; + } + + @Override + public void visit(Renderer renderer) { + renderer.renderWater(water); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BoundarySurfaceNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BoundarySurfaceNode.java new file mode 100644 index 0000000..7886d62 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BoundarySurfaceNode.java @@ -0,0 +1,35 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class BoundarySurfaceNode extends Renderable { + + private BoundarySurface bs; + + public BoundarySurfaceNode(BoundarySurface bs) { + this.bs = bs; + } + + @Override + public String getText() { + return bs.getGmlId().getGmlString() + " [" + bs.getType() + "]"; + } + + @Override + public void visit(Renderer renderer) { + renderer.render(bs); + } + + @Override + public void refreshTextColor() { + if (!bs.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (bs.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BridgeConstructiveElementNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BridgeConstructiveElementNode.java new file mode 100644 index 0000000..6203a07 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BridgeConstructiveElementNode.java @@ -0,0 +1,54 @@ +/*- + * Copyright 2023 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.BridgeConstructiveElement; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class BridgeConstructiveElementNode extends Renderable { + + private BridgeConstructiveElement bce; + + public BridgeConstructiveElementNode(BridgeConstructiveElement bce) { + this.bce = bce; + } + + @Override + public String getText() { + return bce.getGmlId().getGmlString(); + } + + @Override + public void visit(Renderer renderer) { + renderer.render(bce); + } + + @Override + public void refreshTextColor() { + if (!bce.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (bce.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BridgeNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BridgeNode.java new file mode 100644 index 0000000..79e3a25 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BridgeNode.java @@ -0,0 +1,55 @@ +/*- + * Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.BridgeObject; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class BridgeNode extends Renderable { + + private BridgeObject bridge; + + public BridgeNode(BridgeObject bridge) { + this.bridge = bridge; + } + + @Override + public String getText() { + return bridge.getGmlId().getGmlString(); + } + + @Override + public void visit(Renderer renderer) { + renderer.render(bridge); + } + + @Override + public void refreshTextColor() { + if (!bridge.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (bridge.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BuildingNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BuildingNode.java new file mode 100644 index 0000000..49a22a6 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BuildingNode.java @@ -0,0 +1,40 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.Building; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class BuildingNode extends Renderable { + + private Building building; + + public BuildingNode(Building building) { + this.building = building; + } + + @Override + public String getText() { + return building.getGmlId().getGmlString(); + } + + public Building getBuilding() { + return building; + } + + @Override + public void visit(Renderer renderer) { + renderer.render(building); + } + + @Override + public void refreshTextColor() { + if (!building.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (building.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BuildingPartNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BuildingPartNode.java new file mode 100644 index 0000000..0084d1f --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/BuildingPartNode.java @@ -0,0 +1,36 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.BuildingPart; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class BuildingPartNode extends Renderable { + + private BuildingPart bp; + + public BuildingPartNode(BuildingPart bp) { + this.bp = bp; + } + + @Override + public String getText() { + return bp.getGmlId().getGmlString(); + } + + @Override + public void visit(Renderer renderer) { + renderer.render(bp); + } + + @Override + public void refreshTextColor() { + if (!bp.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (bp.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ButtonRenderable.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ButtonRenderable.java new file mode 100644 index 0000000..201c28c --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ButtonRenderable.java @@ -0,0 +1,50 @@ +/*- + * Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class ButtonRenderable extends Renderable { + + private Runnable run; + + public ButtonRenderable(Runnable run) { + this.run = run; + } + + public void run() { + run.run(); + } + + @Override + public void refreshTextColor() { + // nothing to do + } + + @Override + public String getText() { + return null; + } + + @Override + public void visit(Renderer renderer) { + // nothing to render + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/CityObjectNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/CityObjectNode.java new file mode 100644 index 0000000..41b9ddd --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/CityObjectNode.java @@ -0,0 +1,36 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.CityObject; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class CityObjectNode extends Renderable { + + private CityObject co; + + public CityObjectNode(CityObject co) { + this.co = co; + } + + @Override + public void refreshTextColor() { + if (!co.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (co.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + @Override + public String getText() { + return co.getGmlId().getGmlString(); + } + + @Override + public void visit(Renderer renderer) { + renderer.render(co); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/Displayable.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/Displayable.java new file mode 100644 index 0000000..b626dd0 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/Displayable.java @@ -0,0 +1,9 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.gui.CityDoctorController; + +public interface Displayable { + + public void visitForDisplaying(CityDoctorController controller); + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/EdgeNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/EdgeNode.java new file mode 100644 index 0000000..7f75f84 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/EdgeNode.java @@ -0,0 +1,62 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; + +import de.hft.stuttgart.citydoctor2.datastructure.Edge; +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class EdgeNode extends Renderable { + + private static DecimalFormat nf; + + static { + DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(); + dfs.setDecimalSeparator('.'); + nf = new DecimalFormat("#.####", dfs); + } + + private static final String SEPERATOR = ", "; + private Edge e; + private String text; + + public EdgeNode(Edge e) { + this.e = e; + } + + @Override + public void refreshTextColor() { + // not used + } + + @Override + public String getText() { + if (text == null) { + StringBuilder sb = new StringBuilder(); + sb.append("Edge from ["); + Vertex from = e.getFrom(); + sb.append(nf.format(from.getX())); + sb.append(SEPERATOR); + sb.append(nf.format(from.getY())); + sb.append(SEPERATOR); + sb.append(nf.format(from.getZ())); + sb.append("] to ["); + Vertex to = e.getTo(); + sb.append(nf.format(to.getX())); + sb.append(SEPERATOR); + sb.append(nf.format(to.getY())); + sb.append(SEPERATOR); + sb.append(nf.format(to.getZ())); + sb.append("]"); + text = sb.toString(); + } + return text; + } + + @Override + public void visit(Renderer renderer) { + renderer.highlight(e); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorCell.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorCell.java new file mode 100644 index 0000000..c75dd1a --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorCell.java @@ -0,0 +1,20 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.check.CheckError; +import javafx.scene.control.cell.TextFieldTreeCell; + +public class ErrorCell extends TextFieldTreeCell { + + @Override + public void updateItem(CheckError item, boolean empty) { + super.updateItem(item, empty); + + if (empty || item == null) { + setText(null); + setGraphic(null); + } else { + setText(item.getErrorId().toString()); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java new file mode 100644 index 0000000..b9153ba --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorItemVisitor.java @@ -0,0 +1,410 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.util.List; + +import de.hft.stuttgart.citydoctor2.check.CheckError; +import de.hft.stuttgart.citydoctor2.check.ErrorVisitor; +import de.hft.stuttgart.citydoctor2.check.error.AllPolygonsWrongOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.AttributeInvalidError; +import de.hft.stuttgart.citydoctor2.check.error.AttributeMissingError; +import de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError; +import de.hft.stuttgart.citydoctor2.check.error.ConsecutivePointSameError; +import de.hft.stuttgart.citydoctor2.check.error.DependenciesNotMetError; +import de.hft.stuttgart.citydoctor2.check.error.MultipleConnectedComponentsError; +import de.hft.stuttgart.citydoctor2.check.error.NestedRingError; +import de.hft.stuttgart.citydoctor2.check.error.NonManifoldEdgeError; +import de.hft.stuttgart.citydoctor2.check.error.NonManifoldVertexError; +import de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonDistancePlaneError; +import de.hft.stuttgart.citydoctor2.check.error.NonPlanarPolygonNormalsDeviation; +import de.hft.stuttgart.citydoctor2.check.error.NotCeilingError; +import de.hft.stuttgart.citydoctor2.check.error.NotFloorError; +import de.hft.stuttgart.citydoctor2.check.error.NotGroundError; +import de.hft.stuttgart.citydoctor2.check.error.NotWallError; +import de.hft.stuttgart.citydoctor2.check.error.NullAreaError; +import de.hft.stuttgart.citydoctor2.check.error.PointTouchesEdgeError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonHoleOutsideError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonInteriorDisconnectedError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonIntersectingRingsError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonSameOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonWithoutSurfaceError; +import de.hft.stuttgart.citydoctor2.check.error.PolygonWrongOrientationError; +import de.hft.stuttgart.citydoctor2.check.error.RingDuplicatePointError; +import de.hft.stuttgart.citydoctor2.check.error.RingEdgeIntersectionError; +import de.hft.stuttgart.citydoctor2.check.error.RingNotClosedError; +import de.hft.stuttgart.citydoctor2.check.error.RingTooFewPointsError; +import de.hft.stuttgart.citydoctor2.check.error.SchematronError; +import de.hft.stuttgart.citydoctor2.check.error.SolidNotClosedError; +import de.hft.stuttgart.citydoctor2.check.error.SolidSelfIntError; +import de.hft.stuttgart.citydoctor2.check.error.SurfaceUnfragmentedError; +import de.hft.stuttgart.citydoctor2.check.error.DegeneratedRingError; +import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError; +import de.hft.stuttgart.citydoctor2.check.error.UnknownCheckError; +import de.hft.stuttgart.citydoctor2.datastructure.Edge; +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import javafx.scene.control.TreeItem; + +public class ErrorItemVisitor implements ErrorVisitor { + + private static final String NAME_OF_ATTRIBUTE = "Name of Attribute: "; + private static final String CHILD_ID = "ChildId: "; + private TreeItem root; + + public ErrorItemVisitor(TreeItem root) { + this.root = root; + } + + @Override + public void visit(PolygonHoleOutsideError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(NonManifoldEdgeError err) { + for (Edge e : err.getEdges()) { + EdgeNode edgeNode = new EdgeNode(e); + TreeItem edgeItem = new TreeItem<>(edgeNode); + root.getChildren().add(edgeItem); + } + } + + @Override + public void visit(MultipleConnectedComponentsError err) { + for (int i = 0; i < err.getComponents().size(); i++) { + TextNode textNode = new TextNode("Component " + i); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + List component = err.getComponents().get(i); + for (Polygon p : component) { + PolygonNode polyNode = new PolygonNode(p, CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + textItem.getChildren().add(polyItem); + } + } + } + + @Override + public void visit(NestedRingError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(NonManifoldVertexError err) { + VertexNode vertexNode = new VertexNode(err.getVertex()); + TreeItem vertexItem = new TreeItem<>(vertexNode); + root.getChildren().add(vertexItem); + for (int i = 0; i < err.getComponents().size(); i++) { + TextNode textNode = new TextNode("Component " + i); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + List component = err.getComponents().get(i); + for (Polygon p : component) { + PolygonNode polyNode = new PolygonNode(p, CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + textItem.getChildren().add(polyItem); + } + } + } + + @Override + public void visit(PolygonWrongOrientationError err) { + for (Edge e : err.getEdges()) { + EdgeNode edgeNode = new EdgeNode(e); + TreeItem edgeItem = new TreeItem<>(edgeNode); + root.getChildren().add(edgeItem); + } + } + + @Override + public void visit(PolygonSameOrientationError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(SolidNotClosedError err) { + for (Edge e : err.getErrorEdges()) { + EdgeNode edgeNode = new EdgeNode(e); + TreeItem edgeItem = new TreeItem<>(edgeNode); + root.getChildren().add(edgeItem); + } + } + + @Override + public void visit(DependenciesNotMetError err) { + // not displayed + } + + @Override + public void visit(UnknownCheckError err) { + // not displayed + + } + + @Override + public void visit(RingNotClosedError err) { + LinearRingNode ringNode = new LinearRingNode(err.getRing(), CheckStatus.NOT_CHECKED); + TreeItem ringItem = new TreeItem<>(ringNode); + root.getChildren().add(ringItem); + } + + @Override + public void visit(ConsecutivePointSameError err) { + LinearRingNode ringNode = new LinearRingNode(err.getRing(), CheckStatus.NOT_CHECKED); + TreeItem ringItem = new TreeItem<>(ringNode); + root.getChildren().add(ringItem); + + VertexNode vertexNode = new VertexNode(err.getVertex1()); + TreeItem vertexItem = new TreeItem<>(vertexNode); + root.getChildren().add(vertexItem); + + vertexNode = new VertexNode(err.getVertex2()); + vertexItem = new TreeItem<>(vertexNode); + root.getChildren().add(vertexItem); + } + + @Override + public void visit(AllPolygonsWrongOrientationError err) { + // not displayed + } + + @Override + public void visit(PolygonInteriorDisconnectedError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(NullAreaError err) { + LinearRingNode ringNode = new LinearRingNode(err.getRing(), CheckStatus.NOT_CHECKED); + TreeItem ringItem = new TreeItem<>(ringNode); + root.getChildren().add(ringItem); + } + + @Override + public void visit(RingTooFewPointsError err) { + LinearRingNode ringNode = new LinearRingNode(err.getRing(), CheckStatus.NOT_CHECKED); + TreeItem ringItem = new TreeItem<>(ringNode); + root.getChildren().add(ringItem); + + if (err.getRing().getGmlId().isGenerated()) { + PolygonNode polyNode = new PolygonNode(err.getRing().getParent(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + ringItem.getChildren().add(polyItem); + } + } + + @Override + public void visit(NonPlanarPolygonNormalsDeviation err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + + TextNode textNode = new TextNode("Deviation: " + err.getDeviation()); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + } + + @Override + public void visit(NonPlanarPolygonDistancePlaneError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + + VertexNode vertexNode = new VertexNode(err.getVertex()); + TreeItem vertexItem = new TreeItem<>(vertexNode); + root.getChildren().add(vertexItem); + + TextNode textNode = new TextNode("Distance: " + err.getDistance() + "m"); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + + } + + @Override + public void visit(PolygonIntersectingRingsError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(SolidSelfIntError err) { + PolygonNode polyNode1 = new PolygonNode(err.getIntersections().get(0).getP1(), CheckStatus.NOT_CHECKED); + TreeItem polyItem1 = new TreeItem<>(polyNode1); + root.getChildren().add(polyItem1); + PolygonNode polyNode2 = new PolygonNode(err.getIntersections().get(0).getP2(), CheckStatus.NOT_CHECKED); + TreeItem polyItem2 = new TreeItem<>(polyNode2); + root.getChildren().add(polyItem2); + } + + @Override + public void visit(TooFewPolygonsError err) { + // not displayed + + } + + @Override + public void visit(RingDuplicatePointError err) { + LinearRingNode ringNode = new LinearRingNode(err.getRing(), CheckStatus.NOT_CHECKED); + TreeItem ringItem = new TreeItem<>(ringNode); + root.getChildren().add(ringItem); + + VertexNode vertexNode = new VertexNode(err.getVertex1()); + TreeItem vertexItem = new TreeItem<>(vertexNode); + root.getChildren().add(vertexItem); + + vertexNode = new VertexNode(err.getVertex2()); + vertexItem = new TreeItem<>(vertexNode); + root.getChildren().add(vertexItem); + + } + + @Override + public void visit(RingEdgeIntersectionError err) { + LinearRingNode ringNode = new LinearRingNode(err.getRing(), CheckStatus.NOT_CHECKED); + TreeItem ringItem = new TreeItem<>(ringNode); + root.getChildren().add(ringItem); + + EdgeNode edgeNode = new EdgeNode(err.getEdge1()); + TreeItem edgeItem = new TreeItem<>(edgeNode); + root.getChildren().add(edgeItem); + + EdgeNode edge2Node = new EdgeNode(err.getEdge2()); + TreeItem edge2Item = new TreeItem<>(edge2Node); + root.getChildren().add(edge2Item); + + VertexNode vertexNode = new VertexNode(new Vertex(err.getIntersection())); + TreeItem vertexItem = new TreeItem<>(vertexNode); + root.getChildren().add(vertexItem); + } + + @Override + public void visit(PointTouchesEdgeError err) { + TextNode textNode = new TextNode("Point touches edge"); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + + VertexNode vertexNode = new VertexNode(err.getVertex()); + TreeItem vertexItem = new TreeItem<>(vertexNode); + root.getChildren().add(vertexItem); + + EdgeNode edgeNode = new EdgeNode(err.getEdge()); + TreeItem edgeItem = new TreeItem<>(edgeNode); + root.getChildren().add(edgeItem); + + LinearRingNode ringNode = new LinearRingNode(err.getRing(), CheckStatus.NOT_CHECKED); + TreeItem ringItem = new TreeItem<>(ringNode); + root.getChildren().add(ringItem); + } + + @Override + public void visit(NotCeilingError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(NotFloorError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(NotWallError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(NotGroundError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(CheckError err) { + // not used + } + + @Override + public void visit(SchematronError err) { + TextNode textNode = new TextNode(err.getErrorIdString()); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + } + + @Override + public void visit(SurfaceUnfragmentedError err) { + TextNode textNode = new TextNode("Deviation: " + err.getAngleDeviation()); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + } + + @Override + public void visit(DegeneratedRingError err) { + TextNode textNode = new TextNode("Type: degenerated ring"); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + + LinearRingNode polyNode = new LinearRingNode(err.getRing(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + + @Override + public void visit(AttributeMissingError err) { + if (!err.getChildId().isEmpty()) { + TextNode textNode = new TextNode(CHILD_ID + err.getChildId()); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + } + TextNode nameNode = new TextNode(NAME_OF_ATTRIBUTE + err.getNameOfAttribute()); + TreeItem nameItem = new TreeItem<>(nameNode); + root.getChildren().add(nameItem); + + } + + @Override + public void visit(AttributeValueWrongError err) { + if (!err.getChildId().isEmpty()) { + TextNode textNode = new TextNode(CHILD_ID + err.getChildId()); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + } + TextNode nameNode = new TextNode(NAME_OF_ATTRIBUTE + err.getNameOfAttribute()); + TreeItem nameItem = new TreeItem<>(nameNode); + root.getChildren().add(nameItem); + } + + @Override + public void visit(AttributeInvalidError err) { + if (!err.getChildId().isEmpty()) { + TextNode textNode = new TextNode(CHILD_ID + err.getChildId()); + TreeItem textItem = new TreeItem<>(textNode); + root.getChildren().add(textItem); + } + TextNode nameNode = new TextNode(NAME_OF_ATTRIBUTE + err.getNameOfAttribute()); + TreeItem nameItem = new TreeItem<>(nameNode); + root.getChildren().add(nameItem); + } + + @Override + public void visit(PolygonWithoutSurfaceError err) { + PolygonNode polyNode = new PolygonNode(err.getPolygon(), CheckStatus.NOT_CHECKED); + TreeItem polyItem = new TreeItem<>(polyNode); + root.getChildren().add(polyItem); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorNode.java new file mode 100644 index 0000000..8ea378a --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ErrorNode.java @@ -0,0 +1,29 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.check.CheckError; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class ErrorNode extends Renderable { + + private CheckError err; + + public ErrorNode(CheckError e) { + this.err = e; + } + + @Override + public void refreshTextColor() { + // not used + } + + @Override + public String getText() { + return err.getErrorId().toString(); + } + + @Override + public void visit(Renderer renderer) { + renderer.highlight(err); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/GeometryNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/GeometryNode.java new file mode 100644 index 0000000..c58d5b7 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/GeometryNode.java @@ -0,0 +1,49 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.Geometry; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class GeometryNode extends Renderable { + + private Geometry geom; + private String text; + + public GeometryNode(Geometry geom) { + this.geom = geom; + StringBuilder sb = new StringBuilder(); + sb.append("Geometry ["); + sb.append(geom.getType()); + sb.append(", "); + sb.append(geom.getLod()); + if (geom.getGmlId().isGenerated()) { + sb.append("]"); + } else { + sb.append("] "); + sb.append(geom.getGmlId()); + } + text = sb.toString(); + } + + @Override + public void refreshTextColor() { + if (!geom.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (geom.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + @Override + public String getText() { + return text; + } + + @Override + public void visit(Renderer renderer) { + renderer.render(geom); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/InstallationNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/InstallationNode.java new file mode 100644 index 0000000..cb759c7 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/InstallationNode.java @@ -0,0 +1,35 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.Installation; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class InstallationNode extends Renderable { + + private Installation bi; + + public InstallationNode(Installation bi) { + this.bi = bi; + } + + @Override + public String getText() { + return bi.getGmlId().getGmlString(); + } + + @Override + public void visit(Renderer renderer) { + renderer.render(bi); + } + + @Override + public void refreshTextColor() { + if (!bi.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (bi.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } +} \ No newline at end of file diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/LandUseNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/LandUseNode.java new file mode 100644 index 0000000..25e587e --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/LandUseNode.java @@ -0,0 +1,54 @@ +/*- + * Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.LandObject; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class LandUseNode extends Renderable { + + private LandObject landUse; + + public LandUseNode(LandObject landUse) { + this.landUse = landUse; + } + + @Override + public void refreshTextColor() { + if (!landUse.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (landUse.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + @Override + public String getText() { + return "[LandUse] " + landUse.getGmlId().getGmlString(); + } + + @Override + public void visit(Renderer renderer) { + renderer.render(landUse); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/LinearRingNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/LinearRingNode.java new file mode 100644 index 0000000..6c40634 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/LinearRingNode.java @@ -0,0 +1,41 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class LinearRingNode extends Renderable { + + private LinearRing lr; + private String text; + + public LinearRingNode(LinearRing lr, CheckStatus cs) { + this.lr = lr; + setStatus(cs); + } + + @Override + public void refreshTextColor() { + if (!lr.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (lr.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + @Override + public String getText() { + if (text == null) { + text = "Linear Ring (" + lr.getType().toString() + ") " + lr.getGmlId().getGmlString(); + } + return text; + } + + @Override + public void visit(Renderer renderer) { + renderer.highlight(lr); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/OpeningNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/OpeningNode.java new file mode 100644 index 0000000..9c7100d --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/OpeningNode.java @@ -0,0 +1,36 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.Opening; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class OpeningNode extends Renderable { + + private Opening opening; + + public OpeningNode(Opening o) { + opening = o; + } + + @Override + public void refreshTextColor() { + if (!opening.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (opening.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + @Override + public String getText() { + return "Opening [" + opening.getGmlId() + ", " + opening.getType() + "]"; + } + + @Override + public void visit(Renderer renderer) { + renderer.render(opening); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/PolygonNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/PolygonNode.java new file mode 100644 index 0000000..0f7eb3e --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/PolygonNode.java @@ -0,0 +1,41 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.Polygon; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class PolygonNode extends Renderable { + + private Polygon p; + private String text; + + public PolygonNode(Polygon p, CheckStatus cs) { + this.p = p; + setStatus(cs); + } + + @Override + public void refreshTextColor() { + if (!p.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (p.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + @Override + public String getText() { + if (text == null) { + text = "Polygon " + p.getGmlId().getGmlString(); + } + return text; + } + + @Override + public void visit(Renderer renderer) { + renderer.highlight(p); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ReliefNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ReliefNode.java new file mode 100644 index 0000000..58520f3 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ReliefNode.java @@ -0,0 +1,55 @@ +/*- + * Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.ReliefObject; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class ReliefNode extends Renderable { + + private ReliefObject relief; + + public ReliefNode(ReliefObject relief) { + this.relief = relief; + } + + + @Override + public void refreshTextColor() { + if (!relief.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (relief.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + @Override + public String getText() { + return "[ReliefFeature] " + relief.getGmlId().getGmlString(); + } + + @Override + public void visit(Renderer renderer) { + renderer.render(relief); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/Renderable.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/Renderable.java new file mode 100644 index 0000000..ef0f3cf --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/Renderable.java @@ -0,0 +1,34 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleObjectProperty; + +public abstract class Renderable { + + private ObjectProperty statusProperty = new SimpleObjectProperty<>(); + + /** + * @return the status + */ + public CheckStatus getStatus() { + return statusProperty.getValue(); + } + + /** + * @param status the status to set + */ + public void setStatus(CheckStatus status) { + statusProperty.set(status); + } + + public ObjectProperty getStatusProperty() { + return statusProperty; + } + + public abstract void refreshTextColor(); + public abstract String getText(); + public abstract void visit(Renderer renderer); + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/RenderableTreeCell.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/RenderableTreeCell.java new file mode 100644 index 0000000..a287216 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/RenderableTreeCell.java @@ -0,0 +1,58 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import javafx.application.Platform; +import javafx.beans.value.ChangeListener; +import javafx.scene.control.Button; +import javafx.scene.control.TreeCell; +import javafx.scene.paint.Color; + +public class RenderableTreeCell extends TreeCell { + + private Renderable currentCheckable = null; + private ChangeListener listener; + + @Override + protected void updateItem(Renderable item, boolean empty) { + super.updateItem(item, empty); + if (!empty && item != null) { + if (item instanceof ButtonRenderable) { + Button b = new Button("More ..."); + b.setMaxWidth(Double.MAX_VALUE); + setText(null); + setGraphic(b); + ButtonRenderable renderable = (ButtonRenderable) item; + b.setOnAction(ae -> renderable.run()); + return; + } + updateColor(item.getStatus()); + setText(item.getText()); + setGraphic(null); + if (currentCheckable != item) { + if (listener != null) { + // remove old Listener + item.getStatusProperty().removeListener(listener); + } + // only add listener to the status property once + listener = (obs, oldV, newV) -> Platform.runLater(() -> updateColor(newV)); + item.getStatusProperty().addListener(listener); + currentCheckable = item; + } + } else { + setTextFill(Color.BLACK); + setText(null); + setGraphic(null); + } + } + + private void updateColor(CheckStatus status) { + if (status == CheckStatus.OK) { + setTextFill(Color.GREEN); + } else if (status == CheckStatus.ERROR) { + setTextFill(Color.RED); + } else { + setTextFill(Color.BLACK); + } + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TextNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TextNode.java new file mode 100644 index 0000000..33c4d88 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TextNode.java @@ -0,0 +1,28 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class TextNode extends Renderable { + + private String text; + + public TextNode(String text) { + this.text = text; + } + + @Override + public void refreshTextColor() { + // don't refresh anything + } + + @Override + public String getText() { + return text; + } + + @Override + public void visit(Renderer renderer) { + // not used + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TinNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TinNode.java new file mode 100644 index 0000000..5452596 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TinNode.java @@ -0,0 +1,55 @@ +/*- + * Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.TinObject; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class TinNode extends Renderable { + + private TinObject tin; + + public TinNode(TinObject tin) { + this.tin = tin; + } + + + @Override + public void refreshTextColor() { + if (!tin.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (tin.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + @Override + public String getText() { + return "[TINRelief] " + tin.getGmlId().getGmlString(); + } + + @Override + public void visit(Renderer renderer) { + renderer.render(tin); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TreeRequirement.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TreeRequirement.java new file mode 100644 index 0000000..8ffd5d4 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/TreeRequirement.java @@ -0,0 +1,67 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.check.DefaultParameter; +import de.hft.stuttgart.citydoctor2.check.Requirement; +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.property.SimpleStringProperty; +import javafx.beans.value.ObservableValue; + +public class TreeRequirement { + + private BooleanProperty enabled; + private ObservableValue name; + private SimpleStringProperty value; + private ObservableValue unit; + + private Requirement r; + + public TreeRequirement(Requirement r) { + this.r = r; + enabled = new SimpleBooleanProperty(true); + name = new SimpleStringProperty(r.getId()); + unit = new SimpleStringProperty(); + } + + public TreeRequirement(DefaultParameter dp) { + name = new SimpleStringProperty(dp.getName()); + value = new SimpleStringProperty(dp.getValue()); + unit = new SimpleStringProperty(dp.getUnitType().getRepresentation()); + } + + public void setEnabled(boolean enabled) { + this.enabled.set(enabled); + } + + public ObservableValue getUnitProperty() { + return unit; + } + + /** + * @return the enabled + */ + public BooleanProperty getEnabledProperty() { + return enabled; + } + + public ObservableValue getNameProperty() { + return name; + } + + public ObservableValue getValueProperty() { + return value; + } + + public void setValue(String value) { + this.value.setValue(value); + } + + public Requirement getRequirement() { + return r; + } + + public boolean isEnabled() { + return enabled.get(); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VegetationNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VegetationNode.java new file mode 100644 index 0000000..33da663 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VegetationNode.java @@ -0,0 +1,61 @@ +/*- + * Copyright 2022 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart + * + * This file is part of CityDoctor2. + * + * CityDoctor2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * CityDoctor2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with CityDoctor2. If not, see . + */ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.datastructure.Vegetation; +import de.hft.stuttgart.citydoctor2.gui.CheckStatus; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class VegetationNode extends Renderable { + + private Vegetation veg; + private String text; + + public VegetationNode(Vegetation veg) { + this.veg = veg; + StringBuilder sb = new StringBuilder(); + sb.append("["); + sb.append(veg.getVegetationType()); + sb.append("] "); + sb.append(veg.getGmlId().getGmlString()); + text = sb.toString(); + } + + @Override + public void refreshTextColor() { + if (!veg.isValidated()) { + setStatus(CheckStatus.NOT_CHECKED); + } else if (veg.containsAnyError()) { + setStatus(CheckStatus.ERROR); + } else { + setStatus(CheckStatus.OK); + } + } + + @Override + public String getText() { + return text; + } + + @Override + public void visit(Renderer renderer) { + renderer.render(veg); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VertexNode.java b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VertexNode.java new file mode 100644 index 0000000..e507e08 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/VertexNode.java @@ -0,0 +1,53 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; + +import de.hft.stuttgart.citydoctor2.datastructure.Vertex; +import de.hft.stuttgart.citydoctor2.gui.Renderer; + +public class VertexNode extends Renderable { + + private static DecimalFormat nf; + + static { + DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(); + dfs.setDecimalSeparator('.'); + nf = new DecimalFormat("#.########", dfs); + } + + private static final String SEPERATOR = ", "; + private Vertex v; + private String text; + + public VertexNode(Vertex v) { + this.v = v; + } + + @Override + public void refreshTextColor() { + // not used + } + + @Override + public String getText() { + if (text == null) { + StringBuilder sb = new StringBuilder(); + sb.append("Vertex ["); + sb.append(nf.format(v.getX())); + sb.append(SEPERATOR); + sb.append(nf.format(v.getY())); + sb.append(SEPERATOR); + sb.append(nf.format(v.getZ())); + sb.append("]"); + text = sb.toString(); + } + return text; + } + + @Override + public void visit(Renderer renderer) { + renderer.highlight(v); + } + +} diff --git a/CityDoctorParent/CityDoctorGUI/src/main/resources/citydoctor_logo.ico b/CityDoctorParent/CityDoctorGUI/src/main/resources/citydoctor_logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..3321b741356a9f40506da39dd8377c83e227d67a GIT binary patch literal 4286 zcmeH~SxA&o6vwamdd%RqvI?#%jujub3bJ4n{j3=2>OOI-<^BUJ-`3m?=Y5x zpR6oK-|TieW0{PxxoDWh^3f=tKUnr=LePR4|L(Uzk_&Z`@e3KH|5i)1FLLDaQuZmJF2%y~K2YR>$oRdE?H7&D8 zqG2j)Pt{AtW@7K%-U$>Z-iLG-Z|xKsK2hvw8jxE-?8S52puaDUhKGqAaQI=#f;KT9 z$|Lb7GqWDqPFiD)@7!UL;{W-+!Ohn##vX{YE^)4wQQLQK?u;L%Qgc^Pa2)iKd{V6s zko|%9ub!)~ah32+D7)D|N9;g z{gZGH+lH^IZ{6P(H=F3 zpFeoGQTp-20l0R-&V33Ob-)yjauuj)gi3O;gWNUIQuyccrpZDbR z?v)!{&f$A#y!@eB5=oDgPxsl;ekf*izT8VbGTj@ba>n+YUHW{vEci zvcjx1g-L9RS*1@g&r{=zd>u1op>H|f8$SshalQkgyJR`V6!BwuXEIrE_>;bTp8N6u>}de?$p95efEy$P b7(0a%CC|gy3_D|KWM;-RqhS=281(!CmHv7& literal 0 HcmV?d00001 diff --git a/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/AboutDialog.fxml b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/AboutDialog.fxml new file mode 100644 index 0000000..ef3c7e4 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/AboutDialog.fxml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/CheckDialog.fxml b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/CheckDialog.fxml new file mode 100644 index 0000000..19930f9 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/CheckDialog.fxml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/CreateRenderDataDialog.fxml b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/CreateRenderDataDialog.fxml new file mode 100644 index 0000000..49cb7f1 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/CreateRenderDataDialog.fxml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/FilterPane.fxml b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/FilterPane.fxml new file mode 100644 index 0000000..264bab3 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/FilterPane.fxml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/MainToolBar.fxml b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/MainToolBar.fxml new file mode 100644 index 0000000..17503f5 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/MainToolBar.fxml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/MainWindow.fxml b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/MainWindow.fxml new file mode 100644 index 0000000..e9f2c95 --- /dev/null +++ b/CityDoctorParent/CityDoctorGUI/src/main/resources/de/hft/stuttgart/citydoctor2/gui/MainWindow.fxml @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +